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

📄 tracffic.asm

📁 达盛单片机试验箱
💻 ASM
字号:
;8255控制交通红绿灯
;PA5--L1(红)、PA4--L2(黄)、PA3--L3(绿)	南北
;PA2--L5(红)、PA1--L6(黄)、PA0--L7(绿)	东西
;ST0:初始状态全为红。ST1:南北绿灯,东西红灯。ST2:南北黄灯闪烁,东西红灯亮。
;ST3:南北红灯亮,东西绿灯亮。ST4:南北红灯,东西黄灯闪烁。

A8255			XDATA	8000H
B8255			XDATA	8001H
C8255			XDATA	8002H
D8255			XDATA	8003H

				ORG		0000H
				
				AJMP	TRAFFIC
;*****************************************************************************
;		/*主程序*/
;*****************************************************************************	
				
				ORG		0030H
				
TRAFFIC:		MOV		DPTR,#D8255			;状态口
				MOV		A,#80H				;方式 0 输出
				MOVX	@DPTR,A
				MOV		DPTR,#A8255			;PA口地址
				CALL	ST0
TRAFFIC1:		CALL	ST1
				CALL	ST2
				CALL	ST3
				CALL	ST4
				AJMP	TRAFFIC1	

;*****************************************************************************
;		/*初始状态全为红灯*/
;*****************************************************************************

ST0:			MOV		A,#1BH			
				MOVX	@DPTR,A
				CALL	DELAY
				RET
				
;*****************************************************************************
;		/*南北为绿灯,东西为红灯子程序*/
;*****************************************************************************
	
ST1:			MOV		A,#33H			
				MOVX	@DPTR,A
				CALL	DELAY_3S
				CALL	DELAY_3S
				CALL	DELAY_3S
				RET
				
;*****************************************************************************
;		/*南北红灯闪烁,东西为红灯子程序*/
;*****************************************************************************
	
ST2:			MOV		R0,#5	
ST20:			MOV		A,#2BH			
				MOVX	@DPTR,A
				CALL	DELAY
				MOV		A,#3BH
				MOVX	@DPTR,A
				CALL	DELAY
				DJNZ	R0,ST20
				RET
	
;*****************************************************************************
;		/*南北为红灯,东西为绿灯子程序*/
;*****************************************************************************

ST3:			MOV		A,#1EH			
				MOVX	@DPTR,A
				CALL	DELAY_3S
				CALL	DELAY_3S
				CALL	DELAY_3S
				RET
				
;*****************************************************************************
;		/*南北为红灯,东西黄灯闪烁子程序*/
;*****************************************************************************
	
ST4:			MOV		R0,#5			
ST40:			MOV		A,#1DH
				MOVX	@DPTR,A
				CALL	DELAY
				MOV		A,#1FH
				MOVX	@DPTR,A
				CALL	DELAY
				DJNZ	R0,ST40
				RET

;*****************************************************************************
;		/*延时子程序*/
;*****************************************************************************

DELAY_3S:		MOV     R5,#10              ;延时约3秒
DELAY_3S0:      MOV     R6,#225
DELAY_3S1:      MOV     R7,#225
DELAY_3S2:     	NOP
				NOP
				DJNZ    R7,DELAY_3S2
				DJNZ    R6,DELAY_3S1
				DJNZ    R5,DELAY_3S0
				RET
				
DELAY:			MOV		R5,#10
DELAY1:  	 	MOV     R6,#50              
DELAY2:  		MOV     R7,#250
				DJNZ    R7,$
				DJNZ    R6,DELAY2
				DJNZ	R5,DELAY1
				RET
	
				END							

⌨️ 快捷键说明

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