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

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

?? pcf8591.lst

?? 51單片機的I2C接口的AD及DA轉換器的應用
?? LST
字號:
C51 COMPILER V7.06   PCF8591                                                               05/10/2005 22:57:35 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE PCF8591
OBJECT MODULE PLACED IN PCF8591.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE PCF8591.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-----------------------函數聲明,變量定義--------------------------------------------------------
   2          #include <reg51.h>
   3          #include <intrins.h>
   4          sbit SDA=P1^0;                          // 將p1.0口模擬數據口
   5          sbit SCL=P1^1;                          // 將p1.1口模擬時鐘口
   6          #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};                  
   7          bit   bdata SystemError;                // 從機錯誤標志位
   8          //-----------------------PCF8591專用變量定義--------------------------------------------------------
   9          #define PCF8591_WRITE   0x92
  10          #define PCF8591_READ    0x93
  11          #define  NUM  4                             //  接收和發送緩存區的深度
  12          unsigned char idata receivebuf[NUM];    // 數據接收緩沖區
  13          //--------------------------------------------------------------------------------------------------
  14          // 函數名稱: iic_start()
  15          // 函數功能: 啟動I2C總線子程序
  16          //--------------------------------------------------------------------------------------------------
  17          void iic_start(void)
  18          {       EA=0;            //時鐘保持高,數據線從高到低一次跳變,I2C通信開始
  19   1              SDA = 1;         
  20   1              SCL = 1;
  21   1              delayNOP();      // 延時5us 
  22   1              SDA = 0;
  23   1              delayNOP();
  24   1              SCL = 0;
  25   1      }
  26          //--------------------------------------------------------------------------------------------------
  27          // 函數名稱: iic_stop()
  28          // 函數功能: 停止I2C總線數據傳送子程序
  29          //--------------------------------------------------------------------------------------------------
  30          void iic_stop(void)
  31          { 
  32   1              SDA = 0;           //時鐘保持高,數據線從低到高一次跳變,I2C通信停止
  33   1              SCL = 1;
  34   1              delayNOP();
  35   1              SDA = 1;
  36   1              delayNOP();
  37   1              SCL = 0;
  38   1      }
  39          //--------------------------------------------------------------------------------------------------
  40          // 函數名稱: slave_ACK
  41          // 函數功能: 從機發送應答位子程序
  42          //--------------------------------------------------------------------------------------------------
  43          void slave_ACK(void)
  44          {
  45   1              SDA = 0;    
  46   1              SCL = 1;
  47   1              delayNOP();                     
  48   1              SDA = 1;
  49   1              SCL = 0;
  50   1      }
  51          //--------------------------------------------------------------------------------------------------
  52          // 函數名稱: slave_NOACK
  53          // 函數功能: 從機發送非應答位子程序,迫使數據傳輸過程結束
  54          //--------------------------------------------------------------------------------------------------
  55          void slave_NOACK(void)
C51 COMPILER V7.06   PCF8591                                                               05/10/2005 22:57:35 PAGE 2   

  56          { 
  57   1              SDA = 1;   
  58   1              SCL = 1;
  59   1              delayNOP();
  60   1              SDA = 0;
  61   1              SCL = 0;
  62   1      }
  63          //--------------------------------------------------------------------------------------------------
  64          // 函數名稱: check_ACK
  65          // 函數功能: 主機應答位檢查子程序,迫使數據傳輸過程結束
  66          //--------------------------------------------------------------------------------------------------
  67          void check_ACK(void)
  68          { 
  69   1              SDA = 1;      // 將p1.0設置成輸入,必須先向端口寫1
  70   1              SCL = 1;
  71   1              F0 = 0;
  72   1              if(SDA == 1)    // 若SDA=1表明非應答,置位非應答標志F0
  73   1                      F0 = 1;
  74   1              SCL = 0;
  75   1      }
  76          
  77          //--------------------------------------------------------------------------------------------------
  78          // 函數名稱: IICSendByte
  79          // 入口參數: ch
  80          // 函數功能: 發送一個字節
  81          //--------------------------------------------------------------------------------------------------
  82          void IICSendByte(unsigned char ch)
  83          { 
  84   1              unsigned char idata n=8;     // 向SDA上發送一位數據字節,共八位
  85   1              while(n--)
  86   1              { 
  87   2                      if((ch&0x80) == 0x80)    // 若要發送的數據最高位為1則發送位1
  88   2                      {
  89   3                              SDA = 1;    // 傳送位1
  90   3                              SCL = 1;
  91   3                              delayNOP();
  92   3                              SDA = 0;
  93   3                              SCL = 0;    
  94   3                      }
  95   2                      else
  96   2                      {  
  97   3                              SDA = 0;    // 否則傳送位0
  98   3                              SCL = 1;
  99   3                              delayNOP();
 100   3                              SCL = 0;  
 101   3                      }
 102   2                      ch = ch<<1;    // 數據左移一位
 103   2              }
 104   1      }
 105          //--------------------------------------------------------------------------------------------------
 106          // 函數名稱: IICreceiveByte
 107          // 返回接收的數據
 108          // 函數功能: 接收一字節子程序
 109          //--------------------------------------------------------------------------------------------------
 110          unsigned char IICreceiveByte(void)
 111          {
 112   1              unsigned char idata n=8;    // 從SDA線上讀取一上數據字節,共八位
 113   1              unsigned char tdata;
 114   1              while(n--)
 115   1              {
 116   2                      SDA = 1;
 117   2                      SCL = 1;
C51 COMPILER V7.06   PCF8591                                                               05/10/2005 22:57:35 PAGE 3   

 118   2                      tdata = tdata<<1;    // 左移一位,或_crol_(temp,1)
 119   2                      if(SDA == 1)
 120   2                              tdata = tdata|0x01;    // 若接收到的位為1,則數據的最后一位置1
 121   2                      else 
 122   2                              tdata = tdata&0xfe;    // 否則數據的最后一位置0
 123   2                      SCL=0;
 124   2              }
 125   1              return(tdata);
 126   1      }
 127          //--------------------------------------------------------------------------------------------------
 128          // 函數名稱: DAC_PCF8591
 129          // 入口參數: slave_add從機地址,n要發送的數據個數
 130          // 函數功能: 發送n位數據子程序
 131          //--------------------------------------------------------------------------------------------------
 132          void DAC_PCF8591(unsigned char controlbyte,unsigned char wdata)
 133          {    
 134   1              iic_start();                // 啟動I2C
 135   1              IICSendByte(PCF8591_WRITE);     // 發送地址位
 136   1              check_ACK();                // 檢查應答位
 137   1          if(F0 == 1)
 138   1              { 
 139   2                      SystemError = 1;
 140   2                      return;    // 若非應答表明器件錯誤或已壞,置錯誤標志位SystemError
 141   2              }
 142   1          IICSendByte(controlbyte&0x77);      //Control byte
 143   1              check_ACK();                // 檢查應答位
 144   1          if(F0 == 1)
 145   1              { 
 146   2                      SystemError = 1;
 147   2                      return;    // 若非應答表明器件錯誤或已壞,置錯誤標志位SystemError
 148   2              }
 149   1           IICSendByte(wdata);        //data byte
 150   1              check_ACK();                // 檢查應答位
 151   1          if(F0 == 1)
 152   1              { 
 153   2                      SystemError = 1;
 154   2                      return;    // 若非應答表明器件錯誤或已壞,置錯誤標志位SystemError
 155   2              }
 156   1              iic_stop();         // 全部發完則停止
 157   1              delayNOP();
 158   1              delayNOP();
 159   1              delayNOP();
 160   1              delayNOP();
 161   1      }
 162          //--------------------------------------------------------------------------------------------------
 163          // 函數名稱: ReadPCF8591
 164          // 入口參數: controlbyte控制字
 165          // 函數功能: 連續讀入4路通道的A/D轉換結果到receivebuf
 166          //--------------------------------------------------------------------------------------------------
 167          void ADC_PCF8591(unsigned char controlbyte)
 168          { 
 169   1          unsigned char idata receive_da,i=0;
 170   1              iic_start();
 171   1              IICSendByte(PCF8591_WRITE);     //控制字
 172   1              check_ACK();
 173   1              if(F0 == 1)
 174   1              {
 175   2                      SystemError = 1;
 176   2                      return;
 177   2              }
 178   1              IICSendByte(controlbyte);       //控制字
 179   1              check_ACK();
C51 COMPILER V7.06   PCF8591                                                               05/10/2005 22:57:35 PAGE 4   

 180   1              if(F0 == 1)
 181   1              {
 182   2                      SystemError = 1;
 183   2                      return;
 184   2              }
 185   1          iic_start();     //重新發送開始命令
 186   1              IICSendByte(PCF8591_READ);      //控制字
 187   1              check_ACK();
 188   1              if(F0 == 1)
 189   1              {
 190   2                      SystemError = 1;
 191   2                      return;
 192   2              }
 193   1              while(i<4)
 194   1              { 
 195   2                      receive_da=IICreceiveByte();
 196   2                      receivebuf[i++]=receive_da;
 197   2                      slave_ACK();    // 收到一個字節后發送一個應答位
 198   2              }
 199   1              slave_NOACK();    // 收到最后一個字節后發送一個非應答位
 200   1              iic_stop();
 201   1      }
 202          //--------------------------------------------------------------------------------------------------
 203          // 函數名稱: main
 204          // 函數功能: 主程序
 205          //--------------------------------------------------------------------------------------------------
 206          main()
 207          {
 208   1      DAC_PCF8591(0x40,0); //控制字為0100 0000,允許模擬量輸出
 209   1                           //零值點輸出測試
 210   1      DAC_PCF8591(0x40,0xff); //控制字為0100 0000,允許模擬量輸出
 211   1                           //滿值點輸入測試
 212   1      ADC_PCF8591(0x40);
 213   1      }
 214          
 215          
 216          
 217          
 218          
 219          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    334    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =      4       4
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情综合色| 欧美一区二区不卡视频| 青青青爽久久午夜综合久久午夜| 国产精品高潮呻吟久久| 欧美国产激情二区三区| 日本一区二区免费在线观看视频 | 国产精品免费人成网站| 337p粉嫩大胆噜噜噜噜噜91av| 精品国产欧美一区二区| 国产欧美日本一区视频| 国产精品成人午夜| 国产精品美女一区二区三区 | 日韩欧美精品三级| 欧美第一区第二区| 国产三级欧美三级日产三级99| 亚洲国产精品高清| 亚洲欧美激情小说另类| 三级欧美韩日大片在线看| 免费观看在线色综合| 国产一区视频网站| 成人禁用看黄a在线| 在线观看亚洲成人| 日韩欧美在线123| 亚洲免费毛片网站| 午夜私人影院久久久久| 韩国女主播一区二区三区| 成人免费视频免费观看| 91国产精品成人| 日韩美女一区二区三区四区| 国产日产精品1区| 亚洲在线中文字幕| 久久精品久久综合| 成人av网在线| 6080日韩午夜伦伦午夜伦| 国产日韩欧美一区二区三区乱码 | 成人短视频下载| 欧美日韩激情一区| 国产午夜精品一区二区三区嫩草| 亚洲精品成人悠悠色影视| 久久国产日韩欧美精品| 99久久精品99国产精品| 日韩一区二区免费视频| **网站欧美大片在线观看| 久久精品99国产精品| 91久久线看在观草草青青 | 国产精品无码永久免费888| 亚洲久草在线视频| 国产成人一级电影| 日韩欧美一区二区免费| 伊人一区二区三区| 成熟亚洲日本毛茸茸凸凹| 7777精品伊人久久久大香线蕉完整版| 亚洲国产精品ⅴa在线观看| 五月开心婷婷久久| 在线观看三级视频欧美| 国产精品妹子av| 国产精品一级黄| 欧美成人一区二区三区片免费 | 卡一卡二国产精品| 欧美综合久久久| 亚洲乱码精品一二三四区日韩在线| 国模大尺度一区二区三区| 日韩欧美123| 青青草成人在线观看| 欧美高清视频在线高清观看mv色露露十八 | 久久久精品tv| 精品亚洲成av人在线观看| 欧美一级高清片| 午夜视频在线观看一区二区三区| 欧美系列一区二区| 亚洲第一会所有码转帖| 欧美午夜一区二区三区| 亚洲国产成人va在线观看天堂| 一本大道久久精品懂色aⅴ| 亚洲视频一二三区| 色欧美片视频在线观看 | 欧美一区二区三区在线视频| 国产一区二区三区日韩| 精品日韩一区二区三区| 久久国产婷婷国产香蕉| 久久久久久久综合日本| 国产成人精品影视| 国产精品久久久久一区| 99精品国产99久久久久久白柏| 国产精品国产精品国产专区不蜜| 成人app在线| 亚洲一线二线三线久久久| 欧美系列日韩一区| 免费成人av在线播放| 国产校园另类小说区| bt欧美亚洲午夜电影天堂| 亚洲免费av观看| 欧美另类高清zo欧美| 极品销魂美女一区二区三区| 欧美高清在线精品一区| 在线欧美一区二区| 青草国产精品久久久久久| 久久精品亚洲麻豆av一区二区| 91丝袜高跟美女视频| 日韩高清在线一区| 国产欧美精品在线观看| 欧美优质美女网站| 狠狠色综合日日| 一区二区三区在线不卡| 4hu四虎永久在线影院成人| 国产麻豆91精品| 一区二区三区在线观看欧美 | 国产成人亚洲精品青草天美| 中文字幕在线视频一区| 欧美视频在线一区| 国产九色精品成人porny| 亚洲一区二区三区在线| 精品少妇一区二区三区日产乱码 | 国产成人免费在线| 亚洲高清视频的网址| 国产欧美一区二区三区鸳鸯浴| 欧美亚洲日本国产| 成人美女在线观看| 男人的天堂久久精品| 亚洲欧美日韩国产另类专区| 久久综合成人精品亚洲另类欧美 | 国产精品久久久久天堂| 在线电影一区二区三区| 91麻豆国产福利精品| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 精品日产卡一卡二卡麻豆| 91免费看片在线观看| 国产成人精品影视| 精东粉嫩av免费一区二区三区| 亚洲福利国产精品| 亚洲精品中文在线观看| 欧美精彩视频一区二区三区| 日韩三级中文字幕| 欧美少妇一区二区| 日本高清不卡在线观看| 成人av在线资源网站| 国产成人自拍在线| 国产精品自拍在线| 激情五月婷婷综合| 狠狠色狠狠色综合日日91app| 午夜欧美大尺度福利影院在线看| 青青国产91久久久久久| 亚洲一区免费观看| 中文字幕一区二区三| 国产精品久久久久久久久免费桃花 | 欧美日韩久久久一区| 色综合久久天天| 色综合中文字幕| 99久久久国产精品| 一本大道av伊人久久综合| 91网页版在线| 欧美自拍偷拍午夜视频| 欧美亚洲图片小说| 3atv一区二区三区| 欧美成人精品福利| 久久亚洲影视婷婷| 久久新电视剧免费观看| 久久午夜色播影院免费高清| 国产亚洲欧美中文| 国产精品欧美极品| 亚洲欧美日本韩国| 亚洲一区二区av在线| 肉肉av福利一精品导航| 蜜桃在线一区二区三区| 国产精品一区一区| gogogo免费视频观看亚洲一| 色哟哟国产精品| 欧美男人的天堂一二区| 欧美一二三四区在线| 久久久精品国产免大香伊| 国产精品久久久久9999吃药| 亚洲黄色免费网站| 青青草97国产精品免费观看无弹窗版| 久久成人麻豆午夜电影| 成人午夜av在线| 欧美日产在线观看| 2020日本不卡一区二区视频| 亚洲免费色视频| 日本免费新一区视频| eeuss鲁一区二区三区| 3d成人h动漫网站入口| 国产日韩欧美a| 亚洲va天堂va国产va久| 国内国产精品久久| 色综合网色综合| 精品国产伦一区二区三区观看方式| 国产精品久久久久久久久免费相片 | 国产一区二区看久久| 99国产精品一区| 精品久久久久久无| 亚洲欧美国产三级| 国产一区二区三区最好精华液| 日本精品视频一区二区三区| 久久嫩草精品久久久精品| 亚洲一区二区综合| 国产盗摄视频一区二区三区| 欧美日本一区二区在线观看| 中文字幕一区二区三区不卡| 久久99精品国产| 欧美日韩中文一区|