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

📄 tlc5620.lst

📁 51DEVTest use keil to program this code.
💻 LST
字号:
C51 COMPILER V7.20   TLC5620                                                               04/13/2006 13:48:01 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE TLC5620
OBJECT MODULE PLACED IN TLC5620.obj
COMPILER INVOKED BY: C:\Keil_C51\C51\BIN\C51.EXE TLC5620\TLC5620.c BROWSE DEBUG OBJECTEXTEND PRINT(.\TLC5620.lst) OBJECT
                    -(TLC5620.obj)

line level    source

   1          /*
   2           *      Copyright (C) 2006, 华中科技大学电气与电子科技创新中心
   3           *      All Rights Reserved.
   4           *      
   5           *      文件名:         tlc5620.c
   6           *      文件描述:       DA转换芯片TLC5620驱动文件
   7           *                      
   8           *      当前版本:       1.0
   9           *      作者:           SangWei(swkyer@gmail.com)
  10           *      完成日期:       2005年12月12日
  11           *      
  12          */
  13          #include <REGX51.h>
  14          #include <INTRINS.H>
  15          #include "TLC5620.h"
  16          
  17          
  18          /**************************************
  19          说明:   TLC5620初始化
  20          **************************************/
  21          void TLC5620_Init(void)
  22          {
  23   1              TLC5620_CLK = 0;
  24   1              TLC5620_DATA = 1;
  25   1              TLC5620_LOAD = 1;
  26   1              TLC5620_LDAC = 1;
  27   1      }
  28          
  29          /**************************************
  30          说明:   输出单个通道的电压
  31          chl:    通道号, 0--3
  32          dat:    通道数据, 0--255
  33          **************************************/
  34          void TLC5620_SetOutput(unsigned char chl, unsigned char dat)
  35          {
  36   1              unsigned char i;
  37   1      
  38   1              /* 四个通道,只有低两位有效 */
  39   1              chl &= 0x03;
  40   1              /* 左移一位,加上RNG位 */
  41   1              chl <<= 1;
  42   1              chl |= RNG;
  43   1              /* 将数据移到高3位 */
  44   1              chl <<= 5;
  45   1      
  46   1              for(i=3; i>0; i--)
  47   1              {
  48   2                      /* 从高位到低位依次移出数据 */
  49   2                      TLC5620_DATA = (bit)(chl&0x80);
  50   2                      /* 等待数据稳定 */
  51   2                      TLC5620_CLK = 1;
  52   2                      chl <<= 1;
  53   2                      /* 下降沿将数据锁存 */
  54   2                      TLC5620_CLK = 0;
C51 COMPILER V7.20   TLC5620                                                               04/13/2006 13:48:01 PAGE 2   

  55   2              }
  56   1              for(i=8; i>0; i--)
  57   1              {
  58   2                      /* 从高位到低位依次移出数据 */
  59   2                      TLC5620_DATA = (bit)(dat&0x80);
  60   2                      /* 等待数据稳定 */
  61   2                      TLC5620_CLK = 1;
  62   2                      dat <<= 1;
  63   2                      /* 下降沿将数据锁存 */
  64   2                      TLC5620_CLK = 0;
  65   2              }
  66   1              /* LOAD下降沿将数据锁入寄存器 */
  67   1              TLC5620_LOAD = 0;
  68   1              _nop_();
  69   1              _nop_();
  70   1              TLC5620_LOAD = 1;
  71   1              _nop_();
  72   1              _nop_();
  73   1              /* LDAC下降沿将更新输出电压值 */
  74   1              TLC5620_LDAC = 0;
  75   1              _nop_();
  76   1              _nop_();
  77   1              TLC5620_LDAC = 1;
  78   1      }
  79          
  80          /**************************************
  81          说明:   同时刻输出四个通道电压 
  82          chl1--chl4:     4个通道的数据
  83          **************************************/
  84          void TLC5620_AllOutput(unsigned char dat[])
  85          {
  86   1              unsigned char i, j, chl;
  87   1      
  88   1              for(j=0; j<4; j++)
  89   1              {
  90   2                      chl = j;
  91   2                      /* 左移一位,加上RNG位 */
  92   2                      chl <<= 1;
  93   2                      chl |= RNG;
  94   2                      /* 将数据移到高3位 */
  95   2                      chl <<= 5;
  96   2              
  97   2                      for(i=3; i>0; i--)
  98   2                      {
  99   3                              /* 从高位到低位依次移出数据 */
 100   3                              TLC5620_DATA = (bit)(chl&0x80);
 101   3                              /* 等待数据稳定 */
 102   3                              TLC5620_CLK = 1;
 103   3                              chl <<= 1;
 104   3                              /* 下降沿将数据锁存 */
 105   3                              TLC5620_CLK = 0;
 106   3                      }
 107   2                      for(i=8; i>0; i--)
 108   2                      {
 109   3                              /* 从高位到低位依次移出数据 */
 110   3                              TLC5620_DATA = (bit)(dat[j]&0x80);
 111   3                              /* 等待数据稳定 */
 112   3                              TLC5620_CLK = 1;
 113   3                              dat[j] <<= 1;
 114   3                              /* 下降沿将数据锁存 */
 115   3                              TLC5620_CLK = 0;
 116   3                      }
C51 COMPILER V7.20   TLC5620                                                               04/13/2006 13:48:01 PAGE 3   

 117   2                      /* LOAD下降沿将数据锁入寄存器 */
 118   2                      TLC5620_LOAD = 0;
 119   2                      _nop_();
 120   2                      _nop_();
 121   2                      TLC5620_LOAD = 1;
 122   2                      _nop_();
 123   2                      _nop_();
 124   2                      _nop_();
 125   2                      _nop_();
 126   2              }
 127   1              /* LDAC下降沿将四个通道同时刻更新输出电压值 */
 128   1              TLC5620_LDAC = 0;
 129   1              _nop_();
 130   1              _nop_();
 131   1              TLC5620_LDAC = 1;
 132   1      }
 133          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    162    ----
   CONSTANT SIZE    =   ----    ----
   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 + -