找回密码
 注册会员
img_loading
智能检测中
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

STC89C54RD++SIM300W单片机控制GSM模块发短信系统

[复制链接]
admin 发表于 2012-9-2 04:56:41 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
对于我这样的初学者来说,做这样的东西深感力不从心,不过靠着一份蛮劲硬着头皮还是实现了预想的功能,今天就站在这里求各位大侠拍砖,共同进步。





问3个问题
1 单片机串口和GSM模块串口(电压不一样)直连长时间工作不会出现问题吧2 程序哪些地方需要改进3 5v电源串二极管形成压降给GSM供电有没有问题


1 供电 stc90c54rd+ 5V sim300W 4.2V 峰值电流2A ;考虑用2576-5V 后接二极管 利用二极管压降给sim300供电

2 外围控制 ;单片机通电后p0.0输出一个2秒脉冲,sim300 pwkey脚拉低2秒使sim300开机

;单片机检测p1.2脚是否为低电平如果是,从单片机txd脚输出一系列串行数据(AT指令)控制sim300向指定手机号码发送一条短信

3 串口发送AT指令(犹豫水平有限没有写单片机接收串行数据的部分) ;

1 单片机发送 “AT” "回车" 41H 54H 0DH 0AH 使sim300进入命令模式

2 单片机发送 "AT+IPR=2400""回车" 41H 54H 2BH 49H 50H 52H 3DH 32H 34 30H 30H 0DH 0AH 使sim300的波特率设定为2400

3 单片机发送 "AT+CMGF=0""回车" ASCII码不再罗嗦 告诉sim300发送短信模式为中文

4 单片机发送 "AT+CMGS=25""回车" 告诉sim300发送内容的长度



5 单片机发送" 0011000D91685198100802F70008A70A57FA7AD96709544A8B66""1AH" 给15890180207发送“基站有告警”的短信



[attachment=null]

源代码


ORG 0000H
LJMP MAIN;上电,转向主程序
ORG 0023H
ORG 0030H;主程序
MAIN:
MOV TMOD,#20H;设T1工作方式2 定时器1作为波特率发生器
MOV TH1,#0F7H;赋记数初值 4M晶振波特率2400
MOV TL1,#0F7H;赋记数值
MOV PCON,#80H;设SMOD=1
MOV SCON,#0C0H;置串行口方式3,BU允许接收
AJMP WHETHER
WHETHER:SETB P1.2
JB P1.2,$
SETB TR1;启动定时器T1ACALL SENDAT
ACALL SENDAT
ACALL SENDIPR
ACALL SENDCMGFACALL SENDCMGS

ACALL SENDSMS
SENDAT: ;发送”AT“子程序
MOV A,#41H
MOV SBUF,A
JNB TI,$
CLR TI ;发送A
MOV A,#54H
MOV SBUF,A
JNB TI,$;
CLR TI ;发送T
MOV A,#0DH
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#0AH
MOV SBUF,A
JNB TI,$;
CLR TI ;发送回车
NOP
NOP
ACALL DL2S
RET
SENDIPR:
MOV A,#41H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#54H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#2BH
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#49H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#50H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#52H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#3DH
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#32H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#34H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#30H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#30H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#0DH
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#0AH
MOV SBUF,A
JNB TI,$;
CLR TI
ACALL DL2S
RET
SENDCMGF: ;发送AT+CMGF=0 中文模式
MOV A,#41H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#54H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#2BH
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#43H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#4DH
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#47H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#46H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#3DH
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#30H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#0DH
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#0AH
MOV SBUF,A
JNB TI,$;
CLR TI
ACALL DL2S
RET
SENDCMGS: ;发送AT+CMGS=25
MOV A,#41H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#54H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#2BH
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#43H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#4DH
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#47H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#53H
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,#3DH
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#32H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#35H
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#0DH
MOV SBUF,A
JNB TI,$;
CLR TI
MOV A,#0AH
MOV SBUF,A
JNB TI,$;
CLR TI
ACALL DL2S
RET
SENDSMS:
MOV DPTR,#SMS
LOOP_SEND:
CLR A
MOVC A,@A+DPTR
CJNE A,#'$',SEND_AAJMP WHETHER
SEND_A:
MOV SBUF,A;发送数据
JNB TI,$;
CLR TI
INC DPTR;指向后一个数据.LJMP LOOP_SEND;
RET

DL2S: ;延时2秒子程序
MOV R3,#50
LOOP: MOV R2,#25
LOOP1: MOV R1,#255
LOOP2:NOP
DJNZ R1,LOOP2
DJNZ R2,LOOP1
DJNZ R3,LOOP
RET
SMS : DB "0011000D91683195429389F80008A70A57FA7AD96709544A8B66",1AH,'$'
END上传一些我整理的资料,方便各位日后参考
[attachment=null]
您需要登录后才可以回帖 登录 | 注册会员

*滑块验证:
img_loading
智能检测中
本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-7-26 09:03 , Processed in 0.048071 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表