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

📄 tlc2543.txt

📁 TLC2543 AD高精度转换c语言程序
💻 TXT
字号:
//TLC2543 AD转换电路 电压测量通道为芯片2脚
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit clock=P1^0;
sbit d_in=P1^1;
sbit d_out=P1^2;
sbit _cs=P1^3;
uchar a,b,c,d;
float sum,sum1;
double sum_final1,sum_final;
uchar  duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar  wei[]={0xf7,0xfb,0xfd,0xfe};
void delay(uchar z)
{
	uchar x;
	for(;z>0;z--)
		for(x=22;x>0;x--);
}
void display(uchar a,uchar b,uchar c,uchar d)
{
	P0=duan[a]|0x80;
	P2=wei[0];
	delay(5);
	P2=0xff;
	P0=duan[b];
	P2=wei[1];
	delay(5);
	P2=0xff;
	P0=duan[c];
	P2=wei[2];
	delay(5);
	P2=0xff;
	P0=duan[d];
	P2=wei[3];
	delay(5);
	P2=0xff;
}
uint read(uchar port)
{
	uchar i,al=0,ah=0;
	unsigned long ad;
	clock=0;
	_cs=0;
	port<<=4;
	for(i=0;i<4;i++)
	{
		d_in=port&0x80;
		clock=1;
		clock=0;
		port<<=1;
	}
	d_in=0;
	for(i=0;i<8;i++)
	{
		clock=1;
		clock=0;
	}
	_cs=1;
	delay(5);
	_cs=0;
	for(i=0;i<4;i++)
	{
		clock=1;
		ah<<=1;
		if(d_out)ah|=0x01;
		clock=0;
	}
	for(i=0;i<8;i++)
	{
		clock=1;
		al<<=1;
		if(d_out)al|=0x01;
		clock=0;
	}
	_cs=1;
	ad=(uint)ah;
	ad<<=8;
	ad|=al;
	return(ad);
}
void main()
{
	uchar j;
	sum=0;
	sum1=0;
	sum_final=0;
	sum_final1=0;
	while(1)
	{
		for(j=0;j<128;j++)
		{
			sum1+=read(1);
			display(a,b,c,d);
		}
		sum=sum1/128;
		sum1=0;
		sum_final1=(sum/4095)*5;
		sum_final=sum_final1*1000;
		a=(int)sum_final/1000;
		b=(int)sum_final%1000/100;
		c=(int)sum_final%1000%100/10;
		d=(int)sum_final%10;
		display(a,b,c,d);	
	}
}


⌨️ 快捷键说明

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