📄 sms0.lst
字号:
;E87
00C8 T2CON EQU 0C8H
00CA RCAP2L EQU 0CAH
00CB RCAP2H EQU 0CBH
00CC TL2 EQU 0CCH
00CD TH2 EQU 0CDH
;cpu 8xc52
ORG 0000H
0000 020100 LJMP MAIN
ORG 0023H
0023 02028C ljmp INT_232
00A6 WDTRST EQU 0A6H ;看门狗定时器寄存器
;************宏定义
0002 ADDR_SYS EQU 02H
0004 ADDR_SYS1 EQU 04H
0006 ADDR_SYS2 EQU 06H
0003 ADDR_TMP EQU 03H
0005 ADDR_BAK EQU 05H
0007 ADDR_DATA EQU 07H
00FC CONST_1MSH EQU 0FCH
0065 CONST_1MSL EQU 065H ;按1ms定时,定时器初值
00DC CONST_10MSH EQU 0DCH
0000 CONST_10MSL EQU 000H
0000 CONST_100MSH EQU 00H
0000 CONST_100MSL EQU 00H
0050 _R1 EQU 50H
0051 _R2 EQU 51H
0052 _R3 EQU 52H
;口线定义
0091 igb BIT P1.1
0096 BIT_ESCL BIT P1.6
0097 BIT_ESDA BIT P1.7
0080 in1 BIT P0.0
0081 in2 BIT P0.1
0082 in3 BIT p0.2
;--用户位定义
0010 BIT_EEF BIT 22H.0
0011 bit_OK BIT 22H.1
0012 BIT_ONLINE BIT 22H.2
0013 BIT_TINYTIMEOUT BIT 22H.3
0014 BIT_LASTBYTE BIT 22H.4
0015 BIT_LASTOK BIT 22H.5
0016 BIT_IDLE BIT 22H.6
0017 chr_ok BIT 22H.7
;--寄存器定义
;COMM_LEN EQU 59h
0010 STACK_TOP EQU 10H ;定义堆栈首址48
0060 BUF_SEND EQU 60H
;BUF_EOF EQU 6FH
0080 BUF_DATA EQU 80H
;BUF_REOF EQU 0FFH
;---------------------------------------------------------------------------------------
ORG 0100H
0100 MAIN:
0100 758110 MOV SP,#STACK_TOP ;栈
0103 75D000 MOV PSW,#00H ;0号工作区
0106 7580FF MOV P0,#0FFH
0109 7590FF MOV P1,#0FFH
010C 75A0FF MOV P2,#0FFH
010F 75B0FF MOV P3,#0FFH
0112 D297 SETB BIT_ESDA
0114 D296 SETB BIT_ESCL
;--------------------RAM空间清0及测试----------------------------
0116 7800 MOV R0,#0
0118 M_1:
0118 7600 MOV @R0,#0
011A D8FC DJNZ R0,M_1
;--定时器T0,T1参数设置
011C 758911 MOV TMOD,#00010001B ;定时器T0,T1工作于方式1(16位定时)
011F 758CFC MOV TH0,#CONST_1MSH
0122 758A65 MOV TL0,#CONST_1MSL
;--串口参数设置
0125 759850 MOV SCON,#01010000B ;sm0 sm1 sm2 ren tb8 rb8 ti ri
0128 75CDFF MOV TH2,#0FFH
012B 75CC70 MOV TL2,#070H
012E 75CBFF MOV RCAP2H,#0FFH ;波特率 115200 57600 38400 28800 19200 9600 7200 4800 3600 2400
0131 75CADC MOV RCAP2L,#0DCH ;TH2:TL2= FF:FD FF:FA FF:F7 FF:F4 FF:EE FF:DC FF:D0 FF:B8 FF:A0 FF:70
0134 75C834 MOV T2CON,#00110100B ;TF2 EXF2 RCLK TCKL EXEN2 TR2 C/T2 CP/RL2
0137 75B810 MOV IP,#00010000B ;中断优先 * * PT2 PS PT1 PX1 PT0 PX0
013A 75A820 MOV IE,#00100000B ;中断使能寄存器 EA X ET2 ES ET1 EX1 ET0 EX0
013D D2AF SETB EA
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
013F 120346 LCALL DELAY10MS
0142 D291 SETB IGB
0144 120346 LCALL Delay10MS
0147 C291 CLR IGB
0149 12035C LCALL DELAY100MS
014C 12035C LCALL DELAY100MS
014F D291 SETB IGB
0151 12015D LCALL INITMODEM
0154 wait:
0154 12036B lcall delay1000ms
;ajmp $
0157 120226 lcall sms_send
015A 215A ajmp $
015C 22 RET
;INCLUDE MODEM.ASM
;--------------------------------------------------------------------
; 本程序处理MODEM的初始化,
;
; InitModem --初始化MODEM,19200 BPS,自动应答
;
;--------------------------------------------------------------------
015D InitModem:
015D C2AC CLR ES
015F C298 CLR RI
0161 7860 MOV R0,#BUF_SEND
0163 90038A MOV DPTR,#TABLE_RESET
0166 7A06 MOV R2,#6
0168 IM_1:
0168 E4 CLR A
0169 93 MOVC A,@A+DPTR
016A F6 MOV @R0,A
016B A3 INC DPTR
016C 08 INC R0
016D DAF9 DJNZ R2,IM_1
016F 00 NOP
0170 00 NOP
0171 IM_2:
0171 7860 MOV R0,#BUF_SEND
0173 7A06 MOV R2,#6
0175 1202D2 lCALL ATSEND
0178 7880 MOV R0,#BUF_DATA
017A 7A06 MOV R2,#6
017C IM_21:
017C 1202B3 lCALL WAIT_RI
017F 40F0 JC IM_2
0181 C298 CLR RI
0183 E599 MOV A,SBUF
0185 F6 MOV @R0,A
0186 08 INC R0
0187 DAF3 DJNZ R2,IM_21
0189 12031F lCALL CHECK
018C 3017E2 jnb chr_ok,im_2
018F 12036B lCALL DELAY1000MS
;RET
0192 7860 MOV R0,#BUF_SEND
0194 900390 MOV DPTR,#TABLE_SETSMS0
0197 7A0B MOV R2,#11
0199 IM_3:
0199 E4 CLR A
019A 93 MOVC A,@A+DPTR
019B F6 MOV @R0,A
019C A3 INC DPTR
019D 08 INC R0
019E DAF9 DJNZ R2,IM_3
01A0 00 NOP
01A1 00 NOP
01A2 IM_4:
01A2 7860 MOV R0,#BUF_SEND
01A4 7A0B MOV R2,#11
01A6 1202D2 lCALL ATSEND
01A9 7880 MOV R0,#BUF_DATA
01AB 7A06 MOV R2,#6
01AD IM_41:
01AD 1202B3 lCALL WAIT_RI
01B0 40F0 JC IM_4
01B2 C298 CLR RI
01B4 E599 MOV A,SBUF
01B6 F6 MOV @R0,A
01B7 08 INC R0
01B8 DAF3 DJNZ R2,IM_41
01BA 12031F lCALL CHECK
01BD 3017E2 jnb chr_ok,im_4
01C0 12036B lCALL DELAY1000MS
01C3 7860 MOV R0,#BUF_SEND
01C5 90039B MOV DPTR,#TABLE_SETSMS1
01C8 7A18 MOV R2,#24
01CA IM_5:
01CA E4 CLR A
01CB 93 MOVC A,@A+DPTR
01CC F6 MOV @R0,A
01CD A3 INC DPTR
01CE 08 INC R0
01CF DAF9 DJNZ R2,IM_5
01D1 00 NOP
01D2 00 NOP
01D3 IM_6:
01D3 7860 MOV R0,#BUF_SEND
01D5 7A18 MOV R2,#24
01D7 1202D2 lCALL ATSEND
01DA 7880 MOV R0,#BUF_DATA
01DC 7A06 MOV R2,#6
01DE IM_61:
01DE 1202B3 lCALL WAIT_RI
01E1 40F0 JC IM_6
01E3 C298 CLR RI
01E5 E599 MOV A,SBUF
01E7 F6 MOV @R0,A
01E8 08 INC R0
01E9 DAF3 DJNZ R2,IM_61
01EB 12031F lCALL CHECK
01EE 3017E2 jnb chr_ok,im_6
01F1 120346 lCALL DELAY10MS
01F4 7860 MOV R0,#BUF_SEND
01F6 9003B3 MOV DPTR,#TABLE_GOGSM
01F9 7A0B MOV R2,#11
01FB IM_7:
01FB E4 CLR A
01FC 93 MOVC A,@A+DPTR
01FD F6 MOV @R0,A
01FE A3 INC DPTR
01FF 08 INC R0
0200 DAF9 DJNZ R2,IM_7
0202 00 NOP
0203 00 NOP
0204 IM_8:
0204 7860 MOV R0,#BUF_SEND
0206 7A0B MOV R2,#11
0208 1202D2 lCALL ATSEND
020B 7880 MOV R0,#BUF_DATA
020D 7A06 MOV R2,#6
020F IM_81:
020F 1202B3 lCALL WAIT_RI
0212 40F0 JC IM_8
0214 C298 CLR RI
0216 E599 MOV A,SBUF
0218 F6 MOV @R0,A
0219 08 INC R0
021A DAF3 DJNZ R2,IM_81
021C 12031F lCALL CHECK
021F 3017E2 jNb chr_ok,im_8
0222 12036B lCALL DELAY1000MS
0225 22 RET
; MOV R0,#BUF_SEND
; MOV DPTR,#TABLE_SCOMRATE
; MOV R2,#13
;IM_9:
; CLR A
; MOVC A,@A+DPTR
; MOV @R0,A
; INC DPTR
; INC R0
; DJNZ R2,IM_9
; NOP
; NOP
;IM_10:
; MOV R0,#BUF_SEND
; MOV R2,#13
; lCALL ATSEND
; MOV R0,#BUF_DATA
; MOV R2,#6
;IM_101:
; lCALL WAIT_RI
; JC IM_10
; CLR RI
; MOV A,SBUF
; MOV @R0,A
; INC R0
; DJNZ R2,IM_101
; lCALL CHECK
; jNb chr_ok,im_10
; lCALL DELAY1000MS
; ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0226 sms_send:
0226 7860 MOV R0,#BUF_SEND
0228 9003BE MOV DPTR,#TABLE_msglen
022B 7A14 MOV R2,#20
022D SS_3:
022D E4 CLR A
022E 93 MOVC A,@A+DPTR
022F F6 MOV @R0,A
0230 A3 INC DPTR
0231 08 INC R0
0232 DAF9 DJNZ R2,SS_3
0234 00 NOP
0235 00 NOP
0236 SS_4:
0236 7860 MOV R0,#BUF_SEND
0238 7A14 MOV R2,#20
023A 1202D2 lCALL ATSEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -