📄 ok.dt
字号:
; MOV A,0X20
; AND A,@0X0E ;R3=0
; MOV 0X20,A
JMP LOAD
S25:
MOV A,S3
XOR A,@0X01
JBS SREG,Z
JMP S50
MOV A,0X24
OR A,@0X01 ;R1=1(25)
MOV 0X24,A
; MOV A,0X22
; AND A,@0X0E ;R2=0
; MOV 0X22,A
; MOV A,0X20
; AND A,@0X0E ;R3=0
; MOV 0X20,A
JMP LOAD
S50: MOV A,S3
XOR A,@0X02
JBS SREG,Z
JMP S75
MOV A,0X22
OR A,@0X01 ;R2=1(50)
MOV 0X22,A
; MOV A,0X24
; AND A,@0X0E ;R1=0
; MOV 0X24,A
; MOV A,0X20
; AND A,@0X0E ;R3=0
; MOV 0X20,A
JMP LOAD
S75: MOV A,0X20
OR A,@0X01 ;R3=1(75)
MOV 0X20,A
; MOV A,0X24
; AND A,@0X0E ;R1=0
; MOV 0X24,A
; MOV A,0X22
; AND A,@0X0E ;R2=0
; MOV 0X22,A
LOAD:
MOV A,0X20
MOV DATA,A
MOV A,@0X00
MOV ADDR,A
CALL INDAT
MOV A,0X22
MOV DATA,A
INC ADDR
INC ADDR
CALL INDAT
MOV A,0X24
MOV DATA,A
INC ADDR
INC ADDR
CALL INDAT
;-----------------------------------------------------------------------------
INC TM1
MOV A,TM1
CALL FREQI
MOV S2,A
SWAPA S2
AND A,@0X0F
CALL CODEB
MOV S3,A
SWAPA S3
AND A,@0X0F
MOV 0X2C,A
MOV DATA,A
MOV A,@0XC ;LED5
MOV ADDR,A
CALL INDAT
MOV A,S3
AND A,@0X0F
MOV DATA,A
INC ADDR
CALL INDAT
MOV A,S2
AND A,@0X0F
CALL CODEB
MOV S3,A
SWAPA S3
AND A,@0X0F
MOV 0X2E,A
MOV DATA,A
INC ADDR ;LED6
CALL INDAT
MOV A,S3
AND A,@0X0F
MOV DATA,A
INC ADDR
CALL INDAT
;-------------------------
INC TM1
MOV A,TM1
CALL FREQI
MOV S2,A
SWAPA S2
AND A,@0X0F
CALL CODEB
MOV S3,A
SWAPA S3
AND A,@0X0F
MOV 0X30,A
MOV DATA,A
INC ADDR ;LED7
CALL INDAT
MOV A,S3
AND A,@0X0F
MOV DATA,A
INC ADDR
CALL INDAT
MOV A,S2
AND A,@0X0F
CALL CODEB
MOV S3,A
SWAPA S3
AND A,@0X0F
OR A,@0X01
MOV DATA,A
INC ADDR ;LED8
CALL INDAT
MOV A,S3
AND A,@0X0F
MOV DATA,A
INC ADDR
CALL INDAT
;-----------------
INC TM1
MOV A,TM1
CALL FREQI
AND A,@0X0F
MOV S3,A
JBS SREG,Z
JMP SS25
; MOV A,0X2C
; AND A,@0X0E ;R10=0
; MOV 0X2C,A
; MOV A,0X2E
; AND A,@0X0E ;R9=0
; MOV 0X2E,A
; MOV A,0X30
; AND A,@0X0E ;R8=0
; MOV 0X30,A
JMP SLOAD
SS25:
MOV A,S3
XOR A,@0X01
JBS SREG,Z
JMP SS50
MOV A,0X30
OR A,@0X01 ;R8=1(25)
MOV 0X30,A
; MOV A,0X2E
; AND A,@0X0E ;R9=0
; MOV 0X2E,A
; MOV A,0X2C
; AND A,@0X0E ;R10=0
; MOV 0X2C,A
JMP SLOAD
SS50: MOV A,S3
XOR A,@0X02
JBS SREG,Z
JMP SS75
MOV A,0X2E
OR A,@0X01 ;R9=1(50)
MOV 0X2E,A
; MOV A,0X30
; AND A,@0X0E ;R8=0
; MOV 0X30,A
; MOV A,0X2C
; AND A,@0X0E ;R10=0
; MOV 0X2C,A
JMP SLOAD
SS75: MOV A,0X2C
OR A,@0X01 ;R10=1(75)
MOV 0X2C,A
; MOV A,0X2E
; AND A,@0X0E ;R9=0
; MOV 0X2E,A
; MOV A,0X30
; AND A,@0X0E ;R8=0
; MOV 0X30,A
SLOAD:
MOV A,0X2C
MOV DATA,A
MOV A,@0X0C
MOV ADDR,A
CALL INDAT
MOV A,0X2E
MOV DATA,A
INC ADDR
INC ADDR
CALL INDAT
MOV A,0X30
MOV DATA,A
INC ADDR
INC ADDR
CALL INDAT
;-------------------------------------------------
CH_ANT1:
JBS P6,ANT1
JMP ANT_10
MOV A,0X39 ;R4=1
OR A,@0X08
MOV 0X39,A
MOV DATA,A
MOV A,@0X19
MOV ADDR,A
CALL INDAT
JMP CANT2
ANT_10: MOV A,0X39 ;R4=0
AND A,@0X07
MOV 0X39,A
MOV DATA,A
MOV A,@0X19
MOV ADDR,A
CALL INDAT
CANT2: JBS P6,ANT2
JMP ANT_20
MOV A,0X34 ;11=1
OR A,@0X01
MOV 0X34,A
MOV DATA,A
MOV A,@0X14
MOV ADDR,A
CALL INDAT
JMP CH_AB
ANT_20: MOV A,0X34 ;R11=0
AND A,@0X0E
MOV 0X34,A
MOV DATA,A
MOV A,@0X14
MOV ADDR,A
CALL INDAT
CH_AB: JBS P6,AB1
JMP AB_10
MOV A,0X39
OR A,@0X04 ;R5=1
AND A,@0XFD ;R6=0
MOV 0X39,A
MOV DATA,A
MOV A,@0X19
MOV ADDR,A
CALL INDAT
JMP CAB2
AB_10: MOV A,0X39
OR A,@0X02 ;R6=1
AND A,@0XFB ;R5=0
MOV 0X39,A
MOV DATA,A
MOV A,@0X19
MOV ADDR,A
CALL INDAT
CAB2: JBS P6,AB2
JMP AB_20
MOV A,0X34
OR A,@0X02 ;R12=1
AND A,@0XFB ;R13=0
MOV 0X34,A
MOV DATA,A
MOV A,@0X14
MOV ADDR,A
CALL INDAT
JMP INIADC
AB_20: MOV A,0X34
OR A,@0X04 ;R13=1
AND A,@0XFD ;R12=0
MOV 0X34,A
MOV DATA,A
MOV A,@0X14
MOV ADDR,A
CALL INDAT
INIADC:
MOV A,@0B00011100 ;工作电压作参考,AD0-AD7模拟输入,T=fosc/4
IOW ADCONC
CLR R_F
MOV A,ADCONR
AND A,@0XF8
; OR A,@0X01 ;AD2(AF1)输入
MOV ADCONR,A
BS ADCONR,ADPD ;启动AD采样
MOV A,@0B00000000
IOW GCON ;关增溢放大器
BS ADCONR,ADRUN ;启动AD转换
CH_AF1: JBC ADCONR,ADRUN
JMP CH_AF1
BC ADCONR,ADPD ;关闭AD采样
MOV A,ADDATA
MOV TMP,A
MOV A,@0X17
MOV ADRL,A
MOV A,@0X18
MOV ADRH,A
CLR FG
BS SREG,5
CALL DISVUTS
BC SREG,5
CLR R_F
MOV A,ADCONR
AND A,@0XF8
OR A,@0X03 ;AD4(RF1)输入
MOV ADCONR,A
BS ADCONR,ADPD ;启动AD采样
CALL DELAY6US
BS ADCONR,ADRUN ;启动AD转换
CH_RF1: JBC ADCONR,ADRUN
JMP CH_RF1
BC ADCONR,ADPD ;关闭AD采样
MOV A,ADDATA
MOV TMP,A
MOV A,@0X09
MOV ADRL,A
MOV A,@0X08
MOV ADRH,A
BS FG,0
BS SREG,5
CALL DISVUTS
BC SREG,5
CLR R_F
MOV A,ADCONR
AND A,@0XF8
OR A,@0X05 ;AD4(RF1)输入
MOV ADCONR,A
BS ADCONR,ADPD ;启动AD采样
CALL DELAY6US
BS ADCONR,ADRUN ;启动AD转换
CH_RF2: JBC ADCONR,ADRUN
JMP CH_RF2
BC ADCONR,ADPD ;关闭AD采样
MOV A,ADDATA
MOV TMP,A
MOV A,@0X16
MOV ADRL,A
MOV A,@0X15
MOV ADRH,A
BS FG,0
BS SREG,5
CALL DISVUTS
BC SREG,5
CLR R_F
MOV A,ADCONR
AND A,@0XF8
OR A,@0X07 ;AD4(RF1)输入
MOV ADCONR,A
BS ADCONR,ADPD ;启动AD采样
CALL DELAY6US
BS ADCONR,ADRUN ;启动AD转换
AD_AF2: JBC ADCONR,ADRUN
JMP AD_AF2
BC ADCONR,ADPD ;关闭AD采样
MOV A,ADDATA
MOV TMP,A
MOV A,@0X0A
MOV ADRL,A
MOV A,@0X0B
MOV ADRH,A
BS FG,0
BS SREG,5
CALL DISVUTS
BC SREG,5
MOV A,@0B00000000 ;AD0模拟输入,AD1-AD7O数字I/O输入,T=fosc/4
IOW ADCONC
JMP WHILE
;====================================================================================
ORG 0X400
;====================================================================================
; 18 36 54 72 90 108 126
; 0.35 0.7 1 1.4 1.76 2.1 2.47
;
; ADRL ADRH
; AF1 17(L) 18(H) V
;
; RF1 09(H) 08(L) U
;
; AF2 16(H) 15(L) T
;
; RF2 0A(L) 0B(H) S
;
; FG_0 =0 AF1
; FG_0 =1 RF1,AF2,RF2
DISVUTS:
MOV A,@0X8E ;126
SUB A,TMP
JBS SREG,C
JMP CH_AF2
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X0F ;V1,V2,V3,V4=1
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG11
MOV A,R0
OR A,@0X0E
JMP SIG21
SIG11:
MOV A,R0
OR A,@0X07 ;V5,V6,V7=1
SIG21:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
CH_AF2:
MOV A,@0X7A ;108
SUB A,TMP
JBS SREG,C
JMP CH_AF3
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X0F ;V1,V2,V3,V4=1
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG12
MOV A,R0
OR A,@0X0C ;V5,V6=1
AND A,@0X0D ;V7=0
JMP SIG22
SIG12:
MOV A,R0
OR A,@0X03 ;V5,V6=1
AND A,@0X0B ;V7=0
SIG22:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
CH_AF3:
MOV A,@0X61 ;90
SUB A,TMP
JBS SREG,C
JMP CH_AF4
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X0F ;V1,V2,V3,V4=1
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG13
MOV A,R0
OR A,@0X08 ;V5=1
AND A,@0X09 ;V6,V7=0
JMP SIG23
SIG13:
MOV A,R0
OR A,@0X01 ;V5=1
AND A,@0X09 ;V6,V7=0
SIG23:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
CH_AF4:
MOV A,@0X52 ;72
SUB A,TMP
JBS SREG,C
JMP CH_AF5
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X0F ;V1,V2,V3,V4=1
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG14
MOV A,R0
AND A,@0X01 ;V5,V6,V7=0
JMP SIG24
SIG14:
MOV A,R0
AND A,@0X08 ;V5,V6,V7=0
SIG24:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
CH_AF5:
MOV A,@0X3D ;54
SUB A,TMP
JBS SREG,C
JMP CH_AF6
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X07 ;V1,V2,V3=1, V4=0
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG15
MOV A,R0
AND A,@0X01 ;V5,V6,V7=0
JMP SIG25
SIG15:
MOV A,R0
AND A,@0X08 ;V5,V6,V7=0
SIG25:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
CH_AF6:
MOV A,@0X2B ;36
SUB A,TMP
JBS SREG,C
JMP CH_AF7
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X03 ;V1,V2=1,V3,V4=0
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG16
MOV A,R0
AND A,@0X01 ;V5,V6,V7=0
JMP SIG26
SIG16:
MOV A,R0
AND A,@0X08 ;V5,V6,V7=0
SIG26:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
CH_AF7:
MOV A,@0X26 ;18
SUB A,TMP
JBS SREG,C
JMP CH_AF8
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X01 ;V1=1, V2,V3,V4=0
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG17
MOV A,R0
AND A,@0X01 ;V5,V6,V7=0
JMP SIG27
SIG17:
MOV A,R0
AND A,@0X08 ;V5,V6,V7=0
SIG27:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
CH_AF8:
MOV A,ADRL
ADD A,@0X20
MOV R4,A
MOV A,@0X00 ;V1,V2,V3,V4=0
MOV R0,A
MOV DATA,A
MOV A,ADRL
MOV ADDR,A
BC SREG,5
CALL INDAT
BS SREG,5
MOV A,ADRH
ADD A,@0X20
MOV R4,A
JBC FG,0
JMP SIG18
MOV A,R0
AND A,@0X01 ;V5,V6,V7=0
JMP SIG28
SIG18:
MOV A,R0
AND A,@0X08 ;V5,V6,V7=0
SIG28:
MOV R0,A
MOV DATA,A
MOV A,ADRH
MOV ADDR,A
BC SREG,5
CALL INDAT
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -