#include<reg51.h> unsigned int num; unsigned int flag=1; unsigned char DIS[]={0x3f,0x04,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f }; void delay() { unsigned int i; unsigned int j=150; while(j--) {for(i=0;i<150;i++);} } void blink(x) { P1=0; delay(); P1=DIS[x]; delay(); } void exint0() interrupt 0 { flag=flag+1; } void main() { P1=0x00; IT0=1; IE=0x01; num=0; while(10-num) { switch(flag%2) { case 1: P1=DIS[num]; delay(); num++; break; case 0: blink(num-1); break; } } }
时间: 2024-03-26 14:35:26 浏览: 36
duojikongzhi.rar_Unsigned_c++include <reg51>
以下是以你提供的代码为原型的流程图设计:
```
开始
|
|__初始化num为0,flag为1,P1为0x00
|
|__设置外部中断0,IT0为1
|
|__开启中断允许,IE为0x01
|
|__循环10次
|
|__根据flag的奇偶性判断执行分支
|
|__若为奇数,P1显示DIS[num],延时一段时间,num自增
|
|__若为偶数,闪烁显示之前的数字,blink(num-1)
|
|__结束
```
希望这个流程图能够帮助你更好地理解代码的执行逻辑。
阅读全文