实验名称 实验三 综合实验 -LED 灯控制器 指导老师 专业班级 姓名 学号 联系电话 一、任务要求实验目的:加深对定时/计数器、中断、IO 端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法
实验内容:利用 C8051F310 单片机设计一个 LED 灯控制器主要功能和技术指标要求:1
LED 灯外接于 P0
LED 灯分别按 5Hz,1Hz 和 0
5Hz 三种不同频率闪动,各持续 20s
在 LED 显示器上显示当前模式
在 LED 灯开始和停止闪耀时蜂鸣器分别鸣响 1 次
利用单片机内部定时器定时,要求采纳中断方式
提高要求:1)使用按键(KINT)切换 LED 灯闪耀频率
2)在 LED 显示器上显示当前模式和频率值
3)其它个性化设计
二、设计思路利用定时器 T0 实现 0
5s 和 1s 的定时,分别对应 5Hz,1Hz 和 0
5Hz 三种闪耀方式的半周期,用 T0 的中断服务程序实现 LED 信号灯的闪耀和 LED 显示器显示当前模式,并重新开始计时
这三种定时时间的定时器计数初值存于工作寄存器中,赋计数初值时取出一种频率的闪耀结束后通过改变寄存器内的值来改变半周期,接着再赋值取出
利用另一个工作寄存器来控制闪耀次数,是当前模式运行时间为 20s
三、资源分配R0、R1:当前模式下定时器计数初值NR2:循环次数,即闪耀次数四、流程图 五、源代码 $include (C8051F310
inc) LED BIT P0
0 BEEP BIT P3
1 KINT BIT P0
1 开始R2 重新赋值改变定时器计数初值停止计时DEC R2蜂鸣器停止LED 灯状态改变启动蜂鸣器LED 灯点亮LED 显示器显示模式R2 赋值定时器设置中断允许设置重新取当前模式下定时器计数初值开始计时取定时器计数初值R