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

📄 1632driver.asm

📁 使用HT1632 驱动点阵式LED显示屏显示小绿人
💻 ASM
字号:


;;=======================================================================================
INTT_1632 PROC
		MOV		A,01H					;SYSTEM ENABLE
		CALL	COMMAND_1632

		MOV		A,02CH;024H
		CALL	COMMAND_1632			;P-MOS OUTPUT AND 16COMMON OPTION

		MOV		A,03H					;LED ON
		CALL	COMMAND_1632
		MOV		A,09H					;BLINK ON
		CALL	COMMAND_1632
		RET		
INTT_1632 ENDP
;;=======================================================================================
INI_1632_RAM PROC							;;CLER 1632 RAM
		CLR		R_SEG
INI_1632_RAM_LOOP:
		XMOV	R_ADDR,R_SEG
		SZ		FG_INI
		JMP		$+3
	    SET		ACC
		JMP		$+2
		CLR 	ACC

		CALL	WRITE_1632
		INC		R_SEG
		EJMP	R_SEG,96;   64
		JMP		INI_1632_RAM_LOOP
		NOP	
		RET
INI_1632_RAM ENDP
;==========================================================================================

WRITE_1632 PROC
	;CLR		WDT
	CLR		TEMP[1]
	RRC 	ACC
	RLC		TEMP[1]
	RRC 	ACC
	RLC		TEMP[1]
	RRC 	ACC
	RLC		TEMP[1]
	RRC 	ACC
	RLC		TEMP[1]							;;TEMP[1]=0000 D0D1D2D3
    SWAPA   R_ADDR
    AND     A,0F0H
    ORM     A,TEMP[1]						;;TEMP[1]=A3A2A1A0 D0D1D2D3
    SWAPA   R_ADDR
    AND     A,00000111B
    OR      A,00101000B
    MOV     TEMP[0],A						;;TEMP[0]=101A6A5A4

    CLR     DTC     						; DATA OUTPUT MODE
    CLR     CS      						; 1632 CHIP ENABLE

    MOV     A,14
L1:
    CLR     WR      						; WR PIN LOW FOR CLOCK READY
    CLR     DT       						; RESET DATA PIN
    SZ      TEMP[0].5      	   			 ; CHECK OUTPUT DATA HI_OR_LO
    SET     DT      						; IF HIGH SET DATA PIN

    SET     WR      						; CLOCK SET HI WHEN DATA READY

    RLC     TEMP[1] 						; ROTATE DATA
    RLC     TEMP[0] 

   	SDZ     ACC     						; CHECK SERIAL COUNT ZERO OR NOT
	JMP     L1   							; IF NOT NEXT DATA

    SET     DT      			 				; DATA FINISH
    SET     CS      						; CHIP DISABLE
    SET     DTC     						; INIT DATA PIN BE INPUT PIN
    RET
WRITE_1632 ENDP
;;--------------------------------------------------------
COMMAND_1632 PROC
	;CLR		WDT
    CLR     TEMP[0]
    RLC     ACC
    MOV     TEMP[1],A
    RLC     TEMP[0]

    RLC     TEMP[1]
    RLC     TEMP[0]

    SET     TEMP[0].4

    CLR     DTC    			 				; DATA OUTPUT MODE
    CLR     CS      						; 1632 CHIP ENABLE
    MOV     A,12    						; 12 COUNT BY 1632 DATA
COMMAND_1632_LOOP:
	;CLR		WDT
    CLR     WR      						; WR PIN LOW FOR CLOCK READY
    CLR     DT       						; RESET DATA PIN
    SZ      TEMP[0].4       				; CHECK OUTPUT DATA HI_OR_LO
    SET     DT      						; IF HIGH SET DATA PIN

    SET     WR      						; CLOCK SET HI WHEN DATA READY

    RLC     TEMP[1] 						; ROTATE DATA
    RLC     TEMP[0] 

   	SDZ     ACC     						; CHECK SERIAL COUNT ZERO OR NOT
	JMP     COMMAND_1632_LOOP   			; IF NOT NEXT DATA

    SET     DT      			 				; DATA FINISH
    SET     CS      						; CHIP DISABLE
    SET     DTC     						; INIT DATA PIN BE INPUT PIN
    RET
COMMAND_1632 ENDP
;;===========================================================================================

⌨️ 快捷键说明

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