一个52单片机和两个573锁存器实现数码管循环移位显示数字“0~9”
573锁存器的控制引脚配置
仿真电路图仅供参考,实际上拉电阻、下拉电阻需自行选择。有错误请指出。
代码如下:
#include
#define uint unsigned int
#define uchar unsigned char
sbit wei = P2^0;
sbit duan = P2^1;
void delay_ms(uint n)
{
uint i,j;
for(i = n;i > 0;i --)
for(j = 300;j > i;j--);
}
void main()
{
char num[]={0x3f,0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
char add[]={0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd, 0xfe};
uint i;
uint j;
while(1)
{
for(i=0,j=0;i<10;i++,j++)
{
wei = 1;
P0 = add[j];
wei = 0;
if(j==7)
{
j=-1;//在j=-1和PO=add[j]之间会执行一步j++
}
duan = 1;
P0 = num[ i];
duan = 0;
if(i==9)
{
i=-1;//在i=-1和PO=num[ i]之间会执行一步i++
}
delay_ms(300);
}
}
}
数码管循环显示.zip
(121.02 KB, 下载次数: )
仿真