用c51单片机写一个数码管的倒计时程序
时间: 2023-04-03 16:03:32 浏览: 193
好的,我可以回答这个问题。以下是一个简单的用 C51 单片机写的数码管倒计时程序:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; // 数码管显示表
void delay(uint i) // 延时函数
{
uint j, k;
for(j = i; j > 0; j--)
for(k = 110; k > 0; k--);
}
void main()
{
uchar i, j, k;
for(i = 9; i >= 0; i--) // 倒计时
for(j = 59; j >= 0; j--)
for(k = 99; k >= 0; k--)
{
P0 = table[i]; // 显示百位
P2 = 0xfe; // 选择百位
delay(1);
P0 = table[j / 10]; // 显示十位
P2 = 0xfd; // 选择十位
delay(1);
P0 = table[j % 10]; // 显示个位
P2 = 0xfb; // 选择个位
delay(1);
P0 = table[k / 10]; // 显示十分位
P2 = 0xf7; // 选择十分位
delay(1);
P0 = table[k % 10]; // 显示秒分位
P2 = 0xef; // 选择秒分位
delay(1);
}
while(1); // 循环等待
}
阅读全文