4.5.14.5.2LOOPLOOP0F0F0F0F7f7f7f7f
4.6.1
开始 K1按下了吗? FLAG=0吗? 置200次计数 置200次计数 输出取反 输出取反 延时500us 延时1ms 计数值计完了吗? 计数值计完了吗? FLAG取反 FLAG取反 4.6.2LOOPLOOP
4.7.1
4.7.23f4f7f6fP3=FFH,=0 开始 有键按下吗? K1按键识别成功否? 延时10ms 置显示“12345”字形码首地址 真得有键按下吗? P3=FFH,=0 有键按下吗? 延时10ms 置显示“HELLO”字形码首地址 真得有键按下吗? 根据当前状态识别按键 置字形码偏移量和位选代码 根据当前状态识别按键 P3=FFH,=0 查表并送出显示 P3=FFH,=0 有键按下吗? 有键按下吗? 延时2ms0 ,并指向下一个偏移量1 2 3 4.8.18延时10ms 4.8.24.8.34.8.44.9.14.9.14.9.23f4f7f6f4.10.14.10.1真得有键按下吗? C D E F ”45 6 7 5个数码管显示完否? 8 9 A B 延时10ms 真得有键按下吗? 4.10.24f3f4.11.24.11.1根据当前状态识别按键 .2f0f0f
根据当前状态识别按键 4.114.14.31A1A2A2A3A3A4A4A3f4f7f6f7c0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0
4.12.14.12.23f4f7f6f7c3f4f7f6f7c4.13.1
INT_T0:
.
PUSH ACC ;定时/计数器T0中断服务程序 PUSH PSW . .
POP PSW POP ACC RETI ;中断服务程序返回 END
(1. 定时2秒,采用16位定时50ms,共定时40次才可达到2秒,每50ms产生一
中断,定时的40次数在中断服务程序中完成,同样秒的定时,需要4次才可达到秒。对于中断程序,在主程序中要对中断开中断。
(2. 由于每次2秒定时到时,L1-L4要交替闪烁。采用ID来号来识别。当ID=0
时,L1在闪烁,当ID=1时,L2在闪烁;当ID=2时,L3在闪烁;当ID=3时,L4在闪烁
2. 程序框图
T0中断服务程序框图
开 始 Count2S=0,Cnt02S=0,ID=0 TMOD=01H,TH0,TL0装入定时初值