发布时间 : 星期四 文章单片机控制的花样流水灯设计毕业论文 - 图文更新完毕开始阅读320fd80b4a7302768e9939fb
3.2电路程序设计
程序流程图如图9所示:
程序中LIGHT7为多种亮灯方式结合循环
延时子程序DELAY为100毫秒延时,延时子程序DELAY1为100毫秒延时 LIGHT1~LIGHT6亮灯方式程序中有标注
开 始 跳至主程序,设置外部中断0有效,电平触发 P3.0=0? LIGHT1 LIGHT2 P3.1=0? 主程序等待中断 P3.3=0? 中断到来? P3.4=0? 继续等待中断 LIGHT3 相应亮灯方式 LIGHT4 P3.5=0? LIGHT5 P3.6=0? LIGHT6 P3.7=0? LIGHT7 中断? 继续循环
图9 程序流程图
程序如下:
ORG 0000H
AJMP MAIN ;系统上电,执行主程序 ORG 0003H ;外部中断0入口 AJMP LOOP ;转移至中断服务程序 MAIN:
SETB EX0 ;允许INT0中断 SETB IT0 ;INT0中断选用电平触发 SETB EA ;CPU开中断 HALT: SJMP HALT ;等待中断
LOOP: ;判0转移到相应亮灯方式 SETB P3.2 JNB P3.0 ,LIGHT1 JNB P3.1 ,LIGHT2 JNB P3.3 ,LIGHT3 JNB P3.4 ,LIGHT4 JNB P3.5 ,LIGHT5 JNB P3.6 ,LIGHT6 JNB P3.7 ,LIGHT7
LIGHT1: ;一个正流水(100毫秒延时) SETB P3.0 MOV DPTR,#TAB1 MOV R0,#8
LIGHT11:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR
DJNZ R0,LIGHT11 JNB P3.0,LOOP
SJMP LIGHT1
LIGHT2: ;两个正流水(100毫秒延时) SETB P3.1 MOV DPTR,#TAB2 MOV R0,#4 LIGHT22:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR DJNZ R0,LIGHT22 SJMP LIGHT2
LIGHT3:
SETB P3.3 MOV DPTR,#TAB3 MOV R0,#8 LIGHT33:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR DJNZ R0,LIGHT33 JNB P3.0,LOOP SJMP LIGHT3
LIGHT4:
SETB P3.5 MOV DPTR,#TAB5 MOV R0,#4 LIGHT55:MOVX A,@DPTR
;隔一个正流水(100毫秒延时)隔一个倒流水(0.5秒延时)
MOV P1,A LCALL DELAY1 INC DPTR DJNZ R0,LIGHT55 JNB P3.0,LOOP SJMP LIGHT5
LIGHT5: SETB P3.7 MOV DPTR,#TAB7 MOV R0,#74 LIGHT77:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR DJNZ R0,LIGHT77 JNB P3.0,LOOP SJMP LIGHT7
DELAY1:MOV R3,#10 //0.5秒的延时子程序D1:MOV R7,#200 D2:MOV R6,#123 D3:DJNZ R6,D3 NOP
DJNZ R7,D2 DJNZ R3,D1 RET
DELAY:MOV R2,#40 //2秒的延时子程序 D4:MOV R1,# 200 D5:MOV R4,#123 D6:DJNZ R4,D6
(2秒延时);多样式流水