实验八 LCM1602液晶显示实验_第1页
实验八 LCM1602液晶显示实验_第2页
实验八 LCM1602液晶显示实验_第3页
实验八 LCM1602液晶显示实验_第4页
实验八 LCM1602液晶显示实验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

实验九实验九 LCM1602LCM1602 液晶显示实验液晶显示实验 一 实验目的一 实验目的 1 掌握 keil C51 软件与 protues 软件联合仿真调试的方法 2 掌握 LCM1602 液晶模块显示西文的原理及使用方法 3 掌握用 8 位数据模式驱动 LCM1602 液晶的 C 语言编程方法 二 实验仪器与设备二 实验仪器与设备 1 微机一台 2 keilC51 集成开发环境 3 Protues 仿真软件 三 实验内容三 实验内容 1 用 protues 设计一 LCM1602 液晶显示接口电路 要求利用 P0 接 LCM1602 液晶的数据端 P2 0 P2 2 做 LCM1602 液晶的控制信号输入端 P3 0 P3 4 口扩展 4 个功能键 K1 K4 电路如下 2 编写程序 实现字符的静态和动态显示 字符为第一行 姓名全拼 第二行 专业全拼 学号 液晶的初始化 字符显示程序可参考官网的程序文件 3 编写程序 利用功能键实现字符的纵向滚动和横向滚动等效果显示 显示字 符如下 1 姓名全拼 2 专业全拼 学号 3 MCS 51 EXP8 4 LCD DISPLAY 主程序静态显示 My Informatiom 5 实验源程序见附录 6 实验电路图 四 实验说明四 实验说明 液晶显示的原理 采用的 LCDxianshiping 都是由不同部分组成的分层结构 位于最后面的一层是由荧光物质组成的可以发射光线的背景层 背景层发出的 光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层 液晶 层中的水晶液滴都被包含在细小的单元格结构中 一个或多个单元产生扭曲 从而经穿过其中的光线进行有规则的折射 然后经过第二层过滤在屏幕生显示 出来 1 LCM1602 采用标准的 14 脚 无背光 或 16 脚 带背光 接口 各引脚 接口说明如表 编号符号引脚说明编号符号引脚脚说明 1VSS 电源地 9D2 数据 2VDD 电源正极 10D3 数据 3VL 液晶显示偏压 11D4 数据 4RS 数据 命令选择 12D5 数据 5R W 读 写选择 13D6 数据 6E 使能信号 14D7 数据 7D0 数据 15BLA 背光源正极 8D1 数据 16BLK 背光源负极 第一脚 VSS 为地电源 第二脚 VDD 接 5V 正电源 第三脚 VL 为液晶显示器对比度调整端 接正电源时的对比度最弱 接地 时对比度最高 对比度过高时会产生 鬼影 使用时可以通过一个 10K 的电 位 器调整对比度 第四脚 RS 为寄存器选择高电平时选择数据寄存器 低电平时选择指令寄 存器 第五脚 R W 为读写信号线 高电平时进行读操作 低电平时进行写操作 当 RS 和 R W 共同为低电平时可以写入指令或显示地址 当 RS 为低电平 R W 为高电平时可以读忙信号 当 RS 为高电平 R W 为低电平时可以读写入数据 第六脚 E 端为使能端 E 端由高电平跳变为低电平时 液晶模块执行命令 第 7 14 脚 D0 D7 为 8 位双向数据线 第 15 脚 背光源正极 第 16 脚 背光源负极 2 芯片时序表 RSR WE 功能 00 下降沿写指令代码 01 高电平读忙标志位和 AC 值 10 下降沿写数据 11 高电平读数据 2 1602 液晶模块内部的控制器共有 11 条控制指令 如下页表 序号指令 RSR WD7D6D5D4D3D2D1D0 1 清显示 0000000001 2 光标返回 000000001 3 置输入模式 00000001I DS 4 显示开 关控制 0000001DCB 5 光标或字符移位 000001S CR L 6 置功能 00001DLNF 7 置字符发生存储器地 址 0001 字符发生存储器地址 8 置数据存储器地址 001 显示数据存储器地址 9 读忙标志或地址 01 计数器地址 10 写数到 CGRAM 或 DDRAM 10 要写的数据内容 11 从 CGRAM 或 DDRAM 读 数 11 读出的数据内容 4 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 1602 动态显示的原理即先写入要显示的字符 然后写入滚动的命令 从而实 现不同的动态效果 2 实现垂直滚动显示时可以分批次先写入第 1 2 行 再写入 2 3 行 第 3 4 行 第 4 1 行 从而实现垂直滚动现实的效果 也可以设置一个二维数 组 用一个 for 循环控制显示的字符实现垂直滚动显示 3 对于实验中用到的四个按键前两个接 P3 0 和 P3 1 端口 如果按顺序检测按键 是否按下 因为液晶显示也会占用一定的时间可能会导致按键漏检 解决此问 题可用定时器定时检测的方式 但要注意防止一次按键重复检测的情况 可设 置一个标志位 反映按键是否被检测完 等一侧按键完成后在接受下一次按键 触发 4 本次程序中用到较多的标志位 对于标志位的命名要明显易懂 避免混淆 程序程序 1 include include define uchar unsigned char define uint unsigned int sbit lcden P2 2 使能控制 sbit lcdrs P2 0 命令数据输入 sbit lcdrw P2 1 命令数据输入 sbit busy P0 7 sbit K1 P3 0 sbit K2 P3 1 bit flag1 flag2 flag3 flag4 uchar num i uchar code tab My information uchar code tab1 1 yixifeng uchar code tab2 2 dianzi2010412337 uchar code tab3 3 MCS 51 EXP8 uchar code tab4 4 LCD DISPLAY void LCD check busy void while 1 lcden 0 lcdrs 0 lcdrw 1 P0 0 xff lcden 1 if busy 0 break lcden 0 delay int x while x delay ms int x int a b for a x a 0 a for b 110 b 0 b void write com uchar com LCD check busy lcdrs 0 lcden 0 lcdrw 0 P0 com lcden 1 lcden 0 void write dat uchar dat LCD check busy lcdrs 1 rs 1 时写数据 P0 dat delay 10 lcdrw 0 lcden 1 lcden 0 void lcd init 初始化函数 lcden 0 开启 LCD 显示 write com 0 x38 delay 10 write com 0 x0f write com 0 x06 void write str uchar str while str 0 while flag3 if flag4 write com 0 x01 break write dat str str delay ms 50 main uchar ptr tab uchar p tab1 q tab2 m tab3 n tab4 TMOD 0 x00 TH0 65536 20000 256 TL0 65536 20000 256 TR0 1 ET0 1 EX0 1 EX1 1 IT0 IT1 1 EA 1 PX1 1 lcd init while 1 write com 01 write com 0 x80 0 x00 for i 0 i 15 i if flag1 flag2 break write dat tab i delay ms 100 while flag1 1 write com 0 x01 write com 0 x80 0 x00 write str p if flag4 flag4 0 break write com 0 xc0 0 x00 write str q if flag4 flag4 0 break delay ms 800 write com 0 x01 write com 0 x80 0 x00 write str q if flag4 flag4 0 break write com 0 xc0 0 x00 write str m if flag4 flag4 0 break delay ms 800 write com 0 x01 write com 0 x80 0 x00 write str m if flag4 flag4 0 break write com 0 xc0 0 x00 write str n if flag4 flag4 0 break delay ms 800 write com 0 x01 write com 0 x80 0 x00 write str n if flag4 flag4 0 break write com 0 xc0 0 x00 write str p if flag4 flag4 0 break delay ms 800 while flag2 1 write com 0 x01 write com 0 x80 0 x00 write str p if flag4 flag4 0 break write com 0 x80 0 x15 write str q if flag4 flag4 0 break write com 0 xc0 0 x00 write str m if flag4 flag4 0 break write com 0 xc0 0 x15 write str n if flag4 flag4 0 break while flag2 1 write com 0 x1c delay ms 300 while flag3 void key12 interrupt 1 TH0 65536 20000 256 TL0 65536 20000 256 if K1 0 delay ms 5 if K1 0flag1 1 if K2 0 delay ms 5 if K2 0flag2 1 void key3 interrupt 0 EX1 0 delay ms 5 EX1 1 if flag1 flag2 1 flag3 flag3 void key4 interrupt 2 EX1 0 delay ms 5 EX1 1 flag4 1 if flag1 1 flag2 1 flag1 flag2 flag3 0 TR0 1 程序程序 2 include define uchar unsigned char define uint unsigned int uchar code table Yi Xifeng ucharcodetable1 dianzi 2010412337 sbit lcden P2 2 sbit lcdrs P2 0 sbit lcdrw P2 1 uchar num bit flag void delay uint z uint x y for x z x 0 x for y 110 y 0 y void write com uchar com lcdrs 0 写命令 lcdrw 0 P0 com delay 5 lcden 1 delay 5 lcden 0 void write data uchar date lcdrs 1 写数据 lcdrw 0 P0 date delay 5 lcden 1 delay 5 lcden 0 void init lcden 0 write com 0 x38 初始化 write com 0 x0e 光标打开 write com 0 x07 write com 0 x01 write com 0 x80 0 x1 void main init while 1 for num 0 num 17 num write com 0 x80 0 x12 num write data table num write com 0 x80 0 x52 num write data table1 num delay 300 write com 1 程序程序 3 include define uchar unsigned char define uint unsigned int uchar code table Yi Xifeng uchar code table1 dianzi 2010412337 sbit lcden P2 2 sbit lcdrs P2 0 sbit lcdrw P2

温馨提示

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

评论

0/150

提交评论