⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 使用STC89c58RD+系列单片机控制手机收发短信息的原理、硬件电路、PDU数据格式和短信息发送/接收程序
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  04/20/2008 17:32:26 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*********************本程序仅限学习交流***************************
   2          *********************引用请注明作者 axin***************************
   3          *************************文件名main.c******************************
   4          *Copyright(C)2008 biti
   5          *功能描述:单片机控制tc35iGSM模块收发短信
   6          *所需模块:      名称            型号            厂家
   7          *                       单片机          STC89c58RD+     STC
   8          *                       GSM模块         tc35i           西门子
   9          *                       液晶显示器      1602(16脚)
  10          *                       串口            MAX232          
  11          *                       蜂鸣器
  12          *                       电源、连接线若干
  13          *所需文件:      名称            描述
  14          *                       reg52.h         特殊功能寄存器
  15          *                       stdlib.h        NULL
  16          *                       intrins.h       _nop_()
  17          *                       1602_lcd.c      1602液晶显示器子函数
  18          *                       shizhong.c      时间函数
  19          *                       tc35i.c         GSM模块子函数
  20          *作    者:axin
  21          *日    期:2008-4-20
  22          *QQ:35714796
  23          ********************本程序仅限学习交流****************************
  24          ********************引用请注明作者 axin***************************
  25          *****************************************************************/
  26          #include <reg52.h>
  27          #include <stdlib.h>
  28          #include <intrins.h>
  29          
  30          extern void delayms_48us();
  31          extern void delayms_1ms();
  32          extern void delayms_10ms();
  33          extern void delayms_100ms();
  34          extern void delayms_1000ms();
  35          
  36          #define uchar unsigned char
  37          #define uint  unsigned int
  38          #define ulong unsigned long
  39          #define zhushi ;
  40          
  41          sbit P3_7=P3^7;
  42          
  43          #include "1602_lcd.c"
  44          #include "shizhong.c"
  45          #include "tc35i.c"
  46          
  47          /*****************************************************************
  48          *函数名称: 主函数
  49          *功能:          延时函数
  50          *形参:
  51          *返回值:
  52          *备注:          调度个子函数,完成通信过程
  53          *****************************************************************/
  54          void main(void)
  55          { char i=0;     //uint j=0;     char *p;
C51 COMPILER V7.06   MAIN                                                                  04/20/2008 17:32:26 PAGE 2   

  56   1              //定时器初始化
  57   1              Time0Init();
  58   1              zhushi delayms_10ms();Bell();
  59   1              //初始化LCD1602
  60   1              delayms_1ms();lcd_init();
  61   1              delayms_1ms();lcd_init();
  62   1              delayms_1ms();lcd_init();
  63   1              delayms_1ms();lcd_init();delayms_100ms();
  64   1              //显示开机画面
  65   1              zhushi lcd_disp_str(" How are you !  ",1);
  66   1              zhushi lcd_disp_str("   Welcome!     ",2);      
  67   1              //延时5s                                        
  68   1              for(i=0;i<5;i++)delayms_1000ms();
  69   1              //清除串口接收缓冲区
  70   1              zhushi lcd_disp_str("  Clear RsBuf   ",1);
  71   1              zhushi lcd_disp_str("                ",2);
  72   1              ClrBuf(RsBuf,RsBuf_N);
  73   1              //串口初始化 定时器初始化
  74   1              UART_init();delayms_100ms();
  75   1              //串口发送"联机"指令
  76   1              Send_AT();
  77   1              //串口发送"禁止回显"指令
  78   1              SendString("ATE0\r");
  79   1              zhushi lcd_disp_str("ATE0            ",1);                              
  80   1              delayms_1000ms();
  81   1              //串口发送"PDU模式"指令
  82   1              SendString("AT+CMGF=0\r");
  83   1              zhushi lcd_disp_str("AT+CMGF=0       ",1);
  84   1              delayms_1000ms();
  85   1              //串口发送"新信息报告"指令
  86   1              SendString("AT+CNMI=1,1,0,2,1\r");      
  87   1              zhushi lcd_disp_str("ATCNMI=1,1,0,2,1",1);      
  88   1              delayms_1000ms();
  89   1              //清除串口接收缓冲区前50字节
  90   1              ClrBuf(RsBuf,50);
  91   1              RsPoint=0;
  92   1              ES=1;
  93   1              //tc35i向服务台发送请求信息
  94   1              RequestDWW();   
  95   1              delayms_1000ms();
  96   1      
  97   1              while(1){
  98   2                      //delayms_100ms();
  99   2                if(RsPoint){
 100   3                      //信息报告 "+CDSI: "SM",xx"
 101   3                      ReturnCommandOffSet=mystrstr(RsBuf,"+CDSI: \"SM\"");    
 102   3                      if(ReturnCommandOffSet!=NULL){
 103   4                              RsPoint=0;
 104   4                              *(ReturnCommandOffSet+1)=0xa5;
 105   4                              *(ReturnCommandOffSet+2)=0xa5;
 106   4                              zhushi Bell();
 107   4                              zhushi lcd_disp_str("Have new Report ",1);
 108   4                              ReciveNewStatusReport();
 109   4                              //ClrBuf(RsBuf,8);
 110   4                              //RsPoint=0;
 111   4                              } 
 112   3      
 113   3                      delayms_100ms();
 114   3                      //有新信息      "+CMTI: "SM",xx"
 115   3                      ReturnCommandOffSet=mystrstr(RsBuf,"+CMTI: \"SM\"");    
 116   3                      if(ReturnCommandOffSet!=NULL){
 117   4                              RsPoint=0;
C51 COMPILER V7.06   MAIN                                                                  04/20/2008 17:32:26 PAGE 3   

 118   4                              *(ReturnCommandOffSet+1)=0xa5;
 119   4                              *(ReturnCommandOffSet+2)=0xa5;
 120   4                              zhushi Bell();for(i=0;i<16;i++)dis2[i]=*(ReturnCommandOffSet+i);
 121   4                              zhushi lcd_disp_str("Have new Message",1);
 122   4                              zhushi lcd_disp_str(dis2,2);delayms_1000ms();
 123   4                              ReciveNewMsg();
 124   4                              ClrBuf(RsBuf,8);
 125   4                              RsPoint=0;
 126   4                              } 
 127   3              //      RsPoint=0;
 128   3                }
 129   2      
 130   2                      //while(!RsPoint){
 131   2                              //时间显示 "time is 00:00:00";
 132   2                              dis2[0]='t';dis2[1]='i';dis2[2]='m';dis2[3]='e';dis2[4]=0x20;
 133   2                              dis2[5]='i';dis2[6]='s';dis2[7]=0x20;
 134   2                              dis2[8]=hh/10+48;dis2[9]=hh%10+48;dis2[10]=0x3a;
 135   2                              dis2[11]=mi/10+48;dis2[12]=mi%10+48;dis2[13]=0x3a;
 136   2                              dis2[14]=ss/10+48;dis2[15]=ss%10+48;
 137   2                              lcd_disp_str(dis2,2);
 138   2                              
 139   2                              //状态显示
 140   2                              if(ss&0x01) lcd_disp_str("   |(='.'=)|    ",1);
 141   2                              else            lcd_disp_str("   -(='.'=)-    ",1);
 142   2      
 143   2                              //定时时间到,向服务台发送请求信息
 144   2                              if((T0800||T2000)&&DWW_Flag){
 145   3                                      DWW_Flag=0;
 146   3                                      zhushi lcd_disp_str("It's time to     ",1);
 147   3                                      zhushi lcd_disp_str("   send Request. ",1);
 148   3                                      zhushi Bell();
 149   3                                      zhushi delayms_1000ms();
 150   3                                      RequestDWW();delayms_1000ms();
 151   3                                      }
 152   2                              //}
 153   2                      
 154   2                      //zhushi lcd_disp_str("                ",1);//delayms_100ms();
 155   2                      //zhushi lcd_disp_str("                ",2);
 156   2                      }
 157   1        
 158   1      }
 159           
 160          /*
 161                                  if(ss==58){
 162                                  zhushi lcd_disp_str("( ^o^)|         ",1);delayms_100ms();delayms_100ms();delayms_100ms();
 163                                  zhushi lcd_disp_str("( ^.^)/-~       ",1);delayms_100ms();delayms_100ms();delayms_100ms();
 164                                  zhushi lcd_disp_str("( ^.^)/--~      ",1);delayms_100ms();delayms_100ms();delayms_100ms();
 165                                  zhushi lcd_disp_str("( ^.^)/---~     ",1);delayms_100ms();delayms_100ms();delayms_100ms();
 166                                  zhushi lcd_disp_str("( ^.^)/----~    ",1);delayms_100ms();delayms_100ms();delayms_100ms();
 167                                  zhushi lcd_disp_str("( ^.^)/-----~   ",1);delayms_100ms();delayms_100ms();delayms_100ms();
 168                                  zhushi lcd_disp_str("( ^o^)/-----   *",1);delayms_1000ms();
 169                                  }
 170          
 171          
 172                          */      


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2705    ----
   CONSTANT SIZE    =    877    ----
   XDATA SIZE       =    400    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.06   MAIN                                                                  04/20/2008 17:32:26 PAGE 4   

   DATA SIZE        =     54      62
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -