📄 modulation.asm
字号:
BSEG AT 0H
FINISH: DBIT 1
;===========================
CSEG AT 0H
LJMP START
ORG 0BH
LJMP SINF
ORG 40H
SINF:
MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
DJNZ R0,ENDSIN
CLR TR0
SETB FINISH
ENDSIN:
RETI
;===========================
INIT:
MOV IE,#82H
MOV TMOD,#22H
MOV TCON,#0H
MOV SCON,#50H
MOV TH1,#0E8H
MOV TL1,#0E8H
MOV TH0,#0E0H
MOV TL0,#0E0H
SETB TR1
MOV P1,#7FH
SETB FINISH
RET
;===========================
START:
CALL INIT
;===========================
READ:
JNB FINISH,READ
CLR TR0
MOV P1,#7FH
READ1:
MOV P1,#7FH
MOV DPTR,#TABLE2
MOV TL0,#0E0H
MOV R0,#17H
SETB TR0
CLR FINISH
JNB FINISH,$
;===========================
NNN:
JNB RI,READ1
MOV A,SBUF
CLR RI
MOV R1,#08H
MOV R5,A
;===========================
MOV P1,#7FH
MOV DPTR,#TABLE1
MOV TL0,#0E0H
MOV R0,#017H
SETB TR0
CLR FINISH
;===========================
FSK:
JNB FINISH,FSK
CLR FINISH
MOV A,R5
JB ACC.0,TOW
ONE:
MOV P1,#7FH
MOV DPTR,#TABLE1
MOV TL0,#0E0H
MOV R0,#017H
JMP OKI
TOW:
MOV P1,#7FH
MOV DPTR,#TABLE2
MOV TL0,#0E0H
MOV R0,#17H
;===========================
OKI:
SETB TR0
RR A
MOV R5,A
;===========================
OK:
DJNZ R1,WAIT
;===========================
JNB FINISH,$
MOV P1,#7FH
MOV DPTR,#TABLE2
MOV TL0,#0E0H
MOV R0,#17H
SETB TR0
CLR FINISH
JNB FINISH,$
;===========================
JMP NNN
;===========================
WAIT:
JNB FINISH,WAIT
CLR TR0
JB FINISH,FSK
;===========================
TABLE2: DB 0H,0BFH,0EDH,0FEH,0EDH,0BFH,7FH,40H,11H,0H,11H,3FH,7FH,0BFH,0EDH,0FEH,0EDH,0BFH,7FH,40H,11H,0H,11H,3FH
TABLE1: DB 0H,0A0H,0BEH,0D9H,0EDH,0FAH,0FEH,0FAH,0EDH,0D9H,0BEH,0A0H,07FH,05EH,040H,025H,011H,04H,00H,04H,011H,025H,03FH,05EH
;===========================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -