单片机课程设计-字符液晶显示器设计_第1页
单片机课程设计-字符液晶显示器设计_第2页
单片机课程设计-字符液晶显示器设计_第3页
单片机课程设计-字符液晶显示器设计_第4页
单片机课程设计-字符液晶显示器设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、 沈阳理工大学课程设计专用纸 No PAGE 12沈阳理工大学目 录TOC o 1-3 h u HYPERLINK l _Toc408310812 1题目设计要求 PAGEREF _Toc408310812 h 1 HYPERLINK l _Toc408310813 2仿真电路图设计 PAGEREF _Toc408310813 h 1 HYPERLINK l _Toc408310814 2 工作原理 PAGEREF _Toc408310814 h 2 HYPERLINK l _Toc408310815 2.1 液晶显示原理 PAGEREF _Toc408310815 h 2 HYPERLINK

2、 l _Toc408310816 2.2 1602LCD工作原理 PAGEREF _Toc408310816 h 3 HYPERLINK l _Toc408310817 2.2.1 1602LCD 主要技术参数: PAGEREF _Toc408310817 h 3 HYPERLINK l _Toc408310818 2.2.2 引脚功能说明 PAGEREF _Toc408310818 h 3 HYPERLINK l _Toc408310819 2.2.3 LCD寄存器的选择 PAGEREF _Toc408310819 h 4 HYPERLINK l _Toc408310820 2.2.4 DD

3、RAM地址与实际显示位置的关系: PAGEREF _Toc408310820 h 4 HYPERLINK l _Toc408310821 2.2.5 指令格式与指令功能 PAGEREF _Toc408310821 h 4 HYPERLINK l _Toc408310822 2.2.6 LCD显示器的初始化: PAGEREF _Toc408310822 h 5 HYPERLINK l _Toc408310823 3 程序及流程图 PAGEREF _Toc408310823 h 6 HYPERLINK l _Toc408310824 3.1流程图 PAGEREF _Toc408310824 h 6

4、 HYPERLINK l _Toc408310825 3.2程序 PAGEREF _Toc408310825 h 7 HYPERLINK l _Toc408310826 4 运行与结果 PAGEREF _Toc408310826 h 10 HYPERLINK l _Toc408310827 5 心得体会 PAGEREF _Toc408310827 h 12 HYPERLINK l _Toc408310828 6 参考文献 PAGEREF _Toc408310828 h 121题目设计要求利用51单片机、LCD1602字符液晶显示器设计字符液晶显示系统。需要有按钮控制显示的开始和停止。2仿真电路

5、图设计 图1.1 仿真电路图LCD1602:第 1 脚:VSS 为地电源。 第 2 脚:VDD接 5V正电源。 第 3 脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 接8051 P3.5第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W为低电平时可以

6、写入数据。 接8051 P3.6。第 6 脚:E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。接8051 P3.7。 第 714脚:D0D7为 8 位双向数据线。接8051 P1口。 8051:P3.2 P3.3 接按钮。2 工作原理2.1 液晶显示原理LCD液晶显示器是一种被动式的显示器,与LED不同,液晶本身并不发光,而是利用液晶在电压作用下能改变光线通过方向的特性,达到显示白底黑字或黑底白字的目的。液晶显示的原理是利用液晶的物理特性,即当通电时导通,排列变的有秩序,使光线容易通过;不通电时排列混乱,阻止光线通过。让液晶如闸门般地阻隔或让光线穿透。从技术上简单地说,液晶面

7、板包含了两片相当精致的无钠玻璃素材,称为Substrates,中间夹著一层液晶。当光束通过这层液晶时,液晶本身会排排站立或扭转呈不规则状,因而阻隔或使光束顺利通过。大多数液晶都属于有机复合物,由长棒状的分子构成。在自然状态下,这些棒状分子的长轴大致平行。将液晶倒入一个经精良加工的开槽平面,液晶分子会顺着槽排列,所以假如那些槽非常平行,则各分子也是完全平行的。通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示的分类方法有很

8、多种,通常可按其显示方式分为段式LCD、字符式LCD、点阵式LCD等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的 000H00FH的16字节的内容决定,当(000H)

9、=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。 字符的显示 用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单

10、了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。点阵最好是用二位数组,基本思路也就是单片机两个IO口控制点阵的行和列,定义一个二位数组控制点阵每一行要亮拿几个灯,然后下一行亮那几个灯,以此类推。2.2 1602LCD工作原理1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。LCD1602采用16脚接口,第5脚R/W读/写选择端,高电平时进行读操作,低电平时进行写操作。当RS为低电平、R/W为高电平时可以读忙信号,当RS为高平、

11、R/W为低电平时可以写入数据。第6脚E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。2.2.1 1602LCD 主要技术参数: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)mm 2.2.2 引脚功能说明 引脚号符号状态功能1VSS地2VDD+5V逻辑电源3VEE显示对比度电源4RS输入寄存器选择1-数据;0-指令5R/W输入读写操作选择:1-读;0-写6E输入使能信号7DB0三态数据总线LSB8DB1三态数据总线9DB2三态数据总线10DB3三态数据总线11DB4三态数据总

12、线12DB5三态数据总线13DB6三态数据总线14DB7三态数据总线MSB15LEDA输入背光+5V16LEDB输入背光地 表2.1 LCD1602管脚功能2.2.3 LCD寄存器的选择ER/WRS功能说明100写入命令寄存器101写入数据寄存器110读取忙碌标志及RAM地址111读取RAM数据0X不动作 表2.2 寄存器选择表2.2.4 DDRAM地址与实际显示位置的关系:LCDLCD 16字2行000102030405060708090A0B0C0D0E0F1027404142434445464748494A4B4C4D4E4F 5067 图2.1 DDRAM地址与显示屏上显示位置的对应关

13、系2.2.5 指令格式与指令功能LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪个寄存器,选择情况如表:RSR/W 寄存器及操作00指令寄存器写入01忙标志和地址计数器读出10数据寄存器写入11数据寄存器读出 表2.3 HD44780引脚信号组合清屏指令:RSR/WD7D6D5D4D3D2D1D00000000001 表2.4 清屏指令表功能: 1 清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H);2 光标复位,回到显示器的左上角;3 地址计数器AC清零。功能设置命令:RSR/WD7D6D5D4D3D2D1D000001DLNF*表2.5 功能

14、设置命令表功能:1 设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位;2 设置显示行数,当N=1时双行显示,N=0时单行显示;3 设置字形大小,当F=1时510点阵,F=0时为57点阵。设置字库CGRAM地址命令:RSR/WD7D6D5D4D3D2D1D00001 CGRAM的地址 表2.6 CGRAM地址命令表功能:设置用户自定义CGRAM的地址,对用户自定义CGRAAM访问时,要先设定CGRAM的地址,地址范畴为063。显示缓冲区DDRAM地址设置命令:RSR/WD7D6D5D4D3D2D1D0001 DDRAM的地址 表2.7 DDRAM地址设置命令表功能:设置当前显示缓冲

15、区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴为0127.2.2.6 LCD显示器的初始化:1 清屏 2 功能设置 3 开/关显示设置 4 输入方式设置3 程序及流程图3.1流程图开始开始开始开始 rs=0; rs=0; rw=0; ep=1; p1=dat;EA=1; EX0=1; EX1=1;IT0=1;IT1=1;while(1);延时4us延时4us等待外部中断0等待外部中断1等待外部中断0等待外部中断1RResult=(bit)(p1&0 x80); ep=0;返回result返回result结束结束结束结束图 3.1.1主函数流程 图 3.1.2 写数据

16、流程图3.2程序#include #include sbit rs= P35;sbit rw = P36; sbit ep = P37; void delay(unsigned char ms)/延时函数 unsigned char i; while(ms-) for(i = 0; i100; i+) /一个机器周期是1us,延时100us bit lcd_bz() bit result; rs = 0; /指令 rw = 1; /读 ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P1 & 0 x80); /检测是否是“显

17、示缓冲区命令” ep = 0; return result; void lcd_wcmd(unsigned char cmd)/写命令 while(lcd_bz(); rs = 0; rw = 0; /写 ep = 0; _nop_(); _nop_(); P1 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; void lcd_pos(unsigned char pos) /设置显示缓冲区 lcd_wcmd(pos|0 x80); void lcd_wd

18、at(unsigned char dat)/写数据 while(lcd_bz(); rs = 1; /数据 rw = 0; ep = 0; P1 = dat; /英文字母的代码与ASCII编码相同,所以要写入英文字母只需将ASCII码写入相应位置 _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; void lcd_wstr(const unsigned char *s)/字符串拆分 unsigned char i = 0; while(si != 0) lcd_wdat

19、(si); delay(100); i+; void lcd_init() /初始化 lcd_wcmd(0 x38); /0011 1000 功能设置初始化。“001 DL N F * *”:DL=1,数据位为8;DL=0,数据位为4;N=1,双行显示,N=0,单行显示;F=1,5X10点阵;F=0,5X7。 delay(1); lcd_wcmd(0 x0c); /0000 1100 显示开关控制初始化。“00001DCB”:D=1,显示;D=0,不显示;C=1,光标显示;C=0,不显示;B=1,字符闪烁;B=0,不闪烁。 delay(1); lcd_wcmd(0 x06); /0000 01

20、10 输入输出方式初始化。“000001 I/D S”:I/D=1,光标左向右;I/D=0光标右向左。S=1,内容移动;S=0,内容不移动。 delay(1); lcd_wcmd(0 x01); /0000 0001 清屏初始化 delay(1); void main(void) EA=1; EX0=1; EX1=1; IT0=1; /外部中断0为边沿触发方式 IT1=1;/外部中断1为边沿触发方式 while(1);void abc(void) interrupt 0/外部中断0 lcd_init(); delay(10); lcd_pos(0 x01); /0000 0001 从DDRAM第一行1地址显示

温馨提示

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

评论

0/150

提交评论