ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:68.52KB ,
资源ID:30309753      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30309753.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机汉字显示.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机汉字显示.docx

1、51单片机汉字显示基于单片机的液晶汉字显示屏的设计摘 要:本课题为基于51单片机的LCD汉字显示技术。基于在对单片机研究的基础上,本文提出了一种以AT89C51为核心的单片机构成液晶显示器的方法。该钟的显示电路采用160128点阵的图形点阵的液晶屏。关键字: 单片机, LCD1引言1.1课题背景目前单片机已渗透到生活的各个领域,几乎很难找到哪个领域没有单片机的足迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开

2、单片机。更不用说全自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。科技越发达,智能化的东西就越多。看来学习单片机是社会发展的必然需求。 单片机即单片微型计算机,又称为微控制器,它的体积小,功能强,可靠性好,价格又便宜,成为传统工业技术改造和新产品更新换代的理想品种,具有广阔的发展前景,其中最具有代表性的就是Intel公司的8051系列单片机。 本文在对单片机研究的基础上,以AT89C51为核心控制芯片,对汉字显示屏进行设计与应用,通过对其原理深入分析,探讨以AT89C51单片机构成LCD液晶显示屏的实现方法。1.280

3、51单片机输入输出口8051有4组8位1/0口:P0, P1,P2和P3口,P1、P2和P3为准双向口,PO口则为双向三态输入输出口,下面分别介绍这几个口线:PO口和P2口:PO口和P2口电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,另外还有一个数据输出的驱动和控制电路。这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/0扩展口,而不能像Pl、P3直接用作输出口。它们一起可以作为外部地址总线,PO口身兼两职,既可作为地址总线,也可作为数据总线57。P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15。 PO口由ALE选通作为地址总线的低8位输出ABO

4、-AB7。外部的程序存储器由PSEA信号选通,数据存储器则由WR和RD读写信号选通, 8051最大可外接64kB的程序存储器和数据存储器。P1口:P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,内上拉电阻将电位拉至“1”,此时该口输出为1,当0写入锁存器,Q(非)=1,输出则为0。作为输入口时,锁存器置l, Q(非)=0,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,P1口常称为准双向口。需要说明的是,作为输入口使用时,有两种情况,其一是:首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读一修改一

5、写操作,像JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。其二是:读P1口线状态时,打开三态门G2,将外部状态读入CPU。P3口:P3口为准双向口,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。由于第二功能信号有输入输出两种情况,分别加以说明。P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。着重讨论P3口的第二功能,P

6、3口的第二功能各管脚定义如下: P3.0 串行输入口(RXD) P3.1 串行输出口(TXD) P3.2 外中断0 (INTO) P3.3 外中断1(INT1) P3.4 定时/计数器0的外部输入口(TO) P3.5 定时/计数器1的外部输入口(T1) P3.6 外部数据存储器写选通(WR) P3.7 外部数据存储器读选通(RD)第二功能为输出引脚,当作I/0口使用时,第二功能信号线应保持高电平与非门开通,以维持从锁存器到输出口数据输出通路畅通。当作第二功能口线用时,该位的锁存器置高电平,使与非门对第二功能信号的输出是畅通,从而实现第二功能信号的输出。对于第二功能为输入的信号引脚,在口线上的输

7、入通路增设了一个缓冲器,输入的第二功能信号即从这个缓冲器的输出端取得。而作为I/0口线输入端时,取自三态缓冲器的输出端。这样,不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线均应置“1”。1.38051单片机的指令时序时序是用定时单位来描述的,8051的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来分别加以说明。节拍与状态:把振荡脉冲的周期定义为节拍 (为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍定义为1(P) ,后半周期

8、对应的节拍定义为2(P)。机器周期:8051有固定的机器周期,规定一个机器周期有6个状态,分别表示S1-S6。而一个状态包含两个节拍,那么一个机器周期就有12个节拍,可以记着SIP2,SIP2. S6P1, S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHZ的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是lus。指令周期:执行一条指令所需要的时间称为指令周期,8051的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期。8051的指令时序

9、:8051指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:单字节指令单机器周期;单字节指令双机器周期;双字节指令单机器周期;双字节指令双机器周期;三字节指令双机器周期;单字节指令四机器周期(如单字节的乘除法指令)。单字节单周期指令:单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,读出的还是原指令,属于一次无效的读操作。双字节单周期指令:这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。单字节双周期指令:两

10、个机器周期需进行四次读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。单字节双周期指令有一种特殊的情况,像MOVX这类指令,执行这类指令时,先在ROM中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。在第二个指令周期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。外部程序存储器(ROM)读时序: 8051外部程序存储器读时序图时PO口提供低8位地址,P2口提供高8位地址,S2结束前,PO口上的低8位地址是有效的,之后出现在PO口上的就不再是低8位的地址信号,而是指令数据信

11、号。当然地址信号与指令数据信号之间有一段缓冲的过度时间,这就要求在S2期间必须把低8位的地址信号锁存起来,这时是用ALE选通脉冲去控制锁存器把低8位地址予以锁存,P2口只输出地址信号,而没有指令数据信号。整个机器周期地址信号都是有效的,因而无需锁存地址信号。从外部程序存储器读取指令,必须有两个信号进行控制,除了上述的ALE信号,还有一个PSEN(外部ROM读选通脉冲)。PSEN开始有效,直到将地址信号送出和外部程序存储器的数据读入CPU后方才失效,接着从S4P2开始执行第二个读指令操作。外部数据存储器(RAM)读时序: 从ROM中读取需执行的指令,而CPU对外部数据存储的访问是对RAM进行数据

12、的读或写操作,属于指令的执行周期,读或写是两个不同的机器周期,但他们的时序却是相似的,只对RAM的读时序进行分析。上一个机器周期是取指阶段,是从ROM中读取指令数据,接着的下个周期才开始读取外部数据存储器RAM中的内容。在S4结束后,先把需读取RAM中的地址放到总线上,包括PO口上的低8位地址AO-A7和P2口上的高8位地址A8-A15。当RD选通脉冲有效时,将RAM的数据通过PO数据总线读进CPU。第二个机器周期的ALE信号仍然出现,进行一次外部ROM的读操作,但是这一次的读操作属于无效操作。对外部RAM进行写操作时,CPU输出的则是WR(写选通信号),将数据通过P0数据总线写入外部存储中。

13、2单片机的编程软件及仿真软件介绍2.1.1Proteus的简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件9。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PI

14、C16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。Proteus主要用于绘制原理图并可进行电路仿真,Proteus ARES 主要用于PCB 设计。ISIS 的主界面主要包括:1 是电路图概览区、2 是元器件列表区、3 是绘图区。绘制电路图的过

15、程如下:单击2 区的P 命令即弹出元器件选择(Pick Devices)对话框,Proteus 提供了丰富的元器件资源,包括30 余种元器件库,有些元器件库还具有子库。利用该对话框提供的关键词(Keywords)搜索功能,输入所要添加的元器件名称,即可在结果(Results)中查找,找到后双击鼠标左键即可将该元器件添到2 区,待所有需要的元器件添加完成后点击对话框右下角的OK 按钮,返回主界面。接着在2 区中选中某一个元器件名称,直接在3 区中单击鼠标左键即可将该元器件添加到3 区。由于是英国的软件,特别要注意的是绘图区中鼠标的操作和一般软件的操作习惯不同,这正像是司机座位和人行道走向和国内不

16、同一样。单击左键是完成在2 区中被选中的元器件的粘贴功能;将鼠标置于某元器件上并单击右键则是选中该元器件(呈现红色),若再次单击右键的话则删除该元器件,而单击左键的话则会弹出该元器件的编辑对话框(Edit Component);若不需再选中任何元器件,则将鼠标置于3 区的空白处单击右键即可;另外如果想移动某元器件,则选中该元器件后再按住鼠标左键即可将之移动。元器件之间的连线方法为:将鼠标移至元器件的某引脚,即会出现一个“”符号,按住鼠标左键后移动鼠标,将线引至另一引脚处将再次出现符号“”,此时单击鼠标左键便可完成连线。连线时在需拐弯的地方单击鼠标左键即可实现方向的改变。绘制好电路后,可利用1

17、区的绿色边框对3 区的电路进行定位。2.1.2Keil软件及其调试功能简介目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为Vision(通常称为V2)。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:Vision IDE集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-

18、51、RTX51实时操作系统。应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存建立工程并添加源文件设置工程编译/汇编、连接,产生目标文件程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单FileNew,在源程序编辑器中输入汇编语言或C语言源程序(或选择FileOpen,直接打开已用其他编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单ProjectNew Project,建立新工程并保存

19、(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group Source Group1”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其他文件)。加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管

20、理窗口的Target1,再选择ProjectOption for Target Target1(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其他选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。 成功编译/汇编、连接后,选择菜单DebugStart/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程

21、序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。Keil能以单步执行(按F11或选择DebugStep)、过程单步执行(按F10或选择DebugStep Over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(DebugInline Assambly),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(DebugInsert/Remove Breakpoint或Debug

22、Breakpoints等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。Keil软件Eval版(免费产品)的功能与商业版相同,只是程序的最大代码量不得超过2kB,但对初学者而言已是足够。Keil软件由于其强大的软件仿真功能,友好的用户界面以及易于掌握的特点而受到工程技术人员的欢迎,有人甚至认为Keil是目前最好的51单片机开发应用软件。2.1.3软件连接使用a、假若KeilC与Proteus均已正确安装在C:Program Files的目录里,把C:Programe FileLabcenter ElectronicsProteus 6 Pro

23、fessionalMODELSVDM51.dl 复制到C:Program FileKeilCC51BIN目录里。b、用记事本打开C:Program FileskeilCC51TOOLS.INI文件,在C51栏目下加入:TDRV5=BINVDM51.DLL (Proteus VSM Monitor-51 Driver)其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。(步骤1和2只需在初次使用设置。)c、进入KeilC Vision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51)。并为该项目加入KeilC源

24、程序。d、单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮,弹出窗口,点击“Debug”按钮,出现如图所示页面。在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好的情形如图所示,点击“

25、OK”按钮即可。最后将工程编译,进入调试状态,并运行。 e、Proteus的设置进入Proteus的ISIS,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”,如图所示。此后,便可实现KeilC与Proteus连接调试。f、KeilC与Proteus连接仿真调试单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。3控制系统硬件设计3.1硬件电路图3.2显示部分显示部分采用160X128的图形液晶显示器。、4软件设计4.1程序仿真 从proteus里可以看到程序的运行效果很令人满意5结 论本文主要对数字电子钟

26、进行了研究,在学习单片机理论知识的基础上,以AT89C51芯片为控制核心,设计了检测系统的硬件电路和软件。本文主要完成下面工作:1. 8051芯片性能参数的分析。2相关软件的学习和使用。3. 数字电子钟的设计方案、显示电路及相应的软件的设计48051构成的液晶显示器及相应的软件的设计5单片机系统抗干扰方法从软件和硬件方面进行分析。由于能力有限,不能够充分利用所学知识,对所设计的显示器不能有进一步的简化,其电路及软件还有待更好的改善。6谢 辞衷心感谢我的指导老师!本课题的研究工作是在老师的悉心指导和关怀下才得以顺利完成。老师勤奋好思、严谨求实,在我学习过程中,给了我很多的启示和帮助。指导老师给予

27、我的不仅仅是知识上、学习上的,更有方法上,思想上的帮助!感谢我们组的同学对我的帮助和支持,再次感谢大家!7参考文献参考文献:1 梅丽凤,王艳秋. 单片机原理及接口技术M.北京:清华大学出版社,2004P12P162朱定华,刘玉. 单片机原理及应用技术学习辅导M.北京:电子工业出版社,2001P19P023 夏继强.单片机实验与实践教程M. 北京:北京航空航天大学出(二) 2001.P18P264 何立明. MCS-51系列单片机应用系统设计M.北京:北京航天航空大学出版社,2001P30P355 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,1996P58P62 P80P936 杨拴

28、科.模拟电子技术M.北京:高等教育出版社,20037 范立南,谢子殿.单片机原理及应用教程M. 北京:清华大学出版社,2003P30P42 P103P1108 辛友顺. 单片机应用系统设计与实现M. 北京:电子工业出版社,1996P26P309 杨志忠,郭顺华. 数字电子技术基础M. 北京:高等教育出版社,2003P100P10810 薛钧义. MCS-51/96系列单片机微型计算机及其应用M.西安:西安交通大学出版社,1998 P90P9511 唐前辉.PROTEUS中文教程+实例. puterA 12 Yao Liang , Zhang Zhenren ,Zhang Bo. Communi

29、cation realization Between PC and MCS-51 SCM Based on MODBUS Protocol 附录:程序T_SET BIT P1.0;调整A_SET BIT P1.1;加1S_SET BIT P1.2;减1D_SET BIT P1.3;日期TIMER_SET BIT P1.4;设置定时时间MM_SET BIT P1.5;秒表SECOND EQU 32HMINUTE EQU 31HHOUR EQU 30HTCNT EQU 39H;t0中断次数COUNT EQU 40H;判断哪位FRIST EQU 36HMIDDLE EQU 37HLASTER EQU

30、 38HYEAR EQU 33HMON EQU 34HDAY EQU 35HTIMER_HOUR EQU 41HTIMER_MINUTE EQU 42HTIMER_SECOND EQU 43HTIMER_COUNT EQU 44H;定时判断哪位TIMERSYMBOL EQU 45H;定时到达标志位MMSEC EQU 47H;秒表,0。1秒MSEC EQU 48H;1秒MMIN EQU 49H;1分ORG 0000HSJMP STARTORG 0BHLJMP INT_T0ORG 001BHLJMP INT_T1START:MOV DPTR, #TABLEMOV HOUR, #12MOV MINU

31、TE, #35MOV SECOND, #55MOV YEAR, #07MOV MON, #5MOV DAY, #15MOV TIMER_HOUR,#12MOV TIMER_MINUTE,#30MOV TIMER_SECOND,#30MOV TCNT, #0MOV COUNT,#0MOV TIMER_COUNT,#0MOV TIMERSYMBOL,#1;为0定时时间到MOV TMOD, #11HMOV TH0, #3CHMOV TL0, #0B0HMOV IE, #8AHSETB PT0;设t0为最高优先级SETB TR0A1:LCALL CLOCKLCALL DISPLAYJNB T_SET, S10;调整时间JNB TIMER_SET,S20;设置定时时间JNB D_SET, S4;显日期JNB MM_SET,S3;显示秒表MOV A,TIMERSYMBOL;定时时间到标志JNZ A1;定时时间到AJMP ALARM AJMP A1S10:AJMP S1S20:AJMP S2MOV R2,#0FFH;定时

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1