【任务要求】利用 C8051F310 单片机设计一个 LED 灯控制器, LED 灯外接于端,LED 灯分别按2Hz,1Hz 和三种不同频率闪动,各持续 10s,在 LED 灯开始和停止闪耀时蜂鸣器分别鸣响 1次,利用单片机内部定时器定时,要求采纳中断方式
设计思路【设计思路】 设置定时器 T0 定时时间为 25ms,每隔 25ms 开一次中断,共 R1 次,R0 与 R2 共同作用构成循 400 次循环,以达到定时 10 秒的目的
首先 LED 灯以 2Hz 频率闪动,初始赋值R1=10,循环执行 10 次中断后,即过去,灯闪耀一次,依次循环,直至 10s 定时时间到,蜂鸣器响一次,2Hz 频率的闪耀结束
然后 LED 灯以 1Hz 频率闪动,设置 R1=20,与上类似,每过灯闪耀一次,十秒定时到,蜂鸣器响一次,到下一阶段
最后 LED 灯以频率闪动,设置 R1=40 即可,思路同上
当三十秒执行完毕后,使用无条件转移语句跳转到程序开始处,循环以上过程
【资源分配】R1:定时秒,秒或 1 秒R0,R2:循环 400 次,定时 10 秒定时器 T0:定时中断 25ms定时器 T1:定时 10s【流程图】 【源代码 (含文件头说明、资源使用说明、语句行注释)】;------------------------------------;- Generated Initialization File --;------------------------------------$include 8051Fpublic Init_DeviceINIT SEGMENT CODE rseg INIT ORG 0000H LJMP MAIN ORG 000BH ;T0 中断入口 LJMP IT0P ;转 T0 中断服务程序 ORG 001BH ;T1 中断入口 LJMP IT1P ;转