#include<reg51.h> unsigned int num; unsigned int flag=1; unsigned char DIS[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; void delay() { unsigned int i; unsigned int j=150; while(j--) {for(i=0;i<150;i++);} } void blink(x) { P0=0; delay(); P0=DIS[x]; delay(); } void exint0() interrupt 0 { flag=flag+1; } void main() { P2=0xff; IT0=1; IE=0x81; while(1) { num=0; while(10-num) { switch(flag%2) { case 1: P0=DIS[num]; delay(); num++; break; case 0: blink(num-1); break; } } } }
时间: 2024-03-26 07:37:25 浏览: 47
duojikongzhi.rar_Unsigned_c++include <reg51>
这是一段基于51单片机的程序代码,实现了一个数字计数器和闪烁显示器的功能。其中:
- `DIS`数组存储了0~9十个数字的数码管显示码;
- `delay()`函数用于延时,通过循环实现;
- `blink(x)`函数用于闪烁显示,其中`x`为要显示的数字;
- `exint0()`函数是外部中断0的中断服务程序,当外部中断0触发时,`flag`加1;
- 在`main()`函数中,先初始化相关参数,然后进入无限循环。在循环中,通过`flag`的值来判断当前是计数器模式还是闪烁模式,实现数字的计数和闪烁显示。
注意:这段代码中没有注释,可读性较差,需要认真理解每一个函数和变量的作用。
阅读全文