基于单片机的单词记忆测试器的课程方案设计书1

上传人:B**** 文档编号:51480733 上传时间:2022-01-26 格式:DOCX 页数:38 大小:572.61KB
返回 下载 相关 举报
基于单片机的单词记忆测试器的课程方案设计书1_第1页
第1页 / 共38页
基于单片机的单词记忆测试器的课程方案设计书1_第2页
第2页 / 共38页
基于单片机的单词记忆测试器的课程方案设计书1_第3页
第3页 / 共38页
点击查看更多>>
资源描述
第一章单词记忆测试器的设计 .11.1硬件模块设计 .21.1.1中央处理模块 .21.1.2显示模块的硬件部分介绍 .31.1.3矩阵键盘 .61.2电路原理图设计 .61.3软件程序设计 .81.3.1程序设计思路 .81.3.2矩阵键盘的程序设计 .81.3.3LCD12864 显示模块的驱动程序 .91.3.4显示字模码的提取 .111.3系统软件主程序结构及其函数. 131.4软件的仿真 .21第二章结语 .23附录单片机单词记忆测试器C 程序摘要本论文的研究对象是基于单片机的单词记忆测试器的设计,此单词记忆测试器可以实现单词的输入并判断输入的单词是否正确,单词背完后给出正确率。该单片机单词记忆测试器为在现实生活中有着广泛的应用,特别是对学习英语方面有很大的作用。本设计以 STC89C52 单片机为处理器,以 12854 点阵液晶屏为显示器件,并使用 56 距阵键盘为输入设备,实现了功能全面的人机界面和高速的数据处理功能,利用单片机片上 FLASH ROM,可储存 10-20 个英文单词和汉字,作为记忆测试用。关键词: 单片机单词记忆测试器AT89C5212864液晶屏1第一章单词记忆测试器的设计1.1 硬件模块设计本单词记忆测试器系统硬件部分分为三个模块:中央处理模块、显示模块、键盘输入模块。系统模型图如下:56 矩单片机LCD12864阵 键 盘中央处液晶显示模模块理模块块图 1 系统硬件模块图中央处理模块中央处理模块选用STC89C52 单片机系统组成,电路包括:STC89C52 单片机、复位电路、时钟振荡电路。STC89C52 单片机需在复位电路和时钟振荡电路组成的最小系统下工作,单片机引脚图如图 2,外围电路如图3 和图 4 所示,时钟电路采用频率采用为12MHZ 的晶振, C1、C2 与晶振构成了外部振荡电路。复位电路采用电解电容与电阻串联,当系统上电时,由于电容充电,在RST 端会产生一个高电平,高电平持续的时间由电容和电阻的值决定,当RESET 信号为低电平时,系统为工作状态。STC89C52 具有 ISP 的功能,可以通过串行口直接将程序下载到单片机内。在下载程序状态下,RESET 信号被拉高,系统进行程序下载,待程序下载完毕后,RESET 重新拉低。用户可以通过切断电源进行手动复位,或者通过重新下载新的程序进行复位。图 2 STC89C52 的引脚排列图2图 3 时钟电路图图 4 复位电路图显示模块的硬件部分介绍显示模块采用单色点阵液晶屏12864 模块,该模块在点阵液晶屏基础上集成了控制器kS0108, 用户只需设计好接口程序,就可让模块显示出各种字符和图像。通常我们所见到的 LCD 模块,分为几部分: LCM(玻璃)、背光、 PCB 板;而背光和PCB板部分其实是可有可无的,视具体的 LCD 模块而定。点阵的 LCD 模块按照驱动控制器的集成方式,大可分为两种: COB 和 COG;COG 其实就是将驱动控制 IC 集成到了玻璃里面,这样的而后面的 PCB 板上其实只是一些驱动控制 IC 无法集成的电容电阻而已; COB 也就是把驱动控制 IC 焊接在 LCD 模块后面的 PCB 板上。12864 为一块 128X64 点阵的 LCD 显示模块,模块上的 LCM 采用 COG 技术将控制(包括显存)、驱动器集成在 LCM 的玻璃上,接口简单、操作方便;为方便用户的使用,在 LCM 的基础上设计了 12864 模块,将模块所必需的外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。 12864 模块与各种 MCU 均可进行方便简单的接口操作。LCD 的接口:一般来说, LCD 模块(带有驱动控制器)的接口多为总线的接口,不是6800 就是8080 ,或者是串行 SPI(及类 SPI 时序);除了这些总线的端口外,有的LCD 模块还引出了一些功能性的端口,如偏压调节输入、负压输出等。3图 5 12864 模块接口定义表显示 RAM 区映射情况:对于 LCD 模块,了解清楚驱动控制IC 当中的显存与 LCD 玻璃上的点的对应关系是非常重要的,这是编写LCD 的驱动程序的基础。 12864 液晶显示模块的显示器(玻璃)上的显示点与驱动控制芯片中的显示缓存RAM 是一一对应的;驱动控制芯片当中共有65 (8Page x 8 bit+1 )X 132 个位的显示 RAM 区。而显示器的显示点阵大小为64X128 点,所以实际上在液晶显示模块中有用的显示RAM 区为 64 X 128 个位;按 byte 为单位划分,共分为 8 个 Page,每个 Page 为 8 行,而每一行为128 个位(即 128 列)。驱动控制芯片的显示RAM 区每个byte 的数据对应屏上的点的排列方式为:纵向排列,低位在上高位在下;如图5 所示图 5 驱动控制芯片的显示RAM 区412864 液晶显示模块的显示屏上的每一个点都对应有控制器片内的显示缓存RAM 中的一个位,显示屏上64X128 个点分别对应着显示RAM 的 8 个 Page,每一个 Page 有 128个 byte 的空间对应。因此可知显示RAM 区中的一个 Page 空间对应 8 行的点,而该Page中的一个 byte 数据则对应一列( 8 个点)。图 6 为显示 RAM 区与显示屏的点映射图:图 6 显示 RAM 区与显示屏的点映射图行、列地址:用户如要点亮LCD 屏上的某一个点时,实际上就是对该点所对应的显示RAM 区中的某一个位进行置1 操作;所以就要确定该点所处的行地址、列地址。从上图中可以看出,MzL02-12864 液晶显示模组的行地址实际上就是Page 的信息,每一个Page 应有 8 行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page 中的一个Byte 对应的是一列( 8 行,即8 个点),达128 列。可以根据这样的关系在程序中控制LCD 显示屏的显示。注意: MzL02-12864 的显示缓存 RAM 区实际上比模块上的显示器所对应的RAM 区要大;而 LCD 模块具体设置 Page(有时也称页)时,屏上的位置与驱动控制IC 当中的哪里5的 RAM 区对应,还与驱动控制 IC 与屏的连接有关;所以,实际在使用时,请参考所提供的范例设置(主要是设置 COM 反向扫描、 SEG 设置为正向扫描,以此设置方法,则每个Page 中的前三列以及最后一列是不对应在LCD 屏幕上的)。矩阵键盘要测试记忆的单词,就要有字母的输入接口,本接口设计为56 矩阵键盘输入,接入单片机的 P1 口和 P3 口进行键盘扫描。最大程度地提高了单片机IO 口的利用率,设计共30 个接键,包括了26 个英文字母以及四个功能键:“确定 ”、 “不认识 ”、“上一个 ”、 “下一个”。矩阵键盘如图 10 ,由 30 个轻触按键按照6 行 5 列排列,连接到P1、P3 端口。其扫描的原理是:先将行线所接的单片机的 I/O 口作为输出端,而列线所接的 I/O 口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。然后再将行线所接的单片机的 I/O 口作为输入端,而列线所接的 I/O 口则作为输出,以相同的方法读一次端口,程序中就可识别是啊个坐标的按键按下了。图 7 5 6矩阵键盘1.2 电路原理图设计电路原理图设计使用集原理图设计、 PCB 设计、电路仿真功能为一体的 PROTUES 软件。以该软件设计的电路原理图图 8。6图 8 单片机单词记忆测试器电路原理图电路设计参数:(1) C1 C2 为 20-30PF 瓷片电容,与 12M 晶振组成时钟振荡电路;(2) 复位电路使用R1 为 10K 电阻、 C3 为 10uF 电解电容;(3) 12864 液晶模块与单片机 P0 口连接,因 P0 口为真正的三态门结构,因些作数据总线使用时要外接上拉电阻,可使用 10K 的排阻;(4) 按键如图的行相连,列相连的矩阵接法连入单片机IO 口;(5) 电路的供电为5V 直流电源;(6) D1 为输入错误的状态指示灯,加220 欧限流电阻连到VCC,因为 STC89C51 单片机IO 的电流灌入能力要强于电流输出能力,因此一般使IO 为低电平时点亮LED 灯。71.3 软件程序设计程序设计思路因本系统为模块化设计,为方便软件编写和移植,程序设计采用 C 语言,程序流程图如下:矩阵键盘的程序设计矩阵键盘采用 56 列与行扫描法, P1 口依次接键盘的每一行,而P3 口依次接键盘的每一列,程序开始先令P1 全为高电平, P3 口全为低电平,这样一旦矩阵键盘中有一个键按下时,就会在某一行中出现低电平,而某一列中出现高电平,程序先读P1 口,以检测到有低电平来确定行。再使P1 全为低电平, P3 口全为高电平,再读P3 口,以检测到低电平来确定列。这里还要考虑按键的机械抖动问题,因为按键的机械特性,可能在按下瞬间会有一组抖动的脉冲,一般程序中采用延时方法来去抖动。实现的 C 程序函数如下:/* 键盘扫描程序*/unsigned char kbscan()/键盘扫描uchar hang,lie,key;/P1连行, P3 连列if(P1!=0xFF|P3!=0)/按键去抖动delayms(5);/延时 5msif(P1!=0xFF|P3!=0)switch(P1&0xFF)/P1扫行case 0xFE:hang=5;break; /P1.0为第 6 行8case 0xFD:hang=4;break; /P1.1为第 5 行case 0xFB:hang=3;break; /P1.2为第 4 行case 0xF7:hang=2;break; /P1.3为第 3 行case 0xEF:hang=1;break; /P1.4为第 2 行case 0xDF:hang=0;break; /P1.5为第 1 行P1=0;/P1全低电平P3=0xFF;/P3全高电平switch(P3&0xFF)case 0xFE:lie=4;break; /P1.0为第 5 列case 0xFD:lie=3;break; /P0.5为第 4 列case 0xFB:lie=2;break; /P0.6为第 3 列case 0xF7:lie=1;break; /P0.7为第 2 列case 0xEF:lie=0;break; /P0.7为第 1 列P1=0xFF; /P1 全高电平P3=0; /P3全低电平while(P1!=0xFF|P3!=0);/ 按键松开后才返回值key=tab1hanglie;elsekey=_;/没键按下返回空return (key);显示模块的驱动程序LCD12864 显示模块的程序作为显示部分的底层程序,用户可直接调用其函数来达到驱动和显示功能。主要显示命令和显示的函数说明如下:9清显示屏: void ClearLCD(),将 LCD 上的显示字符清空汉字的显示函数: void hz_disp(unsigned char x,unsigned char y,unsigned charn,unsigned char code * hz,bit flag);其中 X Y 为汉字的起始坐标, n 为字数, hz 为存储汉字字模码(后述)的地址,flag为显示为黑还是白。英文的显示函数为: void en_disp(unsigned char x,unsigned char y,unsigned charn,unsigned char code *asc,unsigned char *string,bit flag);其中其中 X Y 为字母的起始坐标, n 为字数, asc 为存储字形码(后述)的地址,flag为显示为黑还是白。LCD12864 显示一个单词的示例代码如下:en_disp(6,0,8,Asc,correct:,1);/在第 7 行,第 1 列开始显示 correct ;LCD12864 显示一个汉字的示例代码如下:hz_disp(0,48,1,hz1+hz_Num*32,1); /在第 1 行,第 49 列开始显示测试的汉字10开始单片机初始化LCD12864 初始化键盘扫描输入N有按键命令 ?Y执行按键命令确显显定示示键下上一一个个字符比较N输入正确Y显示正确11显示字模码的提取为了使 LCD12864 能够显示用户存储的中文汉字和英文单词,用户必须将要显示的汉字字模及英文字母字模码存入单片机存储器中,因 LCD12864 只能显示点阵图形,因此存储入单片机的字模码必须是通过点阵码转换而成,为了软换更方便,设计使用了字模转换软件实现汉字和英文码的取模。图 9 中英文取字模软件界面例如汉字 “中国 ”,取得的字模码为:/*-文字 :中 -*/0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,/*-文字 :国 -*/0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,120x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,将此码存入单片机程序存储器里,使用液晶显示的函数就可方便地显示汉字或英文字形。本单片机记忆测试系统的程序中将英文字符的字模码表以asc.h 文件形式保存,为节约单片机的 RAM,生成的二进制文件以只读形式储在单片机的FLASH ROM中。4.3 系统软件主程序结构及其函数系统主程序完成主循环和对各模块函数的调用,调用的文件包括:reg52.h 、 asc.h、12864.h ,其中 reg52.h 是 8051 内核单片机的标准头文件,定义了单片机内部各寄存器的地址,使用户编程更方便;asc.h 存储了本单词记忆测试器的单词和中文汉字字模块,供显示函数调用,而12864.h 为 LCD12864 显示屏的底层驱动程序,包括了屏显示的指令函数和显示中英文的函数。在 KEIL uV3 环境下将 主程序文件和 reg52.h 、asc.h、12864.h 放在同一工程工作组中,以便主程序调用,如图 13。13图 10 keil 下的 程序工程文件14主程序的函数:主程序首先进行存储变量的定义:bit ERROR;/输入字符错误标志位,输入错误为1bit result;/输入的最终结果对错的标志位 ,为 0是正确bit verify;/标志按过一次确认键sbit ERR=P27;/P2.7 口接一个指示灯警告输入错误uchar correctNUM; /统计测试正确的单词数 , 即得分uchar codeSL10=4,4,5,3,2,4,4,3,4,3;/ 存储各测试单词的长度,如果输入的单词长度与存储的不同,也为错误为能动态地显示测试的单词,先将要测试的单词存在一个二维数组中,显示了该数组中的字符时, 12864.h 中的显示函数会调用相应字符的字模码( asc.h 中);/*/* 存储要测试的单词,放在ROM 中/*/uchar code S105= tree ,/树rain ,/雨water,/水fly,/飞go,/去fish ,/鱼snow ,/雪eat ,/吃rice ,/米ice,/冰 ;该二维数组为行 * 列 10*5 ,即 10 行 5 列, 10 行表示有 10 个单词,实际根据存储ROM的大小,可以增加单词数;列数表示单词在存储器中占的字符数,以最长单词(5 个字符)定义,不足5 个字符的单词后补空格表示。15前节介绍过键盘的输入是通过矩阵扫描的方法,通过矩阵扫描可使单片机找到按键所在的某行某列,但要得到一个英文字母值,还得在单片机返回的某行某列位置预先定义个字母值,因此 5*6 矩阵键盘的整个返回字母表可定义一个二维数组存储:16/*/*存储键盘的字母值,放在 ROM 中/*/uchar code tab165=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o ,p,q,r,s,t ,u,v,w,x,y,z, 1, 2 , 3 , 4;例如在按下键盘时,单片机返回键盘位置为第二行第三列,就可从上表中查出是对应位置的字母。键盘扫描函数返回的是键值。key=tab1hanglie;进入主程序后,先对 LCD12864 屏进行初始化和清屏操作,然后在 LCD12864 屏上显示单片机单词记忆测试器的静态的图文,需要动态刷新的字符则在主循环中进行。LCD12864_init();/LCD12864 初始化ClearLCD();/ 清屏en_disp(2,1,11,Asc,INPUT WORD:,1); /在第 3 行 第 21 列 显示 INPUT WORD:/ 最后的 “ 1表”示显示为白底黑字,如是 0 则为黑底白字,即反显en_disp(4,1,1,Asc,1);/在第 5 行,第 5 列开始显示 en_disp(6,0,8,Asc,correct:,1);/在第 7 行,第 1 列开始显示 correct:en_disp(6,80,5,Asc,00/10,1);/在第 7 行 第 81 列显示 00/10LCD12864 的显示效果如下,此时系统进入单词输入测试就绪状态。17在系统进入单词输入测试就绪状态后,主程序即进入while(1) 的主循环中,循环进行键盘扫描,并判断键盘输入值,再与待测试的单词进行比较,如果输入的字符和字符长度均与被测试的单词一致,则显示correct 加 1,即为加 1 分,并进入下一个单词的测试,测试完 10 个单词后,重新进入第 1 个单词的测试。主程序的主循环部分代码及注释如下:while(1)KeyNumiword=kbscan();/ 进行矩阵按键扫描,得到扫描键盘的输入值hz_disp(0,48,1,hz1+hz_Num*32,1);/ 在第 1 行,第 49 列开始显示测试的汉字temp0=(hz_Num+1)/10+0x30;/ 将十进制数转换为ASCII 字符/temp数组用来存储测试的序号temp1=(hz_Num+1)%10+0x30;/ 算出测试汉字的序号的第一位和第二位en_disp(0,20,1,Asc,:,1); en_disp(0,4,2,Asc,temp,1); if(KeyNumiword!=_)/ 在第 1行第21 列显示:/ 在第 1行第5列显示测试序号/ 键盘有按键按下,无按下返回的是 _if(KeyNumiword=1)/如果按下了确定键if(SLhz_Num=iword&verify)/ 输入长度等于测试单词的长度,则正确,verify 表示按下了确认后有效一次18correctNUM+=1;if(correctNUM10)correctNUM=10; /最多 10 个正确的verify=0;/标志位清零hz_Num+;/测试下一个单词if(hz_Num=10) hz_Num=0;/ 最多设 10 个单词temp0=(correctNUM)/10+0x30;/ 将十进制数转换为ASCII 字符temp1=(correctNUM)%10+0x30;/ 算出测试汉字的序号的第一位和第二位en_disp(6,80,2,Asc,temp,1);/在第 7 行 第 81 列iword=0;Nword=0;en_disp(4,16,8,Asc,1);/在第 5 行,第 17 列开始显示else if(KeyNumiword=2|KeyNumiword=4)/ 如果按下了 “不认识 ”或“下一个 ”键 ,直接跳到下一个单词result=0;/ 跳下一个时错误灯灭ERROR=0;hz_Num+;/测试下一个单词if(hz_Num=10) hz_Num=0;/ 最多设 10 个单词iword=0;Nword=0;en_disp(4,16,8,Asc,1);/在第 5 行,第 17 列开始显示else if(KeyNumiword=3)/如果按下了 “上一个 ”键 ,直接跳到上一个单词19result=0;/ 跳下一个时错误灯灭ERROR=0;/ 测试下一个单词if(hz_Num=0) hz_Num=10;/ 最多设 10 个单词hz_Num-;iword=0;Nword=0;en_disp(4,16,8,Asc,1);/在第 5 行,第 17 列开始显示else if(Shz_Numiword=KeyNumiword)/输入的字符与测试的标准字符比较 temp0=KeyNumiword;ERROR=0;/ 正确就标志位置0en_disp(4,Nword+16,1,Asc,temp,1);/在第 5 行,第 17 列开始显示iword+;if(iword=8) iword=0;Nword=iword*8;verify=1;else temp0=KeyNumiword;ERROR=1;/ 错误就置 1en_disp(4,Nword+16,1,Asc,temp,1);/在第 5 行,第 17 列开始显示iword+;if(iword=8) iword=0;Nword=iword*8;result=ERROR|result;/0 表示结果正确ERR=!result;/ 错误指示灯204.4 软件的仿真软件的仿真使用protues 环境,在画好 protues 原理图后,将 keil 环境下生成的目标文件 HEX 文件载入 protues 中,即可进行软件仿真。因仿真软件中没有STC89C52 元件 ,故可使用完全兼容的AT89C52 单片机仿真。此处加入HEX文件晶振选用12M仿真的结果:21输入错误时黄色LED 报警:22第二章结语由于本人对单片机的认识有限,在设计过程中遇到不少困难。在设计程序方面出现不少问题,所以用了比较简单的程序运算。虽然花了几个月的时间尽力把毕业做好,但由于本人能力的原因,整个系统做的并不理想,但是在整个设计的过程中我积累了不少的经验,学会一些系统的应用。我一直认为毕业设计重在过程。确实是这样的。这个毕业设计的过程,其实也就是我不断学习的过程。在这个过程中我学到了许多新的知识,能力也提高了不少。这些收获给我带来的喜悦远远超过了完成毕业设计时给我带来的喜悦。我相信,以后再做这些设计的时候一定还可以做得更好。23参考文献1 何立民主编 . 单片机应用文集 . 北京 :北京航空航天大学出版社, 19942 王福瑞主编 . 单片微机测控系统设计大全 . 北京:北京航空航天大学出版社,19993 夏继强 沈德金主编 . 单片机实验与实践教程 . 北京:北京航空航天大学出版社, 20024 李朝青主编 . PC 机及单片机数据通信技术 . 北京:北京航空航天大学出版社, 20015 马忠梅主编 . 单片机的 c 语言应用程序设计 .北京 :北京航空航天大学出版社, 20036 沈美明、温冬婵主编 .IBM-PC 汇编语言程序设计 .北京:清华大学出版社 20037 何立民主编 . MCS-51 系列单片机应用系统设计 .北京:北京航空航天大学出版社 20018 刘庆江 张晓光 . 一种实用的集成芯片测试仪的设计 . 中国矿业大学信息与电气工程学院 , 200524附录/*-*/#define LCD_OFF 0x3E#define LCD_ON 0x3F#define Add_X 0xB8/the start address of the page 0 ;(07)#define Add_Y 0x40/the start address of the Y counter ; (064)#define Add_Z 0xC0/the start address of the DDRAM ; (064)/*-*/#define LCD12864_DATA_PORT P0sbit LCD12864_EN=P24;sbit LCD12864_RW=P23;/0:write ; 1:readsbit LCD12864_RS=P22;/0:the command .1:the datasbit LCD12864_CS_L=P21;/select the left of the lcd when 1sbit LCD12864_CS_R=P20;sbit LCD12864_RST=P25;/*-*/void delayus(unsigned int us)while(us-);void delayms(unsigned ms)unsigned int i,j;for (i=0;ims;i+)for (j=0;j1000;j+);/*-select the LCD-*/void LCDSel(unsigned char sel)switch(sel)case 0: LCD12864_CS_L=0;LCD12864_CS_R=0;break;case 1: LCD12864_CS_L=1;LCD12864_CS_R=0;break;/leftcase 2: LCD12864_CS_L=0;LCD12864_CS_R=1;break;/rightdefault:;/*-*/void WaitLCD()unsigned char flag;LCD12864_DATA_PORT=0xFF;LCD12864_RW=1;LCD12864_RS=0;LCD12864_EN=1;LCD12864_EN=1;LCD12864_EN=0;LCD12864_DATA_PORT=0xFF;LCD12864_RW=1;LCD12864_RS=0;LCD12864_EN=1;do/ 读有效数据flag=LCD12864_DATA_PORT;LCD12864_DATA_PORT=0xFF; while(flag&0x80)=1);/ 读 BUSY信号 / 仅当第 7 位为 0 时才可操作LCD12864_EN=0;/*/*-*/void WriteDatToLCD12864(unsigned char dat)WaitLCD();LCD12864_RS=1;/the dataLCD12864_RW=0;/writeLCD12864_DATA_PORT=dat;LCD12864_EN=1;LCD12864_EN=0;/*-*/void WriteCmdToLCD12864(unsigned char cmd)WaitLCD();LCD12864_RS=0;/the commandLCD12864_RW=0;/writeLCD12864_DATA_PORT=cmd;LCD12864_EN=1;LCD12864_EN=0;/*-*/unsigned char ReadDatFromLCD12864(void)unsigned char dat;WaitLCD();LCD12864_DATA_PORT=0xFF;/ 读空操作LCD12864_RS=1;/the dataLCD12864_RW=1;/readLCD12864_EN=1;LCD12864_EN=1;LCD12864_EN=0;LCD12864_DATA_PORT=0xFF; LCD12864_RS=1; /the data LCD12864_RW=1; /read LCD12864_EN=1; dat=LCD12864_DATA_PORT; LCD12864_EN=0; return dat;/ 来读有效数据/*-*/from the chip manualvoid LCD12864_init(void)LCD12864_RST=0;delayus(50);LCD12864_RST=1;LCDSel(0);/left and rightWriteCmdToLCD12864(LCD_OFF);WriteCmdToLCD12864(LCD_ON);/x:07void SetX(unsigned char x)/写入 X 的地址WriteCmdToLCD12864(Add_X+x);/y:0127void SetY(unsigned char y)WriteCmdToLCD12864(Add_Y+y);/z:063void SetZ(unsigned char z)WriteCmdToLCD12864(Add_Z+z);void ClearLCD()
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!