1、目 录一、摘要- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3二、作品意义- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3三、硬件设计- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4四、软件设计 - - - - - - - - - - - - -
2、- - - - - - - - - - - - - - - - - - - - - - - - - - -5五、设计调试 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -8六、指令说明- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -9七、心得体会 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3、- - - 12八、致谢- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13九、参考文献- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13十、源程序与原理图 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13一、摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用
4、正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 随着以计算机为轴心的各种各样信息处理装置的诞生,为适应这种新形势,信息家电,网络终端,广播-通信等用途的LCD市场也将迅速扩大,而且如今LCD发展方向不仅在于大屏幕,而且在中小屏幕方面,例如汽车导航系统,摄像机,数字式照相机,便携式电视,PDA(个人数字助理),娱乐/游戏机,摄影机等有
5、着进一步的发展。 液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段式LCD、字符式LCD和点阵式LCD。其中,段式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线以及汉字、动画,并且可以实现屏幕滚动、反转、闪烁等功能,用途十分广泛。 由此可见LCD的应用是如此广泛,所以用MPU控制液晶显示器是很普遍的应用。本设计主要研究通过单片机控制来实现液晶模块字符的显示。二、作品意义近年来随着科技的
6、飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而51单片机是各单片机中最为典型和最有代表性的一种。本次设计以STC89C51芯片为核心,辅以必要的外围电路,设计了一个简易的电子阅读器。本作品得控制器采用STC89C516RD+,人机接口界面采用YM12864R液晶显示器和四个按钮。本作品可通过按键和液
7、晶显示来选择阅读诗歌或图片。三、硬件设计 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个按键直接与单片机得I/O口连接,按键按下时将I/O接地。其特点是价格低廉,编程简单,采用查询的方式检测按键得状态。由于按键是机械触点式的,再机械触动闭合或断开时,会有抖动,这些抖动会干扰单片机按键的检测,因此在编程时要加入消抖程序。5、振荡复位电路振荡电路:由1个12MHz晶振和2个30pf的瓷片电容组成。复位电路:由1个10uF的电解电容和一个10K的电阻组成。四、软件设计软件主要由液晶初始化,按键扫描,按键处理和显示子程序组成。由于本作品的界面是菜单式的,通过什么来确认该进入哪个子菜单或显示哪幅图片,这是编程前首先要解决得问题。根
10、据液晶显示器本身的特性:字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应得关系。因此,可通过显示光标,然后通过光标得位置来确认该进入哪个子菜单或显示哪幅图片。此外,每进入一个菜单,都要对键盘进行扫描,此时按键按下得意义和前面得不同了,因此要对按键处理做相应得修改。软件流程图:“下”按下“上”按下“确认”按下游标移到“诗歌判断游标位置是否在80H游标移动“图片”主菜单键盘扫描显示主菜单液晶初始化显示诗歌菜单显示图片菜单诗歌菜单键盘扫描返回到“显示主菜单根据游标的位置显示相应的诗歌“返回”按下“确认”按下游标上移“上”按下“下”按下游标下移阅读诗
11、歌时键盘扫描阅读诗歌时键盘扫描“上”按下“返回”按下“下”按下显示下一首诗返回到“显示诗歌菜单”显示上一首诗显示图片菜单图片菜单键盘扫描“上”按下“确认”按下“返回”按下“下”按下游标上移根据游标的位置显示相应的图片返回到“显示主菜单”游标下移浏览图片时键盘扫描 “上”按下“返回”按下“下”按下显示上一幅图返回到“显示图片菜单”显示下一幅图浏览图片时键盘扫描五、设计调试1、单片机最小系统的调试把单片机最小系统焊接好,加上一格LED,然后编写一个让LED闪烁的程序,通过Keil把程序调试好,再生成的HEX文件下载到芯片里面,观察LED的闪烁情况是否与程序相符,若相符,则说明单片机最小系统正常。若
12、不相符,则找出问题的所在。这一步看似简单,却是必不可少的一步,因为单片机最小系统是整个电路的基础。通过调试单片机最小系统,不但可以检测单片机最小系统是否正常,还可以检测你使用相关软件的步骤是否正确,这些步骤都是以后调试程序时必不可少的。2、液晶显示器的调试仔细阅读液晶显示器的资料,按照资料上的要求把液晶显示器连接好。首先,写一个让液晶显示一个汉字或字符的程序,让液晶显示器对应地显示出来。这一步可以让我们检测液晶显示器是否与单片机正确连接,以及掌握初始化液晶显示器的方法和写指令/数据到液晶显示器的方法,这是使用液晶显示器的第一步。接下来再让液晶在不同的位置显示字符、显示多个字符、显示图片等。也就
13、是把以后要用的功能一一掌握。最后把液晶显示程序里常用的程序整理成一个个字程序,方便以后调用。.3、键盘的调试将按键添加到电路板上,编写按键程序:按不同的键能让液晶显示不同的字符。这步成功后说明按键程序就没问题了,把它整理成一个字程序,方便调用。4、整体调试以上是基本功能模块的调试,接下来先把程序框图画好,然后对照框图添加相应的程序,必要时可对框图进行局部修改或整体修改。六、指令说明1、模块控制芯片提供两套控制命令,基本指令和扩充指令如下:指令表1:(RE=0:基本指令)指 指 令 码功 能令RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满20H,并且设定D
14、DRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM的地址计数器(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地址0
15、001AC5AC4AC3AC2AC1AC0设定CGRAM 地址设定DDRAM地址0010AC5AC4AC3AC2AC1AC0设定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/
16、WD7D6D5D4D3D2D1D0 待命模式0000000001进入待命模式,执行其他指令都棵终止待命模式卷动地址开关开启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地址0010A
17、C60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0设定绘图RAM先设定垂直(列)地址AC6AC5AC0再设定水平(行)地址AC3AC2AC1AC0将以上16位地址连续写入即可备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。2、应用举例2.1、使用前的准备 先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显示出黑色的底影。 此过程亦可以初步检测LCD有无缺段现象。2.2、
18、字符显示带中文字库的128X64-0402B每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中文字符或2个168点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供1282字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是0000、0002、0004、
19、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH2.3 、图形显示 先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址)垂直地址范围 AC5.AC0水平地址范围 AC3AC
20、0绘图RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时会重新设为00H 但并不会对垂直地址做进位自动加一,2.4、应用说明用带中文字库的128X64显示模块时应注意以下几点:欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。当字符编码为2字节时,应先写入高位字节,再写入低位字节。模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取
21、BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。 控制器接口信号说明:RS,R/W的配合选择决定控制界面的4种模式:RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数
22、据暂存器(DR)中读出数据七、心得体会通过这次设计让我对单片机有更加深入的了解,学会了用按键控制和跳转的基本方法,提高了分析程序和硬件电路的能力,对编译调试和下载烧录程序的方法更加熟悉了,自己的焊接技术也相应的提高了,在找资料的过程中不仅掌握了课本上没有的知识还提高了自己的搜索能力,我相信到将来这是一种很宝贵的财富。学而知不足,这次设计让我学到更多东西的同时也让我看到了自己知识的缺乏,从而促进我不断进取,不断进步。这次设计我还明白了一个道理:有些事情不是自己不会做,而是自己并没有去行动,所以才会觉得很难,只有自己用心投入了,事情原来并没有想象中的那么难。我在设计程序的过程中遇到了不少问题,但在
23、指导老师、组员以及周围各位同学的帮忙下也一一地顺利解决了,在这里我明白了团结合作的重要性,大家互相帮忙才会事半功倍的。短短一个月的毕业设计即将过去了,但其中很多的画面将永远留在自己脑海中:老师的谆谆教诲,组员的鼎力支持,周围同学的相互帮忙。如果说我的人生是有一首乐曲组成,这次经历无疑是其中最美丽的乐谱之一,因为它使了我的大学生涯得到了升华,个人价值得到了肯定,我相信这将对我终生受益。 八、致谢在做毕业设计(LCD电子显示屏的控制和界面设计)的整个过程中,我的指导老师任斌(副教授)始终都给予了细心的指导和不懈的支持,不厌其烦地为我解决了很多问题,在此致以感谢!同时,在此也衷心感谢我的同学的出谋划
24、策和对这个毕业设计的关心和帮助!九、参考文献1 李全利等编著。单片机原理及接口技术,高等教育出版社,2004.1。2 徐惠民等编著。单片微型计算机原理、接口及应用,北京邮电大学出版社,2007.8。3 郭速学等编著。图解单片机功能与应用,中国电力出版社,2008.2。4 康维新等编著。MCS-51单片机原理与应用,中国轻工业出版社,2009.9。5 汪道辉等编著。单片机系统设计与实践,电子工业出版社,2006.5。十、源程序和原理图源程序:RS EQU P0.7RW EQU P0.6E EQU P0.5PSB EQU P0.4RST EQU P0.2COM EQU 20HDAT EQU 21H
25、;已用资源R2 R3 R4 R6 R7;以上是接口定义ORG 0000HLJMP STARTORG 30HSTART:SETB PSB ;并行模式 SETB RST ;禁止复位MOV COM,#30H ;功能设置-8BIT控制界面,基本指令集CALL WRILCALL DELAYMOV COM,#0FH ;显示打开,光标关,反白显示关ACALL WRILCALL DELAYLCALL CLEAR ;清屏;显示主菜单MENU:MOV R1,#80H ;游标初始位置LCALL CLEARMOV COM,#81H ;在第一行第二位置开始显示诗歌MOV DPTR,#DAB_MENU1MOV R2,#4
26、LCALL PLAYMOV COM,#91H ;在第一行第二位置开始显示图片MOV DPTR,#DAB_MENU2MOV R2,#4LCALL PLAYMOV COM,#89H ;在第一行第二位置开始显示制作人MOV DPTR,#DAB_MENU3MOV R2,#6LCALL PLAYMENU_YOUBIAO:MOV COM,R1 ;游标地址设定ACALL WRILCALL DELAYMOV COM,#0FH ;显示打开,光标,反白显示关ACALL WRILCALL DELAYMENU_NEXT: MOV R1,#80HM_KEY1:MOV P2,#11111111BMOV A,P2CLR C
27、SUBB A,#11111110BJZ M_UPMOV A,P2CLR CSUBB A,#11111101BJZ M_DOWNMOV A,P2CLR CSUBB A,#11111011BJZ M_BACKMOV A,P2CLR CSUBB A,#11110111BJZ M_SURELJMP M_KEY1;向上选择菜单M_UP: ;确定游标位置ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.0,M_KEY1 ;去除干扰信号JNB P2.0,$ ; 等待按键松开CJNE R1,#80H,M_UP1MOV R1,#88HLJMP M_YOUBIAO_WRIM_UP1:CJNE R1
28、,#90H,M_UP2 MOV R1,#80H LJMP M_YOUBIAO_WRIM_UP2:CJNE R1,#88H,M_KEY1 MOV R1,#90H LJMP M_YOUBIAO_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_WRIM_DOWN1: CJNE R1,#90H,M_DOWN2 MOV R1,#88H LJMP M_YOUBIAO_WRIM_
29、DOWN2: CJNE R1,#88H,M_KEY1 MOV R1,#80H M_YOUBIAO_WRI: MOV COM,R1 ;写游标 LCALL WRI LCALL DELAY MOV COM,#0FH LCALL WRI LCALL DELAY SB: LJMP M_KEY1M_BACK: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.2,M_KEY1 ;去除干扰信号 JNB P2.2,$ ;等待按键松开 LJMP MENUM_SURE: ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.3, SB ;去除干扰信号 JNB P2.3,$ ;等待按键松
30、开 LJMP MENU_SURE ; 主菜单键盘扫描KEYSCAN:MOV P2,#11111111BKEY1: MOV A,P2CLR CSUBB A,#11111110BJZ MENU_SHIMOV A,P2CLR CSUBB A,#11111101BJZ MENU_PICMOV A,P2CLR CSUBB A,#11111011BJZ MENU_ZHIMOV A,P2CLR CSUBB A,#11110111BJZ MENU_SURELJMP KEYSCAN;按键对应程序MENU_SHI: ACALL DELAY10 ;延时10毫秒消触电抖动JB P2.0,KEYSCAN ;去除干扰信号
31、JNB P2.0,$ ;等待按键松开MOV R1,#80H ; LJMP MENU_YOUBIAO MENU_PIC:ACALL DELAY10 ;延时10毫秒消触点抖动JB P2.1,KEYSCAN ;去除干扰信号JNB P2.1,$ ;等待按键松开MOV R1,#90HLJMP MENU_YOUBIAOMENU_ZHI:ACALL DELAY10 ;延时10毫秒消触点抖动JB P2.2,KEYSCAN ;去除干扰信号JNB P2.2,$ ;等待按键松开MOV R1,#88HLJMP MENU_YOUBIAOMENU_SURE:ACALL DELAY10 ;延时10毫秒消触点抖动JB P2.
32、3,KEYSCAN ;去除干扰信号JNB P2.3,$ ;等待按键松开LCALL CLEAR;若游标在80H处,说面选中的是诗歌,接下来则显示诗歌的菜单CJNE R1,#80H,PICTURESHI_MENU_SHOW:MOV COM,#81HMOV DPTR,#MENU_SHI1MOV R2,#12 ;诗歌名的字数,待修改LCALL PLAYMOV COM,#91HMOV DPTR,#MENU_SHI2MOV R2,#10LCALL PLAYMOV COM,#89HMOV DPTR,#MENU_SHI3MOV R2,#10LCALL PLAYMOV COM,#99HMOV DPTR,#MEN
33、U_SHI4MOV R2,#10LCALL PLAYMOV COM,#80H ;游标地址设定ACALL WRILCALL DELAYMOV COM,#0FH ;显示打开,光标关,反白显示关ACALL WRILCALL DELAYLJMP LKKEYSCAN_J:LJMP KEYSCAN;若游标在90H处,说明选中得是图片,接下来则显示图片的菜单PICTURE:CJNE R1,#90H,ZHIPIC_MENU_SHOW:MOV COM,#81HMOV DPTR,#MENU_PIC1 ;图片名的字数,待修改MOV R2,#6LCALL PLAYMOV COM,#91HMOV DPTR,#MENU_
34、PIC2MOV R2,#6LCALL PLAYMOV COM,#89HMOV DPTR,#MENU_PIC3MOV R2,#6LCALL PLAYMOV COM,#99HMOV DPTR,#MENU_PIC4MOV R2,#6LCALL PLAYMOV COM,#80H ;游标地址设定ACALL WRILCALL DELAYMOV COM,#0FH ;显示打开,光标关,反白显示关ACALL WRILCALL DELAYLJMP SCAN_PIC;若游标在88H处,说明选中得是制作人,接下来则显示制作人的菜单ZHI:CJNE R1,#88H,KEYSCAN_JZHI_MENU_SHOW:MOV
35、COM,#81HMOV DPTR,#MENU_ZHI1 ;制作人名的字数,待修改MOV R2,#6LCALL PLAYMOV COM,#91HMOV DPTR,#MENU_ZHI2MOV R2,#6LCALL PLAYMOV COM,#80H ;游标地址设定ACALL WRILCALL DELAYMOV COM,#0FH ;显示打开,光标关,反白显示关ACALL WRILCALL DELAYLJMP KEYSCAN_J ; 键盘扫描-诗歌菜单LK:MOV R1,#80HSHI_KEY1:MOV P2,#11111111BMOV A,P2CLR CSUBB A,#11111110BJZ SHI_
36、UPMOV A,P2CLR CSUBB A,#11111101BJZ SHI_DOWNMOV A,P2CLR CSUBB A,#11111011BJZ SHI_BACKMOV A,P2CLR CSUBB A,#11110111BJZ SHI_SURELJMP SHI_KEY1;向上选择诗歌SHI_UP: ;确定游标位置ACALL DELAY10 ;延时10毫秒消触点抖动 JB P2.0,SHI_KEY1 ;去除干扰信号JNB P2.0,$ ; 等待按键松开CJNE R1,#80H,SHI_UP1MOV R1,#98HLJMP SHI_YOUBIAO_WRISHI_UP1:CJNE R1,#90
37、H,SHI_UP2 MOV R1,#80H LJMP SHI_YOUBIAO_WRISHI_UP2:CJNE R1,#88H,SHI_UP3 MOV R1,#90H LJMP SHI_YOUBIAO_WRISHI_UP3:CJNE R1,#98H,SHI_KEY1 MOV R1,#88H LJMP SHI_YOUBIAO_WRI;向下选择诗歌SHI_DOWN: ;确认游标位置ACALL DELAY10 ;延时10毫秒消触点抖动JB P2.1,SHI_KEY1 ;去除干扰信号JNB P2.1,$ ;等待按键松开 CJNE R1,#80H,SHI_DOWN1 MOV R1,#90H LJMP SH
38、I_YOUBIAO_WRISHI_DOWN1: CJNE R1,#90H,SHI_DOWN2 MOV R1,#88H LJMP SHI_YOUBIAO_WRISHI_DOWN2: CJNE R1,#88H,SHI_DOWN3 MOV R1,#98H LJMP SHI_YOUBIAO_WRISHI_DOWN3: CJNE R1,#98H,SHI_KEY1 MOV R1,#80HSHI_YOUBIAO_WRI: MOV COM,R1 ;写游标 LCALL WRI LCALL DELAY MOV COM,#0FH LCALL WRI LCALL DELAY SS1: LJMP SHI_KEY1;返回
39、到主菜单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; 一定要清屏,否则上一层菜单多出来的字也会在这里显示的 CJNE R1,#80H,SHI_SURE1 MOV DPTR,#DAB1 LCALL PLAY1 LJMP SHI_NEXTSHI_SURE1:
40、CJNE R1,#90H,SHI_SURE2 MOV DPTR,#DAB2 LCALL PLAY1 LJMP SHI_NEXTSHI_SURE2: CJNE R1,#88H,SHI_SURE3 MOV DPTR,#DAB3 LCALL PLAY1 LJMP SHI_NEXTSHI_SURE3: CJNE R1,#98H,SHI_NEXT MOV DPTR,#DAB4 LCALL PLAY1;阅读诗歌时的键盘扫描SHI_NEXT: NOPSHI_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
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922