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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? spi.lst

?? SPI接口通信源程序
?? LST
字號:
C51 COMPILER V7.07   SPI                                                                   09/29/2006 15:11:00 PAGE 1   


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

stmt level    source

   1          //******************************************************//
   2          /*spi_m是發(fā)送或接收標志位,SPIE為中斷允許位,scon中TI,RI怎么考慮??
   3          /********************************************************/
   4          #include <AT89X52.H>
   5          #include <stdio.h>
   6          #define uchar unsigned char;
   7          #define uint unsigned int;
   8          
   9          #define MOSI P1_5;
  10          #define MISO P1_6;
  11          #define SCK  P1_7;
  12          #define SS  P1_4;
  13          #define TXD P3_1;
  14          
  15          sfr SPCR        =       0xD5;
  16          sfr SPSR        =       0xAA;
  17          sfr SPDR        =       0x86;
  18          sbit SPIF       =       0xB1;
  19          sbit WCOL       =       0xB0;
  20          sbit MSTR       =       0xD9;
  21          sbit SPIE       =       0xDC;
  22          /****定義變量*****************/
  23          //SPSR=00h;
  24          //SPDR=00h;
  25          uchar SPI_RxHead;
  26          uchar SPI_TxHead;
  27          uint SPI_RxBuf[];       //選擇字節(jié),還是字容量?//
  28          uint SPI_TxBuf[];       //選擇字節(jié),還是字容量?//
  29          uint ReSend_FLAG[];
  30          uchar crc_array[];
  31          uint array_sscl[];
  32          uint array_krzt[];
  33          uint array_bwjl[];
  34          uint array_sjjl[];
  35          uint array_fwjl[];
  36          uint array_xtsz[];
  37          uint array_ddz[];
  38          
  39          uchar RT;
  40          int crc_buf;
  41          /******************************************************/
  42          /*模擬量裝入
  43          /******************************************************/
  44          
  45          /*******************************************************/
  46          /*SPI初始化
  47          /*******************************************************/
  48          void int_spi(void)
  49          {
  50   1              SPCR      =0x50;        //spe=1,mstr=1:主方式,4倍分頻//
  51   1              SPSR      =0x40;
  52   1              IE                =0x90;        //ES=1:允許串行中斷/
  53   1              //SS=0;                         //spi為主器件//         
  54   1              SPI_RxHead=0;
  55   1              SPI_TxHead=0;
C51 COMPILER V7.07   SPI                                                                   09/29/2006 15:11:00 PAGE 2   

  56   1              ReSend_FLAG[0]=0x55;
  57   1              ReSend_FLAG[1]=0x55;                
  58   1              ReSend_FLAG[2]=0x55;
  59   1              ReSend_FLAG[3]=0x55;
  60   1              ReSend_FLAG[4]=0x55;
  61   1              RT=TXD;
  62   1              }
  63          /**************************************/
  64          /*CRC校驗初始化
  65          /**************************************/
  66          void inti_crc(void)
  67          {
  68   1              char i;
  69   1              for(i=0;i<16;i++)
  70   1                      crc_array[i]=0x1021*i           ;/*為CRC數(shù)組賦初值*/
  71   1              }
  72          /**********************************************************************/
  73          /****CRC校驗程序*******************************************************/
  74          /****data為待計算CRC的數(shù)據(jù)的地址,lenght為參與CRC計算的數(shù)據(jù)長度*********/
  75          /**********************************************************************/
  76          void crc_cal(int *crc_data,int length)
  77          {
  78   1                      int     n1;
  79   1                      int n2;
  80   1                      for(;length!=0;length--)
  81   1                      {
  82   2                              n2=*crc_data++  ;
  83   2                              n1=(crc_buf>>12)&0xf    ;       /*取此前CRC的高4位*/
  84   2                              crc_buf<<=4     ;               /*將此前CRC左移4位*/
  85   2                              crc_buf^=crc_array[n1^((n2>>4&0xf))];
  86   2                              n1=(crc_buf>>12)&0xf    ;       /*取此前CRC的高4位*/
  87   2                              crc_buf<<=4     ;               /*將此前CRC左移4位*/
  88   2                              crc_buf^=crc_array[n1^(n2&0xf)] ;
  89   2                      }
  90   1                      return;
  91   1      }
  92          /********************************************/
  93          /*把電壓電流等參數(shù)賦給對應(yīng)的數(shù)組
  94          /********************************************/
  95          
  96          /*******************************************/
  97          /*判斷接收的是哪種類型BianMa_J()
  98          /*******************************************/
  99          void BianMa_J(void)
 100          {
 101   1              if(SPI_RxBuf[0]&0x10&&SPI_RxBuf[1]&0x01)
 102   1              {
 103   2                      int i;
 104   2                      for(;i>=0;i--)array_sscl[i]=SPI_RxBuf[i];//實時測量//
 105   2                      }
 106   1              if(SPI_RxBuf[0]&0x10&&SPI_RxBuf[1]&0x02)
 107   1              {
 108   2                      int i;
 109   2                      for(;i>=0;i--)array_krzt[i]=SPI_RxBuf[i];//開入狀態(tài)//
 110   2                      }
 111   1              if(SPI_RxBuf[0]&0x10&&SPI_RxBuf[1]&0x03)
 112   1              {
 113   2                      int i;
 114   2                      for(;i>=0;i--)array_bwjl[i]=SPI_RxBuf[i];//變位記錄//
 115   2                      }
 116   1              if(SPI_RxBuf[0]&0x10&&SPI_RxBuf[1]&0x04)
 117   1              {
C51 COMPILER V7.07   SPI                                                                   09/29/2006 15:11:00 PAGE 3   

 118   2                      int i;
 119   2                      for(;i>=0;i--)array_sjjl[i]=SPI_RxBuf[i];//事件記錄//
 120   2                      }
 121   1              if(SPI_RxBuf[0]&0x10&&SPI_RxBuf[1]&0x05)
 122   1              {
 123   2                      int i;
 124   2                      for(;i>=0;i--)array_fwjl[i]=SPI_RxBuf[i];//復位記錄//
 125   2                      }
 126   1              if(SPI_RxBuf[0]&0x10&&SPI_RxBuf[1]&0x06)
 127   1              {
 128   2                      int i;
 129   2                      for(;i>=0;i--)array_ddz[i]=SPI_RxBuf[i];//讀定值//
 130   2                      }
 131   1              if(SPI_RxBuf[0]&0x10&&SPI_RxBuf[1]&0x07)
 132   1              {
 133   2                      int i;
 134   2                      for(;i>=0;i--)array_xtsz[i]=SPI_RxBuf[i];//系統(tǒng)設(shè)置//
 135   2                      }
 136   1              //未完//
 137   1              
 138   1              }
 139          /*******************************************/
 140          /*fill_tx_buffer()
 141          /*******************************************/
 142          fill_tx_buffer()
 143          {
 144   1              BianMa_J();             //判斷//
 145   1              
 146   1              }
 147          //****************************************** 
 148          // SPI發(fā)送/接收一幀 
 149          //****************************************** 
 150          void spi_RT(int SPI_RT_LENGTH) 
 151          {       
 152   1              if(RT&0x01)                                    //如果TXD(spi_m)為0,表明是接收狀態(tài) 
 153   1              { 
 154   2                      if ( SPI_RxHead > SPI_RT_LENGTH )       //如果是接收幀的最后一個數(shù)據(jù)   
 155   2                      {                       
 156   3      
 157   3                              crc_cal(SPI_RxBuf,SPI_RT_LENGTH);//CRC校驗
 158   3                              if(crc_buf!=0)RT=1;
 159   3                              else
 160   3                              {
 161   4                                      if(SPI_RxBuf[0]&0x55)RT=1; 
 162   4                                      else
 163   4                                      {
 164   5                                              BianMa_J();     //判斷//
 165   5                                              
 166   5                                              
 167   5                                              }                                                                                                       
 168   4                                      SPI_RxHead = 0;            //計數(shù)還原 
 169   4                                      MSTR=1;                     //接收完成,將SPI設(shè)回主方式????? 
 170   4                                      SPIE=0;                    //清空中斷申請//
 171   4                                      SPIF=1;                       //置接收完成標志 ,置傳輸結(jié)束標志//
 172   4                              }  
 173   3                                      }
 174   2                      else 
 175   2                      {                        
 176   3                              SPI_RxBuf[SPI_RxHead] = SPDR;                   //將接收到的數(shù)據(jù)存入接收緩存區(qū) 
 177   3                              SPI_RxHead++;                           //已接收數(shù)據(jù)計數(shù)器加1 
 178   3                      }               
 179   2         }            
C51 COMPILER V7.07   SPI                                                                   09/29/2006 15:11:00 PAGE 4   

 180   1              else                                             //如果spi_m為1,表明是發(fā)送狀態(tài) 
 181   1              { 
 182   2                      SPI_TxHead = 0;
 183   2                     if(crc_buf!=0)                         
 184   2                      {
 185   3                                      char j;
 186   3                                      for(j=0;;j++)SPI_TxBuf[j]=ReSend_FLAG[j];
 187   3                              if ( SPI_TxHead <= SPI_RT_LENGTH)    //如果要發(fā)送的數(shù)據(jù)還未全部發(fā)完 
 188   3                              {    
 189   4                              SPDR = SPI_TxBuf[SPI_TxHead];           //從發(fā)送緩存區(qū)取數(shù)發(fā)送 
 190   4                              SPI_TxHead++;                           //已發(fā)送數(shù)據(jù)計數(shù)器加1
 191   4                              //while(1);                           
 192   4                              } 
 193   3                              else                                      //如果要發(fā)送的數(shù)據(jù)已全部發(fā)完 
 194   3                              { 
 195   4                              SPI_TxHead=0;                         //已發(fā)送數(shù)據(jù)計數(shù)器還原 
 196   4                              //SET_SPI_MODE=1;                       //釋放總線,以便接收方進入主發(fā)送。 
 197   4                              //spi_m=0; 
 198   4                              MSTR=1; 
 199   4                              SPIE=0;                         //清空中斷申請//    
 200   4                              SPIF=1;                        //清空發(fā)送中標記 ,置傳輸結(jié)束標志//
 201   4                              
 202   4                              } 
 203   3                      }
 204   2                      if(SPI_RxBuf[0]&0x55)
 205   2                      {
 206   3                              if ( SPI_TxHead <= SPI_RT_LENGTH)    //如果要發(fā)送的數(shù)據(jù)還未全部發(fā)完 
 207   3                              {    
 208   4                              SPDR = SPI_TxBuf[SPI_TxHead];           //從發(fā)送緩存區(qū)取數(shù)發(fā)送 
 209   4                              SPI_TxHead++;                           //已發(fā)送數(shù)據(jù)計數(shù)器加1
 210   4                              //while(1);                           
 211   4                              } 
 212   3                              else                                      //如果要發(fā)送的數(shù)據(jù)已全部發(fā)完 
 213   3                              { 
 214   4                              SPI_TxHead=0;                         //已發(fā)送數(shù)據(jù)計數(shù)器還原 
 215   4                              //SET_SPI_MODE=1;                       //釋放總線,以便接收方進入主發(fā)送。 
 216   4                              //spi_m=0; 
 217   4                              MSTR=1; 
 218   4                              SPIE=0;                         //清空中斷申請//    
 219   4                              SPIF=1;                        //清空發(fā)送中標記 ,置傳輸結(jié)束標志//
 220   4                                      } 
 221   3                              }
 222   2                       
 223   2                              /*根據(jù)dis_enter和key_enter值定時發(fā)送設(shè)定值//
 224   2      } 
 225   2      
 226   2      //****************************************** 
 227   2      //發(fā)送數(shù)據(jù) 中斷服務(wù)程序
 228   2      //******************************************/ 
 229   2      main() 
*** WARNING C206 IN LINE 229 OF SPI.C: 'main': missing function-prototype
 230   2      { 
*** ERROR C141 IN LINE 230 OF SPI.C: syntax error near '{'
 231   3          int_spi();          //初始化spi為主方式
 232   3          SPDR=0xFF;          //開始發(fā)送,接收方接收到的第一個數(shù)據(jù)為0xFF應(yīng)忽略 
 233   3          delay_us(10);
 234   3          spi_RT();           //執(zhí)行數(shù)據(jù)接發(fā)//  
 235   3      }
 236   2       

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91丝袜在线播放九色| 亚洲成人av在线电影| 国产精品国产精品国产专区不片| 国产精品电影院| 蜜桃传媒麻豆第一区在线观看| 成人不卡免费av| 精品国产一二三区| 亚洲二区在线观看| 一区二区三区在线观看动漫| 亚洲午夜av在线| 暴力调教一区二区三区| 国产片一区二区| 精品一区二区国语对白| 欧美综合亚洲图片综合区| 欧美激情在线一区二区| 国产乱人伦偷精品视频免下载| 欧美日本乱大交xxxxx| 尤物视频一区二区| 成人精品视频一区二区三区尤物| 欧美大片在线观看一区二区| 天堂va蜜桃一区二区三区漫画版| 91片黄在线观看| 国产精品超碰97尤物18| 国产精品99久久久久久久vr | 亚洲精品中文在线| 国产成人欧美日韩在线电影| 精品国精品国产| 青青草精品视频| 一区二区三区精品久久久| 国产精品久久三| 美女高潮久久久| 欧美一区二区视频观看视频| 亚洲成国产人片在线观看| 91天堂素人约啪| 亚洲图片另类小说| 不卡视频免费播放| ...av二区三区久久精品| 成人污污视频在线观看| 国产精品久久久久精k8| 99九九99九九九视频精品| 国产精品电影院| 色av综合在线| 亚洲成人一区在线| 777a∨成人精品桃花网| 久久aⅴ国产欧美74aaa| 久久久久久久久久久99999| 国产精品一级在线| 亚洲色图视频网站| 91国产免费看| 美日韩一级片在线观看| 日韩精品一区二区三区在线观看| 国产精品一区二区在线观看网站| 中文字幕高清不卡| 欧美在线|欧美| 美女诱惑一区二区| 日本一区二区三区高清不卡| 99re视频精品| 日本欧美在线看| 中文字幕电影一区| 欧美日韩高清一区| 国产一区二区免费在线| 亚洲三级在线观看| 91精品国产乱| 成人午夜看片网址| 亚洲成人av一区二区三区| 中文字幕乱码一区二区免费| 欧美日韩国产123区| 国产成人夜色高潮福利影视| 一级日本不卡的影视| 精品精品欲导航| 97久久精品人人做人人爽50路| 日韩电影在线一区| 国产精品乱人伦一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 色一区在线观看| 日韩在线播放一区二区| 国产欧美一区二区精品性色| 在线影视一区二区三区| 狠狠色丁香婷婷综合久久片| 亚洲免费大片在线观看| 久久久久亚洲蜜桃| 欧美日韩成人在线一区| 成人国产精品免费观看视频| 日韩高清一区在线| 亚洲精品高清在线| 久久精品视频一区二区三区| 欧美精品乱人伦久久久久久| 不卡av电影在线播放| 看片的网站亚洲| 成人午夜短视频| 天天av天天翘天天综合网| 亚洲国产精华液网站w| 3d成人动漫网站| 91最新地址在线播放| 高清不卡一二三区| 青草av.久久免费一区| 亚洲国产精品久久久久婷婷884| 久久精品视频在线看| 欧美成人乱码一区二区三区| 欧美色图免费看| 日本韩国一区二区三区视频| 成人中文字幕在线| 国模无码大尺度一区二区三区| 日韩精品视频网站| 有码一区二区三区| 亚洲人成小说网站色在线| 久久久99精品久久| 久久一区二区三区国产精品| 日韩欧美中文一区| 日韩免费一区二区| 日韩你懂的在线播放| 日韩一级二级三级| 亚洲一区二区三区四区在线| 91玉足脚交白嫩脚丫在线播放| 国产原创一区二区三区| 麻豆91精品91久久久的内涵| 天天综合天天做天天综合| 亚洲成a人v欧美综合天堂| 亚洲一区二区在线免费观看视频| 一区二区三区91| 性做久久久久久免费观看| 夜夜揉揉日日人人青青一国产精品| 久久er99热精品一区二区| 麻豆国产精品777777在线| 蜜桃av一区二区三区电影| 韩国欧美国产1区| 国产suv一区二区三区88区| 成人性生交大片免费看中文| 国产成人免费视频一区| 91在线观看高清| 欧美日韩另类一区| 日韩一卡二卡三卡国产欧美| 日韩欧美亚洲国产另类| 国产欧美日韩三级| 亚洲激情五月婷婷| 丝袜亚洲另类欧美| 韩国三级中文字幕hd久久精品| 成人av网在线| 欧美日韩一区三区四区| 日韩精品一区二区三区在线| 国产欧美日韩亚州综合 | 国产日韩欧美精品在线| 国产日产精品1区| 日韩一区欧美小说| 亚洲va欧美va天堂v国产综合| 久久se这里有精品| 99热精品一区二区| 777色狠狠一区二区三区| 久久天天做天天爱综合色| 亚洲天堂av老司机| 免费一级片91| av毛片久久久久**hd| 日韩色在线观看| 亚洲欧洲成人精品av97| 日韩电影免费在线| jizzjizzjizz欧美| 欧美一级免费大片| 1区2区3区精品视频| 蜜桃精品视频在线观看| av在线一区二区| 欧美成人激情免费网| 樱桃国产成人精品视频| 国产精品亚洲综合一区在线观看| 日本韩国欧美三级| 久久精品亚洲麻豆av一区二区| 亚洲综合在线视频| 国产成人免费9x9x人网站视频| 国产精品一线二线三线| 精品视频999| 国产精品卡一卡二卡三| 日本亚洲三级在线| 91福利视频在线| 国产精品久久久99| 国产又粗又猛又爽又黄91精品| 欧美视频在线一区| 亚洲欧美色综合| 国产成人亚洲精品狼色在线| 欧美一级片在线观看| 亚洲午夜成aⅴ人片| 精品久久久久香蕉网| 亚洲综合免费观看高清在线观看 | 午夜激情一区二区三区| 91麻豆精品一区二区三区| 久久久久成人黄色影片| 久久国内精品自在自线400部| 欧美久久久久久久久中文字幕| 樱桃国产成人精品视频| 97久久久精品综合88久久| 国产精品欧美久久久久一区二区| 国产一区二区在线免费观看| 日韩精品一区二区三区三区免费 | 岛国av在线一区| 2021中文字幕一区亚洲| 六月丁香综合在线视频| 538在线一区二区精品国产| 亚洲成国产人片在线观看| 欧美日韩国产综合一区二区三区 | 亚洲日本va午夜在线电影| 成人一道本在线| 中文字幕日韩一区二区|