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

📄 w011.c

📁 c51单片机da转换模块C语言源程序 基础实用 已经经过调试
💻 C
字号:
/********************************************************************
* 实验名称: DA转换实验                                              *
*********************************************************************
* 实验描述: 在TLC5620的OUTA端输出 VCC 伏电压                        *
* 实验说明: 本实验DA的参考电压为VCC/2,(J5上DAREF与VCC/2相连)	    *
*			进行本实验时,要在U6上安装TLC5620(芯片缺口要朝上)	    *
*           利用该DA转换器,还可以产生方波、三角波、锯齿波等        *
********************************************************************/

#include <reg51.h>
#include <intrins.h>

sbit TLC5620_DATA = P2^0;  //定义TLC5620的接口
sbit TLC5620_LOAD = P2^1;
sbit TLC5620_LDAC = P2^2;
sbit TLC5620_CLK  = P2^3;

#define Range (0x01)   //Range=0时,输出电压范围为REF-GND Range=1时,输出电压范围为2*REF-GND

#define CHA	 (0x00)
#define CHB	 (0x01)
#define CHC	 (0x02)
#define CHD	 (0x03)

void TLC5620_Init(void)	//TLC5620初始化
{
    TLC5620_CLK  = 0;
	TLC5620_DATA = 1;
	TLC5620_LOAD = 1;
	TLC5620_LDAC = 1;
}

/************************************************************************
*   TLC5620单通道电压输出函数											*
*   ch : 电压输出通道号,0-3 分别对应TLC5620的OUTA OUTB OUTC OUTD		*
*   dat: 通道数据,0-255	 TLC5620输出的电压为 (REF*dat)/255				*
************************************************************************/
void TLC5620_Output(unsigned char ch, unsigned char dat)
{
	unsigned char i;

	ch &= 0x03;		//低两位有效,TLC5620有4个通道

	ch <<= 1;		//加上Range位
	ch |= Range;

	ch <<= 5;		//将数据移到高3位

	for(i=3; i>0; i--)
	{

		TLC5620_DATA = (bit)(ch&0x80); //从高位到低位依次输入数据到TLC5620
		
		TLC5620_CLK = 1;  //等待数据稳定
		ch <<= 1;

		TLC5620_CLK = 0;  //下降沿,将数据锁存
	}
	for(i=8; i>0; i--)
	{

		TLC5620_DATA = (bit)(dat&0x80);	//从高位到低位依次输入数据到TLC5620
		
		TLC5620_CLK = 1;  //等待数据稳定
		dat <<= 1;

		TLC5620_CLK = 0;  //下降沿,将数据锁存
	}

	TLC5620_LOAD = 0;	  //LOAD下降沿将数据锁入寄存器
	_nop_();
	_nop_();
	TLC5620_LOAD = 1;
	_nop_();
	_nop_();

	TLC5620_LDAC = 0;	  //LDAC下降沿将更新输出电压值
	_nop_();
	_nop_();
	TLC5620_LDAC = 1;
}

  main()    //主函数
  {
	TLC5620_Init();

    while(1)
	 { 
	   TLC5620_Output(CHA, 0xFF);  //通道A输出2*REF V电压
	 }
  }

⌨️ 快捷键说明

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