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

📄 comtest1.lst

📁 监控摄像头云台的单片机89C51坏了,用自编程序写入芯片,功能完全一样
💻 LST
字号:
C51 COMPILER V7.50   COMTEST1                                                              05/05/2009 13:09:15 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE COMTEST1
OBJECT MODULE PLACED IN comtest1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE comtest1.c BROWSE INCDIR(C:\Keil\C51\INC\) DEBUG OBJECTEXTEND

line level    source

   1          //PC读MCU指令结构:(中断方式,ASCII码表示)
   2          //帧:   帧头标志|帧类型|器件地址|启始地址|长度n|效验和|帧尾标志
   3          //值:    'n' 'y'| 'r'  |  0x01  |   x    |  x  |   x  |0x13 0x10
   4          //字节数:   2   |  1   |    1   |   1    |  1  |   1  |   2
   5          //求和:
   6          
   7          
   8          /////////////////////////////////////////////////////////////////////
   9          //公司名称:***
  10          //模 块 名:protocol.c
  11          //创 建 者:牛毅
  12          //修 改 者:
  13          //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分
  14          //其他说明:只提供对AT89c51具体硬件的可靠访问接口
  15          //版    本:1.0
  16          //信    息:QQ 75011221        C51BBS匿名:niuyi
  17          /////////////////////////////////////////////////////////////////////
  18          #include <comtest1.h>
  19          //public 变量
  20            unsigned char databuf[FIELD_MAXBUF],errframe_cnt;
  21          
  22          //函数
  23          
  24          /////////////////////////////////////////////////////////////////////
  25          //函 数 名:send()
  26          //功能描述:向串口发送一个字符
  27          //函数说明:
  28          //调用函数:
  29          //全局变量:
  30          //输    入:ch-要发送的ASCII字符
  31          //返    回:无
  32          //设 计 者:牛毅
  33          //修 改 者:
  34          //版    本:
  35          /////////////////////////////////////////////////////////////////////
  36          void send(unsigned char ch)
  37          {
  38   1              SBUF=ch;
  39   1              while(TI==0);
  40   1              TI=0;
  41   1      }
  42          
  43          /////////////////////////////////////////////////////////////////////
  44          //函 数 名:receive()
  45          //功能描述:从串口接收一个字符
  46          //函数说明:
  47          //调用函数:
  48          //全局变量:
  49          //输    入:无
  50          //返    回:一个ASCII字符
  51          //设 计 者:牛毅
  52          //修 改 者:
  53          //版    本:
  54          /////////////////////////////////////////////////////////////////////
  55          unsigned char receive(void)
C51 COMPILER V7.50   COMTEST1                                                              05/05/2009 13:09:15 PAGE 2   

  56          {
  57   1              while(RI==0);
  58   1              RI=0;
  59   1              return SBUF;
  60   1      }
  61          
  62          /////////////////////////////////////////////////////////////////////
  63          //函 数 名:CharToHex()
  64          //功能描述:把ASCII字符转换为16进制
  65          //函数说明:
  66          //调用函数:
  67          //全局变量:
  68          //输    入:ASCII字符
  69          //返    回:16进制
  70          //设 计 者:牛毅
  71          //修 改 者:
  72          //版    本:
  73          /////////////////////////////////////////////////////////////////////
  74          /*
  75          unsigned char CharToHex(unsigned char bChar)
  76          {
  77              if((bChar>=0x30)&&(bChar<=0x39))
  78                  bChar -= 0x30;
  79              else if((bChar>=0x41)&&(bChar<=0x46))//大写字母
  80                  bChar -= 0x37;
  81              else if((bChar>=0x61)&&(bChar<=0x66))//小写字母
  82                  bChar -= 0x57;
  83              else bChar = 0xff;
  84              return bChar;
  85          }
  86          
  87          /////////////////////////////////////////////////////////////////////
  88          //函 数 名:HexToChar()
  89          //功能描述:把16进制转换为ASCII字符
  90          //函数说明:
  91          //调用函数:
  92          //全局变量:
  93          //输    入:16进制
  94          //返    回:ASCII字符
  95          //设 计 者:牛毅
  96          //修 改 者:
  97          //版    本:
  98          /////////////////////////////////////////////////////////////////////
  99          unsigned char HexToChar(unsigned char bHex)
 100          {
 101              if((bHex>=0)&&(bHex<=9))
 102                  bHex += 0x30;
 103              else if((bHex>=10)&&(bHex<=15))//大写字母
 104                  bHex += 0x37;
 105              else bHex = 0xff;
 106              return bHex;
 107          }
 108          */
 109          /////////////////////////////////////////////////////////////////////
 110          //函 数 名:com_int()
 111          //功能描述:初始化串口
 112          //函数说明:默认其他参数为[baud_rate],n,8,1
 113          //调用函数:
 114          //全局变量:
 115          //输    入:baud_rate 波特率
 116          //返    回:无
 117          //设 计 者:牛毅
C51 COMPILER V7.50   COMTEST1                                                              05/05/2009 13:09:15 PAGE 3   

 118          //修 改 者:
 119          //版    本:
 120          /////////////////////////////////////////////////////////////////////
 121          void com_init(unsigned int baud_rate)
 122          {
 123   1      
 124   1          EA=1;
 125   1              ES=1;//ET1=1;  
 126   1          SCON = 0x50;    /* 0x52;//SCON */
 127   1          TMOD = 0x20;    /*0x20;// TMOD */
 128   1          TCON = 0x60;    /*0x60;// TCON */
 129   1          PCON=PCON&0x7f;
 130   1      
 131   1      
 132   1          switch(baud_rate)
 133   1              {    //波特率设置
 134   2              case 1200:
 135   2                  TL1=0xe8;
 136   2                              TH1=0Xe8;
 137   2                              break;//1200
 138   2              case 2400:
 139   2                  TL1=0xf4;
 140   2                              TH1=0Xf4;
 141   2                              break;//2400
 142   2              case 4800:
 143   2                  TL1=0xfa;
 144   2                              TH1=0Xfa;
 145   2                              break;//4800
 146   2              case 9600:
 147   2                  TL1=0xfd;
 148   2                              TH1=0Xfd;
 149   2                              break;//9600
 150   2              case 19200:
 151   2                  PCON=PCON|0x80;
 152   2                              TL1=0xfd;
 153   2                              TH1=0Xfd;
 154   2                              break;//19200
 155   2              case 38400:
 156   2                  PCON=PCON|0x80;
 157   2                              TL1=0xfe;
 158   2                              TH1=0Xfe;
 159   2                              break;//38400
 160   2              default:
 161   2                   TL1=0xfd;
 162   2                              TH1=0Xfd;
 163   2                              break;//9600
 164   2          }
 165   1      }
 166          /////////////////////////////////////////////////////////////////////
 167          //函 数 名:resend_frame()
 168          //功能描述:发送重发帧
 169          //函数说明:通知PC重发
 170          //调用函数:
 171          //全局变量:
 172          //输    入:无
 173          //返    回:无
 174          //设 计 者:牛毅
 175          //修 改 者:
 176          //版    本:
 177          /////////////////////////////////////////////////////////////////////
 178          
 179          /////////////////////////////////////////////////////////////////////
C51 COMPILER V7.50   COMTEST1                                                              05/05/2009 13:09:15 PAGE 4   

 180          //函 数 名:quit_frame()
 181          //功能描述:发送放弃帧
 182          //函数说明:通知PC放弃通讯
 183          //调用函数:
 184          //全局变量:
 185          //输    入:无
 186          //返    回:无
 187          //设 计 者:牛毅
 188          //修 改 者:
 189          //版    本:
 190          /////////////////////////////////////////////////////////////////////
 191          
 192          /////////////////////////////////////////////////////////////////////
 193          //函 数 名:com_int()
 194          //功能描述:串口中断
 195          //函数说明:
 196          //调用函数:
 197          //全局变量:
 198          //输    入:无
 199          //返    回:无
 200          //设 计 者:牛毅
 201          //修 改 者:
 202          //版    本:
 203          /////////////////////////////////////////////////////////////////////
 204          void com_int()interrupt 4
 205          {
 206   1              unsigned char i,clen;
 207   1                      clen=3;
 208   1                      databuf[0]=receive();
 209   1                      if(databuf[0]==0x7)
 210   1                      {
 211   2                              for(i=1;i<clen;i++)
 212   2                              {
 213   3                   databuf[i]=receive();                                              
 214   3                  
 215   3                       }      
 216   2                                      
 217   2              }            
 218   1      }
 219          
 220          /////////////////////////////////////////////////////////////////
 221          
 222          //主函数
 223          
 224          /////////////////////////////////////////////////////////////////
 225          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    170    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     49    ----
   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 + -