以下是用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个机器周期,以便下一轮循环开始。程序将不断循环执行,直到我们停止运行

用c语言使keil实现数码管定时从0依次到99的显示并清0再次显示

原文地址: https://www.cveoy.top/t/topic/fjwW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录