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

📄 test.asm

📁 适用于51单片机 尤其是am89s51单片机
💻 ASM
字号:

;----------------------start-----------------------
   
         KEY_NUM EQU 30H
         MD EQU 31H
  
        ORG 000H
        JMP MAIN
        ORG 0023H
        LJMP  RX_INT       
        ORG 100H
   MAIN:MOV SP ,#60H       
        MOV P1,#00H      ;TEST
        MOV P0,#00H
        MOV P2,#00H
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        MOV P1,#0FFH      ;INIT 
        MOV P2,#0FFH
        MOV P0,#0FFH
        MOV P3,#0FFH
        CLR A
        MOV MD ,#00H
        MOV A,P3
        CPL A        
        ANL A,#0F0H
        SWAP A
        MOV MD,A
        RL A
        MOV DPTR,#JUMP
        JMP @A+DPTR
  JUMP: AJMP MOD0
        AJMP MOD1
        AJMP MOD2
        AJMP MOD3
        AJMP MOD4
        AJMP MOD5
        AJMP MOD6
        AJMP MOD7
        AJMP MOD8
        AJMP MOD9
        AJMP MOD10
        AJMP MOD11
        AJMP MOD12
        AJMP MOD13
        AJMP MOD14
        AJMP MOD15
;----------P0:KEY INTO BIN-------------        
  MOD0: MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
     M0:LCALL KEY
        MOV P0,#0FFH
        MOV A,KEY_NUM
        MOV DPTR,#LED_CODE
        MOVC A,@A+DPTR
        MOV P2,A
        MOV A,KEY_NUM
        SWAP A
        CPL A
        MOV P1,A
        JMP M0
 ;---------P1 KEY INTO BCD------------       
  MOD1:MOV A,MD
       LCALL DISP0
       LCALL DELAY
       LCALL DELAY
       LCALL DELAY
       LCALL DELAY
       LCALL DELAY
    M1:LCALL KEY
       MOV P0,#0FFH
       MOV A,KEY_NUM
       DA A
       LCALL DISP1     
       MOV A,KEY_NUM
       SWAP A
       CPL A
       MOV P1,A
       JMP M1   
;------------P2 SEC_WATCH_TABLE---------------
    MOD2:MOV A,MD
         LCALL DISP0
         LCALL DELAY
         LCALL DELAY
	 JB P3.1,$	 
	 MOV R0,#00H
	 MOV A,#00H
	 MOV P0,#0C0H
	 MOV P2,#0C0H
     M21:MOV R3,#09H
     M22:LCALL DELAY  ;SEC-LOOP
         CPL P1.4
	 DJNZ R3,M22
	 CPL P1.7
         MOV A,R0
         ADD A,#01H
         DA A
         MOV R0,A
         LCALL DISP1
         CJNE R0,#60H,M21
         CLR P2.7
         LCALL DELAY
         SETB P2.7
         JMP MOD2
;-----------P3 TRAFFIC------------  
    MOD3:MOV A,MD
       LCALL DISP0
       LCALL DELAY
       LCALL DELAY
       JB P3.1,$                         
       CLR P1.4
   M30:MOV R0,#30H 
       MOV A,#30H       
       MOV P0,#0B0H
       MOV P2,#0C0H       
   M31:MOV R3,#09h
   M32:LCALL DELAY   ;SEC_LOOP       
       DJNZ R3,M32       
       MOV A,R0
       ADD A,#99H
       DA A
       MOV R0,A
       LCALL DISP1
       CJNE R0,#05h,M31
   M33:CPL P1.3
       MOV R3,#05H
   M34:LCALL DELAY
       DJNZ R3,M34
       CPL P1.3
       MOV R3,#04H
   M35:LCALL DELAY
       DJNZ R3,M35
       MOV A,R0 
       ADD A,#99H
       DA A
       MOV R0,A
       LCALL DISP1
       CJNE R0,#00H,M33
       CPL P1.4
       CPL P1.2
       SETB P1.3
       JMP M30
;--------P4 DISPLAY_DEMO1------------
  MOD4: MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        JB P3.1,$        ;a
        MOV P2,#0FFH
        MOV P0,#88H
    M41:CPL P2.0
        LCALL DELAY
        LCALL DELAY        
        JB P3.1,M41	
        SETB P2.0    
        MOV P0,#83H      ;b
    M42:CPL P2.1
        LCALL DELAY
        LCALL DELAY        
        JB P3.1,M42	
        SETB P2.1         
        MOV P0,#0C6H
    M43:CPL P2.2
        LCALL DELAY      ;C
        LCALL DELAY        
        JB P3.1,M43	
        SETB P2.2    
        MOV P0,#0A1H     ;D
    M44:CPL P2.3
        LCALL DELAY
        LCALL DELAY        
        JB P3.1,M44
        SETB P2.3    
        MOV P0,#86H     ;E
    M45:CPL P2.4
        LCALL DELAY
        LCALL DELAY        
        JB P3.1,M45	
        SETB P2.4    
        MOV P0,#8EH    ;F
    M46:CPL P2.5
        LCALL DELAY
        LCALL DELAY        
        JB P3.1,M46
        SETB P2.5    
        MOV P0,#90H    ;G
    M47:CPL P2.6
        LCALL DELAY
        LCALL DELAY        
        JB P3.1,M47
        SETB P2.6
        MOV P0,#89H    ;H
    M48:CPL P2.7
        LCALL DELAY
        LCALL DELAY        
        JB P3.1,M48
        SETB P2.7
        JMP MOD4        
;---------P5,DISP_DEMO2------------------        
  MOD5: MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        JB P3.1,$	
        MOV P0,#0FFH
        MOV P2,#0FFH
        CLR P2.0
        CLR P0.0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        CLR P2.1
        CLR P0.5
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        CLR P2.2
        CLR P0.4
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        CLR P2.3
        CLR P0.3
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        CLR P2.4
        CLR P0.2
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        CLR P2.5
        CLR P0.1
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        CLR P2.6
        CLR P0.6
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        MOV P2,#0FFH
        MOV P0,#0FFH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        MOV P2,#00H                           
        MOV P0,#00H
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        MOV P2,#0FFH
        MOV P0,#0FFH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        MOV P2,#0FFH
        MOV P0,#0FFH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        JMP MOD5       
;---------P6 DISP_DEMO3-------------------------
  MOD6: MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        JB P3.1,$
        MOV R0,#00H
    M6: MOV A,R0
        MOV DPTR,#LED_CODE
        MOVC A,@A+DPTR
        MOV P0,A
        MOV P2,A
        MOV A,R0
        SWAP A
        CPL A
        MOV P1,A
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        INC R0
        CJNE R0,#10H,M6   
        MOV R0,#00H
        JMP M6
;------------P7 DISP_DEMO4----------------  
  MOD7: MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        JB P3.1,$	
	MOV R0,#00H
	MOV P0,#0FFH
	MOV P2,#0FFH
    M7: MOV A,R0
        MOV DPTR,#LED_CODE
	MOVC A,@A+DPTR
	MOV P2,A	
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        MOV P0,A
	INC R0
	CJNE R0,#10H,M7
        MOV P2,#0FFH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY        
	JMP MOD7    
 
;---------P8 LED_DEMO1------------------ 
  MOD8: MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        JB P3.1,$	
        MOV A,#0FEH
    M8: MOV P1,A
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        RL A        
        JMP M8
;---------P9 LED_DEMO2----------  
   MOD9:MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        JB P3.1,$	
   M91: MOV P1,#0FFH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        mov p1,#0e7h
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        MOV P1,#0dbH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        mov p1,#0bdh
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        MOV P1,#7eH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        mov p1,#00h
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        MOV P1,#0FFH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        mov p1,#7eh
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        MOV P1,#0bdH
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        mov p1,#0dbh
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        MOV P1,#0e7H
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY
        mov p1,#00h
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	LCALL DELAY
	LCALL DELAY
	LCALL DELAY       
        JMP   M91
;----------P10 KEY_DEMO------------  
  MOD10:MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
   m10: lcall key   
        jnz bp
        setb p2.7
        jmp m10
   bp:  clr p2.7 
        lcall  delay
        jmp m10
;----------P11 ADD_DEMO---------
  MOD11:MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        MOV P0,#0C0H
        MOV P2,#0C0H
        JB P3.1,$        
        MOV R0,#01H
   M111:LCALL DISP2
        JNB P3.1,$      
   M112:JB P3.1,$
        LCALL DELAY
        JB P3.1,M112        
        INC R0
        JMP M111
;---------P12 DEC_DEMO-----------        
  MOD12:MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
	MOV P0,#0C0H
	MOV P2,#0C0H
        JB P3.1,$
        MOV R0,#0FFH
   M121:LCALL DISP2
        JNB P3.1,$
   M122:JB P3.1,$
        LCALL DELAY
        JB P3.1,M122
        DEC R0
        JMP M121        
;---------P13,CALC_DEMO-----------  
  MOD13:MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY        
	MOV P0,#0C0H
	MOV P2,#0C0H
	MOV R0,#00H        
   M132:JB P3.1, M131
        LCALL DELAY
        JB P3.1,M132
	MOV A,R0
	ADD A,#01H
	DA A      
        MOV R0,A   
        LCALL DISP1
        JNB P3.1,$
        JMP M131
   M131:JB P3.2,M132
        LCALL DELAY
        JB P3.2,M131
	MOV A,R0
	ADD A,#99H
	DA A 
        MOV R0,A       
        LCALL DISP1
        JNB P3.2,$
        JMP M132
 ;---------P14,TUNSUN_DEMO 1-----------   
  MOD14:MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY  
	JB P3.2,$
	MOV TMOD,#20H
	MOV TL1,#0E6H
	MOV TH1,#0E6H
	CLR ET1
	SETB TR1
	MOV SCON,#40H
	MOV PCON,#00H
	MOV P1,#0FFH
	MOV R2,#20H        	
	CLR A
 TSTART:MOV R3,#09H
        CPL A
        MOV P1,A
	CPL A
	MOV SBUF,A
   WAIT:JBC TI,CONT1
        SJMP WAIT
  CONT1:LCALL DELAY  
        DJNZ R3,CONT1     
	INC A
	DJNZ R2,TSTART
	CLR P2.7
	LCALL DELAY
	LCALL DELAY
        SETB P2.7
	JMP MOD14
;---------P15,TUNSUN_DEMO 2-----------   
  MOD15:MOV A,MD
        LCALL DISP0
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY
        LCALL DELAY  
	JB P3.2,$
	MOV TMOD,#20H
	MOV TL1,#0E6H
	MOV TH1,#0E6H
	CLR ET1
	SETB TR1
	MOV SCON,#50H
	MOV PCON,#00H
	MOV P1,#0FFH
	MOV R2,#10H 
        SETB ES
        SETB EA      
      	JB P2.7,$
	LCALL DELAY
	LCALL DELAY
        SETB P2.7
	JMP MOD15 
       
 ;----------------rx----------
 RX_INT:PUSH ACC
        PUSH PSW
  CONT2:JNB RI,$
        CLR RI
        MOV A,SBUF
        MOV SBUF,A
        CPL A
        MOV P1,A       
        JNB TI,$
        CLR TI
        DJNZ R2,CONT2
        CLR P2.7
        POP PSW
        POP ACC
        RETI      

 DISP0: PUSH ACC
        MOV P0,#8CH            ;"P"   
        MOV DPTR,#LED_CODE
        MOVC A,@A+DPTR
        MOV P2,A
        POP ACC
        RET
 DISP1:;DA A
       PUSH ACC
       ANL A,#0FH
       MOV DPTR,#LED_CODE
       MOVC A,@A+DPTR
       MOV P2,A
       POP ACC
       ANL A,#0F0H
       SWAP A
       MOVC A,@A+DPTR
       MOV P0,A
       RET    
 DISP2:MOV A,R0
       PUSH ACC
       ANL A,#0F0H
       SWAP A
       MOV DPTR,#LED_CODE
       MOVC A,@A+DPTR
       MOV P0,A
       POP ACC
       ANL A,#0FH
       MOVC A,@A+DPTR
       MOV P2,A
       RET   
 DELAY: MOV R6,#0F0H       ;0.111S
   DL1: MOV R7,#0E6H
        DJNZ R7,$
        DJNZ R6,DL1
        RET
 
   KEY: MOV A,P3             ;jianpian
        ANL A,#0FH
        MOV KEY_NUM,A
        LCALL DELAY
        MOV A,P3
        ANL A,#0FH
        CJNE A,KEY_NUM,KEY
        CPL A
        ANL A,#0FH
        MOV KEY_NUM,A
        RET
        
        
        ORG 0A00H 
LED_CODE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H     ;"0-F"
        DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH           
        
        END 

⌨️ 快捷键说明

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