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

📄 runing3.asm

📁 在Keil上编写的可以运行于80C51系列单片机的跑马灯测试程序
💻 ASM
字号:
      ORG   0000H
      AJMP  START
      ORG   000BH
      AJMP  ZHUAN
      ORG   0030H
 
START:
      MOV   TMOD, #01H
      MOV   TH0,  #10H
      MOV   TL0,  #0B0H
      MOV   IE,   #82H
      SETB   TR0
      MOV    22H,#0
      SETB   20H.0
      MOV   21H,   #0
      MOV   24H,  #7
      MOV   26H,   #0
      MOV   25H,   #3
      MOV   30H,   #4
      
  DD: MOV   27H,   #0
      ACALL KEYREAD
      JB    22H.0, SHUZI
      ACALL DISPA
      AJMP  PANDUAN
SHUZI:
      ACALL DISPB
PANDUAN:
      JB    27H.7,   FANHUI
      CPL   20H.0
FANHUI:AJMP  DD



DISPB:
        MOV     R5,  #08H
        MOV     R2,  #01H
        MOV     R0,  #00H
 DISP1B:MOV     DPTR,#8FFFH
        MOV     A,   R2 
	MOVX    @DPTR,A

	MOV     A,   R0
	ADD     A,   21H
	MOV     B ,  #17
	DIV     AB
	MOV     A,   B
  DISP2B:MOV     DPTR,#SHOWTABLE
        MOVC    A,   @A+DPTR
	MOV     DPTR,#9FFFH
	MOVX    @DPTR,A

	ACALL   DEL5
        ACALL   DEL5
	MOV     A,   R2
	RL      A
	MOV     R2,  A
	INC     R0
	DJNZ    R5,  DISP1B
      RET
SHOWTABLE:
        DB   3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
	DB   00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
  DEL5: MOV     R6,  #00H
    TM5: MOV     R7,  #01H
        DJNZ    R7,  $
	DJNZ    R6,  TM5
      RET


DISPA:MOV   R3,21H
      MOV   R5, #10
      MOV   R2, #0
DISP1A:MOV   A,  R3
      ADD   A,  R2
      MOV   B,  #20
      DIV   AB
DISP2A:MOV   A,  B
      MOV   DPTR, #ZIWEIA
      MOVC  A,    @A+DPTR
      MOV   DPTR, #8FFFH
      MOVX  @DPTR, A
      MOV   A,  B
      MOV   DPTR, #ZIXINGA
      MOVC  A,    @A+DPTR
      MOV   DPTR, #9FFFH 
      MOVX  @DPTR, A 
      INC   R2
      ACALL DEL0
      DJNZ  R5,  DISP1A
     RET
ZIWEIA:
      DB  80H,40H,20H,10H,08H,04H,02H,01H,01H,01H
      DB  01H,02H,04H,08H,10H,20H,40H,80H,80H,80H
ZIXINGA:
      DB  01H,01H,01H,01H,01H,01H,01H,01H,02H,04H
      DB  08H,08H,08H,08H,08H,08H,08H,08H,10H,20H
DEL0: MOV  R6, #00H
  TM: MOV  R7, #01H
      DJNZ R7, $
      DJNZ R6,TM
     RET


ZHUAN:
      MOV   R3, 21H
      DJNZ  30H,NEXT
      MOV   30H,#2
      JNB   20H.0, SHUNA
  NIA: MOV   A,  R3
      JNZ   JIXUA
      MOV   R3, #20
 JIXUA:DEC   R3
      AJMP  NEXT
SHUNA: INC   R3
      CJNE  R3, #20,NEXT
      MOV   R3, #0
NEXT:
      MOV   21H, R3
      MOV   TH0, #20H
      MOV   TL0, #0B0H
     RETI
   
       
;读键子程
      NEW_KEY	EQU	22H
      OLD_KEY	EQU	23H
KEYREAD:
	CLR	PSW.5
KEY_AGAIN:
	ACALL	KEY_INPUT
	JNB	PSW.5,	KEY_OVER
	ACALL	KEY_DELAY
	ACALL	KEY_INPUT
	JNB	PSW.5,	KEY_OVER
	MOV	A,	NEW_KEY
	CJNE	A,	OLD_KEY,KEY_OVER
UPKEY:
	ACALL	KEY_INPUT
	JB	PSW.5,	UPKEY
	ACALL	KEY_INPUT
	JB	PSW.5,	UPKEY
	MOV	R0,NEW_KEY
	RET
KEY_INPUT:
        MOV  A,    #00H		;显示0
        MOV   DPTR, #9000H
        MOVX  @DPTR, A	;ZIXING
	CLR	F0
	MOV	R1,	#00H
	MOV	R2,	#04H
	MOV	R3,	#01H
KEY_LOOP:
	MOV	A,	R3
	MOV	DPTR,	#8000H
	MOVX	@DPTR,	A
	MOVX	A,	@DPTR
        MOV	R4,	#04H
KEY_LOOP1:
	RRC	A
	JNC	NEXT_KEY
	MOV	OLD_KEY,NEW_KEY
	MOV	A,	R1
	MOV     DPTR, #KEY_TABLE_BCD
	MOVC    A,    @A+DPTR
	MOV	NEW_KEY, A
	SETB	F0
	AJMP	KEY_OVER_OK
NEXT_KEY:
	INC	R1
	DJNZ	R4,KEY_LOOP1
	MOV	A, R3
	RL	A
	MOV	R3, A
	DJNZ	R2, KEY_LOOP
	AJMP	KEY_OVER_OK
KEY_OVER:
	MOV	27H, #80H
KEY_OVER_OK:
	RET
KEY_DELAY:
	MOV	R0, #0FFH
	DJNZ	R0, $			
	RET
KEY_TABLE_BCD:
      DB  	01H,01H,02H,02H
      DB	01H,01H,02H,02H
      DB	01H,01H,02H,02H
      DB	01H,01H,02H,02H         
     
   END

⌨️ 快捷键说明

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