- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验八 LCM1602液晶显示实验
姓名 李萍萍 专业 电子信息工程 学号 2011412468
一、实验目的
掌握keil C51软件与protues软件联合仿真调试的方法;
掌握LCM1602液晶模块显示西文的原理及使用方法;
掌握用8位数据模式驱动LCM1602液晶的C语言编程方法;
掌握用LCM1602液晶模块显示数字的C语言编程方法。
二、实验内容
用protues设计一LCM1602液晶显示接口电路。要求利用P0接LCM1602液晶的数据端,P2.0~P2.2做LCM1602液晶的控制信号输入端。P3.0~P3.4口扩展4个功能键K1~K4。
编写程序,实现字符的静态和动态显示,字符为第一行“1.姓名全拼”第二行“2.专业全拼+学号”。液晶的初始化,字符显示程序可参考STC官网的程序文件。
编写程序,利用功能键实现字符的纵向滚动和横向滚动等效果显示,主程序动态显示“My information!”,滚动效果显示4行字符:
姓名全拼
专业全拼+学号
MCS-51 EXP8
LCD DISPLAY
实验原理及步骤:
1. 液晶显示的原理:采用的LCD显示屏都是由不同部分组成的分层结构,位于最后面的一层是由荧光物质组成的可以发射光线的背光层,背光层发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层,液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤在屏幕上显示出来。
2.1602LCD的一般初始化(复位)过程
(1)延时15ms (2)写指令38H(不检测忙信号) (3)延时5ms (4)写指令38H(不检测忙信号) (5)延时5ms (6)写指令38H(不检测忙信号)以后每次写指令 读/写数据操作均需要检测忙信号 (7)写指令38H:显示模式设备 (8)写指令08H:显示关闭 (9)写指令01H:显示清屏 (10)写指令06H:显示光标移动设置 (11)写指令0CH:显示开关及移动光标设置
步骤:
1.用protues设计1602液晶显示接口电路;
2.在KeilC51中编写液晶显示控制程序;编译通过后,与protues联合调试;
3.按动功能键,观察字符及效果是否正确显示。
四、电路设计及调试:
程序:(1)静态: (2)动态:
#includereg51.h #includereg51.h
#define uchar unsigned char #define uchar unsigned char
#define uint unsigned int #define uint unsigned int
uchar code table[]=li ping ping; uchar code table[]=li ping ping;
uchar code table1[]=dianzi2011412468; uchar code table1[]=dianzi2011412468;
sbit lcden=P2^2; sbit lcden=P2^2;
sbit lcdrs=P2^0; sbit lcdrw=P2^1; sbit lcdrs=P2^0; sbit lcdrw=P2^1;
uchar num; uchar num;
void delay(uint z) void delay(uint z)
{ uint x,y; { uint x,y;
for(x=z;x0;x--) for(x=z;x0;x--)
for(y=110;y0;y--); } for(y=110;y0;y--); }
void write_com(uch
文档评论(0)