用c语言使keil实现数码管定时从0依次到99的显示并清0再次显示
以下是用C语言编写的实现数码管定时从0依次到99的显示,并清0再次显示的程序:
#include <reg52.h>
// 定义数码管的引脚
#define LED P0
// 定义延时函数
void delay(unsigned int i) {
while (i--);
}
// 数码管显示函数,num为要显示的数字
void display(unsigned char num) {
LED = 0xff; // 全部关闭
switch (num) {
case 0: LED = 0xc0; break;
case 1: LED = 0xf9; break;
case 2: LED = 0xa4; break;
case 3: LED = 0xb0; break;
case 4: LED = 0x99; break;
case 5: LED = 0x92; break;
case 6: LED = 0x82; break;
case 7: LED = 0xf8; break;
case 8: LED = 0x80; break;
case 9: LED = 0x90; break;
default: break;
}
}
void main() {
unsigned char i, j;
while (1) {
// 从0到99循环显示
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
display(i);
delay(50000);
display(j);
delay(50000);
}
}
// 清零
display(0);
delay(50000);
display(0);
delay(50000);
}
}
在该程序中,我们首先定义了数码管的引脚,并编写了一个延时函数来实现延时功能。然后定义了一个显示函数,该函数接收一个数字作为参数,并根据数字来设置数码管的引脚状态,从而将该数字显示在数码管上。
在主函数中,我们使用两个循环来从0到99循环显示数字,每次延时50000个机器周期。在显示完99后,我们再次调用显示函数来清零,然后再次延时50000个机器周期,以便下一轮循环开始。程序将不断循环执行,直到我们停止运行
原文地址: https://www.cveoy.top/t/topic/fjwW 著作权归作者所有。请勿转载和采集!