本科设计-基于51单片机GPRS手机详细教程.docVIP

本科设计-基于51单片机GPRS手机详细教程.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于51单片机GPRS打电话等功能的实现! 血顶猎鹰 大家好,小弟花了大半个月时间折腾出使用51单片机和TC35进行打电话,发短信,收到短信后回一个短信给发信人(谁发的就回给谁,不是指特定的一个人!)网上好多程序都是不能用的,这个程序经本人实际调试过,可以使用!!! 先介绍下功能: 按下第一个按钮打电话给程序中指定的手机 按下第二个键发温度值给程序中指定的手机 按下第三个键发测试短信给程序中指定的手机 随便来个手机发一个bang给和单片机连在一起的手机卡,手机卡回ph=0.7给你的手机,发别的字符就不会(这个相当于密码),当然这个bang和ph=0.7这个是你自己设的。 下面看看电路图: 右边那个长长的就是TC35的接口了,第15脚接单片机,其他的按着连就行了。 处于方便,1602就这样接了,还有按钮怎么接程序看看就知道了,红笔是我修改的,你懂的! 这些脚和单片机一下,再接下晶振就好了,接下来进入正题。 程序如下,程序横向有点长,为了让大家可以看程序方便点就把字体缩小了。里面解释很详细了,程序我是修改别人的,之前不能用,现在可以了。 为了便于大家理解,我把几个重要的地方说下 打电话过程 mingling(3,AT12);for(x=0;x11;x++)senddata(neirong[x]); senddata(0x3b);senddata(0x0D);while(sw1==0); senddata(0x0D); //发0x0d停止打电话,首先发一些命令准备打,然后输入电话号码,在内容里面,然后结束符号,等待按键松开就不打了。 发短信的过程 ES=0;mingling(8,AT7); for(i=0;i11;i++)senddata(neirong[i]);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,所以有SystemBuf[5]==0x54)SystemBuf[6]==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)(SystemBuf[5]==0x47)(SystemBuf[6]==0x52)) send=1; } 就是绕来绕去,你们也可以不绕,这里简单。 另外我看了下这个时候数组里面存的东西,用我下面注释了的程序就好了(如果你们也想看看) /* write_cmd(0x01); write_cmd(0x80); for(i=64;i80;i++) { write_dat(SystemBuf[i]); delaymm(1); } write_cmd(0xc0); for(i=80;i91;i++) { write_dat(SystemBuf[i]); delaymm(1); } while(1);//读出来看下,结果是 //+CMGR: REC UN 0~15 //READ, 16~31 //07680,,11/06/1 32~47 //1,14:01:09+32 48~63 //1234567891234567 64~79 //8912345678 80~89 */ 看这个小东西把你的手机号码,发的时间日期,内容都记下来存到数组里了,接下来的事情就好办了 void readcommend(void) /*读取短信内容,判断相应指令是否正确*/ { uchar i; for(i=0;i4;i++) //将短信内容中的指

您可能关注的文档

文档评论(0)

hong8910aiyan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档