📄 main.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 + -