两位数码管30秒倒计时c语言,基于51单片机共阴两位数码管显示倒计时
时间: 2023-08-19 07:05:01 浏览: 141
好的,下面是基于51单片机的共阴两位数码管显示30秒倒计时的C语言代码:
```c
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 数码管显示0-9的编码
void delay(uint i) // 延时函数
{
while(i--);
}
void display(uchar num) // 数码管显示函数
{
LSA=1;LSB=1;LSC=1; // 关闭数码管
P0=table[num]; // 显示数字
delay(100); // 延时
}
void main()
{
uchar i,j;
for(i=30;i>0;i--) // 30秒倒计时
{
for(j=0;j<50;j++) // 延时1秒
{
display(i/10); // 显示十位数字
display(i%10); // 显示个位数字
}
}
while(1); // 程序结束
}
```
该代码中使用了共阴两位数码管,通过对P0口的控制实现数码管的显示。其中,延时函数用于控制数码管的刷新速度,数码管显示函数用于显示数字。在程序中,使用双重循环实现30秒倒计时,外层循环控制倒计时的总时间,内层循环控制延时1秒。
阅读全文