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

📄 trafic.asm

📁 是我在电子竞赛期间写的一些单片机汇编程序
💻 ASM
字号:
;-------------------------------------交通灯程序--------------------------------
	ORG 0000H
	AJMP MAIN
	ORG 000BH
	AJMP PIPO
	ORG 0100H 
MAIN:	MOV SP,#30H			;设置堆栈指针为30H
	MOV 40H,#00H		;要求的计数溢出次数,即循环次数	
	MOV 41H,#25H		;存倒计时数
	MOV TMOD,#01H		;设置定时器0工作方式1
	MOV TH0,#0DCH		;定初值
	MOV TL0,#00H		;定时10MS						
	SETB EA			;开总中断,(总闸)
	SETB ET0			;允许定时中断
	SETB TR0			;开始计时
	MOV 42H,#00H		;用此地址区来存显示的秒数
	MOV R6,#00H			;控制闪烁与不闪烁
	MOV 44H,#00H		
CYCLE:LCALL DISP			;等待中断
	LJMP CYCLE
PIPO: INC R6			;1秒闪烁二次
	CJNE R6,#32H,NEXT	
	MOV R6,#00H
	INC 44H
NEXT:	PUSH PSW			;10MS已到
	PUSH ACC
	MOV TH0,#0DCH		;重置初值 
	MOV TL0,#00H
	INC 40H      
	MOV A,40H
	CJNE A,#64H,RET0
	MOV 40H,#00H
	MOV A,41H
	DEC A
KK:	CJNE A,#1FH,KK0		;到1F时减6
	SUBB A,#06H
	AJMP KK1
KK0:	CJNE A,#0FH,KK1		;到0F时减6
	SUBB A,#06H
KK1:	MOV 41H,A
KK2:	CJNE A,#0FFH,RET0
	MOV R7,42H
AA0:	CJNE R7,#00H,AA1		;控制25S到5S到15S到5S的倒计时循环显示
	MOV 41H,#05H
	INC 42H
AA1:	CJNE R7,#01H,AA2
	MOV 41H,#15H
	INC 42H
AA2:	CJNE R7,#02H,AA3
	MOV 41H,#05H
	INC 42H
AA3: 	CJNE R7,#03H,RET0
	MOV 41H,#25H	
	MOV 42H,#00H
RET0: POP ACC
	POP PSW
	RETI
DISP:	MOV A,41H   ;显示子程序
	ANL A,#0FH
	ACALL TABLE
	MOV P2,A
	CLR P0.6
	ACALL DELAY
	SETB P0.6
	MOV A,41H
	SWAP A
	ANL A,#0FH
	ACALL TABLE
	MOV P2,A
	CLR P0.5
	ACALL DELAY
	SETB P0.5
BB0:	MOV R7,42H
    	CJNE R7,#01H,BB1
	MOV A,44H
	JB ACC.0, BULIAO1	
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.4
	CLR P2.0
	CLR P0.7 
	CPL P1.0
	ACALL DELAY
	SETB P0.7
BULIAO1:
BB1:	MOV R7,42H
	CJNE R7,#02H,BB2
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.2
	CLR P2.3
	CLR P0.7 
	ACALL DELAY
	SETB P0.7
BB2:	MOV R7,42H
	CJNE R7,#03H,BB3
	MOV A,44H
	JB ACC.0, BULIAO	
	SETB P0.7
	MOV P2,#0FFH
	CPL P1.0
	CLR P2.1
	CLR P2.3
	CLR P0.7 
	ACALL DELAY
	SETB P0.7
BULIAO:
BB3:	MOV R7,42H
	CJNE R7,#00H,OUT1
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.5
	CLR P2.0
	CLR P0.7 
	ACALL DELAY
	SETB P0.7
OUT1:	RET
TABLE:INC A
	MOVC A,@A+PC
	RET     
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H	
DELAY: PUSH PSW				;延时子程序
	 MOV	R3,#10H
DELAY0:MOV	R4,#50H
DELAY1:DJNZ	R4,DELAY1
	 DJNZ	R3,DELAY0
	 POP PSW 
RET
END

⌨️ 快捷键说明

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