找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 2705|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于AT89S52+SIM300 GPRS的遠(yuǎn)程控制系統(tǒng)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:536838 發(fā)表于 2020-10-30 16:57 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


單片機(jī)源程序如下:
  1. /****************************************************************************************
  2. * 文件名稱:SIM300.c
  3. * 說(shuō)明:本文件為單片機(jī)控制GPRS模塊程序文件
  4. * 功能:?jiǎn)纹瑱C(jī)控制SIM300模塊撥打電話
  5. * 修改:無(wú)
  6. * 版本:1.0.0
  7. * 作者:YuanDong
  8. * 時(shí)間:2009.8.5
  9. *****************************************************************************************/
  10. #include <51reg.h>
  11. #include <string.h>
  12. #include <stdio.h>      /*標(biāo)準(zhǔn)輸入輸出定義*/

  13. #include <Target.h>  
  14. #include <Target.c>    //串口發(fā)送接收程序
  15.    

  16. #define PWR_ON   P2.5      //SIM300模塊供電腳
  17. #define PWR_Key  P2.4      //SIM300上電控制腳

  18. sbit  P2.4=P2^4;
  19. sbit  P2.5=P2^5;

  20. #define                AT_SEND_OK         0    //AT命令發(fā)送OK

  21. uchar strcall[]="ATD15851861610";  //要撥打的電話號(hào)碼
  22. uint len=15;                       //strcall[] 的長(zhǎng)度
  23. uint switch = 0;                   //SIM300 reset 成功

  24.         
  25. /*****************************************************************************************
  26. *函數(shù)名稱:init_IO(void)
  27. *函數(shù)功能:?jiǎn)纹瑱C(jī)I/O初始化
  28. *入口函數(shù):無(wú)
  29. *出口函數(shù):無(wú)
  30. *****************************************************************************************/               
  31. void init_IO(void)
  32. {
  33.     PWR_ON=0;
  34.     PRW_KEY=0;
  35. }
  36. /*****************************************************************************************
  37. *函數(shù)名稱:SIM300_reset(void)
  38. *函數(shù)功能:SIM300復(fù)位
  39. *入口函數(shù):無(wú)
  40. *出口函數(shù):SWITCH
  41. *****************************************************************************************/               
  42. uint SIM300_reset(void)
  43. {
  44.    PWR_ON=1;           //GPRS PWR CTL on
  45.    PWR_KEY=1;         //GPRS PWRKEY CTL hight
  46.   
  47.    delay_ms(3000);    //模塊開(kāi)啟或關(guān)閉后等待3S
  48.   
  49.    PWR_KEY=0;        //pwrkey須先置高大于2s,再置低之后,才能正確復(fù)位模塊
  50.   
  51.    delay_ms(2500);
  52.   
  53.    return SWITCH;

  54. }
  55. /*****************************************************************************************
  56. *函數(shù)名稱:SendAT(void)
  57. *函數(shù)功能:發(fā)送AT命令
  58. *入口函數(shù):無(wú)
  59. *出口函數(shù):AT_SEND_OK
  60. *****************************************************************************************/               
  61. uint SendAT(void)
  62. {

  63.         send_str(strcall[],len);  //調(diào)用 Target.c里的send_str()
  64.                
  65.         return AT_SEND_OK;
  66. }
  67. /*****************************************************************************************
  68. *函數(shù)名稱:void main(int argc, char **argv)
  69. *函數(shù)功能:主函數(shù)
  70. *入口函數(shù):無(wú)
  71. *出口函數(shù):無(wú)
  72. *****************************************************************************************/        
  73. void main(void)
  74. {

  75.   while(1)
  76.   {
  77.    int i,j,k,status;
  78.    
  79.    init_IO();        //I/O 初始化
  80.    usart0_initial(); //串口初始化
  81.    SIM300_reset();   //SIM300 復(fù)位
  82.   

  83.    
  84.    
  85.    for(i=0;i<10000;i++)
  86.    for(j=0;j<100;j++)
  87.    for(k=0;k<100;k++);   //延時(shí)一段時(shí)間
  88.    
  89.    status = SendAT();    //發(fā)送AT命令
  90.    
  91.    for(k=0;k<20000;k++);
  92.    
  93.    if(!status)
  94.    {
  95.      
  96.      printf("GPRS link ok!");
  97.    }
  98.    else
  99.    {

  100.      printf("GPRS link error!");  
  101.    }
  102.             
  103.   }
  104.   
  105. }
復(fù)制代碼

所有程序51hei提供下載:
基于AT89S52+GPRS的遠(yuǎn)程控制系統(tǒng).zip (46.85 KB, 下載次數(shù): 38)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:65956 發(fā)表于 2020-11-2 10:29 | 只看該作者
你這程序有點(diǎn)怪,那些初始化都放在主循環(huán)里,那運(yùn)行起來(lái)都是在循環(huán)中,這樣沒(méi)必要吧
回復(fù)

使用道具 舉報(bào)

板凳
ID:385637 發(fā)表于 2020-12-17 10:31 | 只看該作者
初始化放無(wú)限循環(huán)中?那不是一直無(wú)限次初始化
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表