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

📄 51+ҦӦ

📁 51单片机汇编程序
💻
字号:
;P0口接J3,数据端口
;P2.2接 J2 B端子,表示段码锁存
;P2.3接 J2 A端子,标志位码锁存
; 这是一个9999 4位数倒计时,为了方便观察,定时时间稍短。
	LD1	BIT	P2.7
	LD2	BIT	P2.6
	LD3	BIT	P2.5
	LD4	BIT	P2.4
	LED1	BIT	P2.3
	LED2	BIT	P2.2
	LED3	BIT	P2.1
	LED4	BIT	P2.0
	BEEP	BIT	P3.6

        LATCH1 BIT P2.2
        LATCH2 BIT P2.3

	SUB		BIT	01H		;减位标志位
	BUF_LED1	EQU	24H		;LED1缓存
	BUF_LED2	EQU	25H		;LED2缓存
	BUF_LED3	EQU	26H		;LED3缓存
	BUF_LED4	EQU	27H		;LED4缓存
	BIN_LED1	EQU	28H
	BIN_LED2	EQU	29H
	BIN_LED3	EQU	2AH
	BIN_LED4	EQU	2BH
	BUFF_LP	EQU	2CH


	ORG	0000H
	LJMP	MAIN
	ORG	00BH
	LJMP	TT0
	ORG	0100H

MAIN:	MOV		SP,	#40H
	MOV		A,	#00H
	MOV		IE,	#00H
	MOV		R6,	#50H
	MOV		R0,	#20H
STR0:	MOV		@R0,	A
	INC		R0
	NOP
	DJNZ		R6,	STR0
	MOV		P1,#0FFH
	MOV		P0,#0FFH
	MOV		P2,#80H
	MOV		P3,#0FFH
	MOV		BUFF_LP,#00H
	MOV		TH0,#0FCH		;LED扫描周期1MS
	MOV		TL0,#18H
	MOV		TMOD,#01H
	mov	buf_led1,#6Fh
	mov	buf_led2,#6Fh
	mov	buf_led3,#6Fh
	mov	buf_led4,#6Fh
	MOV	BIN_LED1,#09H
	MOV	BIN_LED2,#09H
	MOV	BIN_LED3,#09H
	MOV	BIN_LED4,#09H
	SETB		EA			;1MS
	SETB		ET0
	SETB		TR0

WAIT:
        JB     SUB,SUB_L1
        LJMP WAIT
SUB_L1: MOV A,BIN_LED1
	CLR	SUB
	CJNE	A,#00H,SUB_EN
        MOV	BIN_LED1,#09
	LJMP	SUB_LED2
SUB_EN:  DEC	BIN_LED1
	 MOV	A,BIN_LED1
	 MOV	DPTR,#LED_CODE
	 MOVC	A,@A+DPTR
	 MOV	BUF_LED1,A
SUB_EN1: LJMP	WAIT
SUB_LED2:
	   MOV	BUF_LED1,#6FH
	   MOV	A,BIN_LED2
	   CJNE	A,#00H,SUB_EN2
           MOV	BIN_LED2,#09
	   LJMP	SUB_LED3
SUB_EN2: DEC	BIN_LED2
	 MOV	A,BIN_LED2
	 MOV	DPTR,#LED_CODE
	 MOVC	A,@A+DPTR
	 MOV	BUF_LED2,A
         LJMP	WAIT
SUB_LED3:
	   MOV	BUF_LED2,#6FH
	   MOV	A,BIN_LED3
	   CJNE	A,#00H,SUB_EN3
           MOV	BIN_LED3,#09
	   LJMP	SUB_LED4
SUB_EN3:  DEC	BIN_LED3
	  MOV	A,BIN_LED3
	  MOV	DPTR,#LED_CODE
	  MOVC	A,@A+DPTR
	  MOV	BUF_LED3,A
          LJMP	WAIT
SUB_LED4:
	   MOV	BUF_LED3,#6FH
	   MOV	A,BIN_LED4
	   CJNE	A,#00H,SUB_EN4
	   LJMP	SUB_LED5
SUB_EN4: DEC	BIN_LED4
	 MOV	A,BIN_LED4
	 MOV	DPTR,#LED_CODE
	 MOVC	A,@A+DPTR
	 MOV	BUF_LED4,A
         LJMP	WAIT
SUB_LED5:LJMP  MAIN

;定时器0,扫描数码管

TT0:		MOV		TH0,	#0FCH
		MOV		TL0,	#18H
		PUSH		ACC
		PUSH		PSW
		INC		BUFF_LP
		MOV		A,	BUFF_LP
		CJNE		A,	#04H,TT0_01
		MOV		BUFF_LP,#00H
TT0_01: 	MOV	A,	BUFF_LP
		RL		A
		MOV		DPTR,#LED_LOOP
		JMP		@A+DPTR
LED_LOOP:	AJMP		LED_L1
		AJMP		LED_L2
		AJMP		LED_L3
		AJMP		LED_L4
LED_L1:	       MOV P0,#11111110B
               SETB LATCH2
               CLR LATCH2
		MOV		P0,	BUF_LED4
                SETB LATCH1
                CLR LATCH1
		JMP		TT0_END
LED_L2:	       MOV P0,#11111101B
               SETB LATCH2
               CLR LATCH2
		MOV		P0,	BUF_LED3
                SETB LATCH1
                CLR LATCH1
		JMP		TT0_END
LED_L3:	       MOV P0,#11111011B
               SETB LATCH2
               CLR LATCH2
		MOV		P0,	BUF_LED2
                SETB LATCH1
                CLR LATCH1
		JMP		TT0_END
LED_L4:	       MOV P0,#11110111B
               SETB LATCH2
               CLR LATCH2
		MOV		P0,	BUF_LED1
                SETB LATCH1
                CLR LATCH1
		JMP		TT0_END
TT0_END:	INC		R2
		CJNE		R2,#100,TT0_END1
		MOV		R2,#00H
		SETB		SUB
TT0_END1:	POP		PSW
		POP      	ACC
		RETI
		NOP
		NOP
		LJMP	000H
DELAY:MOV R5,#0
D1:   MOV R6,#20
D2:   MOV R7,#248
      DJNZ R7,$
      DJNZ R6,D2
      DJNZ R5,D1
      RET

LED_CODE:      DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH


END

⌨️ 快捷键说明

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