亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.lst

?? 單片機與計算機的通訊應用程序,運行KEIL C51軟件,可以直接使用!
?? LST
字號:
C51 COMPILER V7.09   MAIN                                                                  07/05/2005 16:40:31 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND TABS(2)

line level    source

   1          /*
   2             //*************************************************************************
   3             //
   4             //                  串口輸入輸出控制器
   5             //
   6             //           COPYRIGHT (c)   2005 BY 明浩 pnzwzw@cdle.net
   7             //                     --  ALL RIGHTS RESERVED  --
   8             //
   9             // File Name:  main.c
  10             // Created:    2005.7.4
  11             // Modified:   2005.7.5
  12             // Revision:   1.0
  13             //
  14             //*************************************************************************
  15             // 芯片類型 AT89S51
  16             //*************************************************************************
  17          */
  18          
  19          #include <at89x52.h>
  20          #include <INTRINS.H>
  21          
  22          void InitCom(void);
  23          void ComOutChar(unsigned char OutData);
  24          void PackCheck(void);
  25          void SendErrMsg(void);
  26          void SendCRCMsg(void);
  27          void SendTeMsg(void);
  28          void SendNSMsg(void);
  29          void RunPack(void);
  30          void CheckID(void);
  31          void SendPack(void);
  32          void Write(void);
  33          void Read(void);
  34          
  35          static unsigned char Pack[9]; //數據包數組
  36          static unsigned char PN = 0; //接收指針
  37          static unsigned char TN = 0; //超時標識
  38          static unsigned char SN = 0;  
  39          unsigned char code SNID[] = {"SN0001"}; //固件的序列號
  40          
  41          void main(void)
  42          {
  43   1        unsigned int a;
  44   1      
  45   1        InitCom();
  46   1        do
  47   1          { 
  48   2            for (a=0; a<30000; a++)
  49   2              P3_6 = 1;
  50   2            for (a=0; a<30000; a++) //指示燈閃動
  51   2              P3_6 = 0;
  52   2          }
  53   1        while(1);
  54   1      }
  55          
C51 COMPILER V7.09   MAIN                                                                  07/05/2005 16:40:31 PAGE 2   

  56          //串口初始化 晶振為11.0592M 方式1 波特率57600
  57          void InitCom(void)
  58          {
  59   1        SCON = 0x50; //串口方式1,允許接收
  60   1        TMOD = 0x21; //定時器1定時方式2,定時0為模式1,16位模式
  61   1        TCON = 0x40; //設定時器1開始計數
  62   1        TH1 = 255;  //設波特率為57600
  63   1        TL1 = 255;
  64   1        PCON = 0x80; //波特率加倍控制,SMOD位
  65   1        RI = 0; //清收發標志
  66   1        TI = 0;
  67   1        TR1 = 1; //啟動定時器
  68   1        EA = 1; //開總中斷
  69   1        ES = 1; //開串口中斷
  70   1      }
  71          
  72          
  73          //向串口輸出一個字符(非中斷方式)
  74          void ComOutChar(unsigned char OutData)
  75          {
  76   1        SBUF = OutData; //輸出字符
  77   1        while(!TI); //空語句判斷字符是否發完
  78   1        TI = 0; //清TI
  79   1      }
  80          
  81          //串口接收中斷
  82          void ComInINT(void) interrupt 4
  83          {
  84   1        if (RI) //判斷是不是收完字符
  85   1          {
  86   2            ET0 = 0; //開定時中斷
  87   2            TR0 = 0;
  88   2            TN = 0; //接收超時變量清零
  89   2            RI = 0; //RI清零
  90   2            Pack[PN] = SBUF; //存數據
  91   2            PN++;  //指針加1
  92   2            if (PN == 9)
  93   2              {
  94   3                PN = 0; //指針清零 一幀數據收完后
  95   3                PackCheck(); //調用數據包檢查
  96   3              }
  97   2            else
  98   2              {
  99   3                TH0 = 0x70; //設定時值,收到數據時設定時值
 100   3                TL0 = 0x43;
 101   3                ET0 = 1; //定時器中斷0開
 102   3                TR0 = 1; //啟動定時器 定時器用于在一幀數據接收時如有丟包則返回錯誤信息12個0xEE
 103   3              }
 104   2          }
 105   1      }
 106          
 107          //定時器中斷用于處理丟包
 108          void Timer0(void) interrupt 1
 109          {
 110   1        if (TN>2) // 幀中的兩字符間隔tn*40ms則為出錯
 111   1          {
 112   2            ET0 = 0;
 113   2            TR0 = 0; //關定時中斷
 114   2      
 115   2            SendTeMsg(); //發送超時錯誤信息
 116   2            PN = 0; //pack指針清零
 117   2            TN = 0;
C51 COMPILER V7.09   MAIN                                                                  07/05/2005 16:40:31 PAGE 3   

 118   2          }
 119   1        else
 120   1          TN++;   
 121   1      }
 122          
 123          //信息包校驗
 124          void PackCheck(void)
 125          {
 126   1        unsigned char CRCL = 0, CRCH = 0; //CRC高低字節暫存
 127   1        unsigned char TempCyc;
 128   1        
 129   1        for (TempCyc=0; TempCyc<7; TempCyc++)
 130   1          {
 131   2            CRCL = CRCL + Pack[TempCyc]; //把信息包中的前十個相加
 132   2            if (CY) //當CRCL大于0xFF時,CY為1
 133   2              CRCH++; //CY為1時CRCH加1
 134   2          }
 135   1        if ((CRCL == Pack[8]) && (CRCH == Pack[7]))
 136   1          RunPack(); //校驗正確時執行包
 137   1        else
 138   1          SendCRCMsg(); //CRC校驗不對時,這個包將不執行,并向PC發送CRC錯誤信息   
 139   1      }
 140          
 141          //發送SN錯誤信息
 142          void SendErrMsg(void)
 143          {
 144   1        ComOutChar(0x0A);
 145   1      }
 146          
 147          //發送命令完成
 148          void SendOKMsg(void)
 149          {
 150   1        ComOutChar(0x0B);
 151   1      }
 152          
 153          //發送CRC錯誤
 154          void SendCRCMsg(void)
 155          {
 156   1        ComOutChar(0x0C);
 157   1      }
 158          
 159          //發送超時錯誤
 160          void SendTeMsg(void)
 161          {
 162   1        ComOutChar(0x0D);
 163   1      }
 164          
 165          
 166          //發送命令不支持錯誤
 167          void SendNSMsg(void)
 168          {
 169   1        ComOutChar(0x0E);
 170   1      }
 171          
 172          //運行信息包
 173          void RunPack(void)
 174          {
 175   1        switch(Pack[0])
 176   1          {
 177   2            case 1: CheckID();  break;
 178   2            case 2: Write();    break;
 179   2            case 3: Read(); break;
C51 COMPILER V7.09   MAIN                                                                  07/05/2005 16:40:31 PAGE 4   

 180   2            default: SendNSMsg(); //命令不支持
 181   2          }
 182   1      }
 183          
 184          //校驗序列號
 185          void CheckID(void)
 186          {
 187   1        unsigned char TempCyc;
 188   1        for (TempCyc=1; TempCyc<7; TempCyc++)
 189   1          {
 190   2            if (SNID[TempCyc-1]!=Pack[TempCyc])
 191   2              {
 192   3                TempCyc=7; //如有一個不對時跳出循環
 193   3                SN = 0;
 194   3              }
 195   2            else
 196   2              {
 197   3                SN = 1;
 198   3              }
 199   2          }
 200   1        if (SN)
 201   1          SendOKMsg(); //返回OK
 202   1        else
 203   1          SendErrMsg(); //發送SN錯誤信息
 204   1      }
 205          
 206          //發送信息包
 207          void SendPack(void)
 208          {
 209   1        unsigned char CRCL = 0, CRCH = 0; //CRC高低字節暫存
 210   1        unsigned char TempCyc;
 211   1        
 212   1        for (TempCyc=0; TempCyc<7; TempCyc++)
 213   1          {
 214   2            CRCL = CRCL + Pack[TempCyc]; //把信息包中的前十個相加
 215   2            if (CY) //當CRCL大于0xFF時,CY為1
 216   2              CRCH++; //CY為1時CRCH加1
 217   2          }
 218   1        Pack[7] = CRCH;
 219   1        Pack[8] = CRCL; //計算要發送的信息包CRC
 220   1        for (TempCyc=0; TempCyc<9; TempCyc++)
 221   1          ComOutChar(Pack[TempCyc]); //發送錯誤信息包
 222   1      }
 223          
 224          //寫命令的信息包處理
 225          void Write(void)
 226          {
 227   1      if (SN)
 228   1      {
 229   2        switch(Pack[1])  //0為P0,1為P1,2為P2,3為關閉所有
 230   2          {
 231   3            case 0:
 232   3              P0 = Pack[2];
 233   3              SendOKMsg();
 234   3            break;
 235   3            case 1:
 236   3              P1 = Pack[2];
 237   3              SendOKMsg();
 238   3            break;
 239   3            case 2:
 240   3              P2 = Pack[2];
 241   3              SendOKMsg();  
C51 COMPILER V7.09   MAIN                                                                  07/05/2005 16:40:31 PAGE 5   

 242   3            break;
 243   3            case 3:
 244   3              P0 = 0xFF;
 245   3              P1 = 0xFF;
 246   3              P2 = 0xFF;
 247   3              SendOKMsg();
 248   3            break;
 249   3            case 4:
 250   3              P0 = 0x00;
 251   3              P1 = 0x00;
 252   3              P2 = 0x00;
 253   3              SendOKMsg();
 254   3            break;
 255   3            default: SendNSMsg();
 256   3          }
 257   2      }
 258   1      else
 259   1      {
 260   2        SendErrMsg();
 261   2      }
 262   1      }
 263          
 264          
 265          //跟據相應的芯片類型去讀芯片
 266          void Read(void)
 267          {
 268   1      if (SN)
 269   1      {
 270   2        switch(Pack[1])  //0為P0,1為P1,2為P2,3為返回全部
 271   2          {
 272   3            case 0:
 273   3              Pack[1] = P0;
 274   3              Pack[2] = 0;
 275   3              Pack[3] = 0;
 276   3              SendPack();
 277   3            break;
 278   3            case 1:
 279   3              Pack[1] = 0;
 280   3              Pack[2] = P1;
 281   3              Pack[3] = 0;
 282   3              SendPack();
 283   3            break;
 284   3            case 2:
 285   3              Pack[1] = 0;
 286   3              Pack[2] = 0;
 287   3              Pack[3] = P2;
 288   3              SendPack();
 289   3            break;
 290   3            case 3:
 291   3              Pack[1] = P0;
 292   3              Pack[2] = P1;
 293   3              Pack[3] = P2;
 294   3              SendPack();
 295   3            break;
 296   3            default: SendNSMsg();
 297   3          }
 298   2      }
 299   1      else
 300   1      {
 301   2        SendErrMsg();
 302   2      }
 303   1      }
C51 COMPILER V7.09   MAIN                                                                  07/05/2005 16:40:31 PAGE 6   

 304          
 305          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    556    ----
   CONSTANT SIZE    =      7    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12    ----
   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 + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区日韩| 欧美日韩一卡二卡三卡| 一本大道av伊人久久综合| 久久99九九99精品| 欧美一a一片一级一片| 另类中文字幕网| 亚洲综合偷拍欧美一区色| 在线国产电影不卡| 国产亚洲人成网站| 久久国产精品99久久人人澡| 亚洲成人av资源| 亚洲午夜免费视频| 国产麻豆精品在线观看| 韩国女主播一区| 日韩亚洲欧美在线| 国产盗摄女厕一区二区三区| 精品国产乱码久久久久久免费| 国内精品国产成人| 国产精品视频免费| 欧美日韩三级一区| 国产一区二区三区| 亚洲精品成人a在线观看| 91精品一区二区三区在线观看| 国内外精品视频| 最新国产の精品合集bt伙计| 69堂精品视频| 福利电影一区二区| 午夜视频一区二区| 久久人人97超碰com| 91国在线观看| 国产成人综合网站| 五月激情丁香一区二区三区| 国产日韩欧美a| 欧美视频完全免费看| 国产成人在线影院| 亚洲一线二线三线视频| 久久久亚洲高清| 欧美日韩视频在线一区二区 | 成人欧美一区二区三区白人| 欧美卡1卡2卡| 不卡高清视频专区| 久久av资源网| 午夜欧美大尺度福利影院在线看| 欧美国产精品中文字幕| 欧美一级爆毛片| 91免费看`日韩一区二区| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲成a人v欧美综合天堂下载| 欧美国产激情一区二区三区蜜月| 在线不卡一区二区| 91成人免费网站| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 久久精品人人做| 欧美日韩国产小视频| 99精品黄色片免费大全| 国产剧情一区在线| 免费成人av在线| 日韩国产欧美在线播放| 天天av天天翘天天综合网色鬼国产| 国产精品久久久久久久久免费桃花| 欧美成人a视频| 欧美剧在线免费观看网站| 色综合天天天天做夜夜夜夜做| 国产激情91久久精品导航 | 国产成人啪午夜精品网站男同| 日韩高清不卡一区二区| 亚洲网友自拍偷拍| 亚洲综合在线免费观看| 国产精品不卡一区二区三区| 国产亚洲欧美日韩俺去了| 欧美变态tickling挠脚心| 91精品在线免费观看| 91麻豆精品91久久久久久清纯| 欧美日韩亚洲丝袜制服| 欧美日韩大陆一区二区| 欧美日韩黄视频| 777午夜精品视频在线播放| 欧美日韩国产成人在线91| 欧美三级电影一区| 欧美日本韩国一区二区三区视频| 欧美日韩在线三级| 欧美综合天天夜夜久久| 欧美日韩一区久久| 91精品一区二区三区在线观看| 日韩三级免费观看| 久久一区二区三区四区| 国产欧美一区二区精品婷婷| 中文字幕精品在线不卡| 《视频一区视频二区| 亚洲精品免费在线| 天天综合日日夜夜精品| 麻豆一区二区三区| 国产福利一区在线| 色婷婷久久综合| 在线不卡免费欧美| 亚洲精品一区二区三区精华液| 久久影院午夜论| 亚洲婷婷在线视频| 五月婷婷久久综合| 毛片av一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产91丝袜在线播放九色| 成人午夜av影视| 欧美天堂亚洲电影院在线播放| 91精品国产综合久久久久| 2022国产精品视频| 亚洲色图制服诱惑 | 美女精品自拍一二三四| 国产夫妻精品视频| 一本到一区二区三区| 日韩欧美一二三区| 中文字幕欧美一| 五月天激情综合| 国产99久久久久| 欧美日韩高清一区二区不卡 | 成人a区在线观看| 欧美色综合影院| 久久久久久99精品| 亚洲成人精品一区二区| 国产一区二区在线看| 在线视频观看一区| 精品乱码亚洲一区二区不卡| 亚洲视频网在线直播| 久久99精品视频| 91成人国产精品| 欧美极品aⅴ影院| 蜜臀av在线播放一区二区三区 | 亚洲mv大片欧洲mv大片精品| 国产一区二区三区在线观看免费视频 | 午夜欧美大尺度福利影院在线看| 国产成人一区在线| 91精品国产91久久综合桃花| 国产精品久久久久久久裸模 | 国产精品青草久久| 日韩福利电影在线| 一本色道久久综合亚洲91| 久久精品网站免费观看| 丝袜美腿亚洲色图| 色婷婷综合久久久中文一区二区| 精品国产sm最大网站免费看| 亚洲成a人片综合在线| 色婷婷国产精品| 亚洲国产精华液网站w| 久久国产精品免费| 欧美一区二区三区公司| 一区二区三区资源| 9色porny自拍视频一区二区| 久久网站最新地址| 久草这里只有精品视频| 欧美年轻男男videosbes| 亚洲激情五月婷婷| 91在线视频播放| 中文字幕的久久| 国产福利精品一区| 中文字幕精品三区| 韩国v欧美v日本v亚洲v| 日韩欧美国产精品| 日韩avvvv在线播放| 777奇米四色成人影色区| 亚洲国产视频在线| 欧美日韩中文字幕一区二区| 亚洲精品福利视频网站| 欧美最猛黑人xxxxx猛交| 亚洲欧美另类小说视频| 成人av在线观| 综合色天天鬼久久鬼色| 91美女福利视频| 亚洲理论在线观看| 日本精品一区二区三区四区的功能| 一区在线观看视频| 99re这里都是精品| 亚洲欧洲综合另类| 在线日韩国产精品| 日韩精品色哟哟| 日韩限制级电影在线观看| 麻豆国产91在线播放| 精品久久久三级丝袜| 国产麻豆视频一区| 中文字幕一区二区三区精华液| 成人黄色777网| 亚洲一区二区五区| 欧美一级片免费看| 狠狠色丁香婷婷综合| 国产精品女主播在线观看| a4yy欧美一区二区三区| 亚洲国产另类av| 欧美一级国产精品| 国产一区二区三区免费看| 国产精品嫩草影院com| 在线免费不卡电影| 日韩av不卡一区二区| 国产亚洲成年网址在线观看| 成人av午夜电影| 一区二区三区四区国产精品| 欧美日韩夫妻久久| 国产电影精品久久禁18| 亚洲一区国产视频| 精品福利一区二区三区免费视频| 成人国产视频在线观看| 丝袜a∨在线一区二区三区不卡|