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

📄 main.c

📁 TLC549串行ADC 用51开发
💻 C
字号:
/*
	Main.C
	TLC549串行ADC例程:数字电压表
*/


#include "reg51.h"
#include "Disp.h"
#include "VolTab.h"


//定义TLC549操作接口
sbit CS = P3^2;
sbit DAT = P3^3;
sbit CLK = P3^4;


/*
函数:ReadAdc()
功能:读取A/D转换结果
返回:8位ADC代码
*/
unsigned char ReadAdc()
{
	unsigned char d;
	unsigned char n;
	CS = 0;
	n = 5;
	while ( --n != 0 );
	n = 8;
	do
	{
		d <<= 1;
		if ( DAT ) d++;
		CLK = 1;
		CLK = 0;
	}while ( --n != 0 );
	CS = 1;
	return d;
}


/*
函数:AdcInit()
功能:初始化ADC接口
*/
void AdcInit()
{
	CS = 1;
	CLK = 0;
	DAT = 1;
	ReadAdc();
}


/*
函数:Delay()
功能:延时(t*10)ms
*/
void Delay(unsigned char t)
{
	do
	{
		TH0 = 0xDC;
		TL0 = 0x00;
		TR0 = 1;
		while ( !TF0 );
		TR0 = 0;
		TF0 = 0;
	} while ( --t != 0 );
}


/*
函数:DispVol()
功能:将ADC值转换成电压值,并显示
参数:
	v:8位ADC结果
*/
void DispVol(unsigned char v)
{
	DispStr(5,VolTab[v]);
	DispDotOn(5);
}


/*
函数:SysInit()
功能:系统初始化
*/
void SysInit()
{
	TMOD &= 0xF0;
	TMOD |= 0x01;
	DispInit();
	AdcInit();
	Delay(10);
}


void main()
{
	unsigned char v;	//电压值
	SysInit();
	for (;;)
	{
		v = ReadAdc();	//读取ADC值
		DispVol(v);		//显示成电压值
		Delay(30);		//延时300ms
	}
}

⌨️ 快捷键说明

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