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

📄 main.lst

📁 proteus 的51实验板 .
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.08   MAIN                                                                  02/14/2008 16:13:50 PAGE 1   


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

line level    source

   1          
   2          #include <reg52.h>
   3          
   4          #include<stdio.h>
   5          
   6          #include <string.h>
   7          #include "intrins.h"
   8          
   9          
  10          sbit wr_62256 =P2^0;
  11          sbit oe_62256 =P2^1;
  12          sbit ce_62256 =P2^2;
  13          
  14          
  15          sbit SDA = P2^7;
  16          sbit SCL = P2^6 ;
  17          
  18          
  19          unsigned char   slvadr;
  20          
  21          sbit TLC1456_so =P1^4;  
  22          sbit TLC1456_clk =P1^6; 
  23          sbit TLC1456_cs0 =P1^5; 
  24          sbit TLC1456_cs1 =P1^3; 
  25          sbit TLC1456_clr =P1^7; 
  26          
  27          void SendD(unsigned int dat,unsigned char num) 
  28          {
  29   1              unsigned char i=0;
  30   1      
  31   1         if (num==0)
  32   1              TLC1456_cs0 = 0;
  33   1         else
  34   1              TLC1456_cs1 = 0;
  35   1      
  36   1              for (i=12; i>0; i--)
  37   1              {
  38   2                      TLC1456_so = dat & 0x0200;
  39   2                      TLC1456_clk = 1;
  40   2                      dat <<= 1;
  41   2                      TLC1456_clk = 0;                
  42   2              }
  43   1      
  44   1         if (num==0 )
  45   1              TLC1456_cs0 = 1;
  46   1         else 
  47   1          TLC1456_cs1 = 1;
  48   1      
  49   1              TLC1456_clk = 0;
  50   1      
  51   1      }
  52          
  53          sbit TLC1864_sdo  =P1^1; 
  54          sbit TLC1864_clk  =P1^2; 
  55          sbit TLC1864_conv =P1^0; 
C51 COMPILER V8.08   MAIN                                                                  02/14/2008 16:13:50 PAGE 2   

  56          unsigned int get_ADC(void)
  57          {
  58   1              unsigned char i=0;
  59   1              unsigned  int tmp=0;
  60   1      
  61   1              TLC1864_conv=0;
  62   1              TLC1864_sdo=1;
  63   1              TLC1864_clk=0;
  64   1      /*      _nop_();_nop_();_nop_();_nop_();
  65   1              _nop_();_nop_();_nop_();_nop_();
  66   1              _nop_();_nop_();_nop_();_nop_();
  67   1              _nop_();_nop_();_nop_();_nop_();
  68   1              _nop_();_nop_();_nop_();_nop_();
  69   1              _nop_();_nop_();_nop_();_nop_();
  70   1              _nop_();_nop_();_nop_();_nop_();
  71   1              _nop_();_nop_();_nop_();_nop_();
  72   1              _nop_();_nop_();_nop_();_nop_();
  73   1              _nop_();_nop_();_nop_();_nop_();
  74   1              _nop_();_nop_();_nop_();_nop_();
  75   1              _nop_();_nop_();_nop_();_nop_();
  76   1              _nop_();_nop_();_nop_();_nop_();
  77   1              _nop_();_nop_();_nop_();_nop_();
  78   1              _nop_();_nop_();_nop_();_nop_();
  79   1              _nop_();_nop_();_nop_();_nop_();_ */     
  80   1      
  81   1              for (i=12;i>0;i--)
  82   1              {       
  83   2                  _nop_();_nop_();_nop_();_nop_();
  84   2                      _nop_();_nop_();_nop_();_nop_();
  85   2                      TLC1864_clk=1;
  86   2      
  87   2                      TLC1864_clk=0;
  88   2      
  89   2                      tmp <<= 1;
  90   2                      if ( TLC1864_sdo  )
  91   2                              tmp |= 0x01;
  92   2      
  93   2                      _nop_();_nop_();_nop_();_nop_();
  94   2                      _nop_();_nop_();_nop_();_nop_();
  95   2              }
  96   1      
  97   1               TLC1864_conv=1;
  98   1       return  tmp;
  99   1      }
 100          
 101          
 102          
 103          #define TRUE 1
 104          #define FALSE 0
 105          
 106           void   IIC_Start(void);
 107           void   IIC_Stop(void);
 108           void   IIC_TxByte(unsigned char  tx_byte);
 109           unsigned char          IIC_RxByte(void);
 110           unsigned char          IIC_WaitAck(void);
 111           void   IIC_SendAck(void);
 112           void   IIC_SendNoAck(void);
 113          
 114          
 115           /*******************************************************************************
 116          *** 函 数 名: static void IIC_Start(void)
 117          *** 功能描述: 
C51 COMPILER V8.08   MAIN                                                                  02/14/2008 16:13:50 PAGE 3   

 118          *** 全局变量: NO !
 119          *** 输          入: NO !
 120          *** 输          出: NO !
 121          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 122          *** 修 改 人:                                                                          日期:2006-11-28
 123          *** 函数说明: Start IIC.
 124          /******************************************************************************/
 125           void IIC_Start(void)
 126          {
 127   1              EA = 0;                 //关中断;
 128   1              SDA = 1;                //初始化总线;
 129   1              SCL = 1;                
 130   1              _nop_();
 131   1              SDA = 0;                //启动总线;
 132   1              _nop_();
 133   1              SCL = 0;                //准备数据发送,启动IIC之后传输线全部置0;
 134   1              }
 135          /*******************************************************************************
 136          *** 函 数 名: static void       IIC_TxByte(unsigned char tx_byte)
 137          *** 功能描述: 发送一个字节;
 138          *** 全局变量: NO !
 139          *** 输          入: tx_byte
 140          *** 输          出: NO !
 141          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 142          *** 修 改 人:                                                                          日期:2006-11-28
 143          *** 函数说明: 操作完成后保证SCL为0;
 144          /******************************************************************************/
 145           void   IIC_TxByte(unsigned char  tx_byte)
 146          {//SDA:0; SCL:0.
 147   1              unsigned char  i;
 148   1              for(i=0;i<8;i++)
 149   1              {
 150   2                      if(tx_byte & 0x80)
 151   2                              SDA = 1;                                        //因为Start函数中以把SCL拉低,数据直接发送;
 152   2                      else 
 153   2                              SDA = 0;
 154   2                      tx_byte <<= 1;                  //因为发送顺序:由Msb——>Lsb;
 155   2                      SCL = 1;                
 156   2                      _nop_();                //延时;
 157   2                      SCL = 0;                
 158   2                      }
 159   1              }
 160          /*******************************************************************************
 161          *** 函 数 名: static bool       IIC_WaitAck(void)
 162          *** 功能描述: 发送一个字节;
 163          *** 全局变量: NO !
 164          *** 输          入: tx_byte
 165          *** 输          出: NO !
 166          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 167          *** 修 改 人:                                                                          日期:2006-11-28
 168          *** 函数说明: 操作完成后保证SCL为0;
 169          /******************************************************************************/
 170           unsigned char          IIC_WaitAck(void)
 171          {//SDA:U; SCL:0.
 172   1              unsigned char  waitTime = 0xff;         //设置Ack信号超时数;
 173   1              SDA = 1;                //将数据线拉高;
 174   1              SCL = 1;                //启动Ack脉冲;
 175   1              _nop_();
 176   1              while(SDA)
 177   1              {
 178   2                      waitTime--;
 179   2                      if(!waitTime)
C51 COMPILER V8.08   MAIN                                                                  02/14/2008 16:13:50 PAGE 4   

 180   2                              {
 181   3                                      SCL = 0;                //SCL=0;
 182   3                                      IIC_Stop();
 183   3                                      return FALSE;
 184   3                                      }
 185   2                      }
 186   1              SCL = 0;                //操作完成后确认SCL为0,此时SDA=0;
 187   1              return TRUE;    
 188   1              }
 189          /*******************************************************************************
 190          *** 函 数 名: static unsigned char      IIC_RxByte(void)
 191          *** 功能描述: 接收一个字节;
 192          *** 全局变量: NO !
 193          *** 输          入: NO !
 194          *** 输          出: 接收字节:tmp
 195          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 196          *** 修 改 人:                                                                          日期:2006-11-28
 197          *** 函数说明: 操作完成后保证SCL为0;
 198          /******************************************************************************/
 199           unsigned char          IIC_RxByte(void)
 200          {//SDA:0; SCL:0;
 201   1              unsigned char  tmp = 0;
 202   1              unsigned char  i;
 203   1              for(i=0;i<8;i++)
 204   1              {
 205   2                      SCL = 0;
 206   2                      SDA = 1;                //向I/O口写1后准备读入;
 207   2                      _nop_();
 208   2                      SCL = 1;
 209   2                      _nop_();
 210   2                      tmp <<= 1;
 211   2                      if(SDA)
 212   2                              {
 213   3                                      tmp |= 0x01;
 214   3                                      }
 215   2                      }
 216   1              SCL = 0;                //SCL=0;
 217   1              return tmp;     
 218   1              }
 219          /*******************************************************************************
 220          *** 函 数 名: static void       IIC_SendAck(void)
 221          *** 功能描述: 发送应答信号;
 222          *** 全局变量: NO !
 223          *** 输          入: NO !
 224          *** 输          出: NO !
 225          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 226          *** 修 改 人:                                                                          日期:2006-11-28
 227          *** 函数说明: 操作完成后保证SCL为0;
 228          /******************************************************************************/
 229           void   IIC_SendAck(void)
 230          {
 231   1              SDA = 0;
 232   1              _nop_();
 233   1              SCL = 1;
 234   1              _nop_();
 235   1              SCL = 0;
 236   1              }
 237          /*******************************************************************************
 238          *** 函 数 名: static void       IIC_SendNoAck(void)
 239          *** 功能描述: 发送非应答信号;
 240          *** 全局变量: NO !
 241          *** 输          入: NO !
C51 COMPILER V8.08   MAIN                                                                  02/14/2008 16:13:50 PAGE 5   

 242          *** 输          出: NO !
 243          *** 创 建 人:huangtiexiong                       日期:2006-11-28
 244          *** 修 改 人:                                                                          日期:2006-11-28
 245          *** 函数说明: 操作完成后保证SCL为0;
 246          /******************************************************************************/
 247           void   IIC_SendNoAck(void)

⌨️ 快捷键说明

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