📄 模拟数据传输(主机).asm
字号:
$MOD841
SP0 EQU 50H
KEYVAL EQU 30H
CLK81 EQU P3.5
DAT81 EQU P3.3
CSEG
;------------------------
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0_INT
ORG 002BH
LJMP T2_INT
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 HERE
;------------------------------
INI8281:SETB CLK81
SETB DAT81
MOV A,#12H
LCALL WTO81
MOV A,#80H
LCALL WTO81
RET
;----------------------------------
INI841: MOV ADCCON1,#80H
MOV DACCON,#0DH
SETB EA
SETB EX0
SETB ET2
SETB PT2
MOV RCAP2H,#0D4H
MOV RCAP2L,#0CDH
MOV TH2,#0D4H
MOV TL2,#0CDH
MOV R0,#20H
MOV R1,#16
MOV 20H,#00H
MOV 21H,#11H
MOV 22H,#22H
MOV 23H,#33H
MOV 24H,#44H
MOV 25H,#55H
MOV 26H,#66H
MOV 27H,#77H
MOV 28H,#88H
MOV 29H,#99H
MOV 2AH,#0AAH
MOV 2BH,#0BBH
MOV 2CH,#0CCH
MOV 2DH,#0DDH
MOV 2EH,#0EEH
MOV 2FH,#0FFH
RET
;-------------------------------
INT0_INT: MOV A,#93H
LCALL WTO81
LCALL RDKVAL
SETB TR2
RETI
;-------------------------------
T2_INT: CLR TF2
MOV A,#00H
MOV DAC0H,A
MOV A,@R0
MOV DAC0L,A
LCALL DELAY1
LCALL DELAY1
LCALL DELAY1
LCALL DELAY1
CLR P3.4
INC R0
DJNZ R1,OVER
MOV R0,#20H
MOV R1,#16
MOV T2CON,#00H
OVER: SETB P3.4
RETI
;--------------------------------
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 R5,#00H
MOV R4,#50H
YS1: DJNZ R5,$
DJNZ R4,YS1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -