㈠ C51單片機里ADC0804的工作原理是怎樣的請看下面代碼是什麼意思,為什麼要這樣做
程序,一步一步的,都是對硬體,進行控制。
先要掌握,硬體的特點,才能看懂程序。
㈡ 51 AD轉換,用ADC0804,數據接P1.0-1.7,例子要求讀取數據前先用P1=0Xff將P1口寫1,什麼原因為何不寫0
51的P1口可輸入可輸出。
那麼哪條指令讓它作為輸入口,怎麼樣才能讓它作為輸入口呢?
每個口上都有一個鎖存器,鎖住之前寫的值。
比如,口上只是接一個上拉電阻,這個口作為輸入應該是高電平吧。
那你往口裡寫一個0,口會輸出0,這個口就成了低電平了。此時,你讀這個IO口,也會是低電平。
如果不改寫為1,鎖存器內就一直是0,也就是輸出0 ,程序讀這個口上的電平也是0。
改寫為1後,這個口上的電平才會1,或者說,不會把這個口拉低。
作為輸入口時,要事先寫1,也可以不用每次都寫,只要裡面不是0就成。
簡單的來說就是:因為單片機的構造(上拉了電阻),需要將P1口寫1,使之成為高電平,能夠作為輸入口。
㈢ A/D轉換後(比如用adc0804),輸入一個模擬電壓信號轉換出來的是二進制數還是數字脈沖
A/D轉換後(比如用adc0804),輸入一個模擬電壓信號轉換出來的是二進制數。adc0804有8位數據線,你得用微處理器如單片機把數據讀出來,有了微處理器你就很容易把數據顯示出來。找到數字脈沖顯示,得轉換,麻煩。
㈣ 剛剛開始學單片機:在用單片機做AD試驗的時候,(8位的ADC0804)
你在把數值轉換為電壓值的時候最好使用浮點數,這樣就不會出錯了。比如:nbsp;floatnbsp;mun,k;nbsp;k=P0nbsp;num=500*(k/255.0);nbsp;然後把num轉換為整型。nbsp;還有對於參考電壓,最好不要取5V(即和VCC相近),否則誤差會很大
㈤ 求助:c51單片機 ADC0804轉換問題!
試試這個程序調電位器看是不是你想要的效果
#include<reg52.h>
sbitrd=P3^7;
sbitwr=P3^6;
sbitcsad=P3^5;
intt;
main()
{
while(1)
{
csad=0;
rd=0;
wr=0;
wr=1;
for(t=10000;t>0;t--);
}
}
㈥ adc0804的A/D轉換
一般先要把信號轉換為電壓值,然後才能進行AD轉換。