74LS164 级联控制 5 个数码管静态显示
仿真图:
74LS164级联控制5个数码管静态显示
//显示缓冲区
LEDBuffer[5]={0};
源程序:
#include
#include “MacroAndConst.h”
uint8
//code uint8
tab[]={0x3F,0×06,0x5B,0x4F,0×66,0x6D,0x7D,0×07,0x7F,0x6F,0×40};
阴极
code uint8
;
//共阳极
sbit LED_DAT=P1^6;
sbit LED_CLKE=P1^5;
void bit_dat(bit
{
LED_CLKE=0;
LED_DAT=i;
LED_CLKE=1;
}
void uint_dat(uint8
{
LED_CLKE=0;
bit_dat((bit)(tab[i]&0×80));
i)
//向数码管写一个位
tab[]={0xC0,0xF9,0xA4,0xB0,0×99,0×92,0×82,0xF8,0×80,0×90,0xbf}
//共
i)
//向数码管写一个字母,8 位
//把缓存区的 5 个字符输入到 5 个数码管中
j;
bit_dat((bit)(tab[i]&0×40));
bit_dat((bit)(tab[i]&0×20));
bit_dat((bit)(tab[i]&0×10));
bit_dat((bit)(tab[i]&0×08));
bit_dat((bit)(tab[i]&0×04));
bit_dat((bit)(tab[i]&0×02));
bit_dat((bit)(tab[i]&0×01));
LED_CLKE=0;
}
void uchar_dat()
{
int
for(j=0;j<5;j++)
{
uint_dat(LEDBuffer[j]);
}
}
void main()
{
int
for(i=0;i<5;i++)
{
LEDBuffer[i]=i;
}
uchar_dat();
while(1);
}
i;