单片机与液晶显示器精品课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机与液晶显示器精品课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 液晶显示器 精品 课件
- 资源描述:
-
1、讲座四v1.多位LED显示v2.键盘管理模块v3.点阵、字符液晶显示器v4.字模提取软件LED的工作原理的工作原理(a)典型的七段式LED器件(b)共阳极LED(c)共阴极LED四位数七段LED数码管模块(左为正面图、右为背面图)LED数码管和单片机的连接1 单片机P2.0P2.7abcdefgdp +5v +5vabcdefgdpP0.0P0.7编程:(以共阳极为例)MOVP2,#11111001B(0F9H)MOVP0,#10100100B(0A4H)SJMP$静态连接静态显示LED数码管和单片机的连接2 单片机P2.0P2.7abcdefgdpP0.0P0.1P0.2P0.3想一想:和静
2、态连接的区别在哪里?单片机 P2.0P2.7abcdefgdpP0.0P0.1P0.2P0.3静态、动态显示方式总结q静态显示连接q所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口。q原理简单;显示无闪烁;占用I/O资源较多。v动态显示连接 所有LED的段选线共同连接在一起共用一个 8位I/O口而每个LED的位选分别由一根相应的I/O口线控制。因此必须采用动态扫描显示方式。例:74ls164+led(proteus)独立键盘case 0 x01:key1();/键盘1功能函数。break;case 0 x02:key2();/键盘2功能函数。br
3、eak;case 0 x04:key3();/键盘3功能函数。break;case 0 x08:key4();/键盘4功能函数。break;case 0 x10:key5();/键盘5功能函数。break;case 0 x20:key6();/键盘6功能函数。break;case 0 x40:key7();/键盘7功能函数。break;case 0 x80:key8();/键盘8功能函数。break;default:break;说明:采用轮询方式查询P1口,采用延时法消除键盘抖动*/#include /*函数名称:delay()功能:用于键盘消抖的延时函数说明:无 入口参数:无返回值:无*/v
4、oid delay()unsigned char i;for(i=400;i0;i-);/主函数 main()void main(void)unsigned char key;while(1)P1=0 xff;/要想从P1口读数据必须先给P1口写1 key=P1;/读入P1口的数据,赋值给变量key if(key!=0 x00)/判断是否有键按下,当没有键按下时,P1口的数据为0 x00 delay();/延时去抖 key=P1;/再次读入P1口的数据,赋值给变量key if(key!=0 x00)/再次判断是否有键按下 switch(key)矩阵式键盘控制4x4 键盘的内部结构市售一体成型的
5、4x4键盘低电平扫描按下“0”键X3X2X1X0Y3Y2Y1Y0动作按键11 101110Key 01101Key 11011Key 20111Key 311 011110Key 41101Key 51011Key 60111Key 710 111110Key 81101Key 91011Key A0111Key B01 111110Key C1101Key D1011Key E0111Key Fxx xx1111无按键按下低电平动作键盘动作分析表高电平扫描按下“0”键X3X2X1X0Y3Y2Y1Y0动作按键00 010001Key 00010Key 10100Key 21000Key 300
6、 100001Key 40010Key 50100Key 61000Key 701 000001Key 80010Key 90100Key A1000Key B10 000001Key C0010Key D0100Key E1000Key Fxx xx0000无按键按下高电平动作键盘动作分析表44键盘扫描电路基本原理:分行扫描检查是否有键按下若有,确定哪个键被按下1.行扫描法的原理行扫描法的原理 判断哪一个键被按下的流程 P1=0 xfe;n=P1;n&=0 xf0;if(n!=0 xf0)delay();P1=0 xfe;n=P1;n&=0 xf0;if(n!=0 xf0)switch(n)
7、case(0 xe0):display(0);break;case(0 xd0):display(1);break;case(0 xb0):display(2);break;case(0 x70):display(3);break;P1=0 xfd;n=P1;n&=0 xf0;if(n!=0 xf0)delay();P1=0 xfd;n=P1;n&=0 xf0;if(n!=0 xf0)switch(n)case(0 xe0):display(4);break;case(0 xd0):display(5);break;case(0 xb0):display(6);break;case(0 x70
8、):display(7);break;P1=0 xfb;n=P1;n&=0 xf0;if(n!=0 xf0)delay();P1=0 xfb;n=P1;n&=0 xf0;if(n!=0 xf0)switch(n)case(0 xe0):display(8);break;case(0 xd0):display(9);break;case(0 xb0):display(10);break;case(0 x70):display(11);break;P1=0 xf7;n=P1;n&=0 xf0;if(n!=0 xf0)delay();P1=0 xf7;n=P1;n&=0 xf0;if(n!=0 xf
9、0)switch(n)case(0 xe0):display(12);break;case(0 xd0):display(13);break;case(0 xb0):display(14);break;case(0 x70):display(15);break;void display(unsigned char i)unsigned char table=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E;P2=0 xfe;P0=tablei;2.行反转
10、法的原理行反转法的原理行线、列线分别接并行口行线输出,列线输入列线输出读得的值,行线输入行反转法的流程 uchar keyscan(void)/键盘扫描函数,使用行列反转扫描法 uchar cord_h,cord_l;/行列值 P3=0 x0f;/行线输出全为0 cord_h=P3&0 x0f;/读入列线值 if(cord_h!=0 x0f)/先检测有无按键按下 delay(100);/去抖 if(cord_h!=0 x0f)cord_h=P3&0 x0f;/读入列线值 P3=cord_h|0 xf0;/输出当前列线值 cord_l=P3&0 xf0;/读入行线值 return(cord_h+
11、cord_l);/键盘最后组合码值 此处仿真此处仿真测控系统中必不可少的组成人机界面图1 测控系统的组成部分液晶显示器的原理v字符型液晶(1602)方法:通过向指定显示位置对应的DDRAM中写数据来显示字符。例如:在第2行第2列显示字符 a,查表1 可知a对应的代码为01100001即0 x31,则可向地址0 x41中写入数据0 x31即可显示。图2 1602的显示地址与DDRAM地址点阵型液晶(12864)在点阵型LCD上显示一幅图片或是字符,如上图所示,只需黑色的部分点亮,空白的点置0即可。可以将LCD看成128*64个LED灯来帮助理解。正面图正面图背面图背面图12864分类12864点
12、阵液晶显示屏有三种控制器,分别是KS0107(KS0108)、T6963C和ST7920,三种控制器主要区别是:KS0107(KS0108)不带任何字库、T6963C带ASCII码,ST7920带国标二级字库(8千多个汉字)。图3 12864的DDRAM地址XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y(列)地址指针。X地址计数器没有记数功能,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。从上图可以看出数据按字节在屏幕上是竖向排列的。上方为低位,下方为高位。因此在横向上(也就
13、是Y)就一共是128列数据。分为CS1和CS2两个64列来写入。在竖方向上(也就是X)一字节数据显示8个点,竖向64个点分为8个字节,称做8页(X=0-7)。了解这些后我们就知道要满屏显示一张图就要从y=0127、X=07一共写1288=1024个字节的数据。同样在AT89S51中存一张图就要1024个字节的空间。图片在12864上的显示v简单来说,主要分为两步:v1)将一幅图片转化为一系列二进制数据v2)将数据按字节(8位)写入液晶对应的DDRAM由图3可知,12864的DDRAM有128*8=1024个地址,只需将图片转化的数据按字节写入这其对应的DDRAM地址即可。字符在12864上的显
14、示上图中,汉字为16*16点阵,ASCII码为8*16点阵,同图片一样,一个汉字(ASCII)由16*2(8*2)个字节数据组成,字符显示原理与图片一致,只需将字符代码写入相应DDRAM地址。字体大小可以根据需要改变。小结v简而言之,无论是字符型还是点阵型LCD,其基本原理都是通过将数据写入所对应的DDRAM地址中来显示所需要的图形或是字符。v12864点阵型液晶对应的DDRAM有1024个地址,当需显示的字符或图片已转为二进制数据时,确定将数据写入对应的DDRAM地址就是你所要做的工作!单片机与液晶显示器的硬件连接v液晶显示器(12864)主要包含了以下接口(图6):v1)使能E(51的RD
15、和WR经或非门接LCD的使能E)v2)片选CS1(左半屏)、CS2(右半屏),见图3v3)命令/数据选择RS(0命令,1数据)v4)读/写选择R/W(0写,1读)v5)数据总线DB0DB7v6)负压产生和负压输入(对比度)调整v7)复位RSTv8)电源与地和背景光电源软件编程注意:程序的编写与硬件是分不开的。以图6为例,A11A8对应CS2、CS1、R/W、RS,未用的地址线为高。见图5则当向12864的左半屏(CS1=1,CS2=0)写(R/W=0)数据(RS=1)时,总线地址为0 x1111010111111111。即0 xF5FF。C文件中定义如下:#define WD1 XBYTE0
16、xF5FF定义了总线地址后,对外部地址的操作变得非常简单。如向左半屏写数据0 xFF:WD1=0 xFF 读左半屏数据:data=RD1(data存储读取到的数据)举例v下面简单介绍程序编写的流程v1)定义所有总线地址v#define WI1 XBYTE0 xF4FF/向左半屏写命令v#define WD1 XBYTE0 xF5FF/向左半屏写数据v#define RI1 XBYTE0 xF6FF/读左半屏命令v#define RD1 XBYTE0 xF7FF /读左半屏数据v#define WI2 XBYTE0 xF8FF/向右半屏写命令v#define WD2 XBYTE0 xF9FF/向
展开阅读全文