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

📄 tlc549测试.lst

📁 详细描述了tlc549的特性
💻 LST
字号:
C51 COMPILER V8.08   TLC549瞋试                                                            05/20/2009 21:40:21 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE TLC549瞋试
OBJECT MODULE PLACED IN tlc549测试.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tlc549测试.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1                             //功能:串行AD转换器TL549进行一路模拟量的测量
   2          //驱动TLC549,TLC549是串行8位ADC
   3          #include "reg51.h"
   4          #include "intrins.h"
   5          #define uchar  unsigned char
   6          #define uint  unsigned int
   7          
   8          #define    Wait1us        _nop_();
   9          #define    Wait2us        {_nop_();_nop_();}
  10          #define    Wait4us        {Wait2us;Wait2us;}
  11          #define    Wait8us        {Wait4us;Wait4us;}
  12          #define    Wait10us      {Wait8us;Wait2us;}
  13          
  14          #define    Wait30us      {Wait10us;Wait8us;Wait4us;Wait2us;}
  15          //定义TLC549串行总线操作端口
  16          sbit    CLK=P0^1;
  17          sbit    DAT=P0^2;
  18          sbit    CS=P0^3 ;
  19          sbit     P10=P1^0;
  20          sbit     P11=P1^1;
  21          sbit     P12=P1^2;
  22          unsigned char code table1[]=   
  23          { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  24          //{0xdf,0x86,0xbb,0xaf,0xe6,0xed,0xfd,0x87,  
  25          //0xff,0xef,0xf7,0xfc,0xd9,0xbe,0xf9,0xf1}; 
  26          
  27          uchar    bdata ADCdata;
  28          uchar  i, AD_DATA;
  29          sbit    ADbit=ADCdata^0;
  30          
  31          /******************************************************************** 
  32          
  33           函 数 名:TLC549ADC()
  34           功    能:A/D转换子程序
  35           说    明:读取上一次A/D转换的数据,启动下一次A/D转换
  36           入口参数:无
  37           返 回 值:无  
  38           设    计:yangm_cui           日    期:2008-03-19
  39           修    改:                    日    期: 
  40          ***********************************************************************/
  41          void  delay()
  42          {
  43   1          uint i,j;
  44   1              for(i=0;i<=5;i++)       
  45   1                       for(j=0;j<=5;j++)
  46   1                       {;}    
  47   1      }
  48          
  49          uchar  TLC549ADC(void)
  50          {
  51   1          uchar   i;
  52   1      
  53   1          CS = 1; //芯片复位
  54   1          CS = 0;
  55   1          CS = 1;
C51 COMPILER V8.08   TLC549瞋试                                                            05/20/2009 21:40:21 PAGE 2   

  56   1           // Clock = 0;
  57   1            //Wait4us;
  58   1            //CS = 0; //芯片起始
  59   1           //Wait4us; //等待延时
  60   1            //for (i = 0; i < 8; i ++) //输入采样转换时钟
  61   1            //{
  62   1             //     Clock = 1;
  63   1             //      Wait1us;
  64   1             //     Clock = 0;
  65   1           // }
  66   1           CS = 1; //开始转换
  67   1            Wait30us; //等待转换结束
  68   1            CS= 0; //读取转换结果
  69   1            Wait4us;
  70   1      
  71   1      
  72   1          CLK=0;
  73   1             
  74   1          DAT=1;
  75   1          CS=0;
  76   1          Wait4us;
  77   1          for(i=0;i<8;i++)
  78   1          {
  79   2              CLK=1;
  80   2             // delay();
  81   2             // delay();
  82   2              ADCdata<<=1;    //AD转换
  83   2              ADbit=DAT;
  84   2              CLK=0;
  85   2              delay();       
  86   2          }
  87   1              CS=1;
  88   1          return (ADCdata);
  89   1      }
  90          
  91          
  92          void display()
  93          {
  94   1        
  95   1       P1=0xfb;
  96   1       P2=table1[AD_DATA/100];
  97   1       for(i=0xff;i>0;i--)         //延时
  98   1          {delay();}
  99   1      for(i=0xff;i>0;i--)         //延时
 100   1          {delay();}
 101   1      
 102   1       //P1=0xfd;
 103   1       //P0=table1[(AD_DATA%100)/10];
 104   1       //for(i=0xff;i>0;i--)         //延时
 105   1          //{delay();}        
 106   1       //for(i=0xff;i>0;i--)         //延时
 107   1          //{delay();}
 108   1      
 109   1       //P1=0xfe;
 110   1       //P0=table1[AD_DATA%10];
 111   1       //for(i=0xff;i>0;i--)         //延时
 112   1          //{delay();}
 113   1       //for(i=0xff;i>0;i--)         //延时
 114   1          //{delay();}
 115   1      }
 116          /******************************************************************** 
 117          
C51 COMPILER V8.08   TLC549瞋试                                                            05/20/2009 21:40:21 PAGE 3   

 118           函 数 名:main()
 119           功    能:主程序
 120           说    明:
 121           入口参数:无
 122           返 回 值:无  
 123           设    计:yangm_cui           日    期:2008-03-19
 124           修    改:                    日    期: 
 125          ***********************************************************************/
 126          void main()
 127          {
 128   1      while(1)
 129   1      {
 130   2         // uchar i;
 131   2         // uchar AD_DATA;             //定义A/D转换数据变量
 132   2       
 133   2          AD_DATA=TLC549ADC();             //启动一次A/D转换
 134   2      
 135   2      //      CS=0;
 136   2         for(i=1500;i>0;i--)         //延时
 137   2         { delay();}
 138   2      
 139   2          //AD_DATA=TLC549ADC();     //读取当前电压值A/D转换数据
 140   2         display();
 141   2       
 142   2       }   
 143   1      }
 144          
 145          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    176    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   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 + -