📄 cs1694_naiqf.asm
字号:
;******************** TEST_CS1694 **************************************
;******************** MCU:AT89C2051@12MHZ******************************
;****************** STB:P1.6 CLK:P1.5******************************
;*********************DIN&DOUT:P1.4************************************
STB EQU P1.6
CLK EQU P1.5
DIN EQU P1.4
FG BIT 00H ; 标志位
ORG 0000H
AJMP MAIN
ORG 000BH
LJMP INT_T0
ORG 0050H
MAIN: MOV DPTR,#DATA_9
LCALL DATA_IN
MOV A,#0fH ;0.5秒后显示全9
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_8
LCALL DATA_IN
MOV A,#0fH ;0.5秒后显示全8
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_7
LCALL DATA_IN
MOV A,#0fH ;0.5秒后显示全7
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_6
LCALL DATA_IN
MOV A,#0fH ;0.5秒后显示全6
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_5
LCALL DATA_IN
MOV A,#0fH ;0.5秒后显示全5
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_4
LCALL DATA_IN
MOV A,#0fH ;0.5秒后显示全4
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_3 ;0.5秒后显示全3
LCALL DATA_IN
MOV A,#0fH
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_2 ;0.5秒后显示全
LCALL DATA_IN
MOV A,#0fH
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_1 ;0.5秒后显示全1
LCALL DATA_IN
MOV A,#0fH
LCALL SET_TIME
JNZ $
CLR TR0
MOV DPTR,#DATA_0 ;0.5后显示全0
LCALL DATA_IN
KEY: CLR FG
MOV A,#01H
LCALL SET_TIME
JNZ $
CLR TR0
SETB STB
MOV R0,#42H
CLR STB
LCALL WRITE0
setb din
nop
nop
nop
LCALL READ0
JNZ SSS_1
READ_2: lcall read0
JNZ SSS_6
READ_3: LCALL READ0
JNZ SSS_12
READ_4: LCALL READ0
JZ READ_5
ljmp SSS_18
READ_5: LCALL READ0
JZ READ_6
LJMP SSS_24
READ_6: LJMP SSS_29
SSS_1: SETB FG ;有键按下FG置一
CJNE A,#01H,SSS_2
MOV DPTR,#DATA_1
SJMP SSS_5
SSS_2: CJNE A,#02H,SSS_3
MOV DPTR,#DATA_2
SJMP SSS_5
SSS_3: CJNE A,#08H,SSS_4
MOV DPTR,#DATA_3
SJMP SSS_5
SSS_4: JC SSS_5
CJNE A,#10H,SSS_5
MOV DPTR,#DATA_4
SSS_5: LJMP READ_2
SSS_6: MOV C,FG
JNC SSS_7
CLR FG
LJMP KEY
SSS_7: SETB FG
CJNE A,#01H,SSS_8
MOV DPTR,#DATA_5
SJMP SSS_11
SSs_8: CJNE A,#02H,SSS_9
MOV DPTR,#DATA_6
SJMP SSS_11
SSS_9: CJNE A,#08H,SSS_10
MOV DPTR,#DATA_7
SJMP SSS_11
SSS_10: JC SSS_11
CJNE A,#10H,SSS_11
MOV DPTR,#DATA_8
SSS_11: LJMP READ_3
SSS_12: MOV C,FG
JNC SSS_13
CLR FG
LJMP KEY
SSS_13: SETB FG
CJNE A,#01H,SSS_14
MOV DPTR,#DATA_10
SJMP SSS_17
SSS_14: CJNE A,#02H,SSS_15
MOV DPTR,#DATA_20
SJMP SSS_17
SSS_15: CJNE A,#08H,SSS_16
MOV DPTR,#DATA_30
SJMP SSS_17
SSS_16: JC SSS_17
CJNE A,#10H,SSS_17
MOV DPTR,#DATA_30
SSS_17: LJMP READ_4
SSS_18: MOV C,FG
JNC SSS_19
CLR FG
LJMP KEY
SSS_19: SETB FG
CJNE A,#01H,SSS_20
MOV DPTR,#DATA_50
SJMP SSS_23
SSS_20: CJNE A,#02H,SSS_21
MOV DPTR,#DATA_60
SJMP SSS_23
SSS_21: CJNE A,#08H,SSS_22
MOV DPTR,#DATA_70
SJMP SSS_23
SSS_22: JC SSS_23
CJNE A,#10H,SSS_23
MOV DPTR,#DATA_80
SSS_23: LJMP READ_5
SSS_24: MOV C,FG
JNC SSS_25
CLR FG
LJMP KEY
SSS_25: SETB FG
CJNE A,#01H,SSS_26
MOV DPTR,#DATA_90
SJMP SSS_29
SSS_26: CJNE A,#02H,SSS_27
MOV DPTR,#DATA_90
SJMP SSS_29
SSS_27: CJNE A,#08H,SSS_28
MOV DPTR,#DATA_90
SJMP SSS_29
SSS_28: JC SSS_29
CJNE A,#10H,SSS_29
MOV DPTR,#DATA_90
SSS_29: MOV C,FG
JNC SSS_30
LCALL DATA_IN
SSS_30: LJMP KEY
;*****************
DATA_IN: MOV R0,#03H
CLR STB
LCALL WRITE0
SETB STB
MOV R0,#40H
CLR STB
LCALL WRITE0
SETB stb
MOV R0,#0F0H
CLR STB
LCALL WRITE0
SETB STB
MOV R0,#8fH
CLR STB
LCALL WRITE0
MOV R1,#0EH
MOV R5,#00H
SE: MOV A,R5
MOVC A,@A+DPTR
MOV R0,A
LCALL WRITE0
INC R5
DJNZ R1,SE
SETB STB
RET
WRITE0: MOV A,R0
MOV R7,#08H
CLR C
WRITE3: CLR CLK
NOP
NOP
nop
nop
nop
RRC A
MOV DIN,C
NOP
NOP
nop
nop
SETB CLK
nop
nop
nop
DJNZ R7,WRITE3
RET
READ0:
MOV R7,#08H
CLR C
READ1: MOV R1,#20
DJNZ R1,$
CLR CLK
MOV R1,#20
DJNZ R1,$
MOV C,DIN
SETB CLK
NOP
RRC A
DJNZ R7,READ1
RET
SET_TIME: MOV TMOD,#01H ;工作方式1,定时25ms
MOV TL0,#058H
MOV TH0,#09EH
MOV IE,#82H ;开定时器中断
SETB TR0 ;启动定时
RET
INT_T0: DEC A
RETI
data_9: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H,0FFH,03H
DB 0FFH,03H
DATA_8: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH
DB 03H, 0FFH,03H
DATA_7: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,00H,00H
DB 03H,00H,00H,00H
DB 00H,00H
DATA_6: DB 0FFH,03H,00H,00H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H
DATA_5: DB 0FFH,03H,00H,00H
DB 0FFH,03H,0FFH,03H
DB 00H,00H,0FFH,03H
DB 0FFH,03H
DATA_4: DB 00H,00H,0FFH,03H
DB 0FFH,03H,00H,00H
DB 00H,00H,0FFH,03H
DB 0FFH,03H
data_3: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H,00H,00H
DB 0FFH,03H
data_2: DB 0FFH,03H,0FFH,03H
DB 00H,00H,0FFH,03H
DB 0FFH,03H,00H,00H
DB 0FFH,03H
data_1: DB 00H,00H,0FFH,03H
DB 0FFH,03H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H
data_0: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_10: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_20: DB 00H,00H,0FFH,03H
DB 0FFH,03H,00H,00H
DB 00H,00H,00H,00H
DB 00H,00H
data_30: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_40: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_50: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_60: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_70: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_80: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
data_90: DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 0FFH,03H,0FFH,03H
DB 00H,00H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -