新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)ADC0804模數(shù)轉(zhuǎn)換學(xué)習(xí)

51單片機(jī)ADC0804模數(shù)轉(zhuǎn)換學(xué)習(xí)

作者: 時(shí)間:2012-08-02 來(lái)源:網(wǎng)絡(luò) 收藏

while(1) //進(jìn)入死循環(huán)不停地做
{
adwr=1; /*-----------------------------------------*/
_nop_();
adwr=0; / *啟動(dòng)AD轉(zhuǎn)換(根據(jù)時(shí)序圖來(lái)的)*/
_nop_();
adwr=1; /*-----------------------------------------*/

for(a=10;a>0;a--)
{
display(A1,A2,A3); //兼具顯示和延時(shí)的作用,因?yàn)檗D(zhuǎn)換需要經(jīng)過(guò)一定的時(shí)間,用這個(gè)for循環(huán)可以起到延時(shí)的作用
}

P1=0xff; //讀取P1口之前先給其寫(xiě)全1

adrd=1; //rd置1(根據(jù)時(shí)序圖可知)
_nop_(); //延時(shí)一個(gè)機(jī)器周期(根據(jù)時(shí)序圖可知)
adrd=0; //rd置0(根據(jù)時(shí)序圖可知)
_nop_(); //延時(shí)一個(gè)機(jī)器周期
adval=P1; //A/D轉(zhuǎn)換后的數(shù)據(jù)賦給adval
adrd=1; //轉(zhuǎn)換后的數(shù)字信號(hào)(二進(jìn)制的信號(hào)應(yīng)該已經(jīng)譯成了十進(jìn)制了)讀出(也是根據(jù)時(shí)序圖可知)

A1=adval/100; /*-----------------------------------------*/
A2=adval%100/10; /*分離轉(zhuǎn)換后的十進(jìn)制數(shù),用來(lái)給數(shù)碼管顯示*/
A3=adval%10; /*-----------------------------------------*/

}
}
/*-------------------------------------------------------------------------------*/

void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延時(shí)約xms毫秒
for(j=110;j>0;j--);
}

void display(uchar bai,uchar shi,uchar ge)//顯示子函數(shù)
{
dula=1;
P0=table[bai];
dula=0;
P0=0xff;
wela=1;
P0=0x7e;
wela=0;
delayms(5);


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉