C51单片机仿真电路数码管显示电子表(C语言)

利用Keil uVision4编程程序,在Proteus 8 Professional中创建仿真电路


仿真电路


延迟代码

void delay(unsigned int x)
{
    while(x--);
}

C语言代码

数码管显示从0000开始,0310结束

#include<reg51.h>
//unsigned   第一个是符号位
//char   8字节       0-255
//int    16字节       0-2的16次方-1
unsigned char seven_seg[] = {
    0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int M = 5000;
void delay(unsigned int x)
{
    while(x--);
}

void main(void)
{
    unsigned char i;
    unsigned int a,b,c,d; 
    for(a = 0;a <= 310;a++)
    {
        if(a >= 0&&a <= 9)
        {
            P1 = seven_seg[i];
            P0 = P2 = P3 = 0xc0;
            delay(M);
            i++;
            if(i >= 10) i = 0;
        }else if(a >= 10&&a <= 99)
        {
            c = a/10;
            d = a%10;
            P3 = seven_seg[c];
            P1 = seven_seg[d];
            P0 = P2 = 0xc0;
            delay(M);
        }else if(a >= 100&&a <= 310)
        {
            b = a/100;
            c = a/10%10;
            d = a%10;
            P2 = seven_seg[b];
            P3 = seven_seg[c];
            P1 = seven_seg[d];
            P0 = 0xc0;
            delay(M);    
        }else
        {
            P2 = 0xf9;
            P1 = 0xb0;
            P0 = P3 = 0xc0;
        }
    }
    while(1)
    {
        P2 = 0xb0;
        P3 = 0xf9;
        P0 = P1 = 0xc0; 
    }
}

仿真电路和代码

链接:https://pan.baidu.com/s/1xm_wUnh_jmiFjctTLdByAw

提取码:5151

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值