?? led12燈大循環(huán)程序.asm
字號:
MOV B,A
MOV A,PORT3_REG
ANL A,#11111100B
ORL A,B
MOV PORT3_REG,A
MOV P3,A
MOV T_MS_TIMER,#2
CLR T_MS_OVER_FLAG
RET
DRIVER_LED_MODE1_PG2: CJNE A,#2,DRIVER_LED_MODE1_PG3
//LED1~LED12逐亮
MOV P1,SIM_LED_REG_L
MOV A,PORT3_REG
ANL A,#11111100B
ORL A,SIM_LED_REG_H
MOV PORT3_REG,A
MOV P3,A
MOV T_MS_TIMER,#8
CLR T_MS_OVER_FLAG
MOV A,SIM_LED_REG_L
SETB C
RRC A
MOV SIM_LED_REG_L,A
MOV A,SIM_LED_REG_H
RLC A
JNB ACC.2,DRIVER_LED_MODE1_PG2_END
MOV SYSTEM_STATUS,#3
MOV SIM_LED_REG_H,#00H
MOV SIM_LED_REG_L,#00H
RET
DRIVER_LED_MODE1_PG2_END: MOV SIM_LED_REG_H,A
RET
DRIVER_LED_MODE1_PG3: //全滅停頓
MOV P1,#00000000B
MOV A,#11111100B
ANL P3,A
MOV T_MS_TIMER,#10
CLR T_MS_OVER_FLAG
MOV SYSTEM_STATUS,#0
RET
;**************************************************************************************************
//模式3 閃亮模式驅(qū)動LED
DRIVER_LED_MODE3_PG: MOV A,WORK_MODE_REG
CJNE A,#2,DRIVER_LED_MODE3_PG_END
JNB T_MS_OVER_FLAG,DRIVER_LED_MODE3_PG_END
MOV A,SIM_LED_REG_L
CPL A
MOV SIM_LED_REG_L,A
MOV P1,A
MOV A,SIM_LED_REG_H
CPL A
ANL A,#00000011B
MOV SIM_LED_REG_H,A
MOV B,A
MOV A,PORT3_REG
ANL A,#11111100B
ORL A,B
MOV PORT3_REG,A
MOV P3,A
MOV T_MS_TIMER,#3
CLR T_MS_OVER_FLAG
DRIVER_LED_MODE3_PG_END: RET
;**************************************************************************************************
//模式4 逐亮模式驅(qū)動LED
DRIVER_LED_MODE4_PG: MOV A,WORK_MODE_REG
CJNE A,#3,DRIVER_LED_MODE4_PG_END
JNB T_MS_OVER_FLAG,DRIVER_LED_MODE4_PG_END
MOV P1,SIM_LED_REG_L
MOV A,PORT3_REG
ANL A,#11111100B
ORL A,SIM_LED_REG_H
MOV PORT3_REG,A
MOV P3,A
MOV T_MS_TIMER,#10
CLR T_MS_OVER_FLAG
MOV A,SIM_LED_REG_L
SETB C
RRC A
MOV SIM_LED_REG_L,A
MOV A,SIM_LED_REG_H
JNB ACC.2,DRIVER_LED_MODE4_PG1
MOV SIM_LED_REG_H,#00H
MOV SIM_LED_REG_L,#00H
LJMP DRIVER_LED_MODE4_PG2
DRIVER_LED_MODE4_PG1: MOV SIM_LED_REG_H,A
DRIVER_LED_MODE4_PG2: MOV T_MS_TIMER,#10
CLR T_MS_OVER_FLAG
DRIVER_LED_MODE4_PG_END: RET
;**************************************************************************************************
/*以下是原來的模式
DRIVER_LED_MODE1_PG: JB T_MS_OVER_FLAG,DRIVER_LED_MODE1_PG0
RET
DRIVER_LED_MODE1_PG0: MOV A,SYSTEM_STATUS
CJNE A,#0,DRIVER_LED_MODE1_PG1
//全亮2秒
MOV SYSTEM_STATUS,#1
MOV P1,#0FFH
MOV A,#00001111B
ORL A,PORT3_REG
MOV PORT3_REG,A
MOV P3,A
MOV T_MS_TIMER,#20
CLR T_MS_OVER_FLAG
RET
DRIVER_LED_MODE1_PG1: CJNE A,#1,DRIVER_LED_MODE1_PG2
//全滅2秒
MOV SYSTEM_STATUS,#2
MOV P1,#00H
MOV A,#11110000B
ANL A,PORT3_REG
MOV PORT3_REG,A
MOV P3,PORT3_REG
MOV T_MS_TIMER,#10
CLR T_MS_OVER_FLAG
MOV SIM_LED_REG_H,#0
MOV SIM_LED_REG_L,#1
RET
DRIVER_LED_MODE1_PG2: CJNE A,#2,DRIVER_LED_MODE1_PG3
//LED1~LED12逐亮
MOV P1,SIM_LED_REG_L
MOV A,PORT3_REG
ANL A,#11110000B
ORL A,SIM_LED_REG_H
MOV PORT3_REG,A
MOV P3,A
MOV T_MS_TIMER,#10
CLR T_MS_OVER_FLAG
MOV A,SIM_LED_REG_L
CLR C
RLC A
MOV SIM_LED_REG_L,A
MOV A,SIM_LED_REG_H
RLC A
JNB ACC.4,DRIVER_LED_MODE1_PG2_END
MOV SYSTEM_STATUS,#3
MOV FLASH_TIME_REG,#8
MOV SIM_LED_REG_H,#00H
MOV SIM_LED_REG_L,#00H
RET
DRIVER_LED_MODE1_PG2_END: MOV SIM_LED_REG_H,A
RET
DRIVER_LED_MODE1_PG3: CJNE A,#3,DRIVER_LED_MODE1_PG4
//LED1~LED12同時閃亮
DJNZ FLASH_TIME_REG,DRIVER_LED_MODE1_PG3_1
MOV P1,#00000000B
MOV A,#11110000B
ANL P3,A
MOV T_MS_TIMER,#5
CLR T_MS_OVER_FLAG
MOV SYSTEM_STATUS,#0
/*
MOV T_MS_TIMER,#5
CLR T_MS_OVER_FLAG
MOV SYSTEM_STATUS,#4
*/
/*
RET
DRIVER_LED_MODE1_PG3_1: MOV A,SIM_LED_REG_L
CPL A
MOV SIM_LED_REG_L,A
MOV P1,A
MOV A,SIM_LED_REG_H
CPL A
ANL A,#00001111B
MOV SIM_LED_REG_H,A
MOV B,A
MOV A,PORT3_REG
ANL A,#11110000B
ORL A,B
MOV PORT3_REG,A
MOV P3,A
MOV T_MS_TIMER,#5
CLR T_MS_OVER_FLAG
RET
DRIVER_LED_MODE1_PG4: //LED1~LED12全滅
/*
MOV P1,#00000000B
MOV A,#11110000B
ANL P3,A
MOV T_MS_TIMER,#10
CLR T_MS_OVER_FLAG
MOV SYSTEM_STATUS,#0
*/
/*
RET
*/
//**************************************************************************************************
READ_INPUT_PG: JB INPUT,READ_INPUT_PG0
RET
READ_INPUT_PG0: JB RD_INPUT_FLAG,READ_INPUT_PG1
SETB RD_INPUT_FLAG
MOV T_S_TIMER,#1
CLR T_S_OVER_FLAG
RET
READ_INPUT_PG1: JB T_S_OVER_FLAG,READ_INPUT_PG2
RET
READ_INPUT_PG2: CLR T_S_OVER_FLAG
CLR RD_INPUT_FLAG
JB INPUT,READ_INPUT_PG3
RET
READ_INPUT_PG3: MOV P1,#00000000B
MOV A,#11110000B
ANL P3,A
MOV T_MS_TIMER,#10
CLR T_MS_OVER_FLAG
MOV SYSTEM_STATUS,#0
READ_INPUT_PG4: CPL BUZZ
MOV T_S_TIMER,#10
CLR T_S_OVER_FLAG
JNB T_S_OVER_FLAG,$
LJMP READ_INPUT_PG4
;**************************************************************************************************
//定時器T0中斷
//晶振頻率=4MHz,
//
T0_INT: PUSH PSW //保護(hù)中斷現(xiàn)場
PUSH ACC
MOV TH0,#3CH //T0定時器基本定時=150mS
MOV TL0,#0AFH
MOV A,T_MS_TIMER
JZ T0_INT1
DJNZ T_MS_TIMER,T0_INT1
SETB T_MS_OVER_FLAG
T0_INT1: MOV A,T_S_TIMER
JZ T0_INT2
DJNZ T_S_TIMER,T0_INT2
SETB T_S_OVER_FLAG
T0_INT2: DJNZ T_500MS_TIMER,END_INT_RUPT
MOV T_500MS_TIMER,#4
SETB T_500MS_OVER_FLAG
END_INT_RUPT: CLR TF0
POP ACC
POP PSW
RETI
;**************************************************************************************************
;串口中斷
SERIES_PG: JNB TI,SERIES_PG0
CLR TI
SETB TI_FLAG
RETI
SERIES_PG0: CLR RI
PUSH PSW
PUSH ACC
MOV A,R0
PUSH ACC
MOV R0,RECV_RS232_POINT
MOV A,SBUF
PUSH ACC
MOV @R0,A
INC RECV_RS232_POINT
MOV A,RECV_RS232_POINT
CJNE A,#RECV_COMD_BUFF+8,SERIES_PG1
POP ACC
JMP SERIES_PG2
SERIES_PG1: POP ACC
CJNE A,#',', SERIES_PG3
SETB RECV_COMD_FLAG
SERIES_PG2: MOV RECV_RS232_POINT,#RECV_COMD_BUFF
SERIES_PG3: POP ACC
MOV R0,A
POP ACC
POP PSW
RETI
;**************************************************************************************************
START_DISP_PG: MOV DPTR,#Version_Number
LCALL SEND_TO_RS232
MOV DPTR,#Release_Time
LCALL SEND_TO_RS232
MOV DPTR,#Deviser
LCALL SEND_TO_RS232
RET
;**************************************************************************************************
SEND_TO_RS232: CLR TI_FLAG
SEND_TO_RS232_1: CLR A
MOVC A,@A+DPTR
INC DPTR
MOV SBUF,A
JNB TI_FLAG,$
CLR TI_FLAG
CJNE A,#0DH,SEND_TO_RS232_1
MOV SBUF,#0AH
JNB TI_FLAG,$
CLR TI_FLAG
RET
;**************************************************************************************************
Version_Number:
DB 'Ver:V1.0',0DH
Release_Time:
DB 'Time:2006-04-06',0DH
Deviser:
DB '楊本雄',0DH
Mode1:
DB 'Mode1:',0DH
Mode2:
DB 'Mode2:',0DH
Mode3:
DB 'Mode3:',0DH
Mode4:
DB 'Mode4:',0DH
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -