📄 wenduji.asm
字号:
ORG 0000H
JMP START
ORG 0040H
START:
LCALL ZHUANHUAN
SETB P3.0
SETB P3.1
SETB P3.2
SETB P2.0
SETB P2.1
SETB P2.2
LCALL DELAY1
MOV 34H,#05
MOV 35H,#05
MOV 28H,#05
MOV 29H,#05
LLL:
LCALL ZHUANHUAN
MOV 31H,A
LCALL DELAY4
LCALL ZHUANHUAN
MOV 32H,A
LCALL DELAY4
LCALL ZHUANHUAN
MOV 33H,A
LCALL FILTER
LCALL CHNTER
LCALL SHOW
KEY0:
JB P2.4,LLL
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
KEY1:
JB P2.5,KEY51
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
KEY2:
JB P2.7,KEY3
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
DEC 34H
MOV A,34H
MOV 35H,34H
CJNE A,#0FFH,KEY22
MOV 34H,#05H
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
KEY22:
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
AJMP KEY2
KEY51:
LJMP KEY5
KEY3:
JB P2.6,KEY02
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
INC 35H
MOV A,35H
MOV 34H,35H
LCALL DELAY4
CJNE A,#0AH,KEY33
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
MOV 35H,#04
LCALL DELAY4
KEY33:
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
AJMP KEY3
KEY02:
LJMP KEY0
KEY5:
JB P2.7,KEY6
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
DEC 28H
MOV A,28H
MOV 29H,28H
CJNE A,#0FFH,KEY55
MOV 28H,#05
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
KEY55:
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
AJMP KEY5
KEY6:
JB P2.6,KEY01
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
INC 29H
MOV A,29H
MOV 28H,29H
LCALL DELAY4
CJNE A,#9,KEY66
MOV 29H,#04
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
LCALL DELAY4
KEY66:
LCALL ZHUANHUAN
LCALL CHNTER
LCALL SHOW
AJMP KEY6
KEY01:
LJMP KEY0
SHOW:
LCALL SHIFT
MOV A,@R1
INC R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
SETB P3.0
LCALL DELAY3
CLR P3.0
LCALL DELAY3
MOV A,@R1
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P1,A
SETB P3.1
LCALL DELAY3
CLR P3.1
LCALL DELAY3
MOV A,@R1
INC R1
ANL A,#0FH
MOVC A,@A+DPTR
MOV P1,A
SETB P3.2
LCALL DELAY3
CLR P3.2
LCALL DELAY3
MOV A,@R1
INC R1
MOVC A,@A+DPTR
MOV P1,A
SETB P2.3
LCALL DELAY3
CLR P2.3
LCALL DELAY3
MOV A,@R1
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P1,A
SETB P2.1
LCALL DELAY3
CLR P2.1
LCALL DELAY3
MOV A,@R1
ANL A,#0FH
MOVC A,@A+DPTR
MOV P1,A
SETB P2.2
LCALL DELAY3
CLR P2.2
LCALL DELAY3
CLR P2.4
CLR P2.5
CLR P2.6
CLR P2.7
SETB P2.4
SETB P2.5
SETB P2.6
SETB P2.7
LCALL DELAY3
; 数字代码表
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
RET
SHIFT:
MOV R1,#3DH
MOV A,25H
MOV B,#100
DIV AB
MOV @R1,A
INC R1
MOV A,#10
XCH A,B
DIV AB
SWAP A
ADD A,B
MOV @R1,A
INC R1
MOV A,28H
MOV @R1,A
INC R1
MOV A,34H
MOV B,#10
DIV AB
SWAP A
ADD A,B
MOV @R1,A
DEC R1
DEC R1
DEC R1
RET
DELAY1:
MOV R5,#10
DE11 :
MOV R4,#80
DE12:
DJNZ R4,DE12
DJNZ R5,DE11
RET
DELAY2:
MOV R5,#20
DE21:
MOV R4,#80
DE22:
DJNZ R4,DE22
DJNZ R5,DE21
RET
DELAY3:
MOV R5,#30
DE31:
MOV R4,#30
DE32:
DJNZ R4,DE32
DJNZ R5,DE31
RET
DELAY4:
MOV R5,#100
DE41:
MOV R4,#60
DE42:
DJNZ R4,DE42
DJNZ R5,DE41
RET
CHNTER:
MOV 21H,#101
MOV 22H,#0
MOV A,@R0
MOV B,21H
MUL AB
ADD A,22H
MOV 24H,A
MOV A,B
ADDC A,23H
MOV 25H,A
RET
FILTER:
MOV A,31H
CJNE A,32H,CMP1
AJMP CMP2
CMP1:
JNC CMP2
XCH A,32H
XCH A,31H
CMP2:
MOV A,32H
CJNE A,33H,CMP3
MOV 38H,A
RET
CMP3:
JC CMP4
MOV 38H,A
RET
CMP4:
MOV A,33H
CJNE A,31H,CMP5
MOV 38H,A
RET
CMP5:
JC CMP6
XCH A,31H
CMP6:
MOV 38H,A
RET
MULT1:
MOV A,39H
XRL A,#00H
JB ACC.7,NEGFU1
LJMP POS1
NEGFU1:
MOV A,39H
CPL A
ADD A,#01H
MOV B,#02H
MUL AB
MOV 3CH,A
CPL A
ADD A,#01H
MOV 36H,A
RET
POS1:
MOV A,39H
MOV B,#02H
MUL AB
MOV 36H,A
RET
MULT2:
MOV A,3BH
XRL A,#00H
JB ACC.7,NEGFU2
LJMP POS2
NEGFU2:
MOV A,3BH
CPL A
ADD A,#01H
MOV B,#2
MUL AB
MOV 2CH,A
MOV A,3BH
CPL A
ADD A,#01H
MOV B,#2
DIV AB
MOV 2DH,A
MOV B,2CH
ADD A,B
MOV 3CH,A
CPL A
ADD A,#01H
MOV 37H,A
RET
POS2:
MOV A,3BH
MOV B,#2
MUL AB
MOV 2CH,A
MOV A,3BH
MOV B,#2
DIV AB
MOV 2DH,A
MOV B,2CH
ADD A,B
MOV 37H,A
RET
ZHUANHUAN:
SETB P3.3
NOP
NOP
CLR P3.3 ; 将地址传送到ADC
NOP
NOP
SETB P2.0
NOP
NOP
CLR P2.0 ; 启动转换
NOP
NOP
WAIT:
JB P3.7, MOVD ; 结束转换
AJMP WAIT ; 等待转换结束
MOVD:
CLR P3.6
NOP
NOP
SETB P3.6 ; 在ADC端口输出转换数据
NOP
NOP
MOV A,P0 ; 将ADC中的数据保存到Acc
MOV @R0,A ; 将Acc暂存到R0
CLR P3.6 ; DAC输出浮点数
NOP
NOP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -