📄 pt6523.asm
字号:
;----------------------------;
; REGISTER SETUP ;
;----------------------------;
INDEX EQU 00H
RTCC EQU 01H
PC EQU 02H
STATUS EQU 03H
;----------------------------;
DI EQU 0
CL EQU 1
Z EQU 2
CE EQU 2
INH EQU 3
;----------------------------;
FSR EQU 04H
;----------------------------;
CONTROL EQU 05H
UBP1 EQU 06H
UBP2 EQU 07H
COMMAND EQU 1FH
ACOUNT EQU 1EH
KCOUNT EQU 1DH
TEMP1 EQU 1CH
TEMP2 EQU 1BH
TEMP3 EQU 1AH
HOUR EQU 19H
MINT EQU 18H
SECD EQU 17H
HSEC1 EQU 16H
HSEC2 EQU 15H
KEY1 EQU 14H
KEY2 EQU 13H
UB1 EQU 12H
UB2 EQU 11H
UB3 EQU 10H
UB4 EQU 0FH
UB5 EQU 0EH
UB6 EQU 0DH
UB7 EQU 0CH
UB8 EQU 0BH
UB9 EQU 0AH
UBA EQU 09H
UBB EQU 08H
;----------------------------;
; MACRO MAIN SEGMENT ;
;----------------------------;
COOL1 MACRO A,B,C
MOVF A,W
XORLW B
BTFSC 3,2
GOTO C
ENDM
;----------------------------
COOL2 MACRO D,E,F
MOVF D,W
XORLW E
BTFSS 3,2
GOTO F
ENDM
;----------------------------
COOL3 MACRO X,Y,Z
MOVF Y,W
MOVWF TEMP1
MOVF X,W
XORWF TEMP1
BTFSC 3,2
GOTO Z
ENDM
;----------------------------
MOVFF MACRO G,H
MOVF H,W
MOVWF G
ENDM
;----------------------------
MOVDF MACRO I,J
MOVLW J
MOVWF I
ENDM
;----------------------------;
; SUB MAIN SEGMENT ;
;----------------------------;
ORG 00H
;----------------------------;
; OUTPUT [LOW] BIT ;
;----------------------------;
BIT0 MACRO
BCF 5,DI
BCF 5,CL
BSF 5,CL
BCF 5,CL
ENDM
;----------------------------;
; OUTPUT [HIGH] BIT ;
;----------------------------;
BIT1 MACRO
BCF 5,DI
BCF 5,CL
BSF 5,DI
BSF 5,CL
BCF 5,CL
BCF 5,DI
ENDM
;----------------------------;
; OUTPUT PATTEN ;
;----------------------------;
CCB_W MOVDF ACOUNT,08H
BCF 3,0
LOOP RLF COMMAND
BTFSS 3,0
GOTO YY
GG BIT1
GOTO OVER
YY BIT0
OVER DECFSZ ACOUNT
GOTO LOOP
RETLW 00H
;----------------------------;
; TIMER DELAY SUB-0 ;
;----------------------------;
DELAY MOVLW 05H
MOVWF TEMP1
DEL MOVLW FFH
MOVWF TEMP2
DEL1 MOVLW FFH
MOVWF TEMP3
DEL0 DECFSZ TEMP3
GOTO DEL0
DECFSZ TEMP2
GOTO DEL1
DECFSZ TEMP1
GOTO DEL
RETLW 00H
;----------------------------;
; CHECK TIMER ;
;----------------------------;
CHECKT CLRF FSR
MOVLW 10H
END1 SUBWF RTCC,W
SKPC
GOTO BACK1
CLRF RTCC
MOVDF FSR,30H
INCF INDEX
CLRF FSR
INCFSZ HSEC1
GOTO BACK1
INCF HSEC2
COOL1 HSEC2,01H,HTOC
BACK1 RETLW 00H
;----------------------------;
; CHANGE TIMER ;
;----------------------------;
HTOC CLRF HSEC1
CLRF HSEC2
INCF SECD
HTOC1 MOVF SECD,W
ANDLW 0FH
XORLW 0AH
BTFSS STATUS,Z
RETLW 00H
MOVLW 06H
ADDWF SECD
MOVLW 60H
SUBWF SECD,W
BTFSS STATUS,Z
RETLW 00H
CLRF RTCC
CLRF SECD
INCF MINT
MOVF MINT,W
ANDLW 0FH
XORLW 0AH
BTFSS STATUS,Z
GOTO H1
MOVLW 06H
ADDWF MINT
H1 CLRF RTCC
MOVLW 60H
SUBWF MINT,W
BTFSS STATUS,Z
RETLW 00H
CLRF MINT
INCF HOUR
COOL1 HOUR,0AH,CLH
RETLW 00H
CLH CLRF HOUR
RETLW 00H
;----------------------------;
; TIMER DELAY SUB-1 ;
;----------------------------;
DAYZ DECFSZ TEMP1
GOTO DAYZ
RETLW 00H
;----------------------------;
; CLEAR MCU ALL REGISTER ;
;----------------------------;
CLRR MOVDF FSR,05H
MOVDF COMMAND,25D
CLRW
PP0 MOVWF INDEX
INCF FSR
DECFSZ COMMAND
GOTO PP0
CLRF FSR
MOVDF TEMP1,10H
MOVDF TEMP2,30H
PP1 MOVFF FSR,UB2
CLRF INDEX
CLRF FSR
INCF TEMP2
DECFSZ TEMP1
GOTO PP1
CLRF FSR
RETLW 00H
;----------------------------;
; CLEAR PT6523 REGISTER ;
;----------------------------;
CLRD BCF 5,CE
MOVDF COMMAND,82H
CALL CCB_W
BSF 5,CE
MOVDF TEMP1,98H
CLRD_1 CALL LOW_B
DECFSZ TEMP1
GOTO CLRD_1
MOVDF COMMAND,08H
CALL CCB_W
BCF 5,CE
RETLW 00H
;----------------------------;
; OUTPUT [LOW] BIT ;
;----------------------------;
LOW_B BCF 5,DI
BCF 5,CL
BSF 5,CL
BCF 5,CL
RETLW 00H
;----------------------------;
; OUTPUT [HIGH] BIT ;
;----------------------------;
HIGH_B BCF 5,DI
BCF 5,CL
BSF 5,DI
BSF 5,CL
BCF 5,CL
BCF 5,DI
RETLW 00H
;----------------------------;
; SEND DATA TO PT6523 ;
;----------------------------;
GOGO BCF 5,CE
MOVDF COMMAND,82H
CALL CCB_W
BSF 5,CE
MOVDF TEMP1,12H
G1 CALL HIGH_B
DECFSZ TEMP1
GOTO G1
W_1 MOVFF COMMAND,UB1
CALL CCB_W
CALL LOW_B
CALL HIGH_B
CALL HIGH_B
CALL LOW_B
W_2 MOVFF COMMAND,UB2
CALL CCB_W
CALL LOW_B
W_3 MOVFF COMMAND,UB3
CALL CCB_W
CALL LOW_B
W_4 MOVFF COMMAND,UB4
CALL CCB_W
CALL LOW_B
CALL HIGH_B
CALL HIGH_B
CALL HIGH_B
W_5 MOVFF COMMAND,UB5
CALL CCB_W
CALL LOW_B
CALL HIGH_B
CALL HIGH_B
CALL LOW_B
W_6 MOVFF COMMAND,UB6
BSF COMMAND,1
CALL CCB_W
CALL HIGH_B
W_7 MOVFF COMMAND,UB7
BSF COMMAND,1
CALL CCB_W
W_8 MOVFF COMMAND,UB8
BSF COMMAND,7
BSF COMMAND,6
BSF COMMAND,4
CALL CCB_W
W_9 MOVFF COMMAND,UB9
CALL CCB_W
W_A MOVFF COMMAND,UBA
CALL CCB_W
W_B MOVFF COMMAND,UBB
CALL CCB_W
MOVDF TEMP1,1FH
G2 CALL LOW_B
DECFSZ TEMP1
GOTO G2
MOVFF COMMAND,KCOUNT
CALL CCB_W
BCF 5,CE
RETLW 00H
;----------------------------;
; VFDOUT COUNT ;
;----------------------------;
LCDC MOVF TEMP2,W
ADDWF TEMP1,W
MOVWF PC
LCD_1 RETLW FCH
RETLW 18H
RETLW B5H
RETLW 9DH
RETLW 59H
RETLW CDH
RETLW EDH
RETLW D8H
RETLW FDH
RETLW DDH
;----------------------------;
; MAIN START ;
;----------------------------;
ORG 7FFH
GOTO START
;----------------------------;
ORG E5H
START CLRF FSR
CLRW
TRIS CONTROL
CLRF CONTROL
MOVLW 07H
TRIS UBP1
CLRF UBP1
;----------------------------;
; CLEAR ALL MCU REGISTER ;
;----------------------------;
CALL CLRR
CLRF FSR
;----------------------------;
; CLEAR PT6523 REGISTER ;
;----------------------------;
CALL CLRD
;----------------------------;
; TURN ON OUTPUT ;
;----------------------------;
BSF CONTROL,INH
;----------------------------;
; FLASH THIS WORD 'LOAD' ;
;----------------------------;
MOVDF KEY1,06H
MOVDF UB1,05H
RE_LOAD MOVDF KCOUNT,08H
BSF 3,5
CALL LOAD
CALL DELAY
MOVDF KCOUNT,0CH
BSF 3,5
CALL LOAD
CALL DELAY
DECFSZ UB1
GOTO RE_LOAD
BCF 3,5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -