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

📄 mcp3232.lst

📁 mcp3221 ad转换。通过iic串口读取ad转换数值
💻 LST
字号:
C51 COMPILER V8.02   MCP3232                                                               03/25/2009 14:54:15 PAGE 1   


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

line level    source

   1           #include <reg51.h>
   2           #include <intrins.h>
   3           #define uchar unsigned char 
   4           #define uint unsigned int
   5           sbit SDA=P2^4;
   6           sbit SCL=P2^3;
   7          
   8          
   9           /*************************/
  10           //iic初始化
  11           void start_iic() //产生iic起始信号
  12           {
  13   1                SDA=1;;
*** ERROR C100 IN LINE 13 OF MCP3232.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 13 OF MCP3232.C: unprintable character 0xBB skipped
  14   1                SCL=1;
  15   1                _nop_();
  16   1                _nop_();
  17   1                _nop_();
  18   1                _nop_();
  19   1                SDA=0;           //发送起始信号
  20   1                _nop_();
  21   1                _nop_();
  22   1                _nop_();
  23   1                _nop_();
  24   1                SCL=0;
  25   1      }
  26          
  27          void stop_iic() //产生IIc停止信号
  28          {
  29   1                 SDA=0;;
*** ERROR C100 IN LINE 29 OF MCP3232.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 29 OF MCP3232.C: unprintable character 0xBB skipped
  30   1                SCL=1;
  31   1                _nop_();
  32   1                _nop_();
  33   1                _nop_();
  34   1                _nop_();
  35   1                SDA=1;           //发送停止信号
  36   1                _nop_();
  37   1                _nop_();
  38   1                _nop_();
  39   1                _nop_();
  40   1                SCL=0;
  41   1      }
  42          
  43          void ack_iic() //产生iic应答信号
  44          {
  45   1                SDA=0;;
*** ERROR C100 IN LINE 45 OF MCP3232.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 45 OF MCP3232.C: unprintable character 0xBB skipped
  46   1                SCL=1;
  47   1                _nop_();
  48   1                _nop_();
  49   1                _nop_();
C51 COMPILER V8.02   MCP3232                                                               03/25/2009 14:54:15 PAGE 2   

  50   1                _nop_();
  51   1                SCL=0;
  52   1                SDA=1;
  53   1      }
  54          
  55          void nack_iic()//产生iic非应答信号
  56          {
  57   1                SDA=1;;
*** ERROR C100 IN LINE 57 OF MCP3232.C: unprintable character 0xA3 skipped
*** ERROR C100 IN LINE 57 OF MCP3232.C: unprintable character 0xBB skipped
  58   1                SCL=1;
  59   1                _nop_();
  60   1                _nop_();
  61   1                _nop_();
  62   1                _nop_();
  63   1                SCL=0;
  64   1                SDA=0;
  65   1      }
  66          
  67          /**********************************/
  68          //向iic总线上发送1字节数据
  69          while_byte(uchar c)
  70          {
  71   1              uchar i;
  72   1              for(i=0;i<8;i++)
  73   1              {
  74   2              if(c&0x80)SDA=1;
  75   2              else SDA=0;
  76   2              SCL=1;
  77   2              _nop_();
  78   2              _nop_();
  79   2              _nop_();
  80   2              _nop_();
  81   2              SCL=0;
  82   2              c=c<<1;
  83   2              }
  84   1              SDA=1;
  85   1              SCL=1;
  86   1              _nop_();
  87   1              _nop_();
  88   1              _nop_();
  89   1              _nop_();
  90   1              if(SDA==1)F0=0;
  91   1              else F0=1;
  92   1              SCL=0;
  93   1      }
  94          
  95          //      从iic总线上读取1字节数据
  96          uchar read_byte()
  97          {
  98   1              uchar i;
  99   1              uchar r=0;
 100   1              SDA=1;
 101   1              for(i=0;i<8;i++)
 102   1              {
 103   2                      r=r<<1;
 104   2                      SCL=1;
 105   2                      _nop_();
 106   2                  _nop_();
 107   2                      _nop_();
 108   2                      _nop_(); 
 109   2                      if(SDA==1)r++;
C51 COMPILER V8.02   MCP3232                                                               03/25/2009 14:54:15 PAGE 3   

 110   2                      SCL=0;
 111   2              }
 112   1              return r;
 113   1      }
 114          
 115          //  从iic总线上读取n个字节数据
 116          bit read_nbyte(uchar slave,uchar *s,uchar num)
 117          {
 118   1              uchar i;
 119   1              start_iic();                    /*启动总线*/
 120   1              send_byte(slave);               /*发送器件地址*/
 121   1          if(F0==0)   return(0);
 122   1              for(i=0;i<num-1;i++)
 123   1          {   
 124   2              *s=read_byte();         /*发送数据*/
 125   2              ack_iic(0);             /*发送就答位*/  
 126   2              s++;
 127   2          } 
 128   1              *s=read_byte();
 129   1              ack_iic();                 /*发送非应位*/
 130   1              stop_iic();                     /*结束总线*/ 
 131   1              return(1);
 132   1      }
 133          
 134          void main()       //主函数
 135          {       
 136   1       read_nbyte(0x9b;16;2)
 137   1      }
 138          
 139                   
 140                   
 141                   
 142                   
 143                   
 144                   
 145                   
 146                   
 147                    

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

⌨️ 快捷键说明

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