📄 4点滤波.asm
字号:
$MOD841
SP0 EQU 50H
CLK81 EQU P3.5
DAT81 EQU P3.3
KEYVAL EQU 30H
CHAN EQU 0
CSEG
;-----------------------
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0_INT
ORG 0033H
LJMP SERVE
ORG 0060H
;--------------------------
MAIN: MOV R0,#0FFH
CLR A
QING: MOV @R0,A
DJNZ R0,QING
MOV SP,#SP0
LCALL YS
LCALL INI8281
LCALL INI841
HERE: LJMP $
;----------------------------
INI841: MOV ADCCON1,#0AAH
MOV ADCCON2,#CHAN
MOV ADCCON3,#07
MOV DACCON,#0DH
SETB EA
SETB EX0
SETB PADC
MOV T2CON,#00H
MOV RCAP2H,#0FFH
MOV RCAP2L,#028H
MOV TH2,#0FFH
MOV TL2,#028H
RET
;---------------------------
INI8281:SETB CLK81
SETB DAT81
MOV A,#12H
LCALL WTO81
MOV A,#80H
LCALL WTO81
RET
;----------------------------
INT0_INT:MOV A,#93H
LCALL WTO81
LCALL RDKVAL
CLR EADC
MOV R0,#20H
MOV R6,#8
CLR A
QING1: MOV @R0,A
INC R0
DJNZ R6,QING1
MOV R0,#20H
MOV R6,#8
SETB TR2
SETB EADC
RETI
;-------------------------------
SERVE: MOV R5,ADCDATAL
MOV A,ADCDATAH
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,R5
MOV @R0,A
INC R0
MOV A,R0
CJNE A,#28H,OVER
MOV R0,#20H
OVER: LCALL PING_JUN
MOV DAC0H,R2
MOV DAC0L,R1
OVER1: RETI
;-----------------------------
PING_JUN:CLR C
MOV R3,21H
MOV A,23H
ADDC A,R3
MOV R3,A
MOV R4,20H
MOV A,22H
ADDC A,R4
MOV R4,A
;------------------------
CLR C
MOV A,25H
ADDC A,R3
MOV R3,A
MOV A,24H
ADDC A,R4
MOV R4,A
;------------------------
CLR C
MOV A,27H
ADDC A,R3
MOV R3,A
MOV A,26H
ADDC A,R4
MOV R4,A
;-------------------------
CLR C
MOV A,R4
RRC A
MOV R4,A
MOV A,R3
RRC A
MOV R3,A
CLR C
MOV A,R4
RRC A
MOV R2,A
MOV A,R3
RRC A
MOV R1,A
RET
;-------------------------
WTO81: MOV R6,#08H
WAT: CLR CLK81
LCALL DELAY1
SETB CLK81
JB DAT81,WAT
CLR CLK81
LCALL DELAY1
SETB CLK81
JNB DAT81,$
WTB81: RLC A
MOV DAT81,C
CLR CLK81
LCALL DELAY1
SETB CLK81
LCALL DELAY1
LCALL DELAY1
DJNZ R6,WTB81
SETB DAT81
RET
;--------------------------
RDKVAL: CLR CLK81
LCALL DELAY1
SETB CLK81
JB DAT81,$
CLR CLK81
LCALL DELAY1
SETB CLK81
MOV R6,#08H
RD1:
LCALL DELAY1
LCALL DELAY1
LCALL DELAY1
MOV C,DAT81
LCALL DELAY1
RLC A
CLR CLK81
LCALL DELAY1
SETB CLK81
DJNZ R6,RD1
MOV KEYVAL,A
RET
;-----------------------------------
DELAY1: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;------------------------------
YS: MOV R6,#00H
MOV R5,#50H
YS1: DJNZ R6,$
DJNZ R4,YS1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -