📄 发射.asm
字号:
MOV 5EH,#"O"
MOV 5DH,#"N"
MOV 5CH,#"M"
MOV 5BH,#"6"
LCALL LCDXSH
PROCE061: LJMP PROCE_END
PROCE072: mov addr,#7
MOV 5BH,#"7"
ljmp PROCE012a
PROCE07: jb GNBZ,PROCE072
JB KEYMARK,PROCE071
SETB KEYMARK
MOV 5FH,#"S"
MOV 5EH,#"R"
MOV 5DH,#"Q"
MOV 5CH,#"P"
MOV 5BH,#"7"
LCALL LCDXSH
PROCE071: LJMP PROCE_END
PROCE082: mov addr,#8
MOV 5BH,#"8"
ljmp PROCE012a
PROCE08: jb GNBZ,PROCE082
JB KEYMARK,PROCE081
SETB KEYMARK
MOV 5FH,#20H
MOV 5EH,#"V"
MOV 5DH,#"U"
MOV 5CH,#"T"
MOV 5BH,#"8"
LCALL LCDXSH
PROCE081: LJMP PROCE_END
PROCE092: MOV 5FH,#" "
MOV 5EH,#" "
MOV 5DH,#"F"
MOV 5CH,#"F"
MOV 5BH,#"O"
LCALL LCDXSH
LCALL SENDYY_END
clr gnbz
LJMP PROCE_END
PROCE09: jb GNBZ,PROCE092
JB KEYMARK,PROCE091
SETB KEYMARK
MOV 5FH,#"Z"
MOV 5EH,#"Y"
MOV 5DH,#"X"
MOV 5CH,#"W"
MOV 5BH,#"9"
LCALL LCDXSH
PROCE091: LJMP PROCE_END
PROCE102: mov addr,#0
MOV 5BH,#"0"
ljmp PROCE012a
PROCE10: jb GNBZ,PROCE102
JB KEYMARK,PROCE101
SETB KEYMARK
MOV 5FH,#20H
MOV 5EH,#"&"
MOV 5DH,#"!"
MOV 5CH,#"?"
MOV 5BH,#"0"
LCALL LCDXSH
PROCE101: LJMP PROCE_END
PROCE11: ;11---表示功能,语音与数据之间撤换
setb GNBZ
CPL FUNCMARK ;
CLR KEYMARK
JB FUNCMARK,PROCE111
;LCALL SENDSJ
MOV 50H,#20H
MOV 51H,#20H
MOV 52H,#20H
MOV 53H,#20H
MOV 54H,#20H
MOV 55H,#"D"
MOV 56H,#"a"
MOV 57H,#"t"
MOV 58H,#"a"
MOV 59H,#20H
LCALL CLEARH
LCALL LCDXSL
MOV A,#0CH ;显示方式:关光标,开显示,不闪烁
ACALL WAIT
LCALL CLEARBUFF ;清空数据区内容
LJMP PROCE_END
PROCE111:
;LCALL SENDYY
MOV 50H,#20H
MOV 51H,#20H
MOV 52H,#20H
MOV 53H,#"S"
MOV 54H,#"p"
MOV 55H,#"e"
MOV 56H,#"k"
MOV 57H,#"i"
MOV 58H,#"n"
MOV 59H,#"g"
LCALL CLEARH
LCALL LCDXSL
MOV A,#0CH ;显示方式:关光标,开显示,不闪烁
ACALL WAIT
LCALL CLEARBUFF ;清空数据区内容
LJMP PROCE_END
PROCE12: ;12---向前翻屏
CLR KEYMARK
MOV A,DISPBEG
CLR C
CJNE A,#3AH,PROCE121
PROCE121: JC PROCE122
SUBB A,#10
MOV DISPBEG,A
LCALL TO_BUFF
LCALL CLEARH
LCALL LCDXSL
PROCE122: LJMP PROCE_END
PROCE13: ; 撤消
LCALL CLEARBUFF
LCALL CLEARH
LCALL CLEARL
MOV A,#02h ;光标归位
LCALL WAIT
LJMP PROCE_END
PROCE14: ;14---向后翻屏
CLR KEYMARK
MOV A,DISPBEG
CLR C
CJNE A,#4EH,PROCE141
PROCE141: JNC PROCE142
ADD A,#10
MOV DISPBEG,A
LCALL TO_BUFF
LCALL CLEARH
LCALL LCDXSL
PROCE142: LJMP PROCE_END
PROCE15: CLR KEYMARK ;15---表示确认
LCALL SENDSJ
CLR SOUND
SETB MODEM
clr p3.4
LCALL D100MS
LCALL D100MS
LCALL D100MS
LCALL D100MS
LCALL TRANSDATA ;发送数据
setb p3.4
LCALL D100MS
LCALL D100MS
LCALL D100MS
LCALL D100MS
CLR MODEM
LCALL SENDSJ_END
LCALL CLEARBUFF ;清空数据区内容
PROCE_END: MOV KEYDATA,#99H
MOV KEYTMP,#99H
MOV KEYTMP1,#99H
POP 07H
POP 00H
POP ACC
RET
;*******************************
;向MODEM发送数据
TRANSDATA:
MOV R7,#32
MOV R0,#30H
CLR REN ;不允许接收
MOV A,#2 ;发短信起始符
MOV SBUF,A
JNB TI,$
CLR TI
TRANSDATA1: MOV A,@R0
CJNE A,#99H,TRANSDATA2
AJMP TRANSDATA3
TRANSDATA2:
MOV SBUF,A
JNB TI,$
CLR TI
INC R0
DJNZ R7,TRANSDATA1
TRANSDATA3:
MOV A,#3 ;发短信结束符
MOV SBUF,A
JNB TI,$
CLR TI
SETB REN ;允许接收
CLR RI
RET
;*******************************
;清空数据区内容
CLEARBUFF:
MOV R7,#32
MOV R0,#CZRDATA
MOV A,#99H
CLEARBUFF1:
MOV @R0,A
INC R0
DJNZ R7,CLEARBUFF1
MOV CZRCOUNT,#CZRDATA
MOV DISPBEG,#CZRDATA
CLR KEYMARK
RET
;*******************************
;计算新页首地址,并更新显示区内容
TO_BUFF1:
MOV A,CZRCOUNT
SUBB A,#30H
MOV B,#10
DIV AB
MOV B,#10
MUL AB
ADD A,#30H
MOV DISPBEG,A
LCALL TO_BUFF
RET
;***********************************
;更新显示区内容
TO_BUFF:
MOV A,DISPBEG
MOV R0,A
MOV A,@R0
MOV 50H,A
INC R0
MOV A,@R0
MOV 51H,A
INC R0
MOV A,@R0
MOV 52H,A
INC R0
MOV A,@R0
MOV 53H,A
INC R0
MOV A,@R0
MOV 54H,A
INC R0
MOV A,@R0
MOV 55H,A
INC R0
MOV A,@R0
MOV 56H,A
INC R0
MOV A,@R0
MOV 57H,A
INC R0
MOV A,@R0
MOV 58H,A
INC R0
MOV A,@R0
MOV 59H,A
RET
;****************************************
;转换为语音状态,关MODEM,开语音
SENDYY: CLR SOUND
CLR MODEM
LCALL DELAY2MS
LCALL DELAY2MS
MOV A,#11 ;*
LCALL SEND8880
MOV A,#1 ;1
LCALL SEND8880
MOV A,#12 ;#
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
CLR MODEM
SETB SOUND
RET
;****************************************
;转换为数据状态,关语音,开MODEM
SENDSJ: CLR SOUND
CLR MODEM
LCALL DELAY2MS
LCALL DELAY2MS
MOV A,#11 ;*
LCALL SEND8880
MOV A,#10 ;0
LCALL SEND8880
MOV A,#12 ;#
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
CLR SOUND
SETB MODEM
RET
;****************************************
;数据传输结束,关语音,关MODEM
SENDSJ_END: CLR SOUND
CLR MODEM
LCALL DELAY2MS
LCALL DELAY2MS
MOV A,#11 ;*
LCALL SEND8880
MOV A,#2 ;2
LCALL SEND8880
MOV A,#12 ;#
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
MOV A,ADDR ;分机号码
LCALL SEND8880
CLR MODEM
clr SOUND
RET
;****************************************
;语音传输结束,关语音,关MODEM
SENDYY_END: CLR SOUND
CLR MODEM
LCALL DELAY2MS
LCALL DELAY2MS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -