第8章键盘显示接口技术显示器ppt课件.ppt

上传人:小飞机 文档编号:1429046 上传时间:2022-11-23 格式:PPT 页数:30 大小:479.50KB
返回 下载 相关 举报
第8章键盘显示接口技术显示器ppt课件.ppt_第1页
第1页 / 共30页
第8章键盘显示接口技术显示器ppt课件.ppt_第2页
第2页 / 共30页
第8章键盘显示接口技术显示器ppt课件.ppt_第3页
第3页 / 共30页
第8章键盘显示接口技术显示器ppt课件.ppt_第4页
第4页 / 共30页
第8章键盘显示接口技术显示器ppt课件.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《第8章键盘显示接口技术显示器ppt课件.ppt》由会员分享,可在线阅读,更多相关《第8章键盘显示接口技术显示器ppt课件.ppt(30页珍藏版)》请在三一办公上搜索。

1、第八章:51系列单片机键盘/显示器接口技术,常用的显示设备: 发光二极管、八段LED显示器、点阵LED,液晶显示器(LCD)、屏幕显示器(CRT)等。8.1 LED显示器接口技术8.2 键盘接口技术8.3 点阵接口技术8.4 液晶显示器接口技术,8.1 51单片机显示器接口技术1、LED显示器结构与原理:,(1)结构:,(2)LED显示器的基本问题,a.七段码问题共阳极、共阴极七段码如显示“0”,共阴极七段码: dp g f e d c b a 0 0 1 1 1 1 1 1 3FH共阳极七段码: dp g f e d c b a 1 1 0 0 0 0 0 0 0C0H共阴极七段码表:uns

2、igned char code daima16= 0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71;,b.驱动问题LED显示器的每一个段通常需要15mA电流。段驱动、位驱动;段口、位口,c.显示方式问题静态显示、动态显示d.译码方式问题硬件译码:采用专用译码器芯片实现,如CD4511、7447等芯片软件译码:采用软件查表的方法,如显示“3”:unsigned char code table16= 0 x3F,0 x06,0 x5B,0 x4F,0 x66

3、,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71; unsigned char i,j; i=0 x03; / j=tablei; /查表,转换成7段码,(3) 显示函数的编写问题a.建立7段码表b.建立显示缓冲区 通常,显示缓冲区中存放要显示的内容,对应于每个显示器,显示缓冲区的数据由其他函数或主函数来修改。c.编制显示函数 显示函数只完成将显示缓冲区中的数据通过查表转换成7段码送显示器显示。d.显示函数的调用 在主函数或其他函数中调用显示函数。,例如:2位显示器显示函数的编写unsigned char di

4、s_buf2;/显示缓冲区unsigned char code table16=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71;void Disp(void) /2位数码管显示函数unsigned char i; i=dis_buf0; /取显示内容 P1=tablei; /7段码送显示器 i=dis_buf1; P3=tablei;,(4)LED显示器静态显示,1、一个8位端口控制1位LED显示器;2、不改变显示内容,显示器一直显示不变;3、硬件复杂

5、,软件控制简单。,例1:利用P2、P3口进行静态显示:轮流显示“12”、“-”、“AB”,#include unsigned char dis_buf2; /显示缓冲区unsigned char code table18=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71,0 x40,0 x00;void dl(unsigned int x) /延时xmsunsigned int t1,t2;for (t1=0;t1x;t1+)for (t2=0;t212

6、0;t2+) ;void display(void) /显示函数P2=tabledis_buf0; /静态显示1P3=tabledis_buf1; /静态显示2,void main(void)while(1)dis_buf0=1; dis_buf1=2;/送显示数据12display(); /调显示函数dl(500); /延时500ms dis_buf0=16; dis_buf1=16;/显示-display(); dl(500);dis_buf0=0 x0a; dis_buf1=0 x0b; /显示abdisplay(); dl(500);,例2:利用8255PA、PB、PC口进行静态显示:

7、轮流显示“123”、“abc”,#include #include #define COM8255 XBYTE0 xbfff#define PA8255 XBYTE0 xbcff#define PB8255 XBYTE0 xbdff#define PC8255 XBYTE0 xbeffunsigned char dis_buf3; /显示缓冲区unsigned char code table18=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71,0 x4

8、0,0 x00;void dl(unsigned int x) /延时xmsunsigned int t1,t2;for (t1=0;t1x;t1+)for (t2=0;t2120;t2+) ;void display(void)PA8255=tabledis_buf0;PB8255=tabledis_buf1;PC8255=tabledis_buf2; ,void main(void)COM8255=0 x80;/8255初始化while(1) dis_buf0=1; dis_buf1=2; dis_buf2=3; /显示123 display(); /调显示函数 dl(500); /延时5

9、00ms dis_buf0=0 x0a; dis_buf1=0 x0b; dis_buf2=0 x0c; /显示abc display(); dl(500);,(5)LED动态显示,动态显示即一位一位轮流点亮各位显示器,采用动画模式。理解:段口和位口的含义,unsigned char dis_buf8 ; /显示缓冲区unsigned char code table16=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71;void display(void

10、)unsigned char i;unsigned char bitcode=0 xfe;/位码for(i=0;i8;i+)DUANKOU=tabledis_bufi; /送段码WEIKOU=bitcode; /位码dl_ms(); /延时1ms WEIKOU=0 xff; /关闭显示bitcode=_crol_(bitcode,1);/位码左循环移位,例3:利用P0、P3口进行动态显示:显示“123456”,#include #include unsigned char dis_buf6=0; /显示缓冲区unsigned char code table16=0 x3F,0 x06,0 x5

11、B,0 x4F,0 x66,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71;void dl_ms() /延时1msunsigned int j;for (j=0;j150;j+) ;,void display(void)unsigned char i;unsigned char bitcode=0 xfe;/位码for(i=0;i6;i+) P0=tabledis_bufi; /送段码 P3=bitcode; /位码 dl_ms(); /延时1ms P3=0 xff; /关闭显示 bitcode=_crol_(

12、bitcode,1); /位码左循环移位,void main(void)dis_buf0=1; dis_buf1=2;dis_buf2=3; dis_buf3=4; dis_buf4=5; dis_buf5=6; while(1) display();,A15 A14 A13 A12 A11 A10 A9 A8 A7-A0 1 0 1 1 1 1 0 0 1 - 1 0 1 1 0 1 1 8255端口地址:BCFFHBFFFH,例4:利用8255A控制动态显示PA口为段口,PB口为位口74LS245、7407均为同向驱动器。,例4:利用8255进行动态显示:显示“12345678”,#inc

13、lude #include #include #define COM8255 XBYTE0 xbfff#define PA8255 XBYTE0 xbcff#define PB8255 XBYTE0 xbdff#define PC8255 XBYTE0 xbeffunsigned char dis_buf8=1,2,3,4,5,6,7,8; /显示缓冲区unsigned char code table16=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x27,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71

14、;void dl_ms() /延时1msunsigned int j;for (j=0;j150;j+) ;,void display(void)unsigned char i;unsigned char bitcode=0 xfe;/位码for(i=0;i8;i+)PA8255=tabledis_bufi; /送段码PC8255=bitcode;/位码dl_ms(); /延时1ms PC8255=0 xff; /关闭显示bitcode=_crol_(bitcode,1);/位码左循环移位 void main()COM8255=0 x80;/8255初始化while(1) display();

15、,提高:显示程序的实际问题,前述显示程序是理想仿真下的情况。实际电路板中的显示程序如何呢?与仿真程序相比较,有何区别?,PA口为段口,PB口为位口74LS245、7407均为同向驱动器。8255端口地址:BCFFHBFFFH,void zhucx (unsigned char k) /模拟主程序执行时间 unsigned int i;for (i=0;ik;i+)dl_ms();void main()COM8255=0 x80;/8255初始化while(1) display();zhucx(1); /执行其他主程序 ,1、8255的A1A0接A9、A8,8255A的CS接A14,PA、PB口接8位LED显示器。编程使LED显示器每隔1秒轮流显示:- -GooD- -及-ABCDEF-.思路: 1、修改8255A的端口地址; 2、添加7段码:“-”、“o”; 3、修改主程序: 前一秒,显示缓冲区中送“-ABCDEF-” 的7段码序号, 后一秒,显示缓冲区中送“- -GooD- -”的7段码序号。 4、1秒延时可调用延时程序。,2、串行口控制的LED显示,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号