?? main.c
字號(hào):
/*-----------------------------------------------------*
*工 程 名:AD.prj *
*硬件連接:PTB0/AD0 接模擬量輸入端 *
*程序描述:獲取1路A/D轉(zhuǎn)換結(jié)果,并濾波,通過(guò)串口發(fā)送出去 *
*目 的:掌握AD轉(zhuǎn)換的基本編程方法 *
*注 意:用SD-1實(shí)驗(yàn)板測(cè)試時(shí),把液晶拔出,否則可能影響結(jié)果*
*----------《嵌入式應(yīng)用技術(shù)基礎(chǔ)教程》教學(xué)實(shí)例---------*/
/*[頭文件]*/
#include "GP32C.H"
/*[函數(shù)聲明]*/
extern void SCIInit(void); //串行口函數(shù)聲明
void SCISendN(unsigned char n,unsigned char ch[]);
//有關(guān)A/D轉(zhuǎn)換函數(shù)聲明
extern unsigned char adave(unsigned char n,unsigned char channel);
extern unsigned char advalue(unsigned char channel);
extern unsigned char admid(unsigned char channel);
/*[主程序]*/
void main(void)
{ int t;
unsigned char i;
unsigned char pl;
int va;//定義變量
SCIInit(); //串行口初始化
ADCLK=0b00110000; //A/D用內(nèi)部總線時(shí)鐘,2分頻
while(1)//死循環(huán)
{
SCISendN(11,"通道0電壓值");//發(fā)送通道0的電壓值
pl=adave(20,0);//接收對(duì)收到的值濾波后取得的值。20*3(取中)
va=pl*5/255+48;//取第一位
SCISend1(va);//輸出第一位的數(shù)值
SCISend1('.');//輸出符號(hào)位
va=(pl*10/51)%10+48;//取第二位的數(shù)值
SCISend1(va);//發(fā)送
va=((pl*100)/51)%10+48;//取最后一位的數(shù)值
SCISend1(va);//發(fā)送
SCISendN(2,"伏");//發(fā)送伏;
for(t=0;t<1024;t++)
for(i=0;i<100;i++); //延時(shí)0.5S
pl=adave(20,1);
SCISendN(11,"通道1電壓值");//發(fā)送通道1的電壓值
va=pl*5/255+48;
SCISend1(va);
SCISend1('.');
va=(pl*10/51)%10+48;
SCISend1(va);
va=((pl*100)/51)%10+48;
SCISend1(va);
SCISendN(2,"伏");
for(t=0;t<1024;t++)
for(i=0;i<100;i++);//延時(shí)
//結(jié)束循環(huán)。
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -