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

📄 tlc5620.c

📁 这是TLC5620的单片机试验程序,用KEIL环境,适合51单片机初学者
💻 C
字号:
//本文件为TLC5620   8位串行DA转换的程序模块,实现DA转换,调节声音的大小输出
//提供 TLC5620(vol)  声音转换接口 

/*
   存在问题:
   1、程序中_nop_()会不会少点???,程序中没有LDAC的操作,
   根据电路图,第一次的转换能进行吗?
   2、这个函数要在程序中不断的运行

   3.查看PCB图,看原理图跟PCB图是不是一样的!!!????????????
*/

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char

sbit DATA=P1^2;	 //数据串行输入端
sbit CLK=P1^1;	 //串行输入时钟
sbit LOAD=P1^0;	 //数据进入第一级锁存控制位

void TLC5620(float vol)  //vol数值范围:0----99
{
   float volval;
   uchar i;
   uchar vollast; //定义此变量以取0---255的百分比
   LOAD=1;   
  
   CLK=1;
   DATA=0;  
   _nop_();  
   CLK=0;  //下降沿送入第一个数A1
   _nop_();   //
  

   CLK=1;
   DATA=0;   
   _nop_();  
   CLK=0;  //下降沿送入第二个数A0
   _nop_();  //
   

   CLK=1;
   DATA=0;  //RNG=1使输出位两倍参考输入的输出    
   _nop_();  
   CLK=0;  //下降沿送入第三个数RNG
    _nop_();  //
   
   volval=vol;	//
   vollast=(volval/100)*255; // 
    

   for(i=0;i<8;i++)	//循环送入8位数字码,从高位开始送入
   {
   	  CLK=1;
	  DATA=vollast&0x80;
	  vollast=vollast<<1;
	  _nop_(); //加吗????????????	  
	  CLK=0;
	  _nop_();	//
     
   }
   _nop_();	  //
  
   LOAD=0; //开始转换。
    _nop_(); 
	_nop_();  
   LOAD=1; //
   

}



⌨️ 快捷键说明

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