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

📄 ledtest.asm

📁 对最小系统的键盘与显示作简要介绍
💻 ASM
字号:
;89S52LED键盘显示测试程序
;功能:开机时数码管显示“012345”,按K1显示“111111”,按K2显示“2222
;22”,按K3显示“333333”,按K4显示“444444”,按K5显示“555555”,DAC8512产生锯齿波
LEDCLK  EQU     P1.5
LEDDATA EQU     P1.6
SCLK    EQU	P2.2
SDI	EQU	P2.1
LD      EQU     P2.0

        ORG     0000H
        SJMP    MAIN
        ORG     000BH
        LJMP    TIMER0
	ORG	001BH
	LJMP	TIMER1
        ORG     0030H
MAIN:   MOV     SP,#60H
        MOV     TMOD,#11H
	MOV 	TH0,#0D0H        ;定时10ms
        MOV 	TL0,#0F0H
	MOV 	TH1,#0FCH        ;定时1ms
        MOV 	TL1,#18H
        SETB    TR0
	SETB	TR1
        SETB    ET0
	SETB	ET1
        SETB    EA
        MOV     40H,#05H
        MOV     41H,#04H
        MOV     42H,#03H
        MOV     43H,#02H
        MOV     44H,#01H
        MOV     45H,#00H
        LCALL   LEDDISP
        SJMP    $

;定时器0中断服务子程序
TIMER0: PUSH 	ACC              ;定时器0中断子程序
        PUSH 	PSW
        MOV 	TH0,#0D0H        ;定时10ms
        MOV 	TL0,#0F0H
        SETB 	P1.0            ;置P1.0~P1.4输入状态
        SETB 	P1.1
        SETB 	P1.2
        SETB 	P1.3
        SETB 	P1.4
        CLR 	A
        MOV 	C,P1.4           ;输入键盘状态信息
        RLC 	A
        MOV 	C,P1.3
        RLC 	A
        MOV 	C,P1.2
        RLC 	A
        MOV 	C,P1.1
        RLC 	A
        MOV 	C,P1.0
        RLC 	A
        CJNE 	A,#1FH,K0       ;判断键值,并置相应标志位
        MOV 	46H,A
        LJMP 	K6
  K0:   CJNE 	A,46H,KEY1
        LJMP	K6
  KEY1: MOV 	46H,A
        CJNE 	A,#1EH,KEY2
        MOV     40H,#01H
        MOV     41H,#01H
        MOV     42H,#01H
        MOV     43H,#01H
        MOV     44H,#01H
        MOV     45H,#01H
        LCALL   LEDDISP
        SJMP    K6
  KEY2: CJNE    A,#1DH,KEY3
        MOV     40H,#02H
        MOV     41H,#02H
        MOV     42H,#02H
        MOV     43H,#02H
        MOV     44H,#02H
        MOV     45H,#02H
        LCALL   LEDDISP
        SJMP    K6
  KEY3: CJNE    A,#1BH,KEY4
        MOV     40H,#03H
        MOV     41H,#03H
        MOV     42H,#03H
        MOV     43H,#03H
        MOV     44H,#03H
        MOV     45H,#03H
        LCALL   LEDDISP
        SJMP    K6
  KEY4: CJNE    A,#17H,KEY5
        MOV     40H,#04H
        MOV     41H,#04H
        MOV     42H,#04H
        MOV     43H,#04H
        MOV     44H,#04H
        MOV     45H,#04H
        LCALL   LEDDISP
        SJMP    K6
  KEY5: CJNE    A,#0FH,K6
        MOV     40H,#05H
        MOV     41H,#05H
        MOV     42H,#05H
        MOV     43H,#05H
        MOV     44H,#05H
        MOV     45H,#05H
        LCALL   LEDDISP
  K6:   POP     PSW
        POP     ACC
        RETI

TIMER1: PUSH 	ACC               ;定时器1中断子程序
        PUSH 	PSW
	MOV 	TH1,#0FCH         ;定时1ms
        MOV 	TL1,#18H
        MOV     DPTR,#0E800H
        MOVX    @DPTR,A
        INC	R1
        MOV     A,R1
        SWAP    A
        MOV     R3,   A
        ANL     A,#0F0H
        MOV     R2,A
        MOV     A,R3
        ANL     A,#0FH
        MOV     R3,A
        LCALL   DASUB
        POP     ACC
        POP     PSW
        RETI

DASUB:  PUSH    PSW
        PUSH    A
        SETB    LD
        MOV     A,R3
        SWAP    A
        MOV     R7,#04H
DASUB1: CLR     SCLK
        RLC     A
        MOV     SDI, C
        NOP
        SETB    SCLK
        DJNZ    R7, DASUB1
        MOV     A, R2
        MOV     R7, #08H
DASUB2: CLR     SCLK
        RLC     A
        MOV     SDI,C
        NOP
        SETB    SCLK
        DJNZ    R7, DASUB2
        CLR     LD
        NOP
        SETB    LD
        POP     A
        POP     PSW
        RET




VOLTAGESISP:
            
;显示子程序
LEDDISP:
        SETB 	P1.7
        SETB 	00H
        MOV 	A,40H             ;输出显示缓冲区的数据
        CALL 	DOUT
        MOV 	A,41H
        CALL 	DOUT
        MOV 	A,42H
        ;SETB 	00H              ;第3位显示小数点
        CALL 	DOUT
        ;CLR 	00H
        MOV 	A,43H
        CALL 	DOUT
        MOV 	A,44H
        ;SETB 	00H              ;第3位显示小数点
        CALL 	DOUT
        ;CLR 	00H
        MOV 	A,45H
        CALL 	DOUT
        CLR 	P1.7
        RET
  DOUT: MOV 	DPTR,#TABB         ;输出一个字节数据
        MOVC 	A,@A+DPTR
        JNB 	00H,NDOT
        CLR 	ACC.7
  NDOT: MOV 	R7,#08H
   CYC: CLR 	LEDCLK
        RRC 	A
        MOV 	LEDDATA,C
        SETB 	LEDCLK
        DJNZ 	R7,CYC
        RET
   TABB:DB 0C0H,0F9H,0A4H,0B0H,99H
        DB 92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH,0FFH,89H,0C7H
END

⌨️ 快捷键说明

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