【任务要求】 利用C8051F310 单片机设计一个LED 灯控制器, LED 灯外接于P0
0 端,LED 灯分别按2Hz,1Hz 和0
5Hz 三种不同频率闪动,各持续10s,在LED 灯开始和停止闪烁时蜂鸣器分别鸣响1 次,利用单片机内部定时器定时,要求采用中断方式
设计思路 【设计思路】 设置定时器T0 定时时间为 25ms,每隔 25ms 开一次中断,共 R1 次,R0 与 R2 共同作用构成循 400 次循环,以达到定时10 秒的目的
首先 LED 灯以 2Hz 频率闪动,初始赋值R1=10,循环执行 10 次中断后,即过去 0
25s,灯闪烁一次,依次循环,直至 10s 定时时间到,蜂鸣器响一次,2Hz 频率的闪烁结束
然后 LED 灯以 1Hz 频率闪动,设置 R1=20,与上类似,每过 0
5s 灯闪烁一次,十秒定时到,蜂鸣器响一次,到下一阶段
最后 LED 灯以0
5Hz 频率闪动,设置 R1=40 即可,思路同上
当三十秒执行完毕后,使用无条件转移语句跳转到程序开始处,循环以上过程
【资源分配】 R1:定时0
25 秒,0
5 秒或 1 秒 R0,R2:循环 400 次,定时10 秒 定时器T0:定时中断25ms 定时器T1:定时10s 【流程图】 开始定时器初始设置赋计数初值赋循环计时循环次数R0、R1和R2中断允许开始计时点亮LED灯蜂鸣器鸣响T1中断
N重置计数初值多次定时结束
NY重置计数初值多次定时结束
NY等待中断YYN闪烁半周期结束,LED灯亮灭转换重置循环计时次数R110s结束,重置循环计时次数R0,R2 【源代码 (含文件头说明、资源使用说明、语句行注释)】 ;------------------------------------ ;- Generated Initialization File -- ;-------