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

📄 tlc5620.lst

📁 读SD卡用SST单片机与tlc5620播放音乐程序
💻 LST
字号:
C51 COMPILER V7.06   TLC5620                                                               03/02/2009 16:29:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE TLC5620
OBJECT MODULE PLACED IN TLC5620.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE TLC5620.c BROWSE DEBUG OBJECTEXTEND

stmt 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 "sst89e516.h"
  14          #include <INTRINS.H>
  15          #include "TLC5620.h"
  16          
  17          /**************************************
  18          说明:   TLC5620初始化
  19          **************************************/
  20          void TLC5620_Init(void)
  21          {
  22   1              TLC5620_CLK = 0;
  23   1              TLC5620_DATA = 1;
  24   1              TLC5620_LOAD = 1;
  25   1              TLC5620_LDAC = 1;
  26   1      }
  27          
  28          /**************************************
  29          说明:   输出单个通道的电压
  30          chl:    通道号, 0--3
  31          dat:    通道数据, 0--255
  32          **************************************/
  33          void TLC5620_SetOutput(unsigned char chl, unsigned char dat)
  34          {
  35   1              unsigned char i;
  36   1      
  37   1              /* 四个通道,只有低两位有效 */
  38   1              chl &= 0x03;
  39   1              /* 左移一位,加上RNG位 */
  40   1              chl <<= 1;
  41   1              chl |= RNG;
  42   1              /* 将数据移到高3位 */
  43   1              chl <<= 5;
  44   1      
  45   1              for(i=3; i>0; i--)
  46   1              {
  47   2                      /* 从高位到低位依次移出数据 */
  48   2                      TLC5620_DATA = (bit)(chl&0x80);
  49   2                      /* 等待数据稳定 */
  50   2                      TLC5620_CLK = 1;
  51   2                      chl <<= 1;
  52   2                      /* 下降沿将数据锁存 */
  53   2                      TLC5620_CLK = 0;
  54   2              }
  55   1              for(i=8; i>0; i--)
C51 COMPILER V7.06   TLC5620                                                               03/02/2009 16:29:21 PAGE 2   

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

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


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