ToC
实验内容
- 程序开始时
LED
灯D7-D0
全亮。 - 按下单脉冲开关
KK1
,响应IR6
中断请求,使绿灯(D3-D0
)亮,红灯(D7-D4
)灭。 - 按下单脉冲开关
KK2
,响应IR7
中断请求,使红灯(D7-D4
)亮,绿灯(D3-D0
)灭。
实验接线
LED
连接 8255
的 B
口,KK1+
连接 MIR6
,KK2+
连接 MIR7
。如下图所示:
代码
选做实验 1
描述
使用单脉冲开关控制 LED
的移动方向,初始状态仅点亮 D7
。
当 KK1
按下时,LED
灯向右移动;当 KK2
按下时,LED
灯向左移动;当 LED
灯移动到单侧边界时,停止移动。
分析
需要保存当前移动的状态,使得中断嵌套执行完后原中断不继续执行。
代码
选做实验 2
描述
在选做实验 1 的基础上,增加:
- 在向左移动过程中,如果要求其向右移动,则立即改变方向,向右移动。到最右侧后,向左移动到最左侧。
- 在向右移动中,如果要求其向左移动,不立即改变方向,等到移动到最右侧后再开始向左移动。
分析
在当前移动状态的基础上,增加是否需要向左移动的标志。在向右移动中断处理程序(MIR6
)的最后,当需要向左移动时,则调用向左移动中断处理程序(MIR7
)。