?? 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 + -