项目六 1602液晶显示计数器制作_第1页
项目六 1602液晶显示计数器制作_第2页
项目六 1602液晶显示计数器制作_第3页
项目六 1602液晶显示计数器制作_第4页
项目六 1602液晶显示计数器制作_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、高等教育出版社Higher Education Press高等教育出版社Higher Education Press1602液晶简介 所谓所谓16021602就是指它的显示内容为就是指它的显示内容为16X216X2,即显示,即显示两行,每行两行,每行1616个字符。个字符。1602LCD1602LCD模块带有背光光源,模块带有背光光源,并行接口,可以与单片机并行接口,可以与单片机I/OI/O口直接相连。口直接相连。高等教育出版社Higher Education Press项目纲要任务一 1602液晶显示字符任务二 1602液晶显示计数器制作高等教育出版社Higher Education Pre

2、ss任务一 1602液晶显示字符(一)任务要求(一)任务要求 使用使用YL-236YL-236单片机实训考核装置显示模块中的单片机实训考核装置显示模块中的1602LCD1602LCD,上电后液晶屏第一行居中显示字符,上电后液晶屏第一行居中显示字符WelcomeWelcome,第,第二行居中显示字符二行居中显示字符2013-05-012013-05-01。显示界面。显示界面如下图所示如下图所示。高等教育出版社Higher Education Press任务一 1602液晶显示字符实现本任务的实现本任务的方法:方法: 可以采用前面可以采用前面LEDLED点阵显示的方法,建立显示缓冲区,将点阵显示的

3、方法,建立显示缓冲区,将要显示的内容在显示缓冲区中定义,扫描函数负责将显示缓要显示的内容在显示缓冲区中定义,扫描函数负责将显示缓冲区中的内容送入冲区中的内容送入DDRAMDDRAM,其余全部由显示屏内部电路进行扫,其余全部由显示屏内部电路进行扫描显示。实现的方法这种方法看起来是多进行了一次缓冲描显示。实现的方法这种方法看起来是多进行了一次缓冲(因为(因为1602LCD1602LCD已经有内部的显存了),但比较直观,容易理已经有内部的显存了),但比较直观,容易理解;还有一种方法就是直接根据字符的位置,由显示函数直解;还有一种方法就是直接根据字符的位置,由显示函数直接将要显示的字符送入缓存中相应的

4、位置。本项目采用前面接将要显示的字符送入缓存中相应的位置。本项目采用前面一种方法一种方法。(二)任务分析(二)任务分析高等教育出版社Higher Education Press任务一 1602液晶显示字符2. 1602液晶显示模块知识液晶显示模块知识(1 1)模块外形及引脚)模块外形及引脚 YL-236YL-236装置上装置上16021602液晶结构示意图液晶结构示意图高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(1 1)模块外形及引脚)模块外形及引脚16021602液晶引脚及其功能液晶引脚及其功

5、能引脚号名称输入/输出作用1Vss电源负端(0V)2Vdd电源正端(+5V)3V0对比度调节4RS输入数据/指令寄存器选择端RS=0,输入指令;RS=1,输入数据。5R/W输入读写选择端R/W=0,写操作;R/W,读操作。6E输入使能信号,下降沿触发7-14DB0-DB7输入/输出数据总线从低位到高位15LEDA背光电源正端(+5V)16LEDK背光电源负端(0V)高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(2 2)模块显示)模块显示字符原理字符原理LCD控制器VDDVSSV0RSR/WDB0-

6、DB7LCD驱动器LCD显示 模块内部由三部分组成,控制器和驱动器往往由专用的集成电路完成,大部分都是HD44780或其兼容的芯片。HD44780主要由DDRAM、CGROM等部分组成。高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(2 2)模块显示)模块显示字符原理字符原理 DDRAM为数据显示RAM(Data Display RAM),用以存放要LCD显示的数据,能存储80个字符。只要将标准的ASC码放入DDRAM,内部控制线路就会自动将数据传送到显示器上,并显示出该ASC码对应的字符。显示位置

7、序号显示位置序号1 2 3 4 5 6 7 。39 40DDRAMDDRAM地地 址址第一行第一行00 01 02 03 04 05 06 。26 27第二行第二行40 41 42 43 44 45 46 。66 67注:如果要在LCD1602屏幕的第一行第二列显示一个P字,就要向DDRAM的01H地址写入“P”字的代码0X50就行了。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址,所以在后面写程序的时候注意第二行的位置是从40开始的。另外需要注意的是:我们往DDRAM里的01H地址处送一个数据,如0 x50(P的代码)并不能显示P出来,原因就是

8、如果你要想在DDRAM的01H地址处显示数据,则必须将01H加上80H,即81H,若要在DDRAM的02H处显示数据,则必须将02H加上80H即82H。依次类推。高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(2 2)模块显示)模块显示字符原理字符原理 CGROMCGROM为字符产生器为字符产生器ROMROM(Character Generator ROMCharacter Generator ROM),),它存储了由它存储了由8 8位字符码生成的位字符码生成的192192个个5 5点阵字符和点阵字

9、符和3232种种5 51010点阵字符。点阵字符。8 8位字符编码和字符的对应关系位字符编码和字符的对应关系(内置字符集)如图所示。每一个(内置字符集)如图所示。每一个字符都有一个固定的代码,比如大字符都有一个固定的代码,比如大写的英文字母写的英文字母“A A”的代码是的代码是01000001B01000001B(0X410X41),显示时模块把),显示时模块把地址地址0X410X41中的点阵字符图形显示出中的点阵字符图形显示出来,我们就能看到字母来,我们就能看到字母“A A”了。了。高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602

10、液晶显示模块知识液晶显示模块知识模块与单片机硬件接口电路(3 3)模块的使用)模块的使用硬件接口电路硬件接口电路高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(3 3)模块的使用)模块的使用模块控制指令模块控制指令指令名称指令名称控制信控制信号号指令代码指令代码功能功能RSRSR/WR/W D7 D6 D5 D4 D3 D2 D1 D0D7 D6 D5 D4 D3 D2 D1 D0显示模式设置显示模式设置0 00 00 0 1 1 1 0 0 00 0 1 1 1 0 0 0设置设置16X216X2

11、,5X75X7点阵,点阵,8 8位数据位数据显示开关控制显示开关控制0 00 00 0 0 0 1 D C B0 0 0 0 1 D C B设置显示、光标、闪烁开关:设置显示、光标、闪烁开关:D:D:为为1 1开显示;为开显示;为0 0关显示关显示C:C:为为1 1显示光标;为显示光标;为0 0不显示光标不显示光标B:B:为为1 1光标闪烁;为光标闪烁;为0 0不显示光标不显示光标输入模式控制输入模式控制0 00 00 0 0 0 0 1 N S0 0 0 0 0 1 N S设置光标、显示画面移动方向设置光标、显示画面移动方向N:N:为为1 1,读写一个字符后,地址指针加,读写一个字符后,地址

12、指针加1 1,光标加,光标加1 1;为为0 0,读写一个字符后地址指针减,读写一个字符后地址指针减1 1,光标减,光标减1 1。S:S:为为1 1,写入一个字符后整屏左移(,写入一个字符后整屏左移(N=1N=1)或右移)或右移(N=0N=0);为);为0 0,写一个字符整屏显示不动。,写一个字符整屏显示不动。读数据读数据1 11 1数据数据从从DDRAMDDRAM中读取数据中读取数据写数据写数据1 10 0数据数据对对DDRAMDDRAM进行写数据进行写数据清屏清屏0 00 00 0 0 0 0 0 0 10 0 0 0 0 0 0 1清除显示器的内容,光标到左上角清除显示器的内容,光标到左上

13、角光标归位设定光标归位设定0 00 00 0 0 0 0 0 1 0 0 0 0 0 0 1 * *地址计数器清地址计数器清0 0,DDRAMDDRAM数据不变。数据不变。* *表示为表示为0 0或或1 1。高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(3 3)模块的使用)模块的使用模块指令操作时序模块指令操作时序高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(3 3)模块的使用)模块的使用驱动函数驱动

14、函数void delay(uint us); /短延时函数声明void delay_ms(uint ms); /毫秒级延时函数声明void wcmd_1602(uchar cmd); /写命令到LCD函数声明void wdat_1602(uchar dat); /写数据到LCD函数声明void init_1602(); /初始化函数声明void disp_one(uchar x, uchar y,uchar dispbuf);/到指定位置显示单个字符的函数声明void disp_mul(uchar x, uchar y,uchar code *dispbuf);/到指定的位置显示多个字符的函数

15、声明高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(3 3)模块的使用)模块的使用驱动函数驱动函数/*向LCD写入命令*/void wcmd_1602(uchar cmd)delay(60); /延时,不检测忙信号 E=0; /初始状态E=0 RS=0; /初始状态RS=0 RW=0; /初始状态RW=0 _nop_(); /极短延时 DATAPORT=cmd; /单片机给出有效的指令数据 _nop_(); /极短延时 _nop_(); E=1; /产生E下降沿执行命令写入 _nop_(); _no

16、p_(); _nop_(); E=0; _nop_();高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(3 3)模块的使用)模块的使用驱动函数驱动函数/*到指定的位置显示字符*/void disp_one(uchar x, uchar y,uchar dispbuf)y&=0 x01; /限制行数y不能大于1x&=0 x0f; /限制1行字符数x不能大于15if(y=1) /如果在第二行则字符地址从0 x40 x|=0 x40;x|=0 x80; /设置地址指针wcmd_1602(x); /写地址码

17、wdat_1602(dispbuf); /写数据高等教育出版社Higher Education Press任务一 1602液晶显示字符2.16022.1602液晶显示模块知识液晶显示模块知识(3 3)模块的使用)模块的使用驱动函数驱动函数/*到指定的位置显示多个字符*/void disp_mul(uchar x, uchar y,uchar code *dispbuf)uchar len, i;len=strlen(dispbuf); /计算要显示的字符串长度y&=0 x01; /限制X,Y位置x&=0 x0F;if(x=0 x0F) /X坐标小于一行执行显示 for (i=0;ilen;i+

18、) disp_one(x,y,dispbufi); /显示单个字符 x+; 高等教育出版社Higher Education Press任务一 1602液晶显示字符3.C51的库函数简介 C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,要使用库函数,则必须将用到的每个库函数都在相应的头文件(.H)中给出了函数原型声明,即用#include,将有关的头文件包含进来,然后再用户的源文件中就可以直接使用包含的头文件中的库函数了。(1)专用寄存器库函数REG.H 专用寄存器库函数REG.H中定义了所有8052的SFR及其位,定义时都用大写字母。高等教育出版社Higher Educa

19、tion Press任务一 1602液晶显示字符3. C513. C51的库函数简介的库函数简介(2)字符串函数STRING.H 该文件中包括了对字符的复制、比较、移动等函数,使用这些函数可以很方便地对字符串进行处理。例如:strlen函数的函数原型为int strlen (char *src);其功能是返回字符串src中的字符个数,包括结束符。(3)内部函数INTRINS.H 该文件提供了几个最常用的移位操作函数以及空操作等函数。例如:_nop_函数的原型为void _nop_(void),其功能是产生一个MCS-51单片机的NOP(空)指令,实现短暂的延时。高等教育出版社Higher Ed

20、ucation Press任务一 1602液晶显示字符(三)硬件电路(三)硬件电路1602液晶显示字符电路原理图高等教育出版社Higher Education Press任务一 1602液晶显示字符(三)硬件电路(三)硬件电路硬件模块接线图高等教育出版社Higher Education Press任务一 1602液晶显示字符(四)参考程序(四)参考程序#include #include 1602LCD.h/*变量定义*/uchar code Onedisp1= Welcome! ;/待显示的字符串uchar code Onedisp2= 2013-05-01 ;/待显示的字符串/*主函数*/v

21、oid main()/定义主函数 init_1602(); /LCD初始化 delay(50); /延时等待稳定 disp_mul(0,0,Onedisp1); /第一行显示Welcome! disp_mul(0,1,Onedisp2);/第二行显示2013-05-01 while(1) ;/无限循环高等教育出版社Higher Education Press任务一 1602液晶显示字符(五)任务实施步骤(五)任务实施步骤1硬件电路连接;2. 打开KEIL软件,通过菜单“项目/新建项目”,新建立一个工程项目1602LCD1,然后再建一个文件名为1602LCD1.C的源程序文件,将上面的参考程序输

22、入并保存,同时将该文件添加到项目中;3.对源程序进行编译和链接,产生目标代码并使用下载器将目标代码写入单片机;4. 通电观察运行结果,如果不能实现任务要求,则修改程序、调整和检查硬件连接,直到1602液晶显示正常;5. 进行扎线,整理。高等教育出版社Higher Education Press谢谢!谢谢!高等教育出版社Higher Education Press任务二 1602液晶显示计数器制作(一)任务要求(一)任务要求 使用YL-236单片机实训考核装置显示模块中的1602LCD制作一个计数器,显示界面如图所示。该计数器具体要求如下:1计数器上电后第一行显示“Count: 000”(在Co

23、unt:后空一格,然后是三位计数器的显示数值从000-999)。第二行显示功能操作键提示字符“S1:+ S2:- S3:R”。2计数器使用三个按键对计数器进行控制。其中:S1键为计数值加键,每按一次,显示的计数值加1;S2为计数值减键,每按一次键,显示的计数值减1;S3键为复位键,按一次,计数器复位,显示的计数值为000。高等教育出版社Higher Education Press任务二 1602液晶显示计数器制作 与本项目的第一个任务相比,LCD1602在显示上的最大区别是第一行中的计数值会随着计数的进行而实时改变;而第一行的count:和第二行显示的字符是固定不变的,这些可以采用与第一个任务

24、相同的方法,调用到指定的位置显示字符的子函数,将要显示的内容送到显示缓冲区。而计数值因为是变量,所以必须定义变量,显示时只要将该变量的实时值拆分后送到相应的显示位置就可以显示所需的内容了。按键等部分实现比较简单,这里就不再多述。(二)任务分析(二)任务分析高等教育出版社Higher Education Press任务二 1602液晶显示计数器制作(三)硬件电路(三)硬件电路液晶显示计数器电路原理图高等教育出版社Higher Education Press任务二 1602液晶显示计数器制作(三)硬件电路(三)硬件电路液晶显示计数器电路模块接线图高等教育出版社Higher Education Press任务二 1602液晶显示计数器制作(四)参考程序(四)参考程序主函数流程图高等教育出版社Higher Education Press任务二 1602液晶显示计数器制作/*变量定义*/uchar Onedisp1 = Count: ; /待显示的字符串uchar code Onedisp2=S1:+ S2:- S3:P;/待显示的字符串uchar code disp_tab=0 x30,0 x31,0 x32,0 x33,0 x34,0

温馨提示

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

评论

0/150

提交评论