毕业设计论文2_供参考_第1页
毕业设计论文2_供参考_第2页
毕业设计论文2_供参考_第3页
毕业设计论文2_供参考_第4页
毕业设计论文2_供参考_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计(论文任务书专业(班: 01电子信息工程(1班姓名:甘晓聪1、课题名称、主要内容和基本要求课题名称:简易电子琴的制作主要内容:该简易电子琴可实现从低音1DO到高音7SI共21个音符的控制,按下相应的键可随意弹奏想要表达的音乐,开关显示为液晶显示。基本要求:1、开关显示为液晶显示;2、用汇编语言按键控制低音1DO到高音7SI共21个音符。2、进度安排周次工作内容执行情况13 选定题目、搜集资料完成4 选择方案、技术可行性分析、方案论证与确定完成5 修改开题报告、评定开题报告完成6 由老师对方案的制作要求作指定说明并改良完成7 电路原理图设计、采购元器件完成89 硬件的实现(焊接技术、相关

2、仪器设备的使用完成1013 软件的实现(完成相关软件编程设计工作完成1415 整个设计的软硬件调试完成16 演示制作成品、讲解设计思路、回答提问3、指导教师评语 指导教师核定成绩:指导教师签名: 4、评阅教师评语 评阅教师核定成绩:评阅教师签名: 5、毕业设计(论文成绩 答辩委员会主任签名:摘要本文介绍了一种由AT89S51单片机、1602液晶显示模块和键盘控制组成的简易电子琴的实施方案。本系统以单片机AT89S51为控制核心,通过对键盘的控制实现对从低音1DO 到高音7SI等的21个音符的控制。开关显示为液晶显示,用户按不同的键即可随意弹奏想要表达的音乐。它是51单片机中非常典型的应用之一。

3、关键词:A T89S51单片机、1602液晶显示模块、键盘控制、简易电子琴AbstractThis article introduce the simple Novachord that consist of AT89C51 SCM(Single Chip Microcomputer、1602LCD(Liquid Crystal Display and keys .This system's manipulative core is 89s52 single chip.Through click the keys,we can get the note from bass note D

4、O 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 硬件电路的方

5、案论证 (72.1.1 独立式按键控制. (72.1.2 4*4键盘控制 (72.1.3 LINKKEY键盘控制 (82.2 软件实现的方案论证 (9三、主要元器件的介绍 (133.1 AT89S51高性能单片机 (133.2 1602液晶显示模块 (223.2.1 液晶模块管脚定义 (223.2.2 液晶模块指令详解 (233.2.3 显示位和标准字符库 (263.2.4 间接控制方式接口电路和驱动程序 (26四、总体设计 (304.1硬件原理图 (304.2软件的实现 (31五、结论 (41六、结束语 (42参考文献 (43附录一 (44附录二 (46前言随着大规模集成电路的出现及其发展,

6、将计算机的CPU 、RAM 、 ROM 、定时/数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机(Single Chip Microcomputer单片机的出现是计算机技术发展史上的一个重要里程碑,单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机的主要特点有: 1 、具有优异的性能价格比; 2 、集成度高、体积小、可靠性高;3 、控制功能强;4 、低电压、低功耗。单片机的应用也十分广泛,微小体积和极低的成本,使其可广泛地嵌入到如仪器仪表、工业控制单元、汽车电子系统、办公自动化设备、家用电器、机器人、

7、个人信息终端及通信产品中,成为现代电子系统中最重要的智能化工具。本毕业设计是51单片机中一个较典型且有趣的应用之一。介绍了一种由AT89S51单片机、1602液晶显示模块和键盘控制组成的简易电子琴的实施方案。本系统以单片机AT89S51为控制核心,通过对键盘的控制实现对从低音1DO到高音7SI等的21个音符的控制。开关显示为液晶显示,用户按不同的键即可随意弹奏想要表达的音乐。电路简单可靠,价格低廉。由于本人的知识有限,文中难免有缺点和错误之处,诚恳的希望各位老师以及所有读者批评指正!一、课题的提出由于单片机的种种优势,它得到了许多广泛的应用:1 、在智能仪器仪表中的应用:在各类仪器仪表中引入单

8、片机,使仪器仪表智能化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。2 、在机电一体化中的应用:机电一体化产品是指集机械、微电子技术、计算机技术于一本,具有智能化特征的电子产品。3 、在实时过程控制中的应用:用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高系统的工作效率和产品的质量。4 、在人类生活中的应用:目前国外各种家用电器已普通采用单片机代替传统的控制电路。5 、在其它方面的应用:单片机除以上各方面的应用,它还广泛应用于办公自动化领域、商业营销领域、汽车及通信、计算机外部设备、模糊控制等各领域中。为了能对单片机有更深的了解,本人设计了其典型的应用之一

9、音乐的应用。本设计采用的是AT89S51芯片。8051单片机的名字,对于初学单片机的人来说真是如雷贯耳。8031单片机的身影在很多产品中更是屡见不鲜。在众多的51系列单片机中,要算 ATMEL 公司的AT89S51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL AT89xx 做的编程器均带有这些功能。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。再者,AT89S51目前的售价比8031还低,市场供应也很充足。二、方案的选择与论证2.1、硬件电路(按键的方案论证2

10、.1.1 独立式按键控制 图2.1所示为7个独立式按键的控制,此键盘原理简单明了,直接将按键通过电阻连接P2口,这样只要判断P2对应的位的电平就可以确定是哪个键按下,此方法虽然简单,但是若想将低音1DO到高音7SI一共21个音符都表达出来,所需占用的I/O口太多,所以从效率和成本上考虑并不实际。2.1.24*4键盘控制 图2.2所示,是一个4*4的矩阵式键盘,其可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V,当无键按下时,行线处于高电平状态;当有键按下时,行、列线

11、将导通,此时,行线电平由与此行线相连的列线电平决定,这是识别按键是否按下的关键。然而,矩阵式键盘中的行线,列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间相互影响,且其只有16个按键,不能满足控制21个音符。所以它也不是最佳选择。2.1.3 LINKKEY(利用八个I/O口实现对28个按键的控制 图2.3所示,是本设计所用的LINKKEY,其工作原理如下:将其中一个I/O 口置0,这样通过判断其他口的电平是否也为低电平,若是,这相应两个口所连接的按键就是所按下的键,这是识别按键是否按下的关键。例如,将P0.0(对应LINK0置0,然后判断其他按键的电平,如果P0.1(对

12、应LINK1也为低电平,则可确定为第一个按键按下,以此类推。根据排列组合的算法,此种连接方法(利用8个I/O口可实现对28个按键的控制,计算公式:N*(N-1/2。利用此种方法可满足该毕业设计的要求。2.2、软件实现的方案论证要产生所需的音频信号,从软件上考虑大体有两种实现的方案,第一种是根据音符的频率计算出其简码值(后有计算方法,然后通过查表的方式将值赋给定时器,当计满时将I/O口反相。第二种是直接根据音符的频率计算出其周期T,在计数器计满T/2时将I/O口反相。两种方案对比,第一种相对较为精确,本课程设计采用的是第二种方案,因为其更加简单易懂。下面以独立式按键的形式分别两种方案的实现。(1

13、计算简码值,查表方式ORG 0000HLJMP MAINORG 000BHLJMP BREAKMAIN: MOV TMOD,#01H ;设置定时器0的工作方式SETB EASETB ET0 ; 设置定时器0中断SETB TR0 ; 启动定时器0WAIT1: LCALL KEY ; 调用KEY子程序,判断有键按下否?第几个键?CLR EA ;屏蔽中断CJNE R3,#00H,WAIT1 ;如果R3=0,表示有键按下MOV A,22H ;将22H里存放的按键号送给ARL A ; 因为查表里都是字,所以得乘2查得数据MOV DPTR,#TABLE ;指向表头MOVC A,A+DPTR ; 查表MOV

14、 TH0,A ;将数据高位送TH0MOV 21H,A ; 将高位备份MOV A,22H ;将22H里存放的按键号送给ARL A ;因为查表里都是字,所以得乘2查得数据INC A ;取低位数据MOVC A,A+DPTRMOV TL0,AMOV 20H,AWAIT2: LCALL KEYSETB EACJNE R3,#00H,WAIT1JMP WAIT2KEY: MOV R3,#00H ; KEY子程序,判断有键按下否?第几个键?MOV R1,#0FFHMOV R0,#00HMOV A,R1MOV P2,AMOV A,P2CLR CCPL C ;利用标志位CY来判断是哪个按下 MOV R2,#08

15、HWAIT3: RLC A ;移位判断JNC STOREINC R0DJNZ R2,WAIT3STORE: MOV 22H,R0 ; 将按键号存22H,R3=0有键按下 MOV R3,#00HRETBREAK: PUSH ACC ; 中断产生方波,从P1.0口输出 PUSH PSWMOV TL0,20HMOV TH0,21HPOP PSWPOP ACCRETITABLE: DW 65030,64968,64898,64820,64777,64684,64580 ;END(2直接计算周期ORG 0000HSJMP STARTORG 000BHAJMP INT_0ORG 0030HSTART: M

16、OV P1,#00HSETB EASETB ET0 ;计数器0MOV TMOD,#02HMOV TH1,#09CHMOV TL1,#09CH ;定时器初植CLR TR0 ;定时器不允许SCAN: ;键盘扫描MOV A,P2 ;判断键盘按下,跳SCAN_1,未按,继续扫描CJNE A,#0FFH,SCAN_1NOPSJMP SCANSCAN_1:ACALL DELAY ;是不是真的要按下?MOV A,P2 如果是,则跳转SU_KEY查询是哪个按下?CJNE A,#0FFH,SU_KEYNOPSJMP SCANSU_KEY:JNB P2.1,MU_1 ;判断是哪个键按下?JNB P2.2,MU_2

17、JNB P2.3,MU_3JNB P2.4,MU_4JNB P2.5,MU_5JNB P2.6,MU_6JNB P2.7,MU_7SJMP SCANMU_1: MOV R1,#19 ;如果第一个按键按下,则R1=19, SJMP NEXT 同时程序转NEXTMU_2: MOV R1,#17SJMP NEXTMU_3: MOV R1,#15SJMP NEXTMU_4: MOV R1,#14SJMP NEXTMU_5: MOV R1,#13SJMP NEXTMU_6: MOV R1,#11SJMP NEXTMU_7: MOV R1,#10SJMP NEXTNEXT: MOV A,R1MOV R0,

18、ASETB TR0 ;启动定时器0NEXT_1:MOV A,P2 ; 没键按下继续执行,有键按下,返回读引脚 CJNE A,#0FFH,NEXT_1ACALL DELAYMOV A,P2 ;真的没键按下?CJNE A,#0FFH,NEXT_1CLR TR0 ;不响AJMP SCAN ;扫描键盘去INT_0: ;中断程序DJNZ R0,RE ;R0不等于0时,返回MOV A,R1MOV R0,ARE: RETIDELAY: MOV R7,#100 ;延长时间等待,键盘消抖D1: MOV R6,#10D2: DJNZ R6,D2DJNZ R7,D1RETEND三、主要元器件的介绍3.1、AT89S

19、51 高性能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 单芯片

20、具有数据保密的功能单芯片提供位逻辑运算指令VCC 8051 电源正端输入,接+5V。VSS 电源地端。XTAL1 单芯片系统时钟的反相放大器输入端。XTAL2系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET8051的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,8051便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码

21、而执行程序。EA/Vpp"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp。ALE/PROGALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。

22、8051可以利用这支引脚来触发外部的8位锁存器(如74LS373,将端口0的地址总线(A0A7锁进锁存器中,因为8051是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0,会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。8051可以利用PSEN及RD引脚分别启用存在外部的

23、RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。端口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的外部存储器空

24、间。端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS 的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在8051扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O 来使用了。端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。端口3也具有内部

25、提升电路的双向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写程序时大部分的指令运算都通过此寄存器,包括数据转移、储存运算结果和条件转移判断

26、。(2B寄存器此寄存器主要用于乘法及除法指令中,在乘法运算中存放乘积结果的高字节数据;在除法运算中则存放余数。当然也可以做一般寄存器来使用。(3程序状态字PSW(Program Status Word此寄存器用来存放CPU的状态,类似一般CPU的标志寄存器,使用者可以改变其值来控制CPU的执行。(4堆叠指针SP为8位的寄存器,用以指示目前堆叠区的存放位置,堆叠区最多只有256,而且一定在内部RAM中,当8051系统重置后SP指向07H,因此程序一执行时通常会将堆叠往后移,避免程序执行时把堆叠破坏掉。(5数据指针DPTR(Data PointerDPTR是一个16位寄存器,由DPH及DPL两寄存

27、器组成,系统DPTR可以看成是16位寄存器寻址到完整的64K存储器空间或是看成两个8位寄存器来加以利用。一旦当成16位寄存器便可利用指令MOVX A, DPTR来存取外部数据存储器,或利用指令MOVC A, DPTR来存取外部程序存储器。(6P0、P1、P2、P3(端口0端口3为8051 4个I/O端口的输出锁存寄存器。(7TH0、TL0、TH1、TL1定时/计数寄存器分别为定时器0及定时器1的工作寄存器,这二对寄存器可以做16位的计时计数用。(8串行端口缓冲器SBUF(Serial Buffer用来存放串行传输时数据进出的工作寄存器,经由串行端口传送数据出去是将数据写入SBUF,而接收时则由

28、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(I

29、E.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 D0 GATE C/T M1 M0 GATE C/T M1 M0定时器1 定时器0 GATE :定时器动作开关控制位,当GATE=1 时,INT0或INT1 引脚为高电平,同时TCON中的 TR0 或 TR1 控制位为1时,计时/计数器 0 或 1 才会动作。若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1即

30、可动作。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启动

31、控制位,可以由软件来设定或清除。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寄存器:省电

32、模式操作。MCS-51 的寻址方式:1 、立即寻址如:MOV A ,#40H (直接把数据40H给A2 、直接寻址如:MOV A , 3AH (将3A里的内容给A3 、寄存器寻址如:MOV A , Rn (Rn单元值给A4 、寄存器间接寻址如:MOV A , Rn (将Rn单元里的内容给A5 、基址加变址寻址如:MOVC A , A+DPTR(A+DPTR的内容给A6 、相对寻址如:SJMP 08H (跳到08H单元7 、位寻址如:MOV 20H ,C (位操作下面介绍AT89S51的主要特性 AT89S51元件引脚图主要性能参数(英语资料见附录一:兼容MCS-51指令系统4k可反复擦写(&g

33、t;1000次ISP Flash ROM32个双向I/O口3个16位可编程定时/计数器时钟频率0-33MHz全双工UART串行中断口线256x8bit内部RAM2个外部中断源低功耗空闲和省电模式中断唤醒省电模式3级加密位看门狗(WDT电路软件设置空闲和省电功能灵活的ISP字节和分页编程双数据寄存器指针4K字节FLASH存贮器支持在系统编程ISP主要功能特性:AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容

34、标准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模式支持中断唤醒,看门

35、狗定时器,双数据指针,上电复位标志 .此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3.2、1602液晶显示模块 图3.2.1 液晶模块组成从图3.2.1中可以看出,液晶模块有三部分构成:点阵式液晶板、液晶驱动电路HD44100、液晶控制电路HD44780。在液晶板上排列着若干5X 7或5X10点阵的字符显示位,每个显示位可显示

36、1个字符,从规格上分为每行8、16、20、24、32、40位,有一行、两行及四行三类。HD44100是用低功耗CMOS技术制造的大规模LCD驱动芯片。它既可当行驱动用,也可当列驱动用。HD44780(KS0062是用低功耗CMOS技术制造的大规模点阵LCD控制器(兼带驱动器,和4Bit/8Bit微处理器相连,它能使点阵LCD显示大小英文字母、数字和符号。应用HD44780(KS0062,用户能用少量元件就可组成一个完整点阵LCD 系统。从液晶模块图可以看出,液晶控制模块封装为统一接口,有8条数据线,三条控线。可与微处理器或微控制器相连,通过送入数据和指令,就可使模块正常工作,管脚排列与功能如表

37、3.2.1,寄存器选择如表3.2.2。3.2.2 液晶模块指令详解表3.2.3 HD447800指令表 指令名称 控制信号 控制代码RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清屏 0 0 0 0 0 0 0 0 0 1 归home 位 0 0 0 0 0 0 0 0 1 * 输入方式设置 0 0 0 0 0 0 0 1 I/D S 显示状态设置 0 0 0 0 0 0 1 D C B 光标画面滚动0 00 0 0 1 S/C R/L * *引线 符号 名称 功能 1 V SS 接地 0V 2 V DD 电路电源 5V ±10% 3 V EE 液晶驱动电压 见图2

38、4 RS 寄存器选择信号H:数据寄存器 L:指令寄存器5 R/W 读/写信号 H:读 L:写6 E 片选信号下降沿触发7 | 14DB0 | DB7数据线 数据传输RS R/W 操作0 0 指令寄存器(IR 写入 0 1 忙标志和地址计数器读入 1 0 数据寄存器(DR 写入 11数据寄存器读出工作方式设置0 0 0 0 1 DL N F * * CGRAM地址设置0 0 0 1 A5 A4 A3 A2 A1 A0 DDRAM地址设置0 0 1 A6 A5 A4 A3 A2 A1 A0 读BF和AC 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 写数据 1 0 数据读数

39、据 1 1 数据注:“*”表示任意值,在实际应用时一般认为是“0”。指令详细解释如下:清屏(Clear DisPlay格式00 0 0 0 0 0 1 01H该指令完成下列功能:将空码(20H写入 DDRAM的全部 80个单元内;将地址指针计数器AC清零,光标或闪烁归home位;设置输入方式参数 I/D=1,即地址指针 AC为自动加一输入方式。归home位(Return home格式00 0 0 0 0 1 0 02H该指令将地址指针计数器AC清零。执行该指令的效果有;将光标或闪烁位返回到显示屏的左上第一字符位上,即DDRAM地址00H单元位置。输入方式设置(Enter Mode Set格式0

40、0 0 0 0 1 I/D S 04H-07H 该指令的功能在于设置了显示字符的输入方式。I/D=0 AC为减1计数器,光标左移一个字符位。I/D=1 AC为加 1计数器,光标右移一个字符位。S 表示在写入字符时,是否允许显示画面的滚动。S=0禁止滚动。S=1允许滚动。显示状态设置(Display on/off Control格式00 0 0 1 D C B 08H-0FH 该指令控制着画面,光标及闪烁的开关。D画面显示状态位。当D=1时为开显示,D=0时为关显示。注意关显示仅是画面不出现,而DDRAM内容不变。这与清屏指令截然不同。C光标显示状态位。当C=1时为光标显示,C=0时为光标消失。

41、B闪烁显示状态位。当B=l时为闪烁启用,B=0时为闪烁禁止。光标或画面滚动(Cursor Or Insplay Shift格式00 0 1 S/C R/L 0 0该指令有两个参数位:S/C滚动对象的选择S/C=l画面滚动S/C=0光标滚动R/L滚动方向的选择R/L=l向右滚动R/L=0向左滚动工作方式设置(Function Set格式00 1 DL N F 0 0该指令有三个参数DL,N和F.它们的作用是:DL设置控制器与计算机的接口形式。接口形式体现在数据总线长度上。DL=1设置数据总线为8位长度,即DB7DBO有效。DL=0设置数据总线为4位长度,即DB7DB4有效。在该方式下8位指令代码

42、和数据将按先高4位后低4位的顺序分两次传输。N设置显示的字符行数。N=0为一行字符行。N=1为两行字符行。F设置显示字符的字体。F=0为5×7点阵字符体。F=1为 5 × 10点阵字符体。 CGRAM地址设置(Set CGRAM Address格式0 1 A5 A4 A3 A2 A1 A0 该指令将6位的CGRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对 CGRAM的读/写操作。 DDRAM地址设置(Set DDRAM Address格式1A6 A5 A4 A3 A2 A1 A0 该指令将 7位的DDRAM地址写入地址指针计数器AC内,随后计算机对数据的操作

43、是对 DDRAM的读/写操作。读“忙”标志和地址指针值(Read Busy Flag and Address格式B F AC6 AC5 AC4 AC3 AC2 AC1 AC0 计算机对指令寄存器通道读操作(RS=0,R/W=l时,将读出此格式的“忙”标志BF值和7位地址指针计数器AC的当前值。计算机随时都可以对HD44780U 读“忙”操作。3.2.3 显示位和标准字符库从液晶模块显示原理知道,液晶上显示的内容对应在DDRAM相应的地址中,显示位与DDRAM地址的对应关系如表3.2.4所示。表3.2.4 显示位与DDRAM地址对应关系表显示位序号 1 2 3 4 5 - 40DDRAM 地址(

44、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(以后每

45、次写指令、读/写数据操作之前均需检测忙信号(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 ;

46、 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

47、-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,ASETB E ; E=1CLR E ; E=0POP ACCRET(3写显示数据子程序PR2: PUSH ACCCLR RS ; RS=0SETB R/W ; R/W=1PR21:MOV P1,#0FFH ; P1置位, 准备读SETB E ; E=1MOV A,P1 ; 读BF和AC6-4值CLR E ; E=0MOV C,ACC.7 ; BF?进位位CSET

48、B E ; E=1CLR E ; E=0 (读AC3-0值JC PR21 ; 判别BF=1? 是转SETB RS ; RS=1CLR R/W ; R/W=0MOV P1,DAT ; 写入数据高4位SETB E ; E=1CLR E ; E=0MOV A,DAT ; 写入数据低4位SWAP AMOV P1,ASETB E ; E=1CLR E ; E=0POP ACCRET(4读显示数据子程序PR3: PUSH ACCCLR RS ; RS=0SETB R/W ; R/W=1PR31:MOV P1,#0FFH ; P1置位, 准备读SETB E ; E=1MOV A,P1 ; 读BF和AC6-4

49、值CLR E ; E=0MOV C,ACC.7 ; BF?进位位C SETB E ; E=1CLR E ; E=0 (读AC3-0值 JC PR31 ; 判别BF=1? 是转SETB RS ; RS=1SETB R/W ; R/W=1MOV P1,#0FFH ; P1置位, 准备读SETB E ; E=1MOV COM,P1 ; 读数据高4位CLR E ; E=0MOV P1,#0FFH ; P1置位, 准备读SETB E ; E=1MOV A,P1 ; 读数据低4位CLR E ; E=0SWAP A ; 转换成8位ANL A,#0FHANL DAT,#0F0HORL A,DATMOV DAT

50、,A ; 数据送入DAT 单元POP ACCRET四、总体设计 所需元件元件名称个数元件名称个数元件名称个数16脚的排线1个10uF的电容1个AT89S51芯片1个40脚的排线插座1套104的瓷片电容1个1602液晶模块1个4脚的按钮30个1uF的电容1个小喇叭3个发光二极管1个2k、470的电阻各2个12MHZ的晶振1个4.2 软件的实现1、产生音乐的原理:(1、要产生音频脉冲只需要算出某一音频的周期(1/频率,然后将此周期除以2,得到半周期的时间。利用定时器计算这半个周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

51、(2、利用AT89S51的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。(3、例如频率为523HZ,其周期T=1/523=1912us,因此只要令计数器在每计数956次时将I/O反相,就可得到中音DO(523HZ。计数脉冲值与频率的关系公式如下:N=Fi / 2 / Fr N:计数值;Fi:内部计时一次为1us,故其频率为1MHZ;Fr:要产生的频率;(4、其计数值的求法如下:T=65536-N=65536-Fi/2/Fr本次电子琴的单片机课程设计制作用到K=65536,F=1000000=Fi=1MHZ,则得到的琴键上C调各音频与计数值T的对照表如

52、下表所示。:音符频率(HZ简谱码(T值音符频率(HZ简谱码(T值中1 DO 523 64580 高2 RE 1175 65110中2 RE 587 64684 高3 M 1318 65157中3 M 659 64777 高4 FA 1397 65178中4 FA 698 64820 低3 M 330 64021中5 SO 784 64898 低4 FA 349 64103中6 LA 880 64968 低5 SO 392 64260中7 SI 988 65030 低6 LA 440 64400高1 DO 1046 65058 低7 SI 494 64524 本毕业设计采用的是直接计算各音符所对

53、应的周期,并赋值给计数器,当计数满是则将输出脉冲反相,即可产生所需的音频脉冲,其对应的周期值如下表所示:音符频率(HZ周期(T值音符频率(HZ周期(T值中1 DO 523 1912 高5 SO 1568 638中2 RE 587 1703 高6 LA 1760 568中3 MI 659 1517 高7 SI 1967 507中4 FA 698 1433 低1 DO 262 3816中5 SO 784 1337 低2 RE 294 3401中6 LA 880 1136 低3 MI 330 3030中7 SI 988 1012 低4 FA 349 2865高1 DO 1046 956 低5 SO 392 2551高2 RE 1175 851 低6 LA 440 2272高3 MI 1318 758 低7 SI 494 2024高4 FA 1397 715例如,频率为523HZ,其周期T=1/523=1912us,因此,只要令计数器计时956us/1us=956,在每次计数956次时将I/O反相,就可得到中音DO(523HZ。2、流程图 3、 本次电子琴的单片机课程设计制作用到的汇编语言程序如下: ORG 0000H JMP START ORG 000BH LJM

温馨提示

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

评论

0/150

提交评论