基于proteus的51单片机仿真lcd160241093.pdf

上传人:得** 文档编号:79400326 上传时间:2023-03-21 格式:PDF 页数:11 大小:699.06KB
返回 下载 相关 举报
基于proteus的51单片机仿真lcd160241093.pdf_第1页
第1页 / 共11页
基于proteus的51单片机仿真lcd160241093.pdf_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《基于proteus的51单片机仿真lcd160241093.pdf》由会员分享,可在线阅读,更多相关《基于proteus的51单片机仿真lcd160241093.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、.基于 proteus 的 51 单片机仿真实例六十三、字符液晶LCD1602 显示单个字符实例 1、字符液晶 LCD1602 显示字符的过程:使用 1602 型液晶显示字符必须解决三个问题:代县字符 ASCII 标准妈的产生;液晶显示模式的设置;字符显示位置的指定。1)字符 ASCII 标准码产生 常用字符的标准 ASCII 码无需人工产生,在程序中定义字符常量或字符串常量时,C 语言在编译后会自动产生其标准 ASCII 码。职演讲澄澄的标准 ASCII 码通过单片机的 IO 口送入数据线使用存储器(DDRAM),部控制线路就会自动将字符传送到显示器上。2)液晶显示模式的设置 要让液晶显示字

2、符,必须对有无光标、光标的移动方向、光标是否闪烁及字符的移动方向等进行设置。这样才能获得所需的显示效果。1602 液晶显示模式的设置是通过控制指令对部的控制器进行控制而实现的。常用的控制指令需要查询液晶的数据手册获得。3)字符显示位置的指定 想要在液晶的某一位置显示特定的字符,则必须指定其显示位置,显示位置的地址需要查询 1602 型 LCD 部地址获得。2、1602 型 LCD 的读写操作 LCD 是一个慢速显示器件,所以在写每一条指令之前一定要先读取 LCD 的忙碌状态(当然也可以通过加入一个比较长的延时时间来避开液晶的忙状态,但是这种方法并不合理)。如果 LCD 正忙于处理其他指令,就需

3、要等待处理结束;如果不忙,再执行写操作。为此,.1602 型液晶专门设了一个忙碌标志位 BF,该位位于从 1602 读取的 8 位数据的最高位,如果 BF 为 0,表示 LCD 处于空闲状态,反之则处于忙碌状态。3、1602 液晶显示一个字符的操作过程为:读状态-写指令-写数据-自动显示。1)读状态 要将待显字符写入液晶模块,首先就要检测 LCD 是否忙碌,只有在 LCD 处于空闲状态的时候,才能够将待显字符写入 2)写指令 写指令包括写显示模式控制指令和写入地址。3)写数据 写数据实际上是将待显字符的标准 ASCII 码写入 LCD 的数据显示存储器(DDRAM)4)自动显示 数据写入液晶模

4、块后,字符产生器(CGROM)将自动读出字符的字形点阵数据,并将字符显示在液晶屏上,这个过程由 LCD 自动完成,无需人工干预 4、1602 液晶的初始化过程 使用 1602 液晶显示字符之前,需要对其显示模式进行初始化设置,过程如此下:1)延时 15ms,给液晶一段反应时间 2)写指令 0 x38H,尚未开始工作,所以这里不需要检测忙信号,将液晶的显示模式设置为“16*2 显示,5*7 点阵,8 位数据接口”3)延时 5ms 4)写指令,不需要检测忙信号 5)延时 5ms.6)写指令,不需要检测忙信号 7)延时 5ms(连续设置 3 次,确保设置成功)8)以后每次写指令,读/写数据操作都要检

5、测忙信号 5、在 keil c51 中新建工程 ex51,编写如下程序代码,编译并生成 ex51.hex 文件/用 LCD 显示字符A#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件 sbit RS=P20;/寄存器选择位,将 RS 位定义为 P2.0 引脚 sbit RW=P21;/读写选择位,将 RW 位定义为 P2.1 引脚 sbit E=P22;/使能信号位,将 E 位定义为 P2.2 引脚 sbit BF=P07;/忙碌标志位,将 BF 位定义为 P0.7 引脚/*函数功能:延时 1ms(3j+2)*i=(333+2)10=1010(

6、微秒),可以认为是 1 毫秒*/void delay1ms()unsigned char i,j;for(i=0;i10;i+)for(j=0;j33;j+).;/*函数功能:延时若干毫秒 入口参数:n*/void delay(unsigned char n)unsigned char i;for(i=0;in;i+)delay1ms();/*函数功能:判断液晶模块的忙碌状态 返回值:result。result=1,忙碌;result=0,不忙*/unsigned char BusyTest(void)bit result;RS=0;/根据规定,RS 为低电平,RW 为高电平时,可以读状态 R

7、W=1;.E=1;/E=1,才允许读写 _nop_();/空操作 _nop_();_nop_();_nop_();/空操作四个机器周期,给硬件反应时间 result=BF;/将忙碌标志电平赋给 result E=0;return result;/*函数功能:将模式设置指令或显示地址写入液晶模块 入口参数:dictate*/void WriteInstruction(unsigned char dictate)while(BusyTest()=1);/如果忙就等待 RS=0;/根据规定,RS 和 R/W 同时为低电平时,可以写入指令 RW=0;E=0;/E 置低电平(根据表 8-6,写指令时,E

8、为高脉冲,./就是让 E 从 0 到 1 发生正跳变,所以应先置0 _nop_();_nop_();/空操作两个机器周期,给硬件反应时间 P0=dictate;/将数据送入 P0 口,即写入指令或地址 _nop_();_nop_();_nop_();_nop_();/空操作四个机器周期,给硬件反应时间 E=1;/E 置高电平 _nop_();_nop_();_nop_();_nop_();/空操作四个机器周期,给硬件反应时间 E=0;/当 E 由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:指定字符显示的实际地址 入口参数:x*/.void WriteAddress(unsigne

9、d char x)WriteInstruction(x|0 x80);/显示位置的确定方法规定为80H+地址码 x /*函数功能:将数据(字符的标准 ASCII 码)写入液晶模块 入口参数:y(为字符常量)*/void WriteData(unsigned char y)while(BusyTest()=1);RS=1;/RS 为高电平,RW 为低电平时,可以写入数据 RW=0;E=0;/E 置低电平(根据表 8-6,写指令时,E 为高脉冲,/就是让 E 从 0 到 1 发生正跳变,所以应先置0 P0=y;/将数据送入 P0 口,即将数据写入液晶模块 _nop_();_nop_();_nop_

10、();_nop_();/空操作四个机器周期,给硬件反应时间.E=1;/E 置高电平 _nop_();_nop_();_nop_();_nop_();/空操作四个机器周期,给硬件反应时间 E=0;/当 E 由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:对 LCD 的显示模式进行初始化设置*/void LcdInitiate(void)delay(15);/延时 15ms,首次写指令时应给 LCD 一段较长的反应时间 WriteInstruction(0 x38);/显示模式设置:162 显示,57 点阵,8 位数据接口 delay(5);/延时 5ms WriteInstructi

11、on(0 x38);delay(5);WriteInstruction(0 x38);.delay(5);WriteInstruction(0 x0f);/显示模式设置:显示开,有光标,光标闪烁 delay(5);WriteInstruction(0 x06);/显示模式设置:光标右移,字符不移 delay(5);WriteInstruction(0 x01);/清屏幕指令,将以前的显示容清除 delay(5);/主函数 void main(void)LcdInitiate();/调用 LCD 初始化函数 WriteAddress(0 x07);/将显示地址指定为第 1 行第 8 列 WriteData(A);/将字符常量A写入液晶模块 /字符的字形点阵读出和显示由液晶模块自动完成 6、在 proteus 中新建仿真文件 ex51.dsn,电路原理图如下所示.7、将 ex51.hex 文件载入 at89c51 中,启动仿真,观察运行结果。下图是程序运行结果。.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁