[转载]基于8255的LCD动态显示器设计_第1页
[转载]基于8255的LCD动态显示器设计_第2页
[转载]基于8255的LCD动态显示器设计_第3页
[转载]基于8255的LCD动态显示器设计_第4页
[转载]基于8255的LCD动态显示器设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于的动态显示器设计 一、 设计要求 能够学会利用Proteus软件的MCS51单片机仿真学习,根据提供的参考工程,在proteus平台自己重新设计实验电路所需要的电气原理图,并在此基础上编写相对应的程序,实现其功能,学习proteus软件的使用,其中包括原理图器件的选取、原理图的电气连接、程序的编写编译以及运行,并能查出其错误等。二、 实验内容 设计一基于的动态显示器三、 实验要求1 用数码管或LCD正常显示数字“12345678”。2 通过按键可改变显示方式。3 设计显示屏的动态效果,用10个按键,每键对应一种滚动技术。 另注,实验发挥部分:1 设计所有动作的联合效果。2 设计二个变速按

2、键,可多级改变滚动速度。3 设计一台魔术电子种,采用自动变换,随机组合,数据每10秒变换一次。 动态显示格式:1 静止2 整体闪烁3 单字闪烁4 整体向前、向后滚动5 单字移动6 两边向中间压缩7 中间向两边扩张8 上下压缩9 文字上下滚动10. 组合动作(每一字符执行上述一个动作,并同时运动)四、 实验过程 本次课程设计是在理论课程的基础上,目的在于培养我们的动手能力,通过电路设计、理论计算、实际编程、调试、测试、分析查找故障,解决在实际设计中的问题,使设计好的电路能正常工作,并可能结合实际的实验板进行下载测试。在此基础上根据实验大纲的要求,我们以两人一组的形式在“51单片机课程设计选题表”

3、中任选一空(各组间不能重题),实现其功能。鉴于我们组对于8255通用可编程器件的了解,我们选择基于的显示的动态显示器设计这一课题。 在考虑本次设计过程中,依据设计基本要求,并且基于8255通用可编程器件等条件,我们把8255器件用来扩展I/O口,以备外接一4X4键盘,以满足通过10个按键来控制10种动态显示,以及通过该I/O口外接一LCD显示器(当然,实验中我们发现不用8255扩展I/O口,单片机AT89C51的四个I/O端口已能满足该实验需要)。但在实验过程中,由于我们所采用的Proteus软件的版本较低,发现该版本中8255所接的键盘不允许接上拉电阻,为此我们改变设计,将键盘接到单片机AT

4、89C51的P1口,并去掉键盘的上拉电阻(这点是键盘设计的不足,虽其能运行正常,经多方面询问这应该就是版本较低原因)。为了能让各器件间联系起来我们又添加了一些逻辑器件,如:与非门等以及74LS373地址锁存器等。 最终设计的电路图如图(1):A8.15AD0.7AD0AD1AD2AD3AD4AD5AD7AD6AD7AD2AD3AD4AD5AD6A15A15AD1AD0P1.0P1.1P1.3P1.2P1.4P1.5P1.6P1.7048C159D26AE37BFP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7C133pC233pX1CRYSTALD03Q02D14Q15D27Q

5、26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374LS373GNDVDDD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM020L123U4:A74S00456U4:B74S001098U4:C74S00121311U4:D7408XTAL218XTAL119RST9P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115AD0.7A8.15ALE30EA31PSEN29P1.01P1

6、.12P1.23P1.34P1.45P1.56P1.67P1.78U1AT89C51D034D133D232D331D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710U28255A图(1) 图中所用器件如表(a):器件名称器件型号单片机AT89C51可编程I/O接口芯片8255地址锁存器74LS373LCD显示器LM020L表(a) 图中

7、还有CRYSTAL晶振器,RES电阻,CAP电容,BUTTON按钮,与非门,与门等等。 其中主要部分器件使用说明如下:I .4X4矩阵式键盘识别技术a) 键盘键号图 用AT89C51的并行口P1接4×4矩阵键盘,以P1.0P1.3作输入线,以P1.4P1.7作输出线;对应的按键的序号排列如图(2)。图(2)b) 4×4矩阵键盘识别处理每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(行线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程

8、序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键。c) 键盘扫描程序框图 WAITP1=0FFH,P1.6=0P1=0FFH,P1.4=0有键按下吗?有键按下吗? 没有 没有 有 有延时10ms延时10ms真的有键按下吗?真的有键按下吗? 没有 没有 有 有根据当前状态识别按键根据当前状态识别按键P1=0FFH,P1.5=0P1=0FFH,P1.7=0有键按下吗?有键按下吗? 没有 没有 有 有延时10ms延时10ms真的有键按

9、下吗?真的有键按下吗? 没有 没有 有 有根据当前状态识别按键根据当前状态识别按键 WAIT根据当前状态识别按键 注:在上图中 调用相应按键识别子程序 转入显示子程序d) 部分汇编程序如下键盘子程序: KEYBOARD: WAIT: MOV P1 ,#0FFH CLR P1.4 ;置P1.4=0 MOV A ,P1 ANL A ,#0FH XRL A ,#0FH JZ NOKEY1 ;没有按键跳转到第二列 LCALL DELY10MS ;延时子程序 MOV A ,P1 ANL A ,#0FH XRL A ,#0FH JZ NOKEY1 MOV A ,P1 ANL A ,#0FH CJNE A

10、,#0EH,NK1 MOV KEYBUF ,#0 LJMP VALUE ;跳转到按键识别子程序NK1: CJNE A ,#0DH,NK2 MOV KEYBUF ,#1 ACALL DELAY LJMP VALUENK2: CJNE A,#0BH ,NK3 MOV KEYBUF ,#2 LJMP VALUENK3: CJNE A ,#07H,NK4 MOV KEYBUF ,#3 LJMP VALUENK4: NOP- 同样的方法使P1.5,P1.6,P1.7循环置“0”进行键盘扫描,直至有键按下。DELY10MS: ;延时子程序 MOV R4,#20 D1: MOV R5,#248 DJNZ R

11、5,$ DJNZ R4,D1 RET按键识别及调用相对应键的显示子程序:MAIN: MOV DPTR ,#7FFFH ;向8255控制口写控制字 MOV A ,#80H MOVX DPTR ,A MOV SP,#60H ;设置堆栈 ACALL DELAY ;设置延时子程序 ACALL INIT_LCD ;初始化程? MOV A,#84H ;从第一行第一列? ACALL WRCOM ACALL KEYBOARD MOV R3,A DJNZ R3,KEY2 ;根据键盘值选显示方式 ACALL DISPMOD1 ;调用显示子程序 AJMP LAST ;循环末端程序KEY2: DJNZ R3,KEY3

12、 ACALL DISPMOD2 AJMP LASTKEY3: DJNZ R3,KEY4 ACALL DISPMOD3 AJMP LASTKEY4: DJNZ R3,KEY5 ACALL DISPMOD4 AJMP LAST II .LCD显示技术 1. 本次设计选用字符型LCD,型号为LM020L,如下图所示,其基本特点如下: l 液晶显示器所显示的内容实际上是由若干5X8或5X11点阵块组成的显示字符群。每一点阵块为一个字符位,字符间距和行距都为一个点的宽度。l 主控制驱动电路为HD44780及其兼容芯片。l 内置字符发生器ROM存储器(CG ROM),可显示192种字符l 具有64个字节自

13、定义字符RAM存储器(CG RAM),可自定义8个5X8点阵字符或4个5X11点阵字符。l 具有80个字节的显示数据RAM存储器(DD RAM),用以存放待显示的字符码。 等等 LM020L显示模块的引脚功能定义引脚号符号输入/输出电平功能说明1Vss电源地: 0V2VDD电源: +5V3VEELCD驱动电源: 0-5V4RS输入1/0寄存器选择。1:数据;0:指令5RW输入1/0读写操作选择:1:读;0:写6E输入1/0或下降沿使能信号。写E下降沿有效;读E高电平有效7DB0输入/输出1/0或三态数据总线(LSB)8-13DB1-DB6输入/输出1/0或三态数据总线14DB7输入/输出 1/

14、0或三态数据总线(MSB) 2. HD44780的内部结构 控制电路主要由指令寄存器(IR),数据寄存器(DR),忙标志(BF),地址计数器(AC),显示数据寄存器(DD RAM),字符发生器ROM(CG ROM),字符发生器RAM(CG RAM)和时序发生器构成。 3. HD44780的指令集1) 清屏RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000000001 功能:清显示指令,使DD RAM的内容全部被清除;光标回原位,地址计数器AC=0 2) 输入方式设置RSR/WDB7DB6DB5DB4DB3DB2DB1DB000000001I/DS 功能:设置光标、画面移动方式。

15、其中,I/D=1,当从DD RAM(CG RAM)读出数据或把数据写入DD RAM(CG RAM)后,AC自动加1; I/D=0,当从DD RAM(CG RAM)读出数据或把数据写入DD RAM(CG RAM)后,AC自动减1; S=1,当进行数据读写后,画面左右移动。当I/D=1时,画面向左移动,反之向右移动; S=0,当进行数据读写后,画面不动。3) 显示开关控制RSR/WDB7DB6DB5DB4DB3DB2DB1DB00000001DCB 功能:对显示的开关进行控制;其中,D为显示控制,D=1,开显示;D=0,关显示,此时DD RAM的内容保持不变; C为光标控制,C=1,开光标显示;C

16、=0,关光标显示; B为闪烁控制,B=1,光标所指的字符与光标一起以0.4s交变闪烁;B=0,不闪烁;4) 光标画面移位RSR/WDB7DB6DB5DB4DB3DB2DB1DB0000001S/CR/L*功能:此指令使光标或显示画面在没有对DD RAM进行读写操作时被左移或右移。其中,S/C为选择画面还是光标进行平移,S/C=1,选择画面平移;S/C=0,选择光标平移; R/L=1,左移一个字符位;R/L=0,右移一个字符位。5) 功能设置RSR/WDB7DB6DB5DB4DB3DB2DB1DB000001DLNF*功能:工作方式设置(初始化指令)其中,DL=1,8位数据总线DB7-DB0接口

17、;DL=0,4位数据总线DB7-DB4接口,DB3-DB0不用;N为对显示的行数进行控制,N=1,二行显示;N=0,一行显示;F为对点阵的规格进行控制,F=1,5X10点阵;F=0,5X8点阵;6) CG RAM地址设置RSR/WDB7DB6DB5DB4DB3DB2DB1DB00001A5A4A3A2A1A0功能:工作方式设置(初始化指令),这条指令设置CG RAM的地址指针。地址码C5-C0被送入AC。在此后,就可以将用户自定义的显示字符数据写入CG RAM或从CG RAM中读出。 其中,CG RAM地址范围为:A5-A0=0-3FH。7) DD RAM地址设置RSR/WDB7DB6DB5D

18、B4DB3DB2DB1DB0001A6A5A4A3A2A1A0动能:工作方式设置(初始化指令),这条指令设置DD RAM的地址指针。地址码00H-4FH有效。在此后,在此后,就可以将显示字符码写入DD RAM或从DD RAM中读出。 注:其它指令略;4 程序中LCD指令汇编:1) 初始化程序 INIT_LCD: MOV A , #30H ;设置为8为数据总线,1行,5X8点阵 ACALL WRCOM MOV A , #01H ;清屏幕 ACALL WRCOM MOV A , #06H ;画面不移动,读写操作后AC加1 ACALL WRCOM MOV A , #0CH ;开显示,关光标,不闪烁

19、ACALL WRCOM RET2) 写命令子程序 WRCOM: PUSH DPH PUSH DPL MOV DPTR , #7FFCH MOVX DPTR, A ACALL DELAY MOV DPTR , #WR_COM MOVX DPTR, A ACALL DELAY POP DPL POP DPH RET3) 写数据子程序WRDATA: PUSH DPH PUSH DPL MOV DPTR , #7FFCH MOVX DPTR, A ACALL DELAY MOV DPTR , #WR_DAT MOVX DPTR, A ACALL DELAY POP DPL POP DPH RET4)

20、设置自定义字符WRCGRAM: PUSH ACC PUSH DPL PUSH DPH PUSH PSW MOV A , #40H ACALL DELAY ACALL WRCOM MOV R7 , #56H MOV DPTR, #CGRAM_TABLE1 WR_CGRAM1: CLR A MOVC A , A+DPTR ACALL WRDATA INC DPTR DJNZ R7 , WR_CGRAM1 ACALL DELAY POP PSW POP DPH POP DPL POP ACC RET5) 部分LCD显示示例a) 向中间压缩DISPMOD8: ACALL INIT_LCD MOV R1

21、 , #08H MOV DPTR,#TABLE1 DISP10: MOV A , #8FH ACALL WRCOM CLR A MOVC A , A+DPTR ACALL WRDATA INC DPTR DISP_LEFT: ACALL DELAY5 MOV A , #1CH ACALL WRCOM DJNZ R1 , DISP10 RETb) 向两边扩散12 ;DISPLAY MODE 7 DISPMOD7: MOV A,#84H ACALL WRCOM MOV A,#34H ACALL WRDATA MOV A,#8BH ACALL WRCOM MOV A,#35H ACALL WRDAT

22、A ACALL DELAY2 MOV A,#84H ACALL WRCOM MOV A,#33H ACALL WRDATA MOV A,#34H ACALL WRDATA MOV A,#8AH ACALL WRCOM MOV A,#35H ACALL WRDATA MOV A,#36H ACALL WRDATA ACALL DELAY2 MOV A,#84H ACALL WRCOM MOV A,#32H ACALL WRDATA MOV A,#33H ACALL WRDATA MOV A,#34H ACALL WRDATA MOV A,#89H ACALL WRCOM MOV A,#35H A

23、CALL WRDATA MOV A,#36H ACALL WRDATA MOV A,#37H ACALL WRDATA ACALL DELAY2 MOV A,#84H ACALL WRCOM ACALL DISPMOD2RET 等等!III . 8255通用可编程器件 8255是一种通用的可编程并行I/O接口电路,在单片机应用系统中被广泛用作可编程外部I/O并行接口。 8255的结构及其引脚:8255有3个8位的并行口PA、PB、PC。8255的引脚如左图所示。图中有关引脚含义如下: D0-D7:双向三态数据总线; CS:选片信号输入线,低电平有效; RESET:复位信号输入线,高电平时有效,复位后,PA口、PB口、PC口均为输入方式; PA、PB、PC:3个8位I/O口; RD:读选通信号输入线,低电平时有效; WR:写选通信号输入线,低电平时有效; A1,A0:端口地址输入线,用于选择内部端口寄存器; VCC:电源+5V; GND:地线。 下表列出了CPU对8255端口的寻址和操作状态:A1A0RDWRCS输入操作(读)00010A口 数据总线01010 B口 数据总线10010 C口 数据总线输出操作(写)00100 数据总线 A口01100 数据总线 B口10100 数据总线 C口11100数据总线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论