基于单片机控制的艺术彩灯设计单片机单片机期末课程设计内容摘要:

DELAY_C1 == 0X10 PWM_C1 == 0X12 PWM_C2 == 0X13 FLAG == 0X14 BA == 0X15 BR3 == 0X16 T_PARA == 0X17。 变化周期 I_PARA == 0X18。 状态值最后是临时标志信号 DIRECT_F == 0 COMP_F == 1 AC_FLAG == 2。 ===================================================================== TIME_PARA1== 1。 可修改的时间参数。 ===================================================================== 系统加电后,首先要完成寄存器和各端口状态的初始化。 这是许多应用必有的步骤。 系统首先完成寄存器的初始化,然后由P61~P67端口读入拨码开关的状态,决定颜色变化的周期以及基色LED开始点亮的初始状态。 完成这些准备步骤后,系统将进入相应状态的中断程序,直到停止。 (1)用户端口说明P6P6P63:决定点亮的初始状态;P6P6P67:决定颜色变化的周期;P64:用于程序扩展,LED和普通灯泡可选。 (2)灯泡端口P50:红色LED;P51:绿色LED;P52:蓝色LED。 (3)主程序调用初始化模块代码START: CALL INIT。 初始化 MOV A,@0X99 MOV T_PARA,A(4)初始化模块程序代码INIT: MOV A,@O CONTW I/OW PORT MOV PORT5,A MOV FLAG,A MOV A,@00 I/OW I/OCF MOV A,@0X80 I/OW I/OCE MOV A,@0X0FF I/OW I/OCD MOV A,@TIME_PARA1 MOV DELAY_C1,A CLRA MOV PWM_C1,A MOV PWM_C2,A RET T1~T8状态的程序实现由系统流程图可知,色彩是通过不同的状态实现的,共有8种颜色——7彩和白色。 下面将各个状态分析它们的实现代码。 在进入各色彩状态之前,系统需要一个准备步骤,即发出白光,其实现代码如下:LOOP_T00: MOV A,@0B00000000 MOV PORT5,A LOOP_T0: WDTC CALL DELAY CALL DETECT_AC JBS FLAG,DIRECT_F JMP LOOP_T0 BC FLAG,DIRECT_F LOOP_T10: MOV A,@0B00000000 MOV PORT5,A:红灯渐亮在本状态下,红色LED逐渐由暗变亮,蓝色和绿色LED始终熄灭,彩灯最终呈现红色。 实现代码如下:。 ============================================================。 红色由暗渐亮,其他暗。 ============================================================ LOOP_T1: WDTC CALL DELAY CALL DETECT_AC MOV A,PWM_C1 SUB A,PWM_C2 JBS 0X03,0 JMP LT1 BS PORT5,3 JBS FLAG,DIRECT_F JMP LOOP_T1 BC FLAG,DIRECT_F JMP LOOP_T20 LT1: BC PORT5,3 JBS FLAG,DIRECT_F JMP LOOP_T1 BC FLAG,DIRECT_F :红灯亮,绿灯渐亮系统完成T1的步骤后进入T2状态。 此时,红色LED达到最亮的状态,绿色LED则开始逐渐由暗变亮,蓝色LED始终熄灭。 彩灯色彩的变化为红到橙到黄,最终稳定在黄色。 实现代码如下:。 ============================================================。 红的保持亮,绿色由暗渐亮。 ============================================================ LOOP_T20: MOV A,@0B00001000。 1 MOV PORT5,A LOOP_T2: WDTC CALL DELAY CALL DETECT_AC MOV A,PWM_C1 SUB A,PWM_C2 JBS 0X03,0 JMP LT2 BS PORT5,1 JBS FLAG,DIRECT_F JMP LOOP_T2 BC FLAG,DIRECT_F JMP LOOP_T30 LT2: BC PORT5,1 JBS FLAG,DIRECT_F JMP LOOP_T2 BC FLAG,DIRECT_F :绿灯亮,红灯渐暗系统完成T2的步骤后进入T3状态。 此时,绿色LED达到最亮的状态,而红色LED则开始逐渐由最亮状态变暗,蓝色LED仍然始终熄灭。 彩灯色彩的变化为黄到黄绿到绿,最终稳定在绿色。 实现代码如下:。 ============================================================。 绿色保持亮,红色色由亮渐暗。 ============================================================ LOOP_T30: MOV A,@0B00001010。 1 MOV PORT5,A LOOP_T3: WDTC CALL DELAY CALL DETECT_AC MOV A,PWM_C1 SUB A,PWM_C2 JBS 0X03,0 JMP LT3 BC PORT5,3 JBS FLAG,DIRECT_F JMP LOOP_T3 BC FLAG,DIRECT_F JMP LOOP_T40 LT3: BS PORT5,3 JBS FLAG,DIRECT_F JMP LOOP_T3 BC FLAG,DIRECT_F :绿灯亮,蓝灯渐亮系统完成T3的步骤后进入T4状态。 此时,绿色LED达到最亮的状态,蓝色LED则开始逐渐由熄灭状态点亮,红色LED始终熄灭。 彩灯色彩的变化为绿到绿蓝到青,最终稳定在绿青色。 实现代码如下:。 ============================================================。 绿色保持亮,蓝色色由暗渐亮。 ============================================================ LOOP_T40: MOV A,@0B00000010。 0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。