扫描数码管c语言程序,51单片机数码管动态扫描C程序

2010

#include

sbit P00 = P0 ^ 0;

sbit P01 = P0 ^ 1;

sbit P02 = P0 ^ 2;

sbit P03 = P0 ^ 3;

int DATA_LED[11] =

{

//0~9的数码管段码 A0H,BBH,62H,2AH,39H,2CH,24H,BAH,20H,28H   根据具体电而定,不通用

0xA0,   //0

0xBB,   //1

0x62,   //2

0x2A,   //3

0x39,   //4

0x2C,   //5

0x24,   //6

0xBA,   //7

0x20,   //8

0x28,   //9

0xFF

};

void delay(int m)   //延时程序,延时m*0.5毫秒

{

unsigned int i;

unsigned int j;

for (i = 0; i < m; i++)

{

for (j = 0; j < 500; j++){}

}

}

void led(int n)     //数码管显示及数据处理程序

{

P1 = 0xFF;

P1 = DATA_LED[n % 10];   //个位

P00 = 0;

delay(1);

P00 = 1;

P1 = 0xFF;

P1 = DATA_LED[n / 10 % 10];   //十位

P01 = 0;

delay(1);

P01 = 1;

P1 = 0xFF;

P1 = DATA_LED[n / 100 % 10];   //百位

P02 = 0;

delay(1);

P02 = 1;

P1 = 0xFF;

P1 = DATA_LED[n / 1000 % 10];   //千位

P03 = 0;

delay(1);

P03 = 1;

}

void main(void)

{

while (1)

{

led(404);   //显示数字404,实际显示的是0404,需要在led()函数中判断,没有千位的情况,不是让显示成0

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值