LCD电子显示屏的控制和界面设计.doc

上传人:scccc 文档编号:11183802 上传时间:2021-07-10 格式:DOC 页数:34 大小:30.16KB
返回 下载 相关 举报
LCD电子显示屏的控制和界面设计.doc_第1页
第1页 / 共34页
LCD电子显示屏的控制和界面设计.doc_第2页
第2页 / 共34页
LCD电子显示屏的控制和界面设计.doc_第3页
第3页 / 共34页
LCD电子显示屏的控制和界面设计.doc_第4页
第4页 / 共34页
LCD电子显示屏的控制和界面设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《LCD电子显示屏的控制和界面设计.doc》由会员分享,可在线阅读,更多相关《LCD电子显示屏的控制和界面设计.doc(34页珍藏版)》请在三一文库上搜索。

1、LCD电子显示屏的控制和界面设计 目 录 一、摘要- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3 二、作品意义- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3 三、硬件设计- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4 四、软件设计 - - -

2、 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -5 五、设计调试 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -8 六、指令说明- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -9 七、心得体会 - - - - - - - - - - - - - - - - - - - - - - -

3、- - - - - - - - - - - - - - - 12 八、致谢- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13 九、参考文献- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13 十、源程序与原理图 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13 一、摘要 近年来随着

4、计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 随着以计算机为轴心的各种各样信息处理装置的诞生,为适应这种新形势,信息家电,网络终端,广播-通信等用途的LCD市场也将迅速扩大,而且如今LCD发展方向不仅在于大屏幕,而且在中小屏幕方面,例如汽车导航系统,摄像机,数字式照相机,便

5、携式电视,PDA(个人数字助理),娱乐/游戏机,摄影机等有着进一步的发展。 液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段式LCD、字符式LCD和点阵式LCD。其中,段式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线以及汉字、动画,并且可以实现屏幕滚动、反转、闪烁等功能,用途十分广泛。 由此可见LCD的应用是如此广泛,所以用MPU控制液晶显示器是很普遍的应用。本设计主要研究通过单片机

6、控制来实现液晶模块字符的显示。 二、作品意义 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。本次设计以STC89C51芯片为核心,辅以必要的外围电路,设计了一个简易的电子阅读器。本作品得控制器采用STC89C516RD+,人机接口界面

7、采用YM12864R液晶显示器和四个按钮。本作品可通过按键和液晶显示来选择阅读诗歌或图片。 2 三、硬件设计 1、系统框图 2、控制模块 控制器采用STC89C516RD+,其指令代码与传统得8051单片机完全兼容,FLASH为63KB,RAM为1280B。由于本作品需要显示图片,需要较大得存储空间来存储图片数据,而STC89C516RD+有63KB得FLASH,这也是选择STC89C516RD+得重要原因之一。其次STC89C516RD+支持ISP,调式程序时不用频繁地从电路板上拔下芯片来烧程序,可直接通过串口经MAX232电平转换后,把相应得数据线和电源线与电路板相接,再配合ISP下载软件

8、即可将程序下载到芯片,大大提高了调试效率。 3、显示模块 显示器采用YM12864R液晶显示器。带中文字库得128X64是一种具有4位/8位并行,2线或3线串口多种接口方式,内部含有国标一级,二级简体中文字库得点阵图形液晶显示模块;其显示分辨率为128X64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活得接口方式和简单,方便的操作指令,可构成全中文人机交互图形界面。可以显示8X4行16X16点阵的汉字。也可以完成图形显示。低电压低功耗识其又一显著得特点。由该模块构成得液晶显示方案与同类型得图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,

9、且该模块的价格也略低于相同点阵得图形液晶模块。 4、键盘 本作品所有得键盘由4个机械触点式的按钮组成。把4个按键直接与单片机 3 得I/O口连接,按键按下时将I/O接地。其特点是价格低廉,编程简单,采用查询的方式检测按键得状态。由于按键是机械触点式的,再机械触动闭合或断开时,会有抖动,这些抖动会干扰单片机按键的检测,因此在编程时要加入消抖程序。 5、振荡复位电路 振荡电路:由1个12MHz晶振和2个30pf的瓷片电容组成。 复位电路:由1个10uF的电解电容和一个10K的电阻组成。 四、软件设计 软件主要由液晶初始化,按键扫描,按键处理和显示子程序组成。由于本作品的界面是菜单式的,通过什么来确

10、认该进入哪个子菜单或显示哪幅图片,这是编程前首先要解决得问题。根据液晶显示器本身的特性:字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应得关系。因此,可通过显示光标,然后通过光标得位置来确认该进入哪个子菜单或显示哪幅图片。此外,每进入一个菜单,都要对键盘进行扫描,此时按键按下得意义和前面得不同了,因此要对按键处理做相应得修改。 4 软件流程图: 5 6 五、设计调试 1、单片机最小系统的调试 把单片机最小系统焊接好,加上一格LED,然后编写一个让LED闪烁的程序,通过Keil把程序调试好,再生成的HEX文件下载到芯片里面,观察LED的闪烁情况

11、是否与程序相符,若相符,则说明单片机最小系统正常。若不相符,则找出问题的所在。这一步看似简单,却是必不可少的一步,因为单片机最小系统是整个电路的基础。通过调试单片机最小系统,不但可以检测单片机最小系统是否正常,还可以检测你使用相关软件的步骤是否正确,这些步骤都是以后调试程序时必不可少的。 2、液晶显示器的调试 仔细阅读液晶显示器的资料,按照资料上的要求把液晶显示器连接好。首先,写一个让液晶显示一个汉字或字符的程序,让液晶显示器对应地显示出来。这一步可以让我们检测液晶显示器是否与单片机正确连接,以及掌握初始化液晶显示器的方法和写指令/数据到液晶显示器的方法,这是使用液晶显示器的第一步。接下来再让

12、液晶在不同的位置显示字符、显示多个字符、显示图片等。也就是把以后要用的功能一一掌握。最后把液晶显示程序里常用的程序整理成一个个字程序,方便以后调用。 .3、键盘的调试 将按键添加到电路板上,编写按键程序:按不同的键能让液晶显示不同的字符。这步成功后说明按键程序就没问题了,把它整理成一个字程序,方便调用。 4、整体调试 以上是基本功能模块的调试,接下来先把程序框图画好,然后对照框图添加相应的程序,必要时可对框图进行局部修改或整体修改。 7 六、指令说明 1、模块控制芯片提供两套控制命令,基本指令和扩充指令如下: 8 指令表2:(RE=1:扩充指令) BF标志时,BF需为零,方可接受新的指令;如果

13、在送出一个指令前并不检查BF标 志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个 指令确实执行完成。 2、应用举例 2.1、使用前的准备 先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显 示出黑色的底影。 9 此过程亦可以初步检测LCD有无缺段现象。 2.2、字符显示 带中文字库的128X64-0402B每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中文字符或2个168点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供1282字节的字符显示RAM

14、缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址 2.3 、图形显示 先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址

15、) 垂直地址范围 AC5.AC0 水平地址范围 AC3?AC0 绘图RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时会重新设为00H 但并不会对垂直地址做进位自动加一, 2.4、应用说明 用带中文字库的128X64显示模块时应注意以下几点: 欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。 显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个 字符位置,否则,显示的字符中将会有一个空ASCII字符位置。 当字符编码为2字节时,应先写入高位字节,再写入

16、低位字节。 模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出 一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的 时间请参考指令表中的指令执行时间说明。 10 “RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。 控制器接口信号说明: 七、心得体会 通过这次设计让我对单片机有更加深入的了解,学会了用按键控制和跳转的基本方法,提高了分析程序和硬件

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

18、业设计即将过去了,但其中很多的画面将永远留在自己脑海中:老师的谆谆教诲,组员的鼎力支持,周围同学的相互帮忙。如果说我的人生是有一首乐曲组成,这次经历无疑是其中最美丽的乐谱之一,因为它使了我的大学生涯得到了升华,个人价值得到了肯定,我相信这将对我终生受益。 11 八、致谢 九、参考文献 1 李全利等编著。单片机原理及接口技术,高等教育出版社,2004.1。 2 徐惠民等编著。单片微型计算机原理、接口及应用,北京邮电大学出版社,2007.8。 3 郭速学等编著。图解单片机功能与应用,中国电力出版社,2008.2。 4 康维新等编著。MCS-51单片机原理与应用,中国轻工业出版社,2009.9。 5

19、 汪道辉等编著。单片机系统设计与实践,电子工业出版社,2006.5。 十、源程序和原理图 源程序: RS EQU P0.7 RW EQU P0.6 E EQU P0.5 PSB EQU P0.4 RST EQU P0.2 COM EQU 20H DAT EQU 21H ;已用资源R2 R3 R4 R6 R7 ;以上是接口定义 ORG 0000H LJMP START ORG 30H 12 START:SETB PSB ;并行模式 SETB RST ;禁止复位 MOV COM,#30H ;功能设置-8BIT控制界面,基本指令集 CALL WRI LCALL DELAY MOV COM,#0FH

20、;显示打开,光标关,反白显示关 ACALL WRI LCALL DELAY LCALL CLEAR ;清屏 ;显示主菜单 MENU:MOV R1,#80H ;游标初始位置 LCALL CLEAR MOV COM,#81H ;在第一行第二位置开始显示诗歌 MOV DPTR,#DAB_MENU1 MOV R2,#4 LCALL PLAY MOV COM,#91H ;在第一行第二位置开始显示图片 MOV DPTR,#DAB_MENU2 MOV R2,#4 LCALL PLAY MOV COM,#89H ;在第一行第二位置开始显示制作人 MOV DPTR,#DAB_MENU3 MOV R2,#6 LC

21、ALL PLAY MENU_YOUBIAO: MOV COM,R1 ;游标地址设定 ACALL WRI LCALL DELAY MOV COM,#0FH ;显示打开,光标,反白显示关 ACALL WRI 13 LCALL DELAY MENU_NEXT: MOV R1,#80H M_KEY1: MOV P2,#11111111B MOV A,P2 CLR C SUBB A,#11111110B JZ M_UP MOV A,P2 CLR C SUBB A,#11111101B JZ M_DOWN MOV A,P2 CLR C SUBB A,#11111011B JZ M_BACK MOV A,P

22、2 CLR C SUBB A,#11110111B JZ M_SURE LJMP M_KEY1 ;向上选择菜单 M_UP: ;确定游标位置 ACALL DELAY10 ;延时10毫秒消触点抖动JB P2.0,M_KEY1 ;去除干扰信号 JNB P2.0,$ ; 等待按键松开 CJNE R1,#80H,M_UP1 MOV R1,#88H LJMP M_YOUBIAO_WRI M_UP1:CJNE R1,#90H,M_UP2 MOV R1,#80H LJMP M_YOUBIAO_WRI M_UP2:CJNE R1,#88H,M_KEY1 MOV R1,#90H 14 LJMP M_YOUBIAO

23、_WRI ;向下选择菜单 M_DOWN: ;确认游标位置 ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.1,M_KEY1 ;去除干扰信号 JNB P2.1,$ ;等待按键松开 CJNE R1,#80H,M_DOWN1 MOV R1,#90H LJMP M_YOUBIAO_WRI M_DOWN1: CJNE R1,#90H,M_DOWN2 MOV R1,#88H LJMP M_YOUBIAO_WRI M_DOWN2: CJNE R1,#88H,M_KEY1 MOV R1,#80H M_YOUBIAO_WRI: MOV COM,R1 ;写游标 LCALL WRI LCALL D

24、ELAY MOV COM,#0FH LCALL WRI LCALL DELAY SB: LJMP M_KEY1 M_BACK: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.2,M_KEY1 ;去除干扰信号 JNB P2.2,$ ;等待按键松开 LJMP MENU M_SURE: 15 ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.3, SB ;去除干扰信号 JNB P2.3,$ ;等待按键松开 LJMP MENU_SURE ; 主菜单键盘扫描 KEYSCAN:MOV P2,#11111111B KEY1: MOV A,P2 CLR C SUBB A,#

25、11111110B JZ MENU_SHI MOV A,P2 CLR C SUBB A,#11111101B JZ MENU_PIC MOV A,P2 CLR C SUBB A,#11111011B JZ MENU_ZHI MOV A,P2 CLR C SUBB A,#11110111B JZ MENU_SURE LJMP KEYSCAN ;按键对应程序 MENU_SHI: ACALL DELAY10 ;延时10毫秒消触电抖动JB P2.0,KEYSCAN ;去除干扰信号 JNB P2.0,$ ;等待按键松开 MOV R1,#80H ; LJMP MENU_YOUBIAO MENU_PIC:

26、ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.1,KEYSCAN ;去除干扰信号 16 JNB P2.1,$ ;等待按键松开 MOV R1,#90H LJMP MENU_YOUBIAO MENU_ZHI: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.2,KEYSCAN ;去除干扰信号 JNB P2.2,$ ;等待按键松开 MOV R1,#88H LJMP MENU_YOUBIAO MENU_SURE: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.3,KEYSCAN ;去除干扰信号 JNB P2.3,$ ;等待按键松开 LCALL

27、CLEAR ;若游标在80H处,说面选中的是诗歌,接下来则显示诗歌的菜单 CJNE R1,#80H,PICTURE SHI_MENU_SHOW: MOV COM,#81H MOV DPTR,#MENU_SHI1 MOV R2,#12 ;诗歌名的字数,待修改 LCALL PLAY MOV COM,#91H MOV DPTR,#MENU_SHI2 MOV R2,#10 LCALL PLAY MOV COM,#89H MOV DPTR,#MENU_SHI3 MOV R2,#10 LCALL PLAY MOV COM,#99H MOV DPTR,#MENU_SHI4 MOV R2,#10 LCALL

28、PLAY 17 MOV COM,#80H ;游标地址设定 ACALL WRI LCALL DELAY MOV COM,#0FH ;显示打开,光标关,反白显示关 ACALL WRI LCALL DELAY LJMP LK KEYSCAN_J: LJMP KEYSCAN ;若游标在90H处,说明选中得是图片,接下来则显示图片的菜单 PICTURE: CJNE R1,#90H,ZHI PIC_MENU_SHOW: MOV COM,#81H MOV DPTR,#MENU_PIC1 ;图片名的字数,待修改 MOV R2,#6 LCALL PLAY MOV COM,#91H MOV DPTR,#MENU_

29、PIC2 MOV R2,#6 LCALL PLAY MOV COM,#89H MOV DPTR,#MENU_PIC3 MOV R2,#6 LCALL PLAY MOV COM,#99H MOV DPTR,#MENU_PIC4 MOV R2,#6 LCALL PLAY MOV COM,#80H ;游标地址设定 ACALL WRI LCALL DELAY MOV COM,#0FH ;显示打开,光标关,反白显示关 ACALL WRI LCALL DELAY LJMP SCAN_PIC ;若游标在88H处,说明选中得是制作人,接下来则显示制作人的菜单 18 ZHI: CJNE R1,#88H,KEYS

30、CAN_J ZHI_MENU_SHOW: MOV COM,#81H MOV DPTR,#MENU_ZHI1 ;制作人名的字数,待修改 MOV R2,#6 LCALL PLAY MOV COM,#91H MOV DPTR,#MENU_ZHI2 MOV R2,#6 LCALL PLAY MOV COM,#80H ;游标地址设定 ACALL WRI LCALL DELAY MOV COM,#0FH ;显示打开,光标关,反白显示关 ACALL WRI LCALL DELAY LJMP KEYSCAN_J ; 键盘扫描-诗歌菜单 LK:MOV R1,#80H SHI_KEY1: MOV P2,#1111

31、1111B MOV A,P2 CLR C SUBB A,#11111110B JZ SHI_UP MOV A,P2 CLR C SUBB A,#11111101B JZ SHI_DOWN MOV A,P2 CLR C SUBB A,#11111011B JZ SHI_BACK 19 MOV A,P2 CLR C SUBB A,#11110111B JZ SHI_SURE LJMP SHI_KEY1 ;向上选择诗歌 SHI_UP: ;确定游标位置 ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.0,SHI_KEY1 ;去除干扰信号 JNB P2.0,$ ; 等待按键松开 CJN

32、E R1,#80H,SHI_UP1 MOV R1,#98H LJMP SHI_YOUBIAO_WRI SHI_UP1:CJNE R1,#90H,SHI_UP2 MOV R1,#80H LJMP SHI_YOUBIAO_WRI SHI_UP2:CJNE R1,#88H,SHI_UP3 MOV R1,#90H LJMP SHI_YOUBIAO_WRI SHI_UP3:CJNE R1,#98H,SHI_KEY1 MOV R1,#88H LJMP SHI_YOUBIAO_WRI ;向下选择诗歌 SHI_DOWN: ;确认游标位置 ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.1,S

33、HI_KEY1 ;去除干扰信号 JNB P2.1,$ ;等待按键松开 CJNE R1,#80H,SHI_DOWN1 MOV R1,#90H LJMP SHI_YOUBIAO_WRI SHI_DOWN1: CJNE R1,#90H,SHI_DOWN2 MOV R1,#88H LJMP SHI_YOUBIAO_WRI SHI_DOWN2: CJNE R1,#88H,SHI_DOWN3 MOV R1,#98H LJMP SHI_YOUBIAO_WRI 20 SHI_DOWN3: CJNE R1,#98H,SHI_KEY1 MOV R1,#80H SHI_YOUBIAO_WRI: MOV COM,R1

34、 ;写游标 LCALL WRI LCALL DELAY MOV COM,#0FH LCALL WRI LCALL DELAY SS1: LJMP SHI_KEY1 ;返回到主菜单 SHI_BACK: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.2,SS1;SHI_KEY1 ;去除干扰信号 JNB P2.2,$ ;等待按键松开 LJMP MENU ; 诗歌已选择,开始阅读 SHI_SURE: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.3,SS1 ;去除干扰信号 JNB P2.3,$ ;等待按键松开 LCALL CLEAR; 一定要清屏,否则上一层菜单

35、多出来的字也会在这里显示的 CJNE R1,#80H,SHI_SURE1 MOV DPTR,#DAB1 LCALL PLAY1 LJMP SHI_NEXT SHI_SURE1: CJNE R1,#90H,SHI_SURE2 MOV DPTR,#DAB2 LCALL PLAY1 LJMP SHI_NEXT SHI_SURE2: CJNE R1,#88H,SHI_SURE3 21 MOV DPTR,#DAB3 LCALL PLAY1 LJMP SHI_NEXT SHI_SURE3: CJNE R1,#98H,SHI_NEXT MOV DPTR,#DAB4 LCALL PLAY1 ;阅读诗歌时的键盘

36、扫描 SHI_NEXT: NOP SHI_NEXT_KEY: MOV P2,#11111111B MOV A,P2 CLR C SUBB A,#11111110B JZ SHI_NEXT_UP MOV A,P2 CLR C SUBB A,#11111101B JZ SHI_NEXT_DOWN MOV A,P2 CLR C SUBB A,#11111011B JZ SHI_NEXT_BACK LJMP SHI_NEXT_KEY ;当正在阅读诗歌时,可直接按上,下键来选择上一首或下一首 SHI_NEXT_UP: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.0,SHI_NEXT

37、_KEY ;去除干扰信号 JNB P2.0,$ ;等待按键松开 CJNE R1,#80H,SHI_NEXT_UP1 ;若现在游标的地址为80H,则现在在屏幕上显示得是第一首诗(DAB1),那么上一幅DAB4 22 MOV R1,#98H ;通过标记游标的位置来识别现在显示的是哪一首诗 MOV DPTR,#DAB4 LJMP SHI_WRI SHI_NEXT_UP1: CJNE R1,#90H,SHI_NEXT_UP2 MOV R1,#80H MOV DPTR,#DAB1 LJMP SHI_WRI SHI_NEXT_UP2: CJNE R1,#88H,SHI_NEXT_UP3 MOV R1,#9

38、0H MOV DPTR,#DAB2 LJMP SHI_WRI SHI_NEXT_UP3: CJNE R1,#98H,SHI_NEXT_KEY MOV R1,#88H MOV DPTR,#DAB3 LJMP SHI_WRI SHI_NEXT_DOWN: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.1,SHI_NEXT_KEY ;去除干扰信号 JNB P2.1,$ ;等待按键松开 CJNE R1,#80H,SHI_NEXT_DOWN1 MOV R1,#90H MOV DPTR,#DAB2 LJMP SHI_WRI SHI_NEXT_DOWN1: CJNE R1,#90H,SH

39、I_NEXT_DOWN2 MOV R1,#88H MOV DPTR,#DAB3 LJMP SHI_WRI SHI_NEXT_DOWN2: CJNE R1,#88H,SHI_NEXT_DOWN3 MOV R1,#98H MOV DPTR,#DAB4 LJMP SHI_WRI SHI_NEXT_DOWN3: CJNE R1,#98,SHI_NEXT_KEY_J ;超出范围,不能直接跳到SHI_NEXT_KEY,故先跳到SHI_NEXT_KEY_J MOV R1,#80H MOV DPTR,#DAB1 23 SHI_WRI: LCALL PLAY1 SHI_NEXT_KEY_J: LJMP SHI_NEXT_KEY ;返回到上一级菜单 SHI_NEXT_BACK: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.2,SHI_NEXT_KEY_J JNB P2.2,$ LCALL CLEAR LJMP SHI_MENU_SHOW ;图片程序,与诗歌类似 ;键盘扫描 SCAN_PIC: MOV R1,#80H PIC_KEY1: MOV P2,#11111111B MOV A,P2

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1