一、数码管显示原理:
数码管其实就是有8个LED构成,分为a、b、c、d、e、f、g、dp,而数码管又分为共阴极(左边,高电平点亮)和共阳极(右边,低电平点亮),点亮对应的LED即可显示对应的数字,共阴极编码表如下:
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d 、0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c,0x39 , 0x5e , 0x79 , 0x71 , 0x00
分别对应0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,而0x00则不显示。
注意:比如显示0,则要abcdef都为1,即是0011 1111,转为16进制就是0x3f,依次类推
为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。LED显示器工作方式有两种:静态显示方式和动态显示方式。
二、静态显示原理
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
八位数码管及74HC573原理图
D74HC138译码器原理图
3、74H573锁存器的使用(控制段选)
OE为使能端,当他为低电平的时候, 锁存器开始工作
VCC和GND为电源和地端
LE为锁存端,当LE为高电平的时候,Q0~Q7都跟D0~D7状态一样,处于直连状态。
当LE为低电平的时候,Q0~Q7都锁存数据,无论D0~D7怎么变化,Q0~Q7都保持锁存之前的那个状态。
代码如下:
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
void main()
{
LSA=0;
LSB=0;
LSC=0; //控制38译码器的Y0输出低电平
P0=smgduan[0];
while(1);
}
三、动态数码管
动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
3-8译码器---D74HC138(控制位选)
74HC138D 是一种三通道输入、八通道输出译码器,简称为3-8译码器,主要应用于消费类电子产品
从真值表可以看出:
反过来的规律其实就是八进制,000对应Y0,001对应Y1,010对应Y2,依次类推,这样就能实现对应数码管的位选操作。
代码如下:
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : DigDisplay
* 函数功能 : 数码管动态扫描函数,循环扫描8个数码管显示
*******************************************************************************/
void DigDisplay()
{
u8 i;
for(i=0;i<8;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//显示第2位
case(3):
LSA=1;LSB=1;LSC=0; break;//显示第3位
case(4):
LSA=0;LSB=0;LSC=1; break;//显示第4位
case(5):
LSA=1;LSB=0;LSC=1; break;//显示第5位
case(6):
LSA=0;LSB=1;LSC=1; break;//显示第6位
case(7):
LSA=1;LSB=1;LSC=1; break;//显示第7位
}
P0=smgduan[i];//发送段码
delay(100); //间隔一段时间扫描
P0=0x00;//消隐
}
}
void main()
{
while(1)
{
DigDisplay(); //数码管显示函数
}
}
上一篇:C51/C52单片机的串口原理及参考代码
下一篇:C51/C52单片机的中断(EXTI)介绍及实现(二)
推荐阅读最新更新时间:2024-11-17 06:55
推荐帖子
- 【出售】msp432黑板launchpad,25一块,运费自理
- TI/德仪/德州仪器Launchpad原装现货包邮MSP-EXP432P401Rhttps://item.taobao.com/item.htm...amp;id=527399979445【出售】msp432黑板launchpad,25一块,运费自理可直接下载程序的吗?是好的产品吗? 开箱即用的,但还是的需要基本的知识,太新手的话就不建议玩了25?还是75?同问,25就吓尿了 25,必须的,清仓价 25,必须的,清仓价包邮?还是运费自理?价格不
- liyualive 淘e淘
- 求帮忙看看这个WM8978电路有没有什么问题
- 有以下几个问题1.覆铜想将数字部分和模拟部分分开覆铜,但是不知道该怎么分2.音频电路板我的布局有没有什么问题呀请求指导!谢谢!求帮忙看看这个WM8978电路有没有什么问题还有就是耳机接口这部分原理图有什么问题吗这音频电路自己打样板测试发现的什么问题呢数字地和模拟地之间分开有好几种方式,磁珠,0欧,电感 准备拿去打样,想先问问大家有没有什么大问题。还有想问一下数字地模拟地用0欧电阻分开以后覆铜是不用分开覆铜了吗 对,模拟地和数据地分开敷铜
- Minxinn PCB设计
- 求个lcd12864驱动程序
- RT:要用ARM7做一个雷达测速仪,需要在点阵式LCD屏上显示当前测距,网上找不到驱动程序...哪位高手知道留言,发给我的邮箱也行,466522097@qq.com不胜感激求个lcd12864驱动程序雷达测速?你的雷达模块是不是uart口的?其实,也就是个uart传输数据而已,反正雷达那边都已经模块化了。楼主你的网撒得挺多的哦。呵呵。。。奇怪,我在网上找到很多源码啊,你怎么搜的?
- 86814429 嵌入式系统
- 理解操作系统
- 单片机系统中的多任务多线程机制的实现首先要指出的一点是,我们不是讨论嵌入式实时多任务操作系统(RTOS)的设计。我们讨论的是,在不使用RTOS的控制系统中,如何体现多任务多线程机制的程序设计思想。一些嵌入式设备可以需要操作系统,例如掌上电脑、PDA、网络控制器等高性能的手持设备和移动设备。它们往往和无线通信、互联网访问和多媒体处理等复杂而强大的功能联系在一起;对CPU要求也很高,往往是以通用CPU为原型的各种高端嵌入式处理器。作为一个完整的操作系统,RTOS有一个可靠性
- elec-hunter 微控制器 MCU
- 初学求教.怎么使用一些仿真软件如: MULITISIM 10.0
- 今天才来注册的.之前有下载电子仿真软件就是不大会用.不知道是不是来这里ADI参考电路›这区来发这样的贴.另外一些仿真软件能不能把一些现成的电路图(局部的或者全图)如电视机空调音响字类的图纸进行仿真.以便分析参考维修.谢谢师傅老师们给答复和帮助.(0_0).初学求教.怎么使用一些仿真软件如:MULITISIM10.0电路图需要自己画上去o哦那电路着多元件挺费周转.谢谢版主指点我受教了.能不能给介绍下一些学习群(有关仿真设
- 叁水西石 ADI参考电路
- linux嵌入式开发群列表
- linux嵌入式开发群列表,很多群:http://linuxembed.5d6d.com/thread-57-1-1.htmllinux嵌入式开发群列表
- x02004514 Linux与安卓
设计资源 培训 开发板 精华推荐
- LT8714EFE 300kHz、双向 1A 电流源同步 PWM 控制器的典型应用电路
- 使用 Semtech 的 UR5HCSPI 的参考设计
- AD8338-EVALZ,评估 AD8338 低功耗 VGA
- 使用 ROHM Semiconductor 的 BU4243 的参考设计
- NV890101MWTXGEVB:固定频率单片降压开关稳压器评估板
- LTC3106IFE 简单宽输入电压降压-升压转换器的典型应用电路
- 用于电力线通信的 16 位 ADC 数据采集系统
- TS1083 7.5A 低压降正稳压器的固定输出电压典型应用
- 用于仪表的 18 位、3.75SPS、2CH ADC
- LTC1728ES5-1.8 电源监视器的典型应用,使用与 DC/DC 反馈分压器相连的 VCCA