0
收藏
微博
微信
复制链接

51单片机利用寄存器实现数码管循环移位显示

提问于
2024-12-09 11:59

仿真演示.gif
一个52单片机和两个573锁存器实现数码管循环移位显示数字“0~9”
573锁存器的控制引脚配置
51hei截图20210821165257.png


仿真电路图仅供参考,实际上拉电阻、下拉电阻需自行选择。有错误请指出。
代码如下:

#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, 下载次数: )

2021-8-21 16:21 上传
点击文件名下载附件
仿真

收藏 46 0 0