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

📄 temp.asm

📁 是我在电子竞赛期间写的一些单片机汇编程序
💻 ASM
字号:
;-------------------------------------TRAFFIC PROGRAM-----------------------------------
  	ORG 0000H
	AJMP MAIN
	ORG 000BH
	LJMP PIPO
	ORG   0030H
MAIN:	MOV   SP,#5FH	
	MOV 40H,#00H		
	MOV 41H,#25H		
	MOV TMOD,#01H		
	MOV TH0,#0DCH		
	MOV TL0,#00H							
	SETB EA			
	SETB ET0
	MOV 42H,#00H		
	MOV R6,#00H			
	MOV 44H,#00H

	LCALL INIT
 	LCALL FIRST
  	MOV   DPTR,#TABLEx
  	ACALL DISPLAY
   	ACALL SECOND
  	MOV   DPTR,#TABLE2x
  	ACALL DISPLAY
INKEY:
	MOV P3,#0FFH
	JB P3.3,NEXT1			
QUDOU1:
	ACALL BUZZER
	JNB P3.3 ,QUDOU1
	LJMP LCDDIS	
NEXT1:
	JB P3.4,NEXT2
QUDOU2:ACALL BUZZER
	JNB P3.4,QUDOU2
	 LJMP LEDDIS
NEXT2:
	MOV P2,#0FEH
	JB  P3.5 ,NEXT3
QUDOU3:ACALL BUZZER
	JNB P3.5 ,QUDOU3
	LJMP ALL
NEXT3:
	MOV P2,#0FDH
	JB  P3.5,inkey
QUDOU4:ACALL BUZZER
	JNB P3.5,QUDOU4
	LJMP inkey
	
ALL:
	SETB TR0
	LCALL INIT
  	LCALL FIRST
  	MOV   DPTR,#TABLE1
  	ACALL DISPLAY
  	ACALL SECOND
  	MOV   DPTR,#TABLE2
  	ACALL DISPLAY
CYCLE:ACALL THIRD
  	MOV A,41H
  	SWAP A
  	ANL A,#0FH
 	ACALL TABLE
  	ACALL WRDATA
  	LCALL DELAY
  	MOV A,41H
  	ANL A,#0FH
  	ACALL TABLE
  	ACALL WRDATA
  	LCALL DELAY
aa:
	MOV P0,#0FFH
	MOV A,41H   
	ANL A,#0FH
	ACALL TABLEK
	MOV P2,A
	CLR P0.6
	ACALL DELAY
	SETB P0.6
	MOV A,41H
	SWAP A
	ANL A,#0FH
	ACALL TABLEK
	MOV P2,A
	CLR P0.5
	ACALL DELAY
	SETB P0.5

BB0:	MOV R7,42H
    	CJNE R7,#01H,BB1
	MOV P2,#0FFH
	MOV A,44H
	JB ACC.0, BULIAO1	
	SETB P0.7
	CLR P2.4
	CLR P2.0
	CLR 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 

BB2:	MOV R7,42H
	CJNE R7,#03H,BB3
	MOV A,44H
	MOV P2,#0FFH
	
	JB ACC.0, BULIAO	
	SETB P0.7
	CLR P2.1
	CLR P2.3
	CLR 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 
OUT1:	
	AJMP  CYCLE
TABLEK:INC A
	MOVC A,@A+PC
	RET     
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H

LCDDIS:
	SETB TR0

	LCALL INIT
	mov a,#01h
	acall wrcon
	LCALL FIRST
  	MOV   DPTR,#TABLE1
  	ACALL DISPLAY
   	ACALL SECOND
  	MOV   DPTR,#TABLE2
  	ACALL DISPLAY
	acall delay

LCDDIS1:
	ACALL THIRD
  	MOV A,41H
  	SWAP A
  	ANL A,#0FH
 	ACALL TABLE
  	ACALL WRDATA
  	LCALL DELAY
  	MOV A,41H
  	ANL A,#0FH
  	ACALL TABLE
  	ACALL WRDATA
  	LCALL DELAY

aB00:	MOV R7,42H
    	CJNE R7,#01H,aB111
	MOV A,44H
	JB ACC.0, aULIAO111	
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.4
	CLR P2.0
	CLR P0.7 
	CPL P1.0
	ACALL DELAY
	SETB P0.7
aULIAO111:
aB111:	MOV R7,42H
	CJNE R7,#02H,aB22
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.2
	CLR P2.3
	CLR P0.7 
	ACALL DELAY
	SETB P0.7
aB22:	MOV R7,42H
	CJNE R7,#03H,aB33
	MOV A,44H
	JB ACC.0, aULIAOP	
	SETB P0.7
	MOV P2,#0FFH
	CPL P1.0
	CLR P2.1
	CLR P2.3
	CLR P0.7 
	ACALL DELAY
	SETB P0.7
aULIAOP:
aB33:	MOV R7,42H
	CJNE R7,#00H,aUT2
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.5
	CLR P2.0
	CLR P0.7 
	LCALL DELAY
	SETB P0.7
aUT2:
  	AJMP   LCDDIS1

LEDDIS:
	SETB TR0
LEDDIS1:
	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
cB00:	MOV R7,42H
    	CJNE R7,#01H,cB111
	MOV A,44H
	JB ACC.0, cULIAO111	
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.4
	CLR P2.0
	CLR P0.7 
	CPL P1.0
	ACALL DELAY
	SETB P0.7
cULIAO111:
cB111:	MOV R7,42H
	CJNE R7,#02H,cB22
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.2
	CLR P2.3
	CLR P0.7 
	ACALL DELAY
	SETB P0.7
cB22:	MOV R7,42H
	CJNE R7,#03H,cB33
	MOV A,44H
	JB ACC.0,cULIAOP	
	SETB P0.7
	MOV P2,#0FFH
	CPL P1.0
	CLR P2.1
	CLR P2.3
	CLR P0.7 
	ACALL DELAY
	SETB P0.7
cULIAOP:
cB33:	MOV R7,42H
	CJNE R7,#00H,cUT2
	SETB P0.7
	MOV P2,#0FFH
	CLR P2.5
	CLR P2.0
	CLR P0.7 
	LCALL DELAY
	SETB P0.7
cUT2:
	LJMP LEDDIS1


BUZZER:
	CLR P1.0
	lCALL DELAY
	SETB P1.0
	RET 

NEXTP:
	MOV A,R3
	MOVC A,@A+DPTR
	LCALL WRDATA
	INC R3
	DJNZ R2,NEXTP
	RET
tablex: 
 	db "please select"
	   db"#"
table2x: 
	db"1:lcd,2:led,3:all"
	   db"#" 

INIT:
  	MOV A,#01H
	ACALL WRCON
  	MOV   A,#38H
  	ACALL WRCON
	MOV   A,#38H
  	ACALL WRCON
	MOV   A,#38H
  	ACALL WRCON
	MOV   A,#38H
  	ACALL WRCON
  	MOV A,#0CH
  	ACALL WRCON
  	MOV   A,#01H
  	ACALL WRCON
  	MOV   A,#06H
  	ACALL WRCON
  	MOV   A,#0CH
  	ACALL WRCON
  	RET
DISPLAY:
  	MOV   R1,#00H
NEXT:
  	MOV   A, R1
  	MOVC  A, @A+DPTR
  	CJNE  A, #23H,DSP
  	RET
DSP:
  	ACALL  WRDATA
  	INC    R1
  	AJMP   NEXT
FIRST:
  	MOV    A,#10000000B
  	ACALL  WRCON
  	RET
SECOND:
  	MOV    A,#11000000B
  	ACALL  WRCON
  	RET
THIRD:
  	MOV    A,#11001000B
  	ACALL  WRCON
  	RET
WRCON:
  	ACALL  BUSY
  	MOV    P3,#11110001B
  	NOP
  	SETB P3.3
  	MOV P0,A
  	NOP
  	CLR    P3.3
  	RET
WRDATA:
  	ACALL  BUSY
  	MOV   P3,#11110011B
  	NOP
  	SETB   P3.3
  	MOV    P0,A
  	NOP
  	CLR    P3.3
RET

BUSY:
  	PUSH   ACC
WAIT:
 	MOV   P3,#11110101B
  	NOP
  	SETB   P3.3
  	MOV    A,P0
  	JB     ACC.7,WAIT
  	POP    ACC
  	RET

DELAY: PUSH PSW				
	 MOV	R3,#10H
DELAY0:MOV	R4,#50H
DELAY1:DJNZ	R4,DELAY1
	 DJNZ	R3,DELAY0
	 POP PSW 
	RET
	
;DELAY12:
  	;MOV     R6,#80H
;D1:
 ;	MOV     R7,#80H
  	;DJNZ    R7,$
  	;DJNZ    R6,D1

TABLE1:	
	
      DB  "Triffic program:"
      DB  "#"

TABLE2:
 
       DB  "time is:"
       DB  "#"

TABLE:  INC     A	         
        MOVC    A,   @A+PC    
        RET
DB     "0123456789"	

PIPO: INC R6			
	CJNE R6,#32H,NEXT1O	
	MOV R6,#00H
	INC 44H
NEXT1O:PUSH PSW			
	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	
	SUBB A,#06H
	AJMP KK1
KK0:	CJNE A,#0FH,KK1		
	SUBB A,#06H
KK1:	MOV 41H,A
KK2:	CJNE A,#0FFH,RET0
	MOV R7,42H
AA0:	CJNE R7,#00H,AA1		
	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
END




⌨️ 快捷键说明

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