版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章:51系列单片机键盘/显示器接口技术常用的显示设备:发光二极管、八段LED显示器、点阵LED,液晶显示器(LCD)、屏幕显示器(CRT)等。8.1LED显示器接口技术8.2键盘接口技术8.3点阵接口技术8.4液晶显示器接口技术8.151单片机显示器接口技术
1、LED显示器结构与原理:(1)结构:LED封装图共阴极LED共阳极LED(2)LED显示器的基本问题a.七段码问题共阳极、共阴极七段码如显示“0”,共阴极七段码:
dpgfedcba001111113FH共阳极七段码:
dpgfedcba110000000C0H共阴极七段码表:unsignedcharcodedaima[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};b.驱动问题LED显示器的每一个段通常需要1~5mA电流。段驱动、位驱动;段口、位口c.显示方式问题静态显示、动态显示d.译码方式问题硬件译码:采用专用译码器芯片实现,如CD4511、7447等芯片软件译码:采用软件查表的方法,如显示“3”:unsignedcharcodetable[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
unsignedchari,j;
i=0x03;//
j=table[i];//查表,转换成7段码(3)显示函数的编写问题a.建立7段码表b.建立显示缓冲区通常,显示缓冲区中存放要显示的内容,对应于每个显示器,显示缓冲区的数据由其他函数或主函数来修改。c.编制显示函数显示函数只完成将显示缓冲区中的数据通过查表转换成7段码送显示器显示。d.显示函数的调用在主函数或其他函数中调用显示函数。例如:2位显示器显示函数的编写unsignedchardis_buf[2]; //显示缓冲区unsignedcharcodetable[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};voidDisp(void)//2位数码管显示函数{ unsignedchari;i=dis_buf[0];//取显示内容P1=table[i];//7段码送显示器i=dis_buf[1];P3=table[i];}
(4)LED显示器静态显示1、一个8位端口控制1位LED显示器;2、不改变显示内容,显示器一直显示不变;3、硬件复杂,软件控制简单。例1:利用P2、P3口进行静态显示:轮流显示“12”、“--”、“AB”#include<reg51.h>unsignedchardis_buf[2]; //显示缓冲区unsignedcharcodetable[18]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x00};voiddl(unsigned
intx) //延时xms{ unsignedintt1,t2; for(t1=0;t1<x;t1++) for(t2=0;t2<120;t2++);}voiddisplay(void)//显示函数{ P2=table[dis_buf[0]];//静态显示1 P3=table[dis_buf[1]];//静态显示2}voidmain(void){ while(1) { dis_buf[0]=1;dis_buf[1]=2;//送显示数据12 display(); //调显示函数
dl(500); //延时500ms dis_buf[0]=16;dis_buf[1]=16; //显示-- display(); dl(500); dis_buf[0]=0x0a;dis_buf[1]=0x0b;//显示ab display(); dl(500); }}例2:利用8255PA、PB、PC口进行静态显示:轮流显示“123”、“abc”#include<reg51.h>#include<absacc.h>#defineCOM8255XBYTE[0xbfff]#definePA8255XBYTE[0xbcff]#definePB8255XBYTE[0xbdff]#definePC8255XBYTE[0xbeff]unsignedchardis_buf[3]; //显示缓冲区unsignedcharcodetable[18]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x00};voiddl(unsigned
intx) //延时xms{ unsignedintt1,t2; for(t1=0;t1<x;t1++) for(t2=0;t2<120;t2++);}voiddisplay(void){ PA8255=table[dis_buf[0]]; PB8255=table[dis_buf[1]]; PC8255=table[dis_buf[2]];}voidmain(void){
COM8255=0x80; //8255初始化
while(1) { dis_buf[0]=1;dis_buf[1]=2; dis_buf[2]=3;//显示123 display(); //调显示函数
dl(500);//延时500ms dis_buf[0]=0x0a;dis_buf[1]=0x0b;dis_buf[2]=0x0c; //显示abc
display(); dl(500); }}(5)LED动态显示动态显示即一位一位轮流点亮各位显示器,采用动画模式。理解:段口和位口的含义unsignedchardis_buf[8]; //显示缓冲区unsignedcharcodetable[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};voiddisplay(void){ unsignedchari; unsignedcharbitcode=0xfe; //位码
for(i=0;i<8;i++) {
DUANKOU=table[dis_buf[i]]; //送段码
WEIKOU=bitcode;
//位码
dl_ms();
//延时1ms
WEIKOU=0xff;//关闭显示
bitcode=_crol_(bitcode,1);//位码左循环移位 }}例3:利用P0、P3口进行动态显示:显示“123456”#include<reg51.h>#include<intrins.h>unsignedchardis_buf[6]={0};//显示缓冲区unsignedcharcodetable[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};voiddl_ms() //延时1ms{ unsignedintj; for(j=0;j<150;j++);}voiddisplay(void){ unsignedchari; unsignedcharbitcode=0xfe; //位码
for(i=0;i<6;i++) { P0=table[dis_buf[i]]; //送段码
P3=bitcode; //位码
dl_ms(); //延时1msP3=0xff; //关闭显示
bitcode=_crol_(bitcode,1);//位码左循环移位
}}voidmain(void){ dis_buf[0]=1;dis_buf[1]=2; dis_buf[2]=3;dis_buf[3]=4;dis_buf[4]=5;dis_buf[5]=6;
while(1) { display(); }}A15A14A13A12A11A10A9A8A7---------A0101111001--------1
01
10
11
8255端口地址:BCFFH—BFFFH例4:利用8255A控制动态显示PA口为段口,PB口为位口74LS245、7407均为同向驱动器。例4:利用8255进行动态显示:显示“12345678”#include<reg51.h>#include<intrins.h>#include<absacc.h>#defineCOM8255XBYTE[0xbfff]#definePA8255XBYTE[0xbcff]#definePB8255XBYTE[0xbdff]#definePC8255XBYTE[0xbeff]unsignedchardis_buf[8]={1,2,3,4,5,6,7,8}; //显示缓冲区unsignedcharcodetable[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};voiddl_ms() //延时1ms{ unsignedintj; for(j=0;j<150;j++);}voiddisplay(void){ unsignedchari; unsignedcharbitcode=0xfe; //位码
for(i=0;i<8;i++) { PA8255=table[dis_buf[i]]; //送段码
PC8255=bitcode; //位码
dl_ms(); //延时1msPC8255=0xff; //关闭显示
bitcode=_crol_(bitcode,1);//位码左循环移位
}}voidmain(){ COM8255=0x80; //8255初始化
while(1) { display(); }}提高:显示程序的实际问题前述显示程序是理想仿真下的情况。实际电路板中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 炼钢原料工6S执行考核试卷含答案
- 尿素装置操作工客户关系管理考核试卷含答案
- 证券期货服务师技术实操模拟考核试卷含答案
- 天线线务员岗中水平考核试卷含答案
- 河道修防工基础技能能力考核试卷含答案
- 耐火制品切磨加工工岗前工艺优化考核试卷含答案
- 集输工岗位竞赛考核试卷含答案
- 2026年贵州省兴义市高二历史下册期末考试试卷及参考答案【突破训练】
- 2025年湖南省洪江市高二生物上册期末考试试卷带答案(新)
- 2025年湖北省枣阳市高二生物上册期末考试真题【综合卷】附答案
- 2025年中国过敏性鼻炎市场研究报告
- 第四章 基本平面图形(单元重点综合测试)(解析版)
- 责任督学工作手册
- 《超高性能混凝土(UHPC)外墙板》
- 燃气经营许可证申请书
- 2025年中国船用配套设备制造行业市场深度研究及发展趋势预测报告
- TCAPC 011-2024 零售药店经营自体嵌合抗原受体T细胞(CAR-T)治疗药品服务规范
- 2.1.1 有理数的加法(第1课时 有理数的加法法则)(课件)-2024-2025学年七年级数学上册(人教版2024)
- DL∕T 2615-2023 电力作业用电缆输送机
- 新刊唐代墓誌所見世系考訂及相關專題研究
- YS/T 334-1995铍青铜棒
评论
0/150
提交评论