51单片机汉字显示.docx

上传人:b****5 文档编号:30309753 上传时间:2023-08-13 格式:DOCX 页数:37 大小:68.52KB
下载 相关 举报
51单片机汉字显示.docx_第1页
第1页 / 共37页
51单片机汉字显示.docx_第2页
第2页 / 共37页
51单片机汉字显示.docx_第3页
第3页 / 共37页
51单片机汉字显示.docx_第4页
第4页 / 共37页
51单片机汉字显示.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

51单片机汉字显示.docx

《51单片机汉字显示.docx》由会员分享,可在线阅读,更多相关《51单片机汉字显示.docx(37页珍藏版)》请在冰豆网上搜索。

51单片机汉字显示.docx

51单片机汉字显示

基于单片机的液晶汉字显示屏的设计

 

摘要:

本课题为基于51单片机的LCD汉字显示技术。

基于在对单片机研究的基础上,本文提出了一种以AT89C51为核心的单片机构成液晶显示器的方法。

该钟的显示电路采用160128点阵的图形点阵的液晶屏。

关键字:

单片机,LCD

 

 

1引言

1.1课题背景

目前单片机已渗透到生活的各个领域,几乎很难找到哪个领域没有单片机的足迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说全自动控制领域的机器人、智能仪表、医疗器械了。

因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。

科技越发达,智能化的东西就越多。

看来学习单片机是社会发展的必然需求。

单片机即单片微型计算机,又称为微控制器,它的体积小,功能强,可靠性好,价格又便宜,成为传统工业技术改造和新产品更新换代的理想品种,具有广阔的发展前景,其中最具有代表性的就是Intel公司的8051系列单片机。

本文在对单片机研究的基础上,以AT89C51为核心控制芯片,对汉字显示屏进行设计与应用,通过对其原理深入分析,探讨以AT89C51单片机构成LCD液晶显示屏的实现方法。

 

1.28051单片机输入输出口

8051有4组8位1/0口:

P0,P1,P2和P3口,P1、P2和P3为准双向口,PO口则为双向三态输入输出口,下面分别介绍这几个口线:

PO口和P2口:

PO口和P2口电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,另外还有一个数据输出的驱动和控制电路。

这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/0扩展口,而不能像Pl、P3直接用作输出口。

它们一起可以作为外部地址总线,PO口身兼两职,既可作为地址总线,也可作为数据总线[5][7]。

P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15。

PO口由ALE选通作为地址总线的低8位输出ABO-AB7。

外部的程序存储器由PSEA信号选通,数据存储器则由WR和RD读写信号选通,8051最大可外接64kB的程序存储器和数据存储器。

P1口:

P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,内上拉电阻将电位拉至“1”,此时该口输出为1,当0写入锁存器,Q(非)=1,输出则为0。

作为输入口时,锁存器置l,Q(非)=0,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,P1口常称为准双向口。

需要说明的是,作为输入口使用时,有两种情况,其一是:

首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读一修改一写操作,像JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。

其二是:

读P1口线状态时,打开三态门G2,将外部状态读入CPU。

P3口:

P3口为准双向口,为适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,第二功能显得更为重要。

由于第二功能信号有输入输出两种情况,分别加以说明。

P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。

着重讨论P3口的第二功能,P3口的第二功能各管脚定义如下:

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口使用时,第二功能信号线应保持高电平与非门开通,以维持从锁存器到输出口数据输出通路畅通。

当作第二功能口线用时,该位的锁存器置高电平,使与非门对第二功能信号的输出是畅通,从而实现第二功能信号的输出。

对于第二功能为输入的信号引脚,在口线上的输入通路增设了一个缓冲器,输入的第二功能信号即从这个缓冲器的输出端取得。

而作为I/0口线输入端时,取自三态缓冲器的输出端。

这样,不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线均应置“1”。

1.38051单片机的指令时序

时序是用定时单位来描述的,8051的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来分别加以说明。

节拍与状态:

把振荡脉冲的周期定义为节拍(为方便描述,用P表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用S表示),这样一个状态就有两个节拍,前半周期相应的节拍定义为1(P),后半周期对应的节拍定义为2(P)。

机器周期:

8051有固定的机器周期,规定一个机器周期有6个状态,分别表示S1-S6。

而一个状态包含两个节拍,那么一个机器周期就有12个节拍,可以记着SIP2,SIP2......S6P1,S6P2,一个机器周期共包含12个振荡脉冲,即机器周期就是振荡脉冲的12分频,显然,如果使用6MHZ的时钟频率,一个机器周期就是2us,而如使用12MHz的时钟频率,一个机器周期就是lus。

指令周期:

执行一条指令所需要的时间称为指令周期,8051的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期。

8051的指令时序:

8051指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。

执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:

单字节指令单机器周期;单字节指令双机器周期;双字节指令单机器周期;双字节指令双机器周期;三字节指令双机器周期;单字节指令四机器周期(如单字节的乘除法指令)。

单字节单周期指令:

单字节单周期指令只进行一次读指令操作,当第二个ALE信号有效时,PC并不加1,读出的还是原指令,属于一次无效的读操作。

双字节单周期指令:

这类指令两次的ALE信号都是有效的,只是第一个ALE信号有效时读的是操作码,第二个ALE信号有效时读的是操作数。

单字节双周期指令:

两个机器周期需进行四次读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。

单字节双周期指令有一种特殊的情况,像MOVX这类指令,执行这类指令时,先在ROM中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效,而第二次读指令操作则为无效的。

在第二个指令周期时,则访问外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。

外部程序存储器(ROM)读时序:

8051外部程序存储器读时序图时PO口提供低8位地址,P2口提供高8位地址,S2结束前,PO口上的低8位地址是有效的,之后出现在PO口上的就不再是低8位的地址信号,而是指令数据信号。

当然地址信号与指令数据信号之间有一段缓冲的过度时间,这就要求在S2期间必须把低8位的地址信号锁存起来,这时是用ALE选通脉冲去控制锁存器把低8位地址予以锁存,P2口只输出地址信号,而没有指令数据信号。

整个机器周期地址信号都是有效的,因而无需锁存地址信号。

从外部程序存储器读取指令,必须有两个信号进行控制,除了上述的ALE信号,还有一个PSEN(外部ROM读选通脉冲)。

PSEN开始有效,直到将地址信号送出和外部程序存储器的数据读入CPU后方才失效,接着从S4P2开始执行第二个读指令操作。

外部数据存储器(RAM)读时序:

从ROM中读取需执行的指令,而CPU对外部数据存储的访问是对RAM进行数据的读或写操作,属于指令的执行周期,读或写是两个不同的机器周期,但他们的时序却是相似的,只对RAM的读时序进行分析。

上一个机器周期是取指阶段,是从ROM中读取指令数据,接着的下个周期才开始读取外部数据存储器RAM中的内容。

在S4结束后,先把需读取RAM中的地址放到总线上,包括PO口上的低8位地址AO-A7和P2口上的高8位地址A8-A15。

当RD选通脉冲有效时,将RAM的数据通过PO数据总线读进CPU。

第二个机器周期的ALE信号仍然出现,进行一次外部ROM的读操作,但是这一次的读操作属于无效操作。

对外部RAM进行写操作时,CPU输出的则是WR(写选通信号),将数据通过P0数据总线写入外部存储中。

2单片机的编程软件及仿真软件介绍

2.1.1Proteus的简介

ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件[9]。

它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:

①实现了单片机仿真和SPICE电路仿真相结合。

具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

②支持主流单片机系统的仿真。

目前支持的单片机类型有:

68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

③提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。

④具有强大的原理图绘制功能。

总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

Proteus主要用于绘制原理图并可进行电路仿真,ProteusARES主要用于PCB设计。

ISIS的主界面主要包括:

1是电路图概览区、2是元器件列表区、3是绘图区。

绘制电路图的过程如下:

单击2区的P命令即弹出元器件选择(PickDevices)对话框,Proteus提供了丰富的元器件资源,包括30余种元器件库,有些元器件库还具有子库。

利用该对话框提供的关键词(Keywords)搜索功能,输入所要添加的元器件名称,即可在结果(Results)中查找,找到后双击鼠标左键即可将该元器件添到2区,待所有需要的元器件添加完成后点击对话框右下角的OK按钮,返回主界面。

接着在2区中选中某一个元器件名称,直接在3区中单击鼠标左键即可将该元器件添加到3区。

由于是英国的软件,特别要注意的是绘图区中鼠标的操作和一般软件的操作习惯不同,这正像是司机座位和人行道走向和国内不同一样。

单击左键是完成在2区中被选中的元器件的粘贴功能;将鼠标置于某元器件上并单击右键则是选中该元器件(呈现红色),若再次单击右键的话则删除该元器件,而单击左键的话则会弹出该元器件的编辑对话框(EditComponent);若不需再选中任何元器件,则将鼠标置于3区的空白处单击右键即可;另外如果想移动某元器件,则选中该元器件后再按住鼠标左键即可将之移动。

元器件之间的连线方法为:

将鼠标移至元器件的某引脚,即会出现一个“×”符号,按住鼠标左键后移动鼠标,将线引至另一引脚处将再次出现符号“×”,此时单击鼠标左键便可完成连线。

连线时在需拐弯的地方单击鼠标左键即可实现方向的改变。

绘制好电路后,可利用1区的绿色边框对3区的电路进行定位。

2.1.2Keil软件及其调试功能简介

目前流行的51系列单片机开发软件是德国Keil公司推出的KeilC51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。

Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:

μVisionIDE集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。

应用Keil进行软件仿真开发的主要步骤为:

编写源程序并保存——建立工程并添加源文件——设置工程——编译/汇编、连接,产生目标文件——程序调试。

Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。

工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。

首先选择菜单File—New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File—Open…,直接打开已用其他编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project—NewProject…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。

这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择SourceGroup1,右击鼠标弹出快捷菜单,选择“AddFiletoGroup‘SourceGroup1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其他文件)。

加入文件后点close返回主界面,展开“SourceGroup1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。

紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project—OptionforTarget’Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“CreatHexFi”;其他选项卡内容一般可取默认值。

工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。

成功编译/汇编、连接后,选择菜单Debug—Start/StopDebugSession(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。

Keil能以单步执行(按F11或选择Debug—Step)、过程单步执行(按F10或选择Debug—StepOver)、全速执行等多种运行方式进行程序调试。

如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug—InlineAssambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。

对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug—Insert/RemoveBreakpoint或Debug—Breakpoints…等)。

在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。

Keil软件Eval版(免费产品)的功能与商业版相同,只是程序的最大代码量不得超过2kB,但对初学者而言已是足够。

Keil软件由于其强大的软件仿真功能,友好的用户界面以及易于掌握的特点而受到工程技术人员的欢迎,有人甚至认为Keil是目前最好的51单片机开发应用软件。

 

2.1.3软件连接使用

a、假若KeilC与Proteus均已正确安装在C:

\ProgramFiles的目录里,把C:

\ProgrameFile\LabcenterElectronics\Proteus6Professional\MODELS\VDM51.dl复制到C:

\ProgramFile\KeilC\C51\BIN目录里。

b、用记事本打开C:

\ProgramFiles\keilC\C51\TOOLS.INI文件,在[C51]栏目下加入:

TDRV5=BIN\VDM51.DLL("ProteusVSMMonitor-51Driver")

其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。

(步骤1和2只需在初次使用设置。

c、进入KeilCμVision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:

Atmel公司的AT89C51)。

并为该项目加入KeilC源程序。

d、单击“Project菜单/OptionsforTarget”选项或者点击工具栏的“optionfortarget”按钮

,弹出窗口,点击“Debug”按钮,出现如图所示页面。

在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMMonitor一51Driver”。

并且还要点击一下“Use”前面表明选中的小圆点。

再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。

在“Port”后面添加“8000”。

设置好的情形如图所示,点击“OK”按钮即可。

最后将工程编译,进入调试状态,并运行。

e、Proteus的设置

进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“useromotedebugermonitor”,如图所示。

此后,便可实现KeilC与Proteus连接调试。

f、KeilC与Proteus连接仿真调试

单击仿真运行开始按钮

,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。

3控制系统硬件设计

3.1硬件电路图

 

3.2显示部分

显示部分采用160X128的图形液晶显示器。

 

 

4软件设计

4.1程序仿真

从proteus里可以看到程序的运行效果很令人满意

5结论

本文主要对数字电子钟进行了研究,在学习单片机理论知识的基础上,以AT89C51芯片为控制核心,设计了检测系统的硬件电路和软件。

本文主要完成下面工作:

1.8051芯片性能参数的分析。

2.相关软件的学习和使用。

3.数字电子钟的设计方案、显示电路及相应的软件的设计

4.8051构成的液晶显示器及相应的软件的设计

5.单片机系统抗干扰方法从软件和硬件方面进行分析。

由于能力有限,不能够充分利用所学知识,对所设计的显示器不能有进一步的简化,其电路及软件还有待更好的改善。

 

6谢辞

衷心感谢我的指导老师!

本课题的研究工作是在老师的悉心指导和关怀下才得以顺利完成。

老师勤奋好思、严谨求实,在我学习过程中,给了我很多的启示和帮助。

指导老师给予我的不仅仅是知识上、学习上的,更有方法上,思想上的帮助!

感谢我们组的同学对我的帮助和支持,再次感谢大家!

 

7参考文献

参考文献:

[1]梅丽凤,王艳秋.单片机原理及接口技术[M].北京:

清华大学出版社,2004.P12~P16

[2]朱定华,刘玉.单片机原理及应用技术学习辅导[M].北京:

电子工业出版社,2001.P19~P02

[3]夏继强.单片机实验与实践教程[M].北京:

北京航空航天大学出

(二)2001.P18~P26

[4]何立明.MCS-51系列单片机应用系统设计[M].北京:

北京航天航空大学出版社,2001.P30~P35

[5]胡汉才.单片机原理及其接口技术[M].北京:

清华大学出版社,1996.

P58~P62P80~P93

[6]杨拴科.模拟电子技术[M].北京:

高等教育出版社,2003.

[7]范立南,谢子殿.单片机原理及应用教程[M].北京:

清华大学出版社,2003.P30~P42P103~P110

[8]辛友顺.单片机应用系统设计与实现[M].北京:

电子工业出版社,1996.P26~P30

[9]杨志忠,郭顺华.数字电子技术基础[M].北京:

高等教育出版社,2003.P100~P108

[10]薛钧义.MCS-51/96系列单片机微型计算机及其应用[M].西安:

西安交通大学出版社,1998.P90~P95

[11]唐前辉.PROTEUS中文教程+实例.puterA

[12]YaoLiang,ZhangZhenren,ZhangBo.CommunicationrealizationBetweenPCandMCS-51SCMBasedonMODBUSProtocol

 

附录:

程序

T_SETBITP1.0;调整

A_SETBITP1.1;加1

S_SETBITP1.2;减1

D_SETBITP1.3;日期

TIMER_SETBITP1.4;设置定时时间

MM_SETBITP1.5;秒表

SECONDEQU32H

MINUTEEQU31H

HOUREQU30H

TCNTEQU39H;t0中断次数

COUNTEQU40H;判断哪位

FRISTEQU36H

MIDDLEEQU37H

LASTEREQU38H

YEAREQU33H

MONEQU34H

DAYEQU35H

TIMER_HOUREQU41H

TIMER_MINUTEEQU42H

TIMER_SECONDEQU43H

TIMER_COUNTEQU44H;定时判断哪位

TIMERSYMBOLEQU45H;定时到达标志位

MMSECEQU47H;秒表,0。

1秒

MSECEQU48H;1秒

MMINEQU49H;1分

ORG0000H

SJMPSTART

ORG0BH

LJMPINT_T0

ORG001BH

LJMPINT_T1

START:

MOVDPTR,#TABLE

MOVHOUR,#12

MOVMINUTE,#35

MOVSECOND,#55

MOVYEAR,#07

MOVMON,#5

MOVDAY,#15

MOVTIMER_HOUR,#12

MOVTIMER_MINUTE,#30

MOVTIMER_SECOND,#30

MOVTCNT,#0

MOVCOUNT,#0

MOVTIMER_COUNT,#0

MOVTIMERSYMBOL,#1;为0定时时间到

MOVTMOD,#11H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVIE,#8AH

SETBPT0;设t0为最高优先级

SETBTR0

A1:

LCALLCLOCK

LCALLDISPLAY

JNBT_SET,S10;调整时间

JNBTIMER_SET,S20;设置定时时间

JNBD_SET,S4;显日期

JNBMM_SET,S3;显示秒表

MOVA,TIMERSYMBOL;定时时间到标志

JNZA1;定时时间到

AJMPALARM

AJMPA1

S10:

AJMPS1

S20:

AJMPS2

MOVR2,#0FFH;定时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

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

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