两位数码管30秒倒计时c语言,基于51单片机共阴两位数码管显示倒计时
时间: 2023-08-19 17:05:01 浏览: 149
好的,我可以提供基于51单片机的C语言代码,实现共阴两位数码管显示30秒倒计时。代码如下:
```
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula = P2^6; //数码管段选1
sbit wela = P2^7; //数码管段选2
uchar number[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管0~9的编码
void delay(uint i) //延时函数
{
while(i--);
}
void Display(uint num) //数码管显示函数
{
wela = 1; //打开第二位数码管
P0 = number[num / 10]; //显示十位数
delay(1000); //延时1ms
wela = 0; //关闭第二位数码管
dula = 1; //打开第一位数码管
P0 = number[num % 10]; //显示个位数
delay(1000); //延时1ms
dula = 0; //关闭第一位数码管
}
void main()
{
uint i, j;
for(i = 30; i > 0; i--) //倒计时30秒
{
for(j = 1000; j > 0; j--) //每秒计数1000次
{
Display(i); //显示倒计时数
}
}
}
```
在这个代码中,我们使用了P2口的第6和第7位分别作为数码管的段选1和段选2,使用了数码管0~9的编码进行数码管的显示。通过循环倒计时,每秒计数1000次,实现了30秒的倒计时,并且在数码管上进行了显示。
阅读全文