本节重点:动态数码显示
动态数码管显示原理:
动态显示的特点是将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
芯片介绍:
1、74HC138芯片
74HC138芯片是一种高速CMOS器件,它可以实现3线到8线的解码或分离功能。它有三个使能输入端,两个低有效,一个高有效。它可以根据三位二进制的地址输入,从八个输出端中选择一个输出低电平,其余输出高电平。74HC138芯片可以用于内存地址译码或数据路由等应用。
管脚说明:
逻辑控制图:
当我们使得芯片使能触发时,输入的A2、A1、A0三个数字经过二进制的排列转换,可以使得Y0~Y7之中其中一个输出低点平信号控制输出。
真值表:
从真值表可以看出,当且只当E1、E2为低电平,E3为高电平时,控制输入的A0 ~ A2数字组合来控制Y0~Y7的输出信号,其余全部输出无效。
2、74HC573
SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
性能特性:
X输出能直接接到CMOS,NMOS和TTL接口上X操作电压范围:20V~6.0V
X低输入电流:1.0uA
XCMOS器件的高噪声抵抗特性
程序编写:
#include
typedef unsigned char u8;
typedef unsigned int u16;
sbit LSA=P1^0;
sbit LSB=P1^1;
sbit LSC=P1^2;
unsigned char code sunduan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
void delay(u16 t)
{
while(t--);
}
void display()
{
u8 i;
for(i=0;i<4;i++)
{
switch(i)
{
case 0:LSA=0;LSB=0;LSC=0;break;
case 1:LSA=1;LSB=0;LSC=0;break;
case 2:LSA=0;LSB=1;LSC=0;break;
case 3:LSA=1;LSB=1;LSC=0;break;
}
delay(100);
P2=sunduan[i];
delay(100000);
P2=0xFF; //消隐
}
}
void main()
{
while(1)
{
display();
}
}
效果展示:
可以看到,每次经过一个for循环之后,就换切换一位,然后显示出数值出来。
全部0条评论
快来发表一下你的评论吧 !