找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1628|回复: 0
收起左侧

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

[复制链接]
ID:620903 发表于 2021-8-21 17:02 | 显示全部楼层 |阅读模式
仿真演示.gif
一个52单片机和两个573锁存器实现数码管循环移位显示数字“0~9”
573锁存器的控制引脚配置
51hei截图20210821165257.png


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

#include <reg52.h>
#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, 下载次数: 12)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表