?? gsmsms.asm
字號:
org 0000h
ljmp main
;======================
reset equ p1.1
;======================
rega equ 30h
rimod equ 31h
sendnum equ 32h
sicon equ 33h
datacount equ 34h
;======================
r_sp equ 60h
recbuff equ 80h
sendbuff equ 90h
baud equ 0dch;
org 0023h
push psw
push acc
push 00h
; push dph
;push dpl
jbc ri,r_ceive
r_send: clr ti ;發送數據
mov a,sendnum
jz r_send0
mov r0,sicon
mov a,@r0
mov sbuf,a
inc sicon
dec sendnum
ljmp r_send1
r_send0:nop
r_send1:ljmp d_reti
;**********************************
;多機通信下的接受數據狀態
;**********************************
r_ceive:
mov rega,sbuf
clr ri
mov a,rimod
anl a,#07h
rl a
add a,rimod
mov dptr,#ritab
jmp @a+dptr
ritab: ljmp r_mod0
ljmp r_mod1
ljmp r_mod2
r_mod0: mov @r1,rega
inc r1
inc datacount
r_mod1:
r_mod2:
d_reti: pop 00h
; pop dpl
; pop dph
pop acc
pop psw
reti
main: mov sp,#r_sp
mov rimod,#0
lcall iniall
;sjmp $
lcall modelon
;===================
;reset the model
;===================
mov r0,#sendbuff
mov r6,#6
mov dptr,#atz0db
get_atz0db:
mov a,#0
movc a,@a+dptr
mov @r0,a
inc r0
inc dptr
djnz r6,get_atz0db
mov sendnum,#6
mov sicon,#sendbuff
mov r1,#recbuff
mov datacount,#0
setb ti
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150ms
;sjmp $
;================================
;發送設置數據格式AT+CMGF=1
;================================
mov r0,#sendbuff
mov r6,#11
mov dptr,#formatedb
get_formatedb:
mov a,#0
movc a,@a+dptr
mov @r0,a
inc r0
inc dptr
djnz r6,get_formatedb
mov sendnum,#11
mov sicon,#sendbuff
mov r1,#recbuff
mov datacount,#0
setb ti
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150ms
;SJMP $
;==================================
;==================================
;==================================
;SEND AT+COPS=0
;==================================
mov r0,#sendbuff
mov r6,#11
mov dptr,#copsdb
get_copsdb:
mov a,#0
movc a,@a+dptr
mov @r0,a
inc r0
inc dptr
djnz r6,get_copsdb
mov sendnum,#11
mov sicon,#sendbuff
mov r1,#recbuff
mov datacount,#0
setb ti
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150MS
;==============================
;SET CENTER NUMBER
;==============================
mov r0,#sendbuff
mov r6,#24
mov dptr,#centerdb
get_centerdb:
mov a,#0
movc a,@a+dptr
mov @r0,a
inc r0
inc dptr
djnz r6,get_centerdb
mov sendnum,#24
mov sicon,#sendbuff
mov r1,#recbuff
mov datacount,#0
setb ti
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150ms
;==============================
;send tonum data
;AT+CMGS=13815041807
;==============================
mov r0,#sendbuff
mov r6,#20
mov dptr,#tonumdb
get_tonumdb:
mov a,#0
movc a,@a+dptr
mov @r0,a
inc r0
inc dptr
djnz r6,get_tonumdb
mov sendnum,#20
mov sicon,#sendbuff
mov r1,#recbuff
mov datacount,#0
setb ti
lcall delay150ms
lcall delay150ms
lcall delay150ms
;SJMP $
;=============================
;send data
;=============================
mov r0,#sendbuff
mov r6,#19
mov dptr,#datadb
get_datadb:
mov a,#0
movc a,@a+dptr
mov @r0,a
inc r0
inc dptr
djnz r6,get_datadb
mov sendnum,#19
mov sicon,#sendbuff
mov r1,#recbuff
setb ti
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150ms
lcall delay150ms
sjmp $
;***************************
;cpu install
;***************************
iniall: mov th0,#15h
mov tl0,#0a0h
mov th1,#0ffh
mov tl1,#00h
mov tmod,#11h
mov th2,#0ffh
mov tl2,#baud
mov rcap2h,#0ffh
mov rcap2l,#baud
mov t2con,#00110100b ;tf2 exf2 rclk tclk exen2 tr2 c/t2 cp/rl2
mov scon,#01010000b ;sm0 sm1 sm2 ren tb8 rb8 ti ri
mov ip,#00010000b ;* * pt2 ps pt1 px1 pt0 px0
mov tcon,#00000000b ;tf1 tr1 tf0 tr0 ie1 it1 ie0 it0
mov ie,#00010000b ;ea * * es et1 ex1 et0 ex0
setb ea
ret
modelon:
setb reset
lcall delay10ms
clr reset
lcall delay150ms
lcall delay150ms
setb reset
lcall delay10ms
ret
delay1ms: mov r6,#1ah
dl0: mov r7,#18h
dl1: nop
nop
djnz r7,dl1
djnz r6,dl0
ret
delay10ms: mov r5,#10
dl2: lcall delay1ms
djnz r5,dl2
ret
delay150ms:mov r4,#15
dl3: lcall delay10ms
djnz r4,dl3
ret
atz0db: db 'A','T','Z','0',0DH,0AH
formatedb:db 'A','T''+','C','M','G','F','=','1',0DH,0AH
copsdb: db 'A','T','+','C','O','P','S','=','0',0DH,0AH
tonumdb: db 'A','T','+','C','M','G','S','=','1','3','8','6','1','1','9','8','4','5','4',0DH
datadb: db 4Ah,51h,4Ah,26h,47h,4Dh,53h,20h,54h,45h,53h,54h,20h,4Fh,4Bh,21h,1Ah,5eh,5ah
centerdb: db 'A','T','+','C','S','C','A','=','+','8','6','1','3','8','0','0','5','1','9','5','0','0',0DH,0AH
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -