已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)任务书专业(班): 01电子信息工程(1)班 姓名: 甘晓聪1、课题名称、主要内容和基本要求课题名称:简易电子琴的制作主要内容:该简易电子琴可实现从低音1DO到高音7SI共21个音符的控制,按下相应的键可随意弹奏想要表达的音乐,开关显示为液晶显示。基本要求:1、开关显示为液晶显示;2、用汇编语言按键控制低音1DO到高音7SI共21个音符。2、 进度安排周次工作内容执行情况13选定题目、搜集资料完成4选择方案、技术可行性分析、方案论证与确定完成5修改开题报告、评定开题报告完成6由老师对方案的制作要求作指定说明并改良完成7电路原理图设计、采购元器件完成89硬件的实现(焊接技术、相关仪器设备的使用)完成1013软件的实现(完成相关软件编程设计工作)完成1415整个设计的软硬件调试完成16演示制作成品、讲解设计思路、回答提问3、 指导教师评语指导教师核定成绩: 指导教师签名: 4、 评阅教师评语评阅教师核定成绩: 评阅教师签名: 5、毕业设计(论文)成绩答辩委员会主任签名: 摘要本文介绍了一种由AT89S51单片机、1602液晶显示模块和键盘控制组成的简易电子琴的实施方案。本系统以单片机AT89S51为控制核心,通过对键盘的控制实现对从低音1DO到高音7SI等的21个音符的控制。开关显示为液晶显示,用户按不同的键即可随意弹奏想要表达的音乐。它是51单片机中非常典型的应用之一。关键词:AT89S51单片机、1602液晶显示模块、键盘控制、简易电子琴AbstractThis article introduce the simple Novachord that consist of AT89C51 SCM(Single Chip Microcomputer)、1602LCD(Liquid Crystal Display) and keys . This systems manipulative core is 89s52 single chip.Through click the keys,we can get the note from bass note DO to high note SI.The on-off display is LCD display.User can click the keys what they want to,and can play the music what they want.This simple Novachord is a typical use of 51 SCM.KEY WORD: AT89C51 SCM、1602LCD、Keys Control、Simple Novachord目 录毕业设计任务书1摘 要3目 录4前 言5一、课题的提出6二、方案的选择与论证72.1 硬件电路的方案论证7 2.1.1 独立式按键控制. 7 2.1.2 4*4键盘控制7 2.1.3 LINKKEY键盘控制82.2 软件实现的方案论证9三、主要元器件的介绍13 3.1 AT89S51高性能单片机13 3.2 1602液晶显示模块22 3.2.1 液晶模块管脚定义22 3.2.2 液晶模块指令详解23 3.2.3 显示位和标准字符库26 3.2.4 间接控制方式接口电路和驱动程序26四、总体设计304.1硬件原理图304.2软件的实现31五、结论41六、结束语42参考文献43附录一44附录二46前 言随着大规模集成电路的出现及其发展,将计算机的CPU 、RAM 、 ROM 、定时/数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机(Single Chip Microcomputer)单片机的出现是计算机技术发展史上的一个重要里程碑,单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机的主要特点有 : 1 、具有优异的性能价格比; 2 、集成度高、体积小、可靠性高 ;3 、控制功能强 ;4 、低电压、低功耗。 单片机的应用也十分广泛,微小体积和极低的成本,使其可广泛地嵌入到如仪器仪表、工业控制单元、汽车电子系统、办公自动化设备、家用电器、机器人、个人信息终端及通信产品中,成为现代电子系统中最重要的智能化工具。本毕业设计是51单片机中一个较典型且有趣的应用之一。介绍了一种由AT89S51单片机、1602液晶显示模块和键盘控制组成的简易电子琴的实施方案。本系统以单片机AT89S51为控制核心,通过对键盘的控制实现对从低音1DO到高音7SI等的21个音符的控制。开关显示为液晶显示,用户按不同的键即可随意弹奏想要表达的音乐。电路简单可靠,价格低廉。由于本人的知识有限,文中难免有缺点和错误之处,诚恳的希望各位老师以及所有读者批评指正!一、课题的提出由于单片机的种种优势,它得到了许多广泛的应用:1 、在智能仪器仪表中的应用:在各类仪器仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。 2 、在机电一体化中的应用:机电一体化产品是指集机械、微电子技术、计算机技术于一本,具有智能化特征的电子产品。 3 、在实时过程控制中的应用:用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高系统的工作效率和产品的质量。 4 、在人类生活中的应用:目前国外各种家用电器已普通采用单片机代替传统的控制电路。 5 、在其它方面的应用:单片机除以上各方面的应用,它还广泛应用于办公自动化领域、商业营销领域、汽车及通信、计算机外部设备、模糊控制等各领域中。为了能对单片机有更深的了解,本人设计了其典型的应用之一音乐的应用。本设计采用的是AT89S51芯片。8051单片机的名字,对于初学单片机的人来说真是如雷贯耳。8031单片机的身影在很多产品中更是屡见不鲜。在众多的51系列单片机中,要算 ATMEL 公司的AT89S51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL AT89xx 做的编程器均带有这些功能。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。再者,AT89S51目前的售价比8031还低,市场供应也很充足。二、方案的选择与论证2.1、硬件电路(按键)的方案论证2.1.1独立式按键控制图2.1图2.1所示为7个独立式按键的控制,此键盘原理简单明了,直接将按键通过电阻连接P2口,这样只要判断P2对应的位的电平就可以确定是哪个键按下,此方法虽然简单,但是若想将低音1DO到高音7SI一共21个音符都表达出来,所需占用的I/O口太多,所以从效率和成本上考虑并不实际。2.1.2 4*4键盘控制图2.2图2.2所示,是一个4*4的矩阵式键盘,其可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V,当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平由与此行线相连的列线电平决定,这是识别按键是否按下的关键。然而,矩阵式键盘中的行线,列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间相互影响,且其只有16个按键,不能满足控制21个音符。所以它也不是最佳选择。2.1.3LINKKEY(利用八个I/O口实现对28个按键的控制)图2.3图2.3所示,是本设计所用的LINKKEY,其工作原理如下:将其中一个I/O口置0,这样通过判断其他口的电平是否也为低电平,若是,这相应两个口所连接的按键就是所按下的键,这是识别按键是否按下的关键。例如,将P0.0(对应LINK0)置0,然后判断其他按键的电平,如果P0.1(对应LINK1)也为低电平,则可确定为第一个按键按下,以此类推。根据排列组合的算法,此种连接方法(利用8个I/O口)可实现对28个按键的控制,计算公式:N*(N-1)/2。利用此种方法可满足该毕业设计的要求。2.2、 软件实现的方案论证要产生所需的音频信号,从软件上考虑大体有两种实现的方案,第一种是根据音符的频率计算出其简码值(后有计算方法),然后通过查表的方式将值赋给定时器,当计满时将I/O口反相。第二种是直接根据音符的频率计算出其周期T,在计数器计满T/2时将I/O口反相。两种方案对比,第一种相对较为精确,本课程设计采用的是第二种方案,因为其更加简单易懂。下面以独立式按键的形式分别两种方案的实现。(1) 计算简码值,查表方式ORG 0000H LJMP MAIN ORG 000BH LJMP BREAKMAIN: MOV TMOD,#01H ;设置定时器0的工作方式 SETB EA SETB ET0 ; 设置定时器0中断 SETB TR0 ; 启动定时器0WAIT1: LCALL KEY ; 调用KEY子程序,判断有键按下否?第几个键? CLR EA ;屏蔽中断 CJNE R3,#00H,WAIT1 ;如果R3=0,表示有键按下 MOV A,22H ;将22H里存放的按键号送给A RL A ; 因为查表里都是字,所以得乘2查得数据 MOV DPTR,#TABLE ;指向表头 MOVC A,A+DPTR ; 查表 MOV TH0,A ;将数据高位送TH0 MOV 21H,A ; 将高位备份 MOV A,22H ;将22H里存放的按键号送给A RL A ;因为查表里都是字,所以得乘2查得数据 INC A ;取低位数据 MOVC A,A+DPTR MOV TL0,A MOV 20H,AWAIT2: LCALL KEY SETB EA CJNE R3,#00H,WAIT1 JMP WAIT2KEY: MOV R3,#00H ; KEY子程序,判断有键按下否?第几个键? MOV R1,#0FFH MOV R0,#00H MOV A,R1 MOV P2,A MOV A,P2 CLR C CPL C ;利用标志位CY来判断是哪个按下 MOV R2,#08HWAIT3: RLC A ;移位判断 JNC STORE INC R0 DJNZ R2,WAIT3STORE: MOV 22H,R0 ; 将按键号存22H,R3=0有键按下 MOV R3,#00H RETBREAK: PUSH ACC ; 中断产生方波,从P1.0口输出 PUSH PSW MOV TL0,20H MOV TH0,21H CPL P1.0 POP PSW POP ACC RETITABLE: DW 65030,64968,64898,64820,64777,64684,64580 ; END(2) 直接计算周期ORG 0000H SJMP START ORG 000BH AJMP INT_0 ORG 0030HSTART: MOV P1,#00H SETB EA SETB ET0;计数器0 MOV TMOD,#02H MOV TH1,#09CH MOV TL1,#09CH ;定时器初植 CLR TR0 ;定时器不允许SCAN: ;键盘扫描MOV A,P2 ;判断键盘按下,跳SCAN_1,未按,继续扫描 CJNE A,#0FFH,SCAN_1 NOP SJMP SCANSCAN_1:ACALL DELAY ;是不是真的要按下? MOV A,P2 如果是,则跳转SU_KEY查询是哪个按下? CJNE A,#0FFH,SU_KEY NOP SJMP SCANSU_KEY:JNB P2.1,MU_1 ;判断是哪个键按下? JNB P2.2,MU_2 JNB P2.3,MU_3 JNB P2.4,MU_4 JNB P2.5,MU_5 JNB P2.6,MU_6 JNB P2.7,MU_7 SJMP SCANMU_1: MOV R1,#19 ;如果第一个按键按下,则R1=19, SJMP NEXT 同时程序转NEXTMU_2: MOV R1,#17 SJMP NEXTMU_3: MOV R1,#15 SJMP NEXTMU_4: MOV R1,#14 SJMP NEXTMU_5: MOV R1,#13 SJMP NEXTMU_6: MOV R1,#11 SJMP NEXTMU_7: MOV R1,#10 SJMP NEXTNEXT: MOV A,R1 MOV R0,A SETB TR0 ;启动定时器0 NEXT_1:MOV A,P2 ; 没键按下继续执行,有键按下,返回读引脚 CJNE A,#0FFH,NEXT_1 ACALL DELAY MOV A,P2 ;真的没键按下? CJNE A,#0FFH,NEXT_1 CLR TR0 ;不响 AJMP SCAN ;扫描键盘去INT_0: ;中断程序 DJNZ R0,RE ;R0不等于0时,返回 CPL P1.0 MOV A,R1 MOV R0,ARE: RETIDELAY: MOV R7,#100 ;延长时间等待,键盘消抖D1: MOV R6,#10D2: DJNZ R6,D2 DJNZ R7,D1 RET END三、主要元器件的介绍3.1、AT89S51 高性能8位单片机为了更好地理解AT89S51的特性,首先介绍我们常接触的8051。AT89S51 为 ATMEL 所生产的可电气烧录清洗的 8051 相容单芯片,其内部程序代码容量为4KB。 8051主要功能列举如下: 为一般控制应用的 8 位单芯片 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 内部程式存储器(ROM)为 4KB 内部数据存储器(RAM)为 128B 外部程序存储器可扩充至 64KB 外部数据存储器可扩充至 64KB 32 条双向输入输出线,且每条均可以单独做 I/O 的控制 5 个中断向量源 2 组独立的 16 位定时器 1 个全多工串行通信端口 8751 及 8752 单芯片具有数据保密的功能 单芯片提供位逻辑运算指令VCC 8051 电源正端输入,接+5V。VSS 电源地端。XTAL1 单芯片系统时钟的反相放大器输入端。XTAL2系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET8051的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,8051便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/VppEA为英文External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROGALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。8051可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为8051是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN此为Program Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。8051可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0P0.7)端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0P2.7)端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在8051扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O来使用了。PORT1(P1.0P1.7)端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0P3.7)端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。(1)累加器A(Accumulator)写程序时大部分的指令运算都通过此寄存器,包括数据转移、储存运算结果和条件转移判断。(2)B寄存器此寄存器主要用于乘法及除法指令中,在乘法运算中存放乘积结果的高字节数据;在除法运算中则存放余数。当然也可以做一般寄存器来使用。(3)程序状态字PSW(Program Status Word)此寄存器用来存放CPU的状态,类似一般CPU的标志寄存器,使用者可以改变其值来控制CPU的执行。(4)堆叠指针SP为8位的寄存器,用以指示目前堆叠区的存放位置,堆叠区最多只有256,而且一定在内部RAM中,当8051系统重置后SP指向07H,因此程序一执行时通常会将堆叠往后移,避免程序执行时把堆叠破坏掉。(5)数据指针DPTR(Data Pointer)DPTR是一个16位寄存器,由DPH及DPL两寄存器组成,系统DPTR可以看成是16位寄存器寻址到完整的64K存储器空间或是看成两个8位寄存器来加以利用。一旦当成16位寄存器便可利用指令MOVX A, DPTR来存取外部数据存储器,或利用指令MOVC A, DPTR来存取外部程序存储器。(6)P0、P1、P2、P3(端口0端口3)为8051 4个I/O端口的输出锁存寄存器。(7)TH0、TL0、TH1、TL1定时计数寄存器分别为定时器0及定时器1的工作寄存器,这二对寄存器可以做16位的计时计数用。(8)串行端口缓冲器SBUF(Serial Buffer)用来存放串行传输时数据进出的工作寄存器,经由串行端口传送数据出去是将数据写入SBUF,而接收时则由SBUF内读出对方传送来的数据。(9)控制寄存器IP、IE寄存器是做8051的中断控制用;TMOD、TCON寄存器用来做计时计数器控制;SCON则控制串行传输的工作模式设定。PCON则做8051省电模式操作控制。8051内部控制寄存器只有6个,想要充分发挥8051单芯片的功能必须对这些暂存器有所了解。IE、IP寄存器 :中断控制用可位寻址,地址:A8HEA(IE.7) :EA=0时,所有中断禁用(中断不产生)。EA=1时,各中断之产生由个别的启用位决定。(IE.6) :保留。ET2(IE.5):启用定时器 2 溢位之中断(8052使用)。ES(IE.4):启用串行端口之中断(ES=1启用,ES=0禁用)。ET1(IE.3):启用定时器1中断。EX1(IE.2):启用外部中断INT1之中断。ET0(IE.1):启用定时器0中断。EX0(IE.0):启用外部中断INT0之中断。TMOD、TCON寄存器 :计时计数器用不可位寻址,地址89H。TMOD D7 D6 D5 D4 D3 D2 D1 D0GATEC/TM1M0GATEC/TM1M0定时器1 定时器0 GATE :定时器动作开关控制位,当GATE=1 时,INT0或INT1 引脚为高电平,同时TCON中的 TR0 或 TR1 控制位为1时,计时/计数器 0 或 1 才会动作。若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1即可动作。C/T :做定时器或计数器功能之选择位。C/T=1为计数器,由外部引脚 T0 或 T1 输入计数脉冲。C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。M1: 模式选择位1。M0: 模式选择位0。可位寻址,地址88H。TF1(TCON.7):定时器1溢位标志,当计时溢位时,由硬件设定为1,在执行过相对的中断服务常式后则自动清除为0。TR1(TCON.6):定时器1启动控制位,可以由软件来设定或清除。TR1=1时启动定时器动作,TR1=0时关闭。TF0(TCON.5):定时器0溢位标志,当计时溢位时,由硬件设定为1,在执行过相对的中断服务常式后则自动清除为0。TR0(TCON.4):定时器0启动控制位,可以由软件来设定或清除。TR0=1时,启动定时器动作,TR0=0时关闭。IE1(TCON.3):外部中断1动作标志,当外部中断被侦测出来时,硬件自动设定此位,在执行过中断服务常式后,则消除为0。IT1(TCON.2):外部中断1动作型式选择,IT1=1时,由下降缘产生外部中断,IT1=0时,则为低电平产生中断。IE0(TCON.1):外部中断0动作标志,当外部中断被侦测出来时,硬件自动设定此位,在执行过中断服务常式后,则清除为0。IT0(TCON.0):外部中断0动作型式选择,IT0=1时为下降缘产生外部中断,IT0=0 时则为低电平产生中断。SCON寄存器 :串行传输控制。PCON寄存器 :省电模式操作。MCS-51 的寻址方式:1 、立即寻址如: MOV A ,#40H(直接把数据40H给A) 2 、直接寻址如: MOV A , 3AH(将3A里的内容给A)3 、寄存器寻址如: MOV A , Rn (Rn单元值给A)4 、寄存器间接寻址如: MOV A , Rn(将Rn单元里的内容给 A)5 、基址加变址寻址如: MOVCA , A+DPTR(A+DPTR的内容给A)6 、相对寻址如: SJMP08H (跳到08H单元)7 、位寻址如:MOV 20H ,C (位操作)下面介绍AT89S51的主要特性AT89S51元件引脚图主要性能参数(英语资料见附录一):l 兼容MCS-51指令系统l 4k可反复擦写(1000次)ISP Flash ROMl 32个双向I/O口l 4.5-5.5V工作电压l 3个16位可编程定时/计数器l 时钟频率0-33MHzl 全双工UART串行中断口线l 256x8bit内部RAMl 2个外部中断源l 低功耗空闲和省电模式l 中断唤醒省电模式l 3级加密位l 看门狗(WDT)电路l 软件设置空闲和省电功能l 灵活的ISP字节和分页编程l 双数据寄存器指针l 4K字节FLASH存贮器支持在系统编程ISP主要功能特性:AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,兼容MCS51微控制器,4K字节FLASH存贮器支持在系统编程ISP ,1000次擦写周期,128字节片内RAM,工作电压4.0V到5.5V,全静态时钟0 Hz 到33 MHz,三级程序加密,32个可编程IO口,2/3个16位定时/计数器,6/8个中断源,全双工UART,低功耗支持Idle和Power-down模式, Power_down模式支持中断唤醒,看门狗定时器,双数据指针,上电复位标志 .此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3.2、1602液晶显示模块图3.2.1 液晶模块组成 从图3.2.1中可以看出,液晶模块有三部分构成:点阵式液晶板、液晶驱动电路HD44100、液晶控制电路HD44780。在液晶板上排列着若干5X 7或5X10点阵的字符显示位,每个显示位可显示1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。HD44100是用低功耗CMOS技术制造的大规模LCD驱动芯片。它既可当行驱动用,也可当列驱动用。HD44780(KS0062)是用低功耗CMOS技术制造的大规模点阵LCD控制器(兼带驱动器),和4Bit8Bit微处理器相连,它能使点阵LCD显示大小英文字母、数字和符号。应用HD44780(KS0062),用户能用少量元件就可组成一个完整点阵LCD系统。3.2.1液晶模块管脚定义从液晶模块图可以看出,液晶控制模块封装为统一接口,有8条数据线,三条控线。可与微处理器或微控制器相连,通过送入数据和指令,就可使模块正常工作,管脚排列与功能如表3.2.1,寄存器选择如表3.2.2。表3.2.1液晶模块管脚引线符号名称功能1VSS接地0V2VDD电路电源5V10%3VEE液晶驱动电压见图24RS寄存器选择信号H:数据寄存器L:指令寄存器5R/W读/写信号H:读 L:写6E片选信号下降沿触发7|14DB0|DB7数据线数据传输表3.2.2寄存器选择RSR/W操作00指令寄存器(IR)写入01忙标志和地址计数器读入10数据寄存器(DR)写入11数据寄存器读出3.2.2 液晶模块指令详解格式:RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0共有11种指令,见下表3.2.3表3.2.3 HD447800指令表指令名称控制信号控制代码RS R/WD7 D6 D5 D4 D3 D2 D1 D0清屏0 00 0 0 0 0 0 0 1归home位0 00 0 0 0 0 0 1 *输入方式设置0 00 0 0 0 0 1 I/D S显示状态设置0 00 0 0 0 1 D C B光标画面滚动0 00 0 0 1 S/C R/L * *工作方式设置0 00 0 1 DL N F * *CGRAM地址设置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址设置0 01 A6 A5 A4 A3 A2 A1 A0读BF和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0写数据1 0数 据读数据1 1数 据 注:“*”表示任意值,在实际应用时一般认为是“0”。指令详细解释如下: 清屏(Clear DisPlay)格式 0000000101H 该指令完成下列功能: 将空码(20H)写入 DDRAM的全部 80个单元内; 将地址指针计数器AC清零,光标或闪烁归home位; 设置输入方式参数 ID=1,即地址指针 AC为自动加一输入方式。 归home位(Return home)格式 0000001002H该指令将地址指针计数器AC清零。执行该指令的效果有;将光标或闪烁位返回到显示屏的左上第一字符位上,即DDRAM地址00H单元位置。 输入方式设置(Enter Mode Set)格式 000001IDS04H07H该指令的功能在于设置了显示字符的输入方式。 ID0 AC为减1计数器,光标左移一个字符位。 ID1 AC为加 1计数器,光标右移一个字符位。 S 表示在写入字符时,是否允许显示画面的滚动。 S0禁止滚动。 S1允许滚动。 显示状态设置(Display on/off Control)格式 00001DCB08H0FH该指令控制着画面,光标及闪烁的开关。 D画面显示状态位。当D1时为开显示,D0时为关显示。注意关显示仅是画面不 出现,而DDRAM内容不变。这与清屏指令截然不同。 C光标显示状态位。当C1时为光标显示,C0时为光标消失。B闪烁显示状态位。当Bl时为闪烁启用,B0时为闪烁禁止。 光标或画面滚动(Cursor Or Insplay Shift)格式 0001S/CR/L00该指令有两个参数位:SC滚动对象的选择 SCl画面滚动 SC0光标滚动RL滚动方向的选择 RLl向右滚动 RL0向左滚动 工作方式设置(Function Set)格式 001DLNF00该指令有三个参数DL,N和F它们的作用是: DL设置控制器与计算机的接口形式。接口形式体现在数据总线长度上。 DL1设置数据总线为8位长度,即DB7DBO有效。 DL0设置数据总线为4位长度,即DB7DB4有效。在该方式下8位指令代码和数据将按先高4位后低4位的顺序分两次传输。 N设置显示的字符行数。 N0为一行字符行。 N1为两行字符行。 F设置显示字符的字体。 F0为57点阵字符体。 F1为 5 10点阵字符体。 CGRAM地址设置(Set CGRAM Address)格式 01A5A4A3A2A1A0该指令将6位的CGRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对 CGRAM的读写操作。 DDRAM地址设置(Set DDRAM Address)格式 1A6A5A4A3A2A1A0该指令将 7位的DDRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对 DDRAM的读写操作。 读“忙”标志和地址指针值(Read Busy Flag and Address)格式 BFAC6AC5AC4AC3AC2AC1AC0计算机对指令寄存器通道读操作(RS0,RWl)时,将读出此格式的“忙”标志BF值和7位地址指针计数器AC的当前值。计算机随时都可以对HD44780U读“忙”操作。3.2.3 显示位和标准字符库从液晶模块显示原理知道,液晶上显示的内容对应在DDRAM相应的地址中,显示位与DDRAM地址的对应关系如表3.2.4所示。表3.2.4 显示位与DDRAM地址对应关系表显示位序号1 2 3 4 5 - 40DDRAM地址(HEX)第一行 00 01 02 03 04 - 27第二行 40 41 42 43 44 - 67附录二为字符库内容、字符码和字形的对应关系。例如“A”的字形码为41(HEX),“B”的字符码为42(HEX)。3.2.4 间接控制方式接口电路及驱动程序本毕业设计采用的是间接控制方式接口电路。间接控制方式(4位总线)是利用HD44780所具有的4位数据总线的功能简化电路接口的一种接口方式。实用电路如下:间接控制方式的驱动子程序如下:1、初始化过程(复位过程)(1) 延时15ms(2) 写指令38H(不检测忙信号)(3) 延时5ms(4) 写指令38H(不检测忙信号)(5) 延时5ms(6) 写指令38H(不检测忙信号)(7) (以后每次写指令、读/写数据操作之前均需检测忙信号)(8) 写指令38H:显示模式设置(9) 写指令08H:显示关闭(10) 写指令01H:显示清屏(11) 写指令06H:显示光标移动设置(12) 写指令0CH:显示开及光标设置2、驱动程序RS EQU P3.3 ; 寄存器选择信号R/W EQU P3.4 ; 读/写选择信号E EQU P3.5 ; 使能信号(1)读BF和AC值PR0: PUSH ACCMOV P1,#0FFH ; P1置位, 准备读CLR RS ; RS=0SETB R/W; R/W=1SETB E ; E=1MOV COM,P1 ; 读BF和AC6-4值CLR E ; E=0MOV P1,#0FFH ; P1置位, 准备读SETB E ; E=1MOV A,P1 ; 读AC3-0值CLR E ; E=0SWAP A; 转换成8位数据ANL A,#0FHANL COM,#0F0HORL A,COMMOV COM,A ; 送入COM 单元POP ACC(2) 写指令代码子程序PR1:PUSH ACCCLR RS ; RS=0SETB R/W ; R/W=1PR11: MOV P1,#0FFH ; P1置位, 准备读SETB E ; E=1MOV A,P1 ; 读BF和AC6-4值CLR E ; E=0MOV C,ACC.7 ; BF?进位位CSETB E ; E=1CLR E ; E=0 (读AC3-0值)JC PR11 ; 判别BF=1? 是转CLR R/W ; R/W=0MOV P1,COM ; 写入指令代码高4位SETB E ; E=1CLR E ; E=0MOV A,COM ; 写入指令代码低4位SWAP AMOV P1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外墙竹架采购合同范本
- 场地租赁合同转让协议
- 壁扇销售安装合同范本
- 商业买卖合同协议范本
- 外贸代理购销合同范本
- 土方矿山运输合同范本
- 商铺宿舍转让合同范本
- 夜场设备转让合同范本
- 培训商铺合作合同协议
- 土地转让中介协议合同
- 2025贵州黔西南州州直机关面向全州遴选公务员31人考试参考试题及答案解析
- 汴京的星河解析课件
- 亚马逊培训考试题及答案
- 餐饮行业人力资源管理-招聘、培训和留住员工
- 建筑企业税收调研报告及政策解析
- 2025比亚迪供应商审核自查表
- 人教PEP版四年级英语上册 Unit 2 My friends 单元测试卷(含答案含听力原文)
- 驾驶员安全教育培训内容课件
- 仓库岗位晋升方案模板(3篇)
- (2025)纪检监察综合业务知识考试题(含参考答案)
- 国家管网施工安全培训课件
评论
0/150
提交评论