7.2.1  单片机中断控制循环灯

7.2.1 单片机中断控制循环灯

单片机丰富的硬件资源可以同时控制多个发光二极管,小灯状态的变换是编程的核心问题,可行的方法有运用移位运算和定时器中断两种。小灯的循环可以运用输出接口指令“MOV P1,A”或“MOV P1,#DATA”,只要给累加器值或常数值,然后执行上述指令,即可达到输出控制的动作。每次送出的数据不同。P1接口具体数据输出见表7-2。

表7-2 P1接口输出表

978-7-111-46831-8-Chapter07-15.jpg

1.应用电路

循环灯电路如图7-7所示,单片机P1接口分别连接8个发光二极管。

978-7-111-46831-8-Chapter07-16.jpg

图7-7 循环灯电路

2.程序设计

(1)程序功能 单片机通过P1接口控制小灯的循环点亮或者循环熄灭,通过外部中断INT1的中断程序实现暗流和亮流的变换。

978-7-111-46831-8-Chapter07-17.jpg

图7-8 循环灯流程图

(2)程序流程图 循环灯流程如图7-8所示。

(3)参考程序

1)汇编参考程序(带中断INT1的循环灯):

978-7-111-46831-8-Chapter07-18.jpg

978-7-111-46831-8-Chapter07-19.jpg

2)C语言参考程序:

978-7-111-46831-8-Chapter07-20.jpg

978-7-111-46831-8-Chapter07-21.jpg

运行后的结果如图7-9所示。

978-7-111-46831-8-Chapter07-22.jpg

图7-9 运行后的结果(见彩插)