【摘要】:图7.7主程序流程图2.定时器中断子程序每1ms执行一次定时器中断子程序,刷新一位数码显示;每15ms扫描一次按键;每400ms,LED 流转一位;每800ms,设置状态位取反一次。
1.主程序
主程序流程图如图7.7所示。主程序首先关闭LED和数码显示,初始化定时器0,定时时间为1ms,然后判断按键SW1是否按下,若SW1按下,系统进入设置状态,在设置状态下,可以设置工作模式,设置结束后,系统根据工作模式控制LED的工作状态,并根据A/D转换器的输入电压,调节PWM 的占空比,控制LED亮度。
图7.7 主程序流程图
2.定时器中断子程序
每1ms执行一次定时器中断子程序,刷新一位数码显示;每15ms扫描一次按键;每400ms,LED 流转一位;每800ms,设置状态位取反一次。
3.按键扫描子程序
按键扫描子程序用来识别按键,返回按键编号。首先定义一个按键标志key_st=0,然后判断是否有闭合键,若没有,直接返回;若有,key_st=1。当key_st=1时,若再次检测到按键闭合,则key_st=2,同时,获取按键编号。当key_st=2时,等待按键释放。
4.按键处理子程序
按键处理子程序主要根据按键编号,修改相应的状态变量值。SW1闭合,对应状态变量取反;SW2闭合,对应状态变量取反;SW3闭合,对应状态变量加1,最大为4;SW4闭合,对应状态变量减1,最小为1。
5.LED 控制子程序
根据工作模式,控制LED 在四种不同状态下工作。当模式值为1时,LED 从左到右依次点亮;当模式值为2时,LED 从右到左依次点亮;当模式值为3时,LED从中间到两边依次点亮;当模式值为4时,LED 从两边到中间依次点亮。(www.daowen.com)
源代码如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关LED器件的原理及应用的文章