LCD液晶显示器设计毕业论文教学文稿_第1页
LCD液晶显示器设计毕业论文教学文稿_第2页
LCD液晶显示器设计毕业论文教学文稿_第3页
LCD液晶显示器设计毕业论文教学文稿_第4页
LCD液晶显示器设计毕业论文教学文稿_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

1、Good is good, but better carries it.精益求精,善益求善。LCD液晶显示器设计毕业论文-东莞理工学院本科毕业设计毕业设计题目:LCD电子显示屏的控制和界面设计学生姓名:学号:院系:电子工程学院专业班级:指导老师姓名及职称:起止时间:2010年4月2010年5月目录一、摘要-3二、作品意义-3三、硬件设计-4四、软件设计-5五、设计调试-8六、指令说明-9七、心得体会-12八、致谢-13九、参考文献-13十、源程序与原理图-13一、摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便

2、宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。随着以计算机为轴心的各种各样信息处理装置的诞生,为适应这种新形势,信息家电,网络终端,广播-通信等用途的LCD市场也将迅速扩大,而且如今LCD发展方向不仅在于大屏幕,而且在中小屏幕方面,例如汽车导航系统,摄像机,数字式照相机,便携式电视,PDA(个人数字助理),娱乐/游戏机,摄影机等有着进一步的发展。液晶显示器(LCD)具有功耗低、体积小、重量轻

3、、超薄等许多其他显示器无法比拟的优点,近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段式LCD、字符式LCD和点阵式LCD。其中,段式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线以及汉字、动画,并且可以实现屏幕滚动、反转、闪烁等功能,用途十分广泛。由此可见LCD的应用是如此广泛,所以用MPU控制液晶显示器是很普遍的应用。本设计主要研究通过单片机控制来实现液晶模块字符的显示。二、作品意义近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新

4、月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。本次设计以STC89C51芯片为核心,辅以必要的外围电路,设计了一个简易的电子阅读器。本作品得控制器采用STC89C516RD+,人机接口界面采用YM12864R液晶显示器和四个按钮。本作品可通过按键和液晶显示来选择阅读诗歌或图片。三、硬件设计1、系统框图显示模块控制模

5、块振荡复位电源键盘2、控制模块控制器采用STC89C516RD+,其指令代码与传统得8051单片机完全兼容,FLASH为63KB,RAM为1280B。由于本作品需要显示图片,需要较大得存储空间来存储图片数据,而STC89C516RD+有63KB得FLASH,这也是选择STC89C516RD+得重要原因之一。其次STC89C516RD+支持ISP,调式程序时不用频繁地从电路板上拔下芯片来烧程序,可直接通过串口经MAX232电平转换后,把相应得数据线和电源线与电路板相接,再配合ISP下载软件即可将程序下载到芯片,大大提高了调试效率。3、显示模块显示器采用YM12864R液晶显示器。带中文字库得12

6、8X64是一种具有4位/8位并行,2线或3线串口多种接口方式,内部含有国标一级,二级简体中文字库得点阵图形液晶显示模块;其显示分辨率为128X64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活得接口方式和简单,方便的操作指令,可构成全中文人机交互图形界面。可以显示8X4行16X16点阵的汉字。也可以完成图形显示。低电压低功耗识其又一显著得特点。由该模块构成得液晶显示方案与同类型得图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵得图形液晶模块。4、键盘本作品所有得键盘由4个机械触点式的按钮组成。把4个按键直接

7、与单片机得I/O口连接,按键按下时将I/O接地。其特点是价格低廉,编程简单,采用查询的方式检测按键得状态。由于按键是机械触点式的,再机械触动闭合或断开时,会有抖动,这些抖动会干扰单片机按键的检测,因此在编程时要加入消抖程序。5、振荡复位电路振荡电路:由1个12MHz晶振和2个30pf的瓷片电容组成。复位电路:由1个10uF的电解电容和一个10K的电阻组成。四、软件设计软件主要由液晶初始化,按键扫描,按键处理和显示子程序组成。由于本作品的界面是菜单式的,通过什么来确认该进入哪个子菜单或显示哪幅图片,这是编程前首先要解决得问题。根据液晶显示器本身的特性:字符显示RAM在液晶模块中的地址80H9FH

8、。字符显示的RAM的地址与32个字符显示区域有着一一对应得关系。因此,可通过显示光标,然后通过光标得位置来确认该进入哪个子菜单或显示哪幅图片。此外,每进入一个菜单,都要对键盘进行扫描,此时按键按下得意义和前面得不同了,因此要对按键处理做相应得修改。软件流程图:“下”按下“上”按下“确认”按下游标移到“诗歌判断游标位置是否在80H游标移动“图片”主菜单键盘扫描显示主菜单液晶初始化显示诗歌菜单显示图片菜单诗歌菜单键盘扫描返回到“显示主菜单根据游标的位置显示相应的诗歌“返回”按下“确认”按下游标上移“上”按下“下”按下游标下移阅读诗歌时键盘扫描阅读诗歌时键盘扫描“上”按下“返回”按下“下”按下显示下

9、一首诗返回到“显示诗歌菜单”显示上一首诗显示图片菜单图片菜单键盘扫描“上”按下“确认”按下“返回”按下“下”按下游标上移根据游标的位置显示相应的图片返回到“显示主菜单”游标下移浏览图片时键盘扫描“上”按下“返回”按下“下”按下显示上一幅图返回到“显示图片菜单”显示下一幅图浏览图片时键盘扫描五、设计调试1、单片机最小系统的调试把单片机最小系统焊接好,加上一格LED,然后编写一个让LED闪烁的程序,通过Keil把程序调试好,再生成的HEX文件下载到芯片里面,观察LED的闪烁情况是否与程序相符,若相符,则说明单片机最小系统正常。若不相符,则找出问题的所在。这一步看似简单,却是必不可少的一步,因为单片

10、机最小系统是整个电路的基础。通过调试单片机最小系统,不但可以检测单片机最小系统是否正常,还可以检测你使用相关软件的步骤是否正确,这些步骤都是以后调试程序时必不可少的。2、液晶显示器的调试仔细阅读液晶显示器的资料,按照资料上的要求把液晶显示器连接好。首先,写一个让液晶显示一个汉字或字符的程序,让液晶显示器对应地显示出来。这一步可以让我们检测液晶显示器是否与单片机正确连接,以及掌握初始化液晶显示器的方法和写指令/数据到液晶显示器的方法,这是使用液晶显示器的第一步。接下来再让液晶在不同的位置显示字符、显示多个字符、显示图片等。也就是把以后要用的功能一一掌握。最后把液晶显示程序里常用的程序整理成一个个

11、字程序,方便以后调用。.3、键盘的调试将按键添加到电路板上,编写按键程序:按不同的键能让液晶显示不同的字符。这步成功后说明按键程序就没问题了,把它整理成一个字程序,方便调用。4、整体调试以上是基本功能模块的调试,接下来先把程序框图画好,然后对照框图添加相应的程序,必要时可对框图进行局部修改或整体修改。六、指令说明1、模块控制芯片提供两套控制命令,基本指令和扩充指令如下:指令表1:(RE=0:基本指令)指指令码功能令RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满20H,并且设定DDRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM

12、的地址计数器(AC)到00H,并且将游标移到开头原点位置;这个指令不改变DDRAM的内容显示状态开/关0000001DCBD=1:整体显示ONC=1:游标ONB=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容功能设定00001DLXREXXDL=0/1:4/8位数据RE=1:扩充指令操作RE=0:基本指令操作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址设定DDRAM地址0010AC5

13、AC4AC3AC2AC1AC0设定DDRAM地址(显示位址)第一行:80H87H第二行:90H97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7D0(DDRAM/CGRAM/IRAM/GRAM)指令表2:(RE=1:扩充指令)指指令码功能令RSR/WD7D6D5D4D3D2D1D0待命模式0000000001进入待命模式,执行其他指令都棵终止待命模式卷

14、动地址开关开启000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址反白选择00000001R1R0选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R000,第一次设定为反白显示,再次设定变回正常睡眠模式0000001SLXXSL=0:进入睡眠模式SL=1:脱离睡眠模式扩充功能设定00001CLXREG0CL=0/1:4/8位数据RE=1:扩充指令操作RE=0:基本指令操作G=1/0:绘图开关设定绘图RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0设定绘图RAM先设定垂直(列)地址AC6AC5AC0再设定

15、水平(行)地址AC3AC2AC1AC0将以上16位地址连续写入即可备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。2、应用举例2.1、使用前的准备先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显示出黑色的底影。此过程亦可以初步检测LCD有无缺段现象。2.2、字符显示带中文字库的128X64-0402B每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中文字符或2个1

16、68点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供1282字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。

17、字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH2.3、图形显示先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址)垂直地址范围AC5.AC0水平地址范围AC3AC0绘图RAM的地址计数器(AC)只会对水平地址(X轴)自动加一,当水平地址=0FH时会重新设为00H但并不会对垂直地址做进位自动加一,2.

18、4、应用说明用带中文字库的128X64显示模块时应注意以下几点:欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。当字符编码为2字节时,应先写入高位字节,再写入低位字节。模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指

19、令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。控制器接口信号说明:RS,R/W的配合选择决定控制界面的4种模式:RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据七、心得体会通过这次设计让我对单片机有更加深入的了解,学会了用按键控制和跳转的基本方法,提高了分析程序和硬件电路的能力,对

20、编译调试和下载烧录程序的方法更加熟悉了,自己的焊接技术也相应的提高了,在找资料的过程中不仅掌握了课本上没有的知识还提高了自己的搜索能力,我相信到将来这是一种很宝贵的财富。学而知不足,这次设计让我学到更多东西的同时也让我看到了自己知识的缺乏,从而促进我不断进取,不断进步。这次设计我还明白了一个道理:有些事情不是自己不会做,而是自己并没有去行动,所以才会觉得很难,只有自己用心投入了,事情原来并没有想象中的那么难。我在设计程序的过程中遇到了不少问题,但在指导老师、组员以及周围各位同学的帮忙下也一一地顺利解决了,在这里我明白了团结合作的重要性,大家互相帮忙才会事半功倍的。短短一个月的毕业设计即将过去了

21、,但其中很多的画面将永远留在自己脑海中:老师的谆谆教诲,组员的鼎力支持,周围同学的相互帮忙。如果说我的人生是有一首乐曲组成,这次经历无疑是其中最美丽的乐谱之一,因为它使了我的大学生涯得到了升华,个人价值得到了肯定,我相信这将对我终生受益。八、致谢在做毕业设计(LCD电子显示屏的控制和界面设计)的整个过程中,我的指导老师任斌(副教授)始终都给予了细心的指导和不懈的支持,不厌其烦地为我解决了很多问题,在此致以感谢!同时,在此也衷心感谢我的同学的出谋划策和对这个毕业设计的关心和帮助!九、参考文献1李全利等编著。单片机原理及接口技术,高等教育出版社,2004.1。2徐惠民等编著。单片微型计算机原理、接

22、口及应用,北京邮电大学出版社,2007.8。3郭速学等编著。图解单片机功能与应用,中国电力出版社,2008.2。4康维新等编著。MCS-51单片机原理与应用,中国轻工业出版社,2009.9。5汪道辉等编著。单片机系统设计与实践,电子工业出版社,2006.5。十、源程序和原理图源程序:RSEQUP0.7RWEQUP0.6EEQUP0.5PSBEQUP0.4RSTEQUP0.2COMEQU20HDATEQU21H;已用资源R2R3R4R6R7;以上是接口定义ORG0000HLJMPSTARTORG30HSTART:SETBPSB;并行模式SETBRST;禁止复位MOVCOM,#30H;功能设置-8

23、BIT控制界面,基本指令集CALLWRILCALLDELAYMOVCOM,#0FH;显示打开,光标关,反白显示关ACALLWRILCALLDELAYLCALLCLEAR;清屏;显示主菜单MENU:MOVR1,#80H;游标初始位置LCALLCLEARMOVCOM,#81H;在第一行第二位置开始显示诗歌MOVDPTR,#DAB_MENU1MOVR2,#4LCALLPLAYMOVCOM,#91H;在第一行第二位置开始显示图片MOVDPTR,#DAB_MENU2MOVR2,#4LCALLPLAYMOVCOM,#89H;在第一行第二位置开始显示制作人MOVDPTR,#DAB_MENU3MOVR2,#6

24、LCALLPLAYMENU_YOUBIAO:MOVCOM,R1;游标地址设定ACALLWRILCALLDELAYMOVCOM,#0FH;显示打开,光标,反白显示关ACALLWRILCALLDELAYMENU_NEXT:MOVR1,#80HM_KEY1:MOVP2,#11111111BMOVA,P2CLRCSUBBA,#11111110BJZM_UPMOVA,P2CLRCSUBBA,#11111101BJZM_DOWNMOVA,P2CLRCSUBBA,#11111011BJZM_BACKMOVA,P2CLRCSUBBA,#11110111BJZM_SURELJMPM_KEY1;向上选择菜单M_U

25、P:;确定游标位置ACALLDELAY10;延时10毫秒消触点抖动JBP2.0,M_KEY1;去除干扰信号JNBP2.0,$;等待按键松开CJNER1,#80H,M_UP1MOVR1,#88HLJMPM_YOUBIAO_WRIM_UP1:CJNER1,#90H,M_UP2MOVR1,#80HLJMPM_YOUBIAO_WRIM_UP2:CJNER1,#88H,M_KEY1MOVR1,#90HLJMPM_YOUBIAO_WRI;向下选择菜单M_DOWN:;确认游标位置ACALLDELAY10;延时10毫秒消触点抖动JBP2.1,M_KEY1;去除干扰信号JNBP2.1,$;等待按键松开CJNER

26、1,#80H,M_DOWN1MOVR1,#90HLJMPM_YOUBIAO_WRIM_DOWN1:CJNER1,#90H,M_DOWN2MOVR1,#88HLJMPM_YOUBIAO_WRIM_DOWN2:CJNER1,#88H,M_KEY1MOVR1,#80HM_YOUBIAO_WRI:MOVCOM,R1;写游标LCALLWRILCALLDELAYMOVCOM,#0FHLCALLWRILCALLDELAYSB:LJMPM_KEY1M_BACK:ACALLDELAY10;延时10毫秒消触点抖动JBP2.2,M_KEY1;去除干扰信号JNBP2.2,$;等待按键松开LJMPMENUM_SURE:

27、ACALLDELAY10;延时10毫秒消触点抖动JBP2.3,SB;去除干扰信号JNBP2.3,$;等待按键松开LJMPMENU_SURE;主菜单键盘扫描KEYSCAN:MOVP2,#11111111BKEY1:MOVA,P2CLRCSUBBA,#11111110BJZMENU_SHIMOVA,P2CLRCSUBBA,#11111101BJZMENU_PICMOVA,P2CLRCSUBBA,#11111011BJZMENU_ZHIMOVA,P2CLRCSUBBA,#11110111BJZMENU_SURELJMPKEYSCAN;按键对应程序MENU_SHI:ACALLDELAY10;延时10毫

28、秒消触电抖动JBP2.0,KEYSCAN;去除干扰信号JNBP2.0,$;等待按键松开MOVR1,#80H;LJMPMENU_YOUBIAOMENU_PIC:ACALLDELAY10;延时10毫秒消触点抖动JBP2.1,KEYSCAN;去除干扰信号JNBP2.1,$;等待按键松开MOVR1,#90HLJMPMENU_YOUBIAOMENU_ZHI:ACALLDELAY10;延时10毫秒消触点抖动JBP2.2,KEYSCAN;去除干扰信号JNBP2.2,$;等待按键松开MOVR1,#88HLJMPMENU_YOUBIAOMENU_SURE:ACALLDELAY10;延时10毫秒消触点抖动JBP2

29、.3,KEYSCAN;去除干扰信号JNBP2.3,$;等待按键松开LCALLCLEAR;若游标在80H处,说面选中的是诗歌,接下来则显示诗歌的菜单CJNER1,#80H,PICTURESHI_MENU_SHOW:MOVCOM,#81HMOVDPTR,#MENU_SHI1MOVR2,#12;诗歌名的字数,待修改LCALLPLAYMOVCOM,#91HMOVDPTR,#MENU_SHI2MOVR2,#10LCALLPLAYMOVCOM,#89HMOVDPTR,#MENU_SHI3MOVR2,#10LCALLPLAYMOVCOM,#99HMOVDPTR,#MENU_SHI4MOVR2,#10LCAL

30、LPLAYMOVCOM,#80H;游标地址设定ACALLWRILCALLDELAYMOVCOM,#0FH;显示打开,光标关,反白显示关ACALLWRILCALLDELAYLJMPLKKEYSCAN_J:LJMPKEYSCAN;若游标在90H处,说明选中得是图片,接下来则显示图片的菜单PICTURE:CJNER1,#90H,ZHIPIC_MENU_SHOW:MOVCOM,#81HMOVDPTR,#MENU_PIC1;图片名的字数,待修改MOVR2,#6LCALLPLAYMOVCOM,#91HMOVDPTR,#MENU_PIC2MOVR2,#6LCALLPLAYMOVCOM,#89HMOVDPTR

31、,#MENU_PIC3MOVR2,#6LCALLPLAYMOVCOM,#99HMOVDPTR,#MENU_PIC4MOVR2,#6LCALLPLAYMOVCOM,#80H;游标地址设定ACALLWRILCALLDELAYMOVCOM,#0FH;显示打开,光标关,反白显示关ACALLWRILCALLDELAYLJMPSCAN_PIC;若游标在88H处,说明选中得是制作人,接下来则显示制作人的菜单ZHI:CJNER1,#88H,KEYSCAN_JZHI_MENU_SHOW:MOVCOM,#81HMOVDPTR,#MENU_ZHI1;制作人名的字数,待修改MOVR2,#6LCALLPLAYMOVCO

32、M,#91HMOVDPTR,#MENU_ZHI2MOVR2,#6LCALLPLAYMOVCOM,#80H;游标地址设定ACALLWRILCALLDELAYMOVCOM,#0FH;显示打开,光标关,反白显示关ACALLWRILCALLDELAYLJMPKEYSCAN_J;键盘扫描-诗歌菜单LK:MOVR1,#80HSHI_KEY1:MOVP2,#11111111BMOVA,P2CLRCSUBBA,#11111110BJZSHI_UPMOVA,P2CLRCSUBBA,#11111101BJZSHI_DOWNMOVA,P2CLRCSUBBA,#11111011BJZSHI_BACKMOVA,P2CL

33、RCSUBBA,#11110111BJZSHI_SURELJMPSHI_KEY1;向上选择诗歌SHI_UP:;确定游标位置ACALLDELAY10;延时10毫秒消触点抖动JBP2.0,SHI_KEY1;去除干扰信号JNBP2.0,$;等待按键松开CJNER1,#80H,SHI_UP1MOVR1,#98HLJMPSHI_YOUBIAO_WRISHI_UP1:CJNER1,#90H,SHI_UP2MOVR1,#80HLJMPSHI_YOUBIAO_WRISHI_UP2:CJNER1,#88H,SHI_UP3MOVR1,#90HLJMPSHI_YOUBIAO_WRISHI_UP3:CJNER1,#9

34、8H,SHI_KEY1MOVR1,#88HLJMPSHI_YOUBIAO_WRI;向下选择诗歌SHI_DOWN:;确认游标位置ACALLDELAY10;延时10毫秒消触点抖动JBP2.1,SHI_KEY1;去除干扰信号JNBP2.1,$;等待按键松开CJNER1,#80H,SHI_DOWN1MOVR1,#90HLJMPSHI_YOUBIAO_WRISHI_DOWN1:CJNER1,#90H,SHI_DOWN2MOVR1,#88HLJMPSHI_YOUBIAO_WRISHI_DOWN2:CJNER1,#88H,SHI_DOWN3MOVR1,#98HLJMPSHI_YOUBIAO_WRISHI_D

35、OWN3:CJNER1,#98H,SHI_KEY1MOVR1,#80HSHI_YOUBIAO_WRI:MOVCOM,R1;写游标LCALLWRILCALLDELAYMOVCOM,#0FHLCALLWRILCALLDELAYSS1:LJMPSHI_KEY1;返回到主菜单SHI_BACK:ACALLDELAY10;延时10毫秒消触点抖动JBP2.2,SS1;SHI_KEY1;去除干扰信号JNBP2.2,$;等待按键松开LJMPMENU;诗歌已选择,开始阅读SHI_SURE:ACALLDELAY10;延时10毫秒消触点抖动JBP2.3,SS1;去除干扰信号JNBP2.3,$;等待按键松开LCALLC

36、LEAR;一定要清屏,否则上一层菜单多出来的字也会在这里显示的CJNER1,#80H,SHI_SURE1MOVDPTR,#DAB1LCALLPLAY1LJMPSHI_NEXTSHI_SURE1:CJNER1,#90H,SHI_SURE2MOVDPTR,#DAB2LCALLPLAY1LJMPSHI_NEXTSHI_SURE2:CJNER1,#88H,SHI_SURE3MOVDPTR,#DAB3LCALLPLAY1LJMPSHI_NEXTSHI_SURE3:CJNER1,#98H,SHI_NEXTMOVDPTR,#DAB4LCALLPLAY1;阅读诗歌时的键盘扫描SHI_NEXT:NOPSHI_N

37、EXT_KEY:MOVP2,#11111111BMOVA,P2CLRCSUBBA,#11111110BJZSHI_NEXT_UPMOVA,P2CLRCSUBBA,#11111101BJZSHI_NEXT_DOWNMOVA,P2CLRCSUBBA,#11111011BJZSHI_NEXT_BACKLJMPSHI_NEXT_KEY;当正在阅读诗歌时,可直接按上,下键来选择上一首或下一首SHI_NEXT_UP:ACALLDELAY10;延时10毫秒消触点抖动JBP2.0,SHI_NEXT_KEY;去除干扰信号JNBP2.0,$;等待按键松开CJNER1,#80H,SHI_NEXT_UP1;若现在游标

38、的地址为80H,则现在在屏幕上显示得是第一首诗(DAB1),那么上一幅DAB4MOVR1,#98H;通过标记游标的位置来识别现在显示的是哪一首诗MOVDPTR,#DAB4LJMPSHI_WRISHI_NEXT_UP1:CJNER1,#90H,SHI_NEXT_UP2MOVR1,#80HMOVDPTR,#DAB1LJMPSHI_WRISHI_NEXT_UP2:CJNER1,#88H,SHI_NEXT_UP3MOVR1,#90HMOVDPTR,#DAB2LJMPSHI_WRISHI_NEXT_UP3:CJNER1,#98H,SHI_NEXT_KEYMOVR1,#88HMOVDPTR,#DAB3LJ

39、MPSHI_WRISHI_NEXT_DOWN:ACALLDELAY10;延时10毫秒消触点抖动JBP2.1,SHI_NEXT_KEY;去除干扰信号JNBP2.1,$;等待按键松开CJNER1,#80H,SHI_NEXT_DOWN1MOVR1,#90HMOVDPTR,#DAB2LJMPSHI_WRISHI_NEXT_DOWN1:CJNER1,#90H,SHI_NEXT_DOWN2MOVR1,#88HMOVDPTR,#DAB3LJMPSHI_WRISHI_NEXT_DOWN2:CJNER1,#88H,SHI_NEXT_DOWN3MOVR1,#98HMOVDPTR,#DAB4LJMPSHI_WRIS

40、HI_NEXT_DOWN3:CJNER1,#98,SHI_NEXT_KEY_J;超出范围,不能直接跳到SHI_NEXT_KEY,故先跳到SHI_NEXT_KEY_JMOVR1,#80HMOVDPTR,#DAB1SHI_WRI:LCALLPLAY1SHI_NEXT_KEY_J:LJMPSHI_NEXT_KEY;返回到上一级菜单SHI_NEXT_BACK:ACALLDELAY10;延时10毫秒消触点抖动JBP2.2,SHI_NEXT_KEY_J;去除干扰信号JNBP2.2,$;等待按键松开LCALLCLEARLJMPSHI_MENU_SHOW;图片程序,与诗歌类似;键盘扫描SCAN_PIC:MOV

41、R1,#80HPIC_KEY1:MOVP2,#11111111BMOVA,P2CLRCSUBBA,#11111110BJZPIC_UPMOVA,P2CLRCSUBBA,#11111101BJZPIC_DOWNMOVA,P2CLRCSUBBA,#11111011BJZPIC_BACKMOVA,P2CLRCSUBBA,#11110111BJZPIC_SURELJMPPIC_KEY1;向上选择图片PIC_UP:;确定游标位置ACALLDELAY10;延时10毫秒消触点抖动JBP2.0,PIC_KEY1;去除干扰信号JNBP2.0,$;等待按键松开CJNER1,#80H,PIC_UP1MOVR1,#9

42、8HLJMPPIC_YOUBIAO_WRIPIC_UP1:CJNER1,#90H,PIC_UP2MOVR1,#80HLJMPPIC_YOUBIAO_WRIPIC_UP2:CJNER1,#88H,PIC_UP3MOVR1,#90HLJMPPIC_YOUBIAO_WRIPIC_UP3:CJNER1,#98H,PIC_KEY1MOVR1,#88HLJMPPIC_YOUBIAO_WRI;向上选择图片PIC_DOWN:;确定游标位置ACALLDELAY10;延时10毫秒消触点抖动JBP2.1,PIC_KEY1;去除干扰信号JNBP2.1,$;等待按键松开CJNER1,#80H,PIC_DOWN1MOVR

43、1,#90HLJMPPIC_YOUBIAO_WRIPIC_DOWN1:CJNER1,#90H,PIC_DOWN2MOVR1,#88HLJMPPIC_YOUBIAO_WRIPIC_DOWN2:CJNER1,#88H,PIC_DOWN3MOVR1,#98HLJMPPIC_YOUBIAO_WRIPIC_DOWN3:CJNER1,#98H,PIC_KEY1MOVR1,#80HPIC_YOUBIAO_WRI:MOVCOM,R1LCALLWRILCALLDELAYMOVCOM,#0FHLCALLWRILCALLDELAYSB2:LJMPPIC_KEY1;返回主菜单PIC_BACK:ACALLDELAY10

44、;延时10毫秒消触点抖动JBP2.2,SB2;去除干扰信号JNBP2.2,$;等待按键松开LJMPMENU;图片已选择,开始阅读PIC_SURE:ACALLDELAY10;延时10毫秒消触点抖动JBP2.3,SB2;去除干扰信号JNBP2.3,$;等待按键松开CJNER1,#80H,PIC_SURE1MOVDPTR,#PICTURE_1LCALLPLAY2LJMPPIC_NEXTPIC_SURE1:CJNER1,#90H,PIC_SURE2MOVDPTR,#PICTURE_2LCALLPLAY2LJMPPIC_NEXTPIC_SURE2:CJNER1,#88H,PIC_SURE3MOVDPTR

45、,#PICTURE_3LCALLPLAY2LJMPPIC_NEXTPIC_SURE3:CJNER1,#98H,PIC_NEXTMOVDPTR,#PICTURE_4LCALLPLAY2PIC_NEXT:NOPPIC_NEXT_KEY:MOVP2,#11111111BMOVA,P2CLRCSUBBA,#11111110BJZPIC_NEXT_UPMOVA,P2CLRCSUBBA,#11111101BJZPIC_NEXT_DOWNMOVA,P2CLRCSUBBA,#11111011BJZPIC_NEXT_BACKLJMPPIC_NEXT_KEY;当正在阅读图片时,可直接按上、下键来选择上一首或下一首

46、PIC_NEXT_UP:ACALLDELAY10;延时10毫秒消触点抖动JBP2.0,PIC_NEXT_KEY;去除干扰信号JNBP2.0,$;等待按键松开CJNER1,#80H,PIC_NEXT_UP1;若现在游标的位置时#80H,则现在屏幕上显示的时第一首诗(DAB1),那么上一副就是DAB4MOVR1,#98HMOVDPTR,#PICTURE_4LJMPPIC_WRIPIC_NEXT_UP1:CJNER1,#90H,PIC_NEXT_UP2MOVR1,#80HMOVDPTR,#PICTURE_1LJMPPIC_WRIPIC_NEXT_UP2:CJNER1,#88H,PIC_NEXT_UP

47、3MOVR1,#90HMOVDPTR,#PICTURE_2LJMPPIC_WRIPIC_NEXT_UP3:CJNER1,#98H,PIC_NEXT_KEYMOVR1,#88HMOVDPTR,#PICTURE_3LJMPPIC_WRIPIC_NEXT_DOWN:ACALLDELAY10;延时10毫秒消触点抖动JBP2.1,PIC_NEXT_KEY;去除干扰信号JNBP2.1,$;等待按键松开CJNER1,#80H,PIC_NEXT_DOWN1MOVR1,#90HMOVDPTR,#PICTURE_2LJMPPIC_WRIPIC_NEXT_DOWN1:CJNER1,#90H,PIC_NEXT_DOW

48、N2MOVR1,#88HMOVDPTR,#PICTURE_3LJMPPIC_WRIPIC_NEXT_DOWN2:CJNER1,#88H,PIC_NEXT_DOWN3MOVR1,#98HMOVDPTR,#PICTURE_4LJMPPIC_WRIPIC_NEXT_DOWN3:CJNER1,#98H,PIC_NEXT_KEY_J;超出范围,不能直接跳到SHI_NEXT_KEY,故先跳到HI_NEXT_KEY_JMOVR1,#80HMOVDPTR,#PICTURE_1PIC_WRI:LCALLPLAY2PIC_NEXT_KEY_J:LJMPPIC_NEXT_KEY;返回到上一级菜单PIC_NEXT_B

49、ACK:ACALLDELAY10;延时10毫秒消触点抖动JBP2.2,PIC_NEXT_KEY_J;去除干扰信号JNBP2.2,$;等待按键松开LCALLCLEARMOVCOM,#0FH;进入绘图时,游标被关了,因此在返回到菜单之前要打开游标ACALLWRILCALLDELAYLJMPPIC_MENU_SHOW;显示一首诗PLAY1:MOVCOM,#0CH;显示打开,光标关,反白显示关ACALLWRILCALLDELAYMOVR2,#10;一行有5个字,一个字的代码由两个字节组成,共10个字节MOVR3,#1;一首诗共4行MOVCOM,#80H;第一行首地址PLAY1W:ACALLWRILCA

50、LLDELAYPLAY11:CLRAMOVCA,A+DPTRMOVDAT,ALCALLWRDINCDPTRDJNZR2,PLAY11;写完1行MOVR2,#10;每写完一行,R2,就重新装载10INCR3;每写完一行,R3就加1MOVA,R3HANG2:CJNEA,#2,HANG3MOVCOM,#90H;第二行首地址LJMPPLAY1WHANG3:CJNEA,#3,HANG4MOVCOM,#88H;第三行首地址LJMPPLAY1WHANG4:CJNEA,#4,DONEMOVCOM,#98H;第四行首地址LJMPPLAY1WDONE:RET;显示一幅图PLAY2:LCALLCLEAR;绘图之前要

51、先清屏,否则图片会和刚才的菜单重叠MOVCOM,#08H;显示打开,光标关,反白显示关ACALLWRILCALLDELAYMOVCOM,#36H;功能设置-扩充指令集,绘图显示ONACALLWRILCALLDELAYDISPLAY6:MOVR2,#32;32行,(双屏结构中上半屏)MOVR3,#80H;Y地址寄存器DISP6:MOVCOM,R3;设置绘图区的Y地址坐标INCR3;Y地址加1LCALLWRIMOVCOM,#80H;设置绘图区的X地址坐标LCALLWRIMOVR4,#16;16列DISP7:CLRAMOVCA,A+DPTRMOVDAT,ALCALLWRDINCDPTRDJNZR4,

52、DISP7;写完16列DJNZR2,DISP6;写完32行MOVR2,#32;32行,(双屏结构的下半屏)MOVR3,#80H;Y地址寄存器DISP8:MOVCOM,R3;设置绘图区的Y地址坐标INCR3;Y地址加1LCALLWRIMOVCOM,#88H;设置绘图区的X地址坐标LCALLWRIMOVR4,#16;16列DISP9:CLRAMOVCA,A+DPTRMOVDAT,ALCALLWRDINCDPTRDJNZR4,DISP9;写完16列DJNZR2,DISP8;写完32行MOVCOM,#30H;绘完图后要返回到基本指令集模式ACALLWRILCALLDELAYRET;写一行以内的字;参数

53、:首地址(COM),汉字入口地址(DPTR),汉字个数(R2)PLAY:ACALLWRILCALLDELAYPLAY3:CLRAMOVCA,A+DPTRMOVDAT,ALCALLWRDINCDPTRDJNZR2,PLAY3;写完1行RETCLEAR:MOVCOM,#01H;清屏ACALLWRILCALLDELAYRET;写指令子程序WRI:PUSHACC;入栈CLRRS;选择指令SETBRWWRI1:MOVP1,#0FFH;为读状态作准备SETBE;E高电平:DR-P2口MOVA,P1CLRE;无动作JBACC.7,WRI1;ACC.7为BF,若BF=1(忙),则转到WRI1,继续读取BF状态

54、,否则向下执行CLRRW;选择写MOVP1,COM;把指令送到P2口SETBE;E下降沿:P2口-DRCLREPOPACC;出栈RET;写数据子程序WRD:PUSHACC;入栈CLRRS;选择指令SETBRW;选择读WRD1:MOVP1,#0FFH;为读状态作准备SETBE;E高电平:DR-P2口MOVA,P1CLRE;无动作JBACC.7,WRD1;ACC.7为BF,若BF=1(忙),则转到WRD1,继续读取BF状态,否则向下执行SETBRS;选择数据CLRRW;选择写MOVP1,DAT;把数据送到P2口SETBE;E下降沿:P2口-DRCLREPOPACC;出栈RET;延时子程序DELAY

55、:MOVR7,#0FFHD4:MOVR6,#00FHDJNZR6,$DJNZR7,D4RET;10毫秒DELAY10:MOVR4,#98D2:MOVR5,#248DJNZR5,$DJNZR4,D2RETDAB_MENU1:DB0CAH,0ABH,0B8H,0E8H;诗歌DAB_MENU2:DB0CDH,0BCH,0C6H,0ACH;图片DAB_MENU3:DB0D6H,0C6H,0D7H,0F7H,0C8H,0CBH;制作人MENU_SHI1:DB0B0H,0D7H,0C8H,0D5H,0A1H,0AAH,0cdh,0f5h,0D6H,0AEH,0BBH,0C1H;白日-王之涣MENU_SHI

56、2:DB0CDH,0FBH,0D4H,0C0H,0A1H,0AAH,0B6H,0C5H,0c6h,0ceh;望岳-杜甫MENU_SHI3:DB0D4H,0B9H,0C7H,0E9H,0A1H,0AAH,0c0h,0eeh,0b0h,0d7h;怨情-李白MENU_SHI4:DB0CFH,0E0H,0CBH,0BCH,0A1H,0AAH,0cdh,0f5h,0ceh,0ach;相思-王维MENU_PIC1:DB0CDH,0BCH,0C6H,0ACH,0D2H,0BBH;图片一MENU_PIC2:DB0CDH,0BCH,0C6H,0ACH,0B6H,0FEH;图片二MENU_PIC3:DB0CDH,

57、0BCH,0C6H,0ACH,0C8H,0FDH;图片三MENU_PIC4:DB0CDH,0BCH,0C6H,0ACH,0CBH,0C4H;图片四MENU_ZHI1:DB0B2H,0CCH,0BFH,0B5H,0C3H,0F1H;“姓名”MENU_ZHI2:DB0C1H,0BAH,0C1H,0A2H,0B7H,0BDH;“姓名”DAB1:DB0B0H,0D7H,0C8H,0D5H,0D2H,0C0H,0C9H,0BDH,0BEH,0A1H;白日依山尽DB0BBH,0C6H,0BAH,0D3H,0C8H,0EBH,0BAH,0A3H,0C1H,0F7H;黄河入海流DB0D3H,0FBH,0C7H

58、,0EEH,0C7H,0A7H,0C0H,0EFH,0C4H,0BFH;欲穷千里目DB0B8H,0FCH,0C9H,0CFH,0D2H,0BBH,0B2H,0E3H,0C2H,0A5H;更上一层楼DAB2:DB0B5H,0B4H,0D0H,0D8H,0C9H,0FAH,0B2H,0E3H,0D4H,0C6H;荡胸生层云DB0BEH,0F6H,0B4H,0CBH,0C8H,0EBH,0B9H,0E9H,0C4H,0F1H;决眦入归鸟DB0BBH,0E1H,0B5H,0B1H,0C1H,0E8H,0BEH,0F8H,0B6H,0A5H;会当凌绝顶DB0D2H,0BBH,0C0H,0C0H,0D6H

59、,0DAH,0C9H,0BDH,0D0H,0A1H;一览众山小DAB3:DB0C3H,0C0H,0C8H,0CBH,0BEH,0EDH,0D6H,0E9H,0C1H,0B1H;美人卷珠帘DB0C9H,0EEH,0D7H,0F8H,0C6H,0B5H,0B6H,0EAH,0C3H,0BCH;深坐颦蛾眉DB0B5H,0ABH,0BCH,0FBH,0C0H,0E1H,0BAH,0DBH,0CAH,0AAH;但见泪痕湿DB0B2H,0BBH,0D6H,0AAH,0D0H,0C4H,0BAH,0DEH,0CBH,0ADH;不知心恨谁DAB4:DB0BAH,0ECH,0B6H,0B9H,0C9H,0FAH

60、,0C4H,0CFH,0B9H,0FAH;红豆生南国DB0B4H,0BAH,0C0H,0B4H,0B7H,0A2H,0BCH,0B8H,0D6H,0A6H;春来发几枝DB0D4H,0B8H,0BEH,0FDH,0B6H,0E0H,0B2H,0C9H,0D0H,0AFH;愿君多采撷DB0B4H,0CBH,0CEH,0EFH,0D7H,0EEH,0CFH,0E0H,0CBH,0BCH;此物最相思PICTURE_1:;I:毕业设计车.bmp(0)DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0

温馨提示

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

评论

0/150

提交评论