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

📄 tlc0834.c

📁 TLC0834是TI公司生产的八位逐次逼近模数转换器
💻 C
字号:
#include<reg51.h>

#define uint unsigned int
#define uchar unsigned char

sbit cs=P1^0;		  //0834片选信号,低电平开始一次转换,高电平结束转换
sbit clk=P1^1;		  //0834时钟信号
sbit dat=P1^2;		  //0834模拟输入端进行配置及输出转换所得的数据


/****************************************
             TLC0834
*****************************************/
uchar tlc_read(bit SGL,bit ODD,bit Bit1)
{

    uchar i,dig1,dig2;
   
	clk=0;	         //发送输入配置端信号时为上升沿触发
   	cs=0;
	dat=1;           //发送start bit
	clk=1;

	clk=0;
	dat=SGL;         //发送SGL
	clk=1;

	clk=0;
	dat=ODD;         //发送ODD
	clk=1;

	clk=0;
	dat=Bit1;	     //发送Bit 1
	clk=1;

	clk=0;           //时钟交换变成下降沿触发
	
	for(i=8;i>0;i--)
	{
		dig1=dig1|dat;    //第一次输出数据是高位在前低位在后
		dig1=dig1<<1; 
		clk=1;            //输出数据为下降沿触发
		dat=1;		      //先写1后再读,否则读出的数据不可预期	这一点很重要
		clk=0;
	}
        dig1=dig1|dat;    //上面差一次赋值

	for(i=8;i>0;i--)
	{
		dig2=dig2>>1;	  //第二次输出数据是低位在前高位在后
		if(dat) 
		{
			dig2=dig2|0x80;
		} 	 
		clk=1;
		dat=1;		       //先写1后再读,否则读出的数据不可预期 很重要的一点
		clk=0;
	} 


	cs=1;			      //结束转换

	//if(dig1==dig2)	      //判断两次输出结果是否一致
	return(dig1);		  //一致就输出

}

/************************************
            主函数
*************************************/
void main(void)			  
{
	while(1)
	{
	P2=tlc_read(1,0,0);	  //选择CH0端口输入模拟信号
	}
}
		

	   








⌨️ 快捷键说明

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