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

📄 uart_phs_token.lst

📁 ML150 PHS小灵通模块的短信功能实现源码
💻 LST
字号:
C51 COMPILER V8.02   UART_PHS_TOKEN                                                        03/13/2008 15:03:28 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE UART_PHS_TOKEN
OBJECT MODULE PLACED IN uart_phs_token.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uart_phs_token.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /**********************************************************/
   2          /*  send short message by PHS Module                      */
   3          /* Author: li tingtao, liu bo                             */
   4          /*********2008-3.13****************************************/
   5          
   6          #include<reg52.h>
   7          #include<intrins.h>
   8          #include<stdio.h>
   9          #include<string.h>
  10          
  11          sfr     ISP_CONTR= 0xE7;
  12          sfr     CCON = 0xD8;
  13          sfr     CMOD = 0xD9;
  14          sfr     CL = 0xE9;
  15          sfr     CH = 0xF9;
  16          sfr     CCAPOL = 0xEA;
  17          sfr     CCAPOH = 0xFA;
  18          sfr     CCAPM0 = 0xDA;
  19          sfr     CCAPM1 = 0xDB;
  20          sbit    CR = 0xDE;
  21          sbit    MCU_Start_Led = P1^1;           //P1^7;
  22          
  23          #define Self_Define_ISP_Download_Command        0x22
  24          #define RELOAD_COUNT    0xfd
  25          
  26          char cmd[]="ATWITS+CMGS=\"";    
  27          char str1[]="\",\"";
  28          char str2[]="\"\r";
  29          
  30          void serial_port_initial();
  31          void send_UART(unsigned char);
  32          void UART_Interrupt_Receive(void);
  33          void soft_reset_to_ISP_Monitor(void);
  34          void delay(void);
  35          void display_MCU_Start_Led(void);
  36          void send_at_cmd(char *cmd);
  37          int send_message(char *msg,char *number);
  38          
  39          
  40          void main(void)
  41          {
  42   1              serial_port_initial();              /*init the serial port*/
  43   1           
  44   1              send_message("hello","13916808083"); /* send "hello" messages to mobile phone(number:139xxx)*/
  45   1      
  46   1              while(1);
  47   1      }
  48          
  49          int send_message(char *msg,char *number)
  50          /*parameter:msg:the message will be sent*/
  51          /*parameter:number:the destination mobile phone*/
  52          {
  53   1         char at_cmd[64]="";
  54   1      
  55   1         strcat(at_cmd,cmd);
C51 COMPILER V8.02   UART_PHS_TOKEN                                                        03/13/2008 15:03:28 PAGE 2   

  56   1         strcat(at_cmd,number);
  57   1         strcat(at_cmd,str1);
  58   1         strcat(at_cmd,msg);
  59   1         strcat(at_cmd,str2);
  60   1         send_at_cmd(at_cmd);
  61   1        
  62   1         delay();  
  63   1         return 0;
  64   1      
  65   1      }
  66          
  67          void serial_port_initial()
  68          /*init the serial port*/
  69          {
  70   1      SCON=0x50;
  71   1      TMOD=0x21;
  72   1      TH1=RELOAD_COUNT;
  73   1      TL1=RELOAD_COUNT;
  74   1      TR1=1;
  75   1      ES=1;
  76   1      EA=1;
  77   1      
  78   1      }
  79          
  80          
  81          void send_UART(unsigned char i)
  82          /*send the char i to UART*/
  83          {
  84   1      ES=0;
  85   1      TI=0;
  86   1      SBUF=i;
  87   1      while(TI==0);
  88   1      TI=0;
  89   1      ES=1;
  90   1      }
  91          
  92          void send_at_cmd(char *cmd)
  93          /*send the AT CMD to UART*/
  94          {
  95   1              char *temp=cmd;
  96   1              while(*temp)
  97   1              {       
  98   2                 send_UART(*temp);
  99   2                 temp++;
 100   2              }
 101   1      }
 102          
 103          
 104          void UART_Interrupt_Receive(void) interrupt 4
 105          /*interrupt routine*/
 106          {
 107   1      unsigned char k=0;
 108   1      if(RI==1)
 109   1      {
 110   2      RI=0;
 111   2      k=SBUF;
 112   2      
 113   2      if(k==Self_Define_ISP_Download_Command)
 114   2      {delay();
 115   3      delay();
 116   3      soft_reset_to_ISP_Monitor();
 117   3      }
C51 COMPILER V8.02   UART_PHS_TOKEN                                                        03/13/2008 15:03:28 PAGE 3   

 118   2      send_UART(k);
 119   2      }
 120   1      else
 121   1      {
 122   2      TI=0;
 123   2      }
 124   1      }
 125          
 126          
 127          
 128          void soft_reset_to_ISP_Monitor(void)
 129          {
 130   1      ISP_CONTR=0x60;
 131   1      }
 132          
 133          
 134          void delay(void)
 135          {
 136   1      unsigned int j=0;
 137   1      unsigned int g=0;
 138   1      for(j=0;j<5;j++)
 139   1      {
 140   2      for(g=0;g<10000;g++)
 141   2      
 142   2      {
 143   3      _nop_();
 144   3      _nop_();
 145   3      _nop_();
 146   3      _nop_();
 147   3      _nop_();
 148   3      }
 149   2      }
 150   1      }
 151          
 152          void display_MCU_Start_Led(void)
 153          {
 154   1      unsigned char i = 0;
 155   1      for(i=0;i<5;i++)
 156   1              {
 157   2              MCU_Start_Led=0;
 158   2              delay();
 159   2              MCU_Start_Led=1;
 160   2              delay();
 161   2              MCU_Start_Led=0;
 162   2      
 163   2              }
 164   1      }
 165          
 166          
 167          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    353    ----
   CONSTANT SIZE    =     82    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21      71
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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