电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

基于51单片机GPRS手机详细教程

  • 资源ID:457179201       资源大小:472KB        全文页数:16页
  • 资源格式: DOC        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

基于51单片机GPRS手机详细教程

基于51单片机GPRS打电话等功能的实现!血顶猎鹰大家好,小弟花了大半个月时间折腾出使用51单片机和TC35进行打电话,发短信,收到短信后回一个短信给发信人(谁发的就回给谁,不是指特定的一个人!)网上好多程序都是不能用的,这个程序经本人实际调试过,可以使用!先介绍下功能:1. 按下第一个按钮打电话给程序中指定的手机2. 按下第二个键发温度值给程序中指定的手机3. 按下第三个键发测试短信给程序中指定的手机4. 随便来个手机发一个bang给和单片机连在一起的手机卡,手机卡回ph=0.7给你的手机,发别的字符就不会(这个相当于密码),当然这个bang和ph=0.7这个是你自己设的。下面看看电路图:右边那个长长的就是TC35的接口了,第15脚接单片机,其他的按着连就行了。 处于方便,1602就这样接了,还有按钮怎么接程序看看就知道了,红笔是我修改的,你懂的!这些脚和单片机一下,再接下晶振就好了,接下来进入正题。程序如下,程序横向有点长,为了让大家可以看程序方便点就把字体缩小了。里面解释很详细了,程序我是修改别人的,之前不能用,现在可以了。为了便于大家理解,我把几个重要的地方说下打电话过程mingling(3,AT12);for(x=0;x<11;x+)senddata(neirongx); senddata(0x3b);senddata(0x0D);while(sw1=0); senddata(0x0D);/发0x0d停止打电话,首先发一些命令准备打,然后输入电话号码,在内容里面,然后结束符号,等待按键松开就不打了。发短信的过程ES=0;mingling(8,AT7);for(i=0;i<11;i+)senddata(neirongi);senddata(0x0d);delaymm(100);senddata(shi+0x30);senddata(ge+0x30); /发送数据内容senddata(0x20);senddata(0x1a);senddata(0x0d);ES=1;串口中断关不关都没事的,一般不会冲突。过程和打电话的差不多,只是命令有点不同,你懂的!接受短信过程先检测下有没短信来receive_ready();来了的话那个TC35通过串口给单片机发东西,我看了下东西是这个:&&+CMTI: "SM",10 10表示我当前的短信数,说明我之前有9条,加上现在的共10条我们取标志位TI,所以有SystemBuf5=0x54)&&SystemBuf6=0x49就表示短信来了,0x54,0x49就是TI的意思,你懂的!来短信了我们准备发出短信, if(receiveready=1) read_message(); receiveready=0; sendready=1; Delay_ms(300); message_read();这里是准备的过程其中void message_read(void) /*准备是否回复短信给目标号码*/ if(sendready=1)&&(SystemBuf5=0x47)&&(SystemBuf6=0x52) send=1;就是绕来绕去,你们也可以不绕,这里简单。另外我看了下这个时候数组里面存的东西,用我下面注释了的程序就好了(如果你们也想看看) /*write_cmd(0x01);write_cmd(0x80);for(i=64;i<80;i+)write_dat(SystemBufi);delaymm(1); write_cmd(0xc0);for(i=80;i<91;i+)write_dat(SystemBufi);delaymm(1); while(1);/读出来看下,结果是 /&&+CMGR: "REC UN 015 /READ","+86151581 1631 /07680","11/06/1 3247 /1,14:01:09+32"&& 4863 /1234567891234567 6479 /8912345678 8089 */看这个小东西把你的手机号码,发的时间日期,内容都记下来存到数组里了,接下来的事情就好办了void readcommend(void) /*读取短信内容,判断相应指令是否正确*/ uchar i; for(i=0;i<4;i+) /将短信内容中的指令部分截取出来放到 /CommandBuf数组中 CommandBufi=SystemBuf64+i; if(CommandBuf0='b')&&(CommandBuf1='a')&&(CommandBuf2='n')&&(CommandBuf3='g') /判断指令是否为开发光管指令 write_cmd(0x01); /测试接收write_cmd(0x80);write_dat('b');write_dat('a');write_dat('n');write_dat('g');sendmessage(); /如果发送的指令既不是bang就定义为错误操作,不干别的这里读短信内容看看我们的暗号是不是对的,我这里就设置成bang了,如果密码是对的,我们就发短信!上面我们不是看了这个小东西存的东西都放在哪了,看到没,在64开始就是你的内容了接下来我们来看看它是怎么发出去的void sendmessage(void) /*发送回复短信指令*/ uchar i;for(i=0;i<8;i+) AT_SendNumberi=AT_CMGSi; for(i=8;i<19;i+) AT_SendNumberi=SystemBuf18+i;/位置2636 将对方号码提取用来回复给对方 sendstring(AT_SendNumber);senddata(0x0d);delaymm(100);senddata('P');senddata('H');senddata('=');senddata('7');senddata('.');senddata('0');/内容senddata(0x20);senddata(0x1a);senddata(0x0d);Delay_ms(30);看到没,和之前我们发短信的方法是一样的,只不过这里用的是它数组里存的电话号码,所在位置2636,很方便看出来的哈,用我上面的显示程序就行了。接下来就是删除短信了,发一个指令还有储存的位置,这里人性化处理,不把你以前存在卡里的短信删掉,删掉的是你放进卡之后发过去的指令,这个是这样实现的。read_message(void)程序执行的时候把位置读走了,但是后来没消掉看到没? 在delete_message(void)中我们用一个循环把你的位置放到数组里,然后再删,程序如下for(i=8;i<11;i+)AT_deletei=numberbufi-8; 好了,基本也就是这些了,打到这里累死我了!下面是整个程序!大家拿回去用吧。#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define RxIn 90/定义接收的数组长度为90uchar code AT="AT"/握手信号uchar code ATE="ATE" /关回显uchar code AT_CNMI="AT+CNMI=2,1"/设置这组参数来了新信息直接显示到串口,不作存储uchar code AT_CSCA="AT+CSCA="+8613800571500""/设置服务中心号码AT+CSCA="+8613010360500"uchar code AT_CMGF="AT+CMGF=1"/设置短信的格式为text格式uchar code AT_CMGR="AT+CMGR="/读取短信指令uchar code AT_CMGS="AT+CMGS="/发送短信指令uchar code AT_CMGD="AT+CMGD="/发送短信指令uchar AT_delete12;uchar AT_Read12;/用来存储发送读取短信指令 uchar AT_SendNumber22; /用来存储发送短信号码指令uchar numberbuf3; /用来保存短信条数 uchar idata SystemBufRxIn; /储存出口接收数据 uchar CommandBuf4; /用来储存指令 uchar Rx=0;bit receiveready=0; /接收短信标志位bit sendready=0; /发送短信准备标志位bit send=0; /发送短信标志位sbit IGT=P27;/启动GSM的启动线连IGTsbit sw1=P33; /打电话sbit sw2=P34;/发测试短信sbit sw3=P35;/发温度sbit beep=P32; /蜂鸣器void Delay_ms(uint i);void Start_GSM(void);void UART_init (void);void sendchar(uchar ch);void sendstring(uchar *p);void GSM_INIT(void);void receive_ready(void);void message_read(void);void read_message(void);void sendmessage(void);uchar code AT7=0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D;/AT+CMGS= AT+CMGS=“+8613xxxxxxxxx”回车>输入短消息。Crtl+Z结束并发送。uchar code AT12=0x41,0x54,0x44,0x3E;/ATD> ATD*; (拨号,"*"为需要拨的号码,如呼叫13973292929,则为ATD13973292929;uchar code

注意事项

本文(基于51单片机GPRS手机详细教程)为本站会员(桔****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.