⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led12灯大循环程序.asm

📁 这是对LED灯显示的程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
							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 闪亮模式驱动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 逐亮模式驱动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
							RLC		A							
							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										//保护中断现场
							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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -