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

📄 tlv5638.lst

📁 51单片机及其C语言程序开发实例第9章节
💻 LST
字号:
C51 COMPILER V7.09   TLV5638                                                               08/24/2007 09:33:04 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE TLV5638
OBJECT MODULE PLACED IN TLV5638.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE TLV5638.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include "TLV5638.h"
   3          
   4          //短延时函数:ShortDelay()
   5          void nNop(uchar i)
   6          {
   7   1              for(;i>0;i--) ;
   8   1              }
   9                  
  10          //长延时函数:LongDelay()
  11          void LongDelay(uint i)
  12          {
  13   1              uint j;
  14   1              for(;i>0;i--)
  15   1                      { for(j=1000;j>0;j--);}
  16   1              }
  17                  
  18          //向SPI写16bits数据函数:SPIWrite()
  19          void SPIWrite(int temp)
  20          {
  21   1              uint i;
  22   1              SetCS(0);
  23   1              for(i=0;i<16;i++)
  24   1              {
  25   2                      PinDIN = (bit) (temp & 0x8000);
  26   2                      SetSCLK(1);
  27   2                      temp <<= 1;
  28   2                      nNop(1);
  29   2                      SetSCLK(0);
  30   2                      nNop(1);
  31   2                      }
  32   1              SetCS(1);
  33   1              }
  34          
  35          //将电压值转换为对应的12bits数字量函数:VoltToData()
  36          int VoltToData(uint ref, float ex_ref, float out_volt)
  37          {
  38   1              int temp;
  39   1              switch(ref)
  40   1              {
  41   2                      case    EXTERNAL  :  temp = (int)((out_volt*4096) / (2*ex_ref));break;
  42   2                      case    IN_1024   :  temp = (int)((out_volt*4096) / (2*1.024)); break;
  43   2                      case    IN_2048   :  temp = (int)((out_volt*4096) / (2*2.048)); break;
  44   2                      default           :  break;
  45   2                      }
  46   1              return(temp & 0xfff);
  47   1              }
  48          
  49          //设置DAC A(即A 通道)输出函数:SetDAC_A()
  50          void SetDAC_A(uint speed, uint ref, float ex_ref, float temp)
  51          {
  52   1              int ModCMD;
  53   1              int Data;
  54   1              ModCMD = 0x9000 | (speed<<14) | (ref);
  55   1              Data = VoltToData(ref,ex_ref,temp);
C51 COMPILER V7.09   TLV5638                                                               08/24/2007 09:33:04 PAGE 2   

  56   1              Data = Data | 0x8000 | (speed<<14);
  57   1              SPIWrite(ModCMD);
  58   1              nNop(10);
  59   1              SPIWrite(Data);  
  60   1              }
  61          
  62          //设置DAC B(即B 通道)输出函数:SetDAC_B()
  63          void SetDAC_B(uint speed, uint ref, float ex_ref, float temp)
  64          {
  65   1              int ModCMD;
  66   1              int Data;
  67   1              ModCMD = 0x9000 | (speed<<14) | (ref);
  68   1              Data = VoltToData(ref,ex_ref,temp);
  69   1              Data = Data | 0x0000 | (speed<<14);
  70   1              SPIWrite(ModCMD);
  71   1              nNop(10);
  72   1              SPIWrite(Data);
  73   1              }
  74          
  75          //设置DAC A与DAC B同时输出函数:SetDAC_AB()
  76          void SetDAC_AB(uint speed, uint ref, float ex_ref, float temp1, float temp2)
  77          {
  78   1              int ModCMD;
  79   1              int DataA,DataB;
  80   1              ModCMD = 0x9000 | (speed<<14) | (ref);
  81   1              DataA = VoltToData(ref,ex_ref,temp1);
  82   1              DataA = DataA | 0x8000 | (speed<<14);
  83   1              DataB = VoltToData(ref,ex_ref,temp2);
  84   1              DataB = DataB | 0x1000 | (speed<<14);
  85   1              SPIWrite(ModCMD);
  86   1              SPIWrite(DataB);
  87   1              SPIWrite(DataA);
  88   1              }


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