📄 1632driver.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 + -