❶ 51單片機的ADC請教
IO口接電源用大電阻。允許輸入電流很小,大了會燒壞,熱了也會燒壞。
❷ 51單片機和ADC0809配合時出現錯誤現象,求解
你把adc的CLK接單片機的ALE 試試。
定時器 就 不用了。
我之前遇到的問題是這樣的(可能和你有點不一樣):
用proteus 模擬 是好的(也用的是定時器控制CLK)
但是,實際線路中,開機第一次轉換是好的,接下來改變電位器就沒反應了。
改變電位器後,再重啟就又有一次好的(此時電位器的值)。
下面是我之前的提問:呵呵,希望對你有幫助!
http://..com/question/143979152.html
❸ 51單片機A/D轉換器程序問題
先說下簡單的常識:對於8位ADC,單極性輸入0-5V時,數字量為0-255,能夠分辨的最小電壓為20mV,解析度為2的8次方即256位;接下來看下STC片內8位ADC的轉換公式:DATA=256*Vin/Vcc;這個公式可以理解為:轉換結果/解析度=輸入電壓/基準電壓 ;即:DATA/256=Vin/5;變化這個公式後就會得到:Vin=DATA*5/256;當語句num=ReadADC(0);運行後,num=DATA它是二進制數據;待到語句num=num*5*10/256;運行結束後就變成了num=Vin了這時已經轉換成十進制數據了,而那個放大10備你是知道的了。
❹ adc0809轉換的一些問題(與51單片機配合)
1 、地址是人為定義的,在51單片機中P0口是低位地址8位與數據口8位分時復用,所有連接在地址匯流排上的器件,都必須有一個地址區間(地址塊),例如,RAM 62256需要32Kbyte,0000H--7FFFH,就是一個片選信號。
ad轉換器需要一個,經過地址解碼器,解碼後的「區間」,即儲存器的片選信號,解碼器可以分成1,2,4,8塊----,1就是單一地址,必須解碼器;看自己需要選定,選定一塊,如果需要,這一塊還可以用解碼器再次解碼,原則上可以到單個地址,ADC0809需要8個地址,用低位地址線A0,A1,A2三根,和上面所述的片選信號線,完成對該器件8路ad轉換器的選擇,低位地址線可以共用,片選線不能與其它器件共用。
2、外部數據輸入到P0口是需要有相應的器件被選擇,需要讀寫信號線控制的,這里用 /RD 讀信號,它不是單一發出,它與地址線共同完成對器件的讀寫操作。
這個例子中,需要選擇這個ADC器件(片選),還需要選擇由哪一路轉換器輸出(A0,A1,A2)。
data=P0這條指令和data=P1一樣,沒有地址輸出,沒有/RD輸出,就是沒有選擇到需要的器件。
❺ STC125A60S2中ADC和CHA是什麼意思,還有那個8位ADC輸入通道是用來干什麼的
STC125A60S2是增強型的51單片機,加多了A/D轉換功能。ADC是模/數轉換器,CHA一般是人們在編寫程序時定義的一個變數,一般是指P1口的轉換通道。ADC中共有8通道用來採集模擬信號,經過A/D轉換後變為數字信號。
❻ 51單片機的DAC和ADC 與單片機連接時的介面地址是怎麼算的
對於51單片機,一般都用16位地址訪問片外埠地址。對於8位ADC&DAC而言,十六位地址的的低八位都是傳送數據,高八位用於控制ADC&DAC晶元的控制為,如CS等。對晶元的讀或寫對應的改變高八位的控制位,就得到了不同的埠地址。
你最好看一看使用匯編寫的ADC程序,這樣利於理解。
❼ 51單片機PO口接ADC08008數模轉換做輸入,同時外界LCD顯示屏做輸出,請問C語言如何實現
P0口作為數據傳輸,利用其餘的管腳進行使能控制,使得在同一時間只有一個模塊使能就可以實現了
❽ 用51系列單片機做個A/D轉換器,具體該怎麼做
注意,你這對單片機的位數和AD的位數理解有誤。
首先:51系列單片機都是八位的,這里的8位是指它一個時鍾所能處理的數據位數。而現在的電腦的微處理器酷睿等都是32位的CPU,意思和上述的一樣。
而AD轉換器的位數和所嵌入單片機的位數無關。12位是指這個AD轉換器的精度。比如說12位的AD,讀一個范圍在0到5V的模擬信號,就能把這5V的范圍分成 2的12次方 (=4096份)。也就說這個12位的AD轉換器所能識別的最小電壓量是5V÷4096 = 0.00122V。所以,單片機的8位和你需要的ad轉換器12位沒直接關系
而你說的AT89S52內部並沒有集成AD轉換器。
可以用Stc的單片機(有8位和10位ADC)、C8051F單片機(一般都是12位或10位ADC)、飛利浦的LPC900系列單片機等這都是8位的51系列單片機,內部帶AD模塊(但位數各不相同) 。
STC單片機數據手冊:
C8051f020單片機數據手冊:
補充:首先,你的問題有點混亂。
你前頭問是「自帶AD轉換器的單片機」,就是說單片機內部有AD模塊,直接把待測信號接單片機的AD引腳就可把數據讀入到單片機內部的AD寄存器。如果是八位的正好就放在一個位元組里,如果是10位、12位、16位就放兩個位元組(如x=AD,x是無符號INT型數據,C語言一句話搞定),如果是24位就3個或4個位元組的寄存器內。這需要什麼介面,沒有分串口並口的。
而你後邊補充問的那是單片機外接一個AD轉換晶元,這個AD轉換器就不是單片機自帶的。這種晶元有串口和並口之分,但一般10位及其以上的AD晶元都是用串列介面。也有另類的,用並口連接的,那也比如說12位晶元使用並口也就是12個引腳和八位的51單片機連接,那單片機可以拿P1口接低八位,P2找四個腳和高四位連接。還有剩下的可以接CS、WR,之類的控制引腳。如果你買到這樣的另類晶元,那寫程序就忒麻煩了……
最後,C8051xxx系列的單片機,是使用51單片機內核的、集成了很多外設功能的單片機。一般有12位DAC、10/12位ADC、pwm、USB介面……說白就是個較高級的51單片機,但開發工具只能賣他們自己產的開發編程設備,貴。
❾ 用51單片機和ADC0809製作數字電壓表,ADC的輸入怎麼接
1ADC有一個IN0-IN7的模擬輸入端,模擬輸入多少多少電壓開始測,但是等我做出來以後,要測量怎麼把信號接進來呢,有八個腳呢,或者是其他接法??
你肯定要做一個板子吧,ADC0809的8路模擬量,能過導線連接到某個外部接線端子上面或者與某個電路連接。
2還有這種方法是不是只能測量直流電壓,那要是交流信號電壓的測量應該用什麼方法?
這個ADC0809隻能測直流電壓0-5V,如果想測交流電壓或者別的幅值的直流電壓都得加電流,簡單的話可以選一個變送器。
❿ ADC0809與51單片機連接,請看下圖
這個電路,是《三匯流排》形式。
P0,又要輸出地址低八位,又要輸入/輸出數據。
P0,忙不過來,需要外接一個 74LS373,鎖存住先輸出的地址低八位。
這就是 74L373 在那裡,所起的作用。
74LS373,輸出的低八位地址,只用到了三位,送到了 ADC0809。
對 0809 寫入,再啟動它,需要的信號,就由單片機和幾個門電路完成。
細節,說起來太麻煩。
看書吧,有時序波形。