#include <REG51.H> void delay50ms(unsigned char i) { unsigned char k; for(k=0;k<i;k++) { TH1=(65536-50000)/256; TL1=(65536-50000)%256; TR1=1; while(!TF1); TF1=0; } } void main(){ unsigned char code disp[]={0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F}; unsigned char second; TMOD=0x10; P2=0x00; while(1) { for(second=0;second<10;second++){ P0=disp[second]; delay50ms(20); P0=0x00; } } }
时间: 2023-07-15 10:09:55 浏览: 96
c51库函数下载
这是一段基于 8051 单片机的简单程序,用于控制数码管显示数字 0-9。程序主要包括以下几个部分:
1. 延时函数 `delay50ms`:该函数用于生成 50ms 的延时,使得数码管上的数字可以被逐个显示出来。具体实现方式为使用定时器 TMOD 产生 1ms 的中断,然后在 `delay50ms` 函数中循环调用该中断函数,直到达到所需的延时时间。
2. 数码管显示函数:该函数定义了一个数组 `disp`,其中存储了数码管显示数字 0-9 对应的编码。在主函数中,通过循环遍历该数组,将每个数字的编码依次输出到 P0 端口,然后再延时 1s,以便观察。
3. 主函数:该函数主要调用了上述两个函数,并且通过一个无限循环来使程序不断运行。
阅读全文