幫助ADC0809和51微控制器放在一起是不是工作正常,程式有問題? 還是硬體連線錯誤?

發布 科技 2024-08-21
6個回答
  1. 匿名使用者2024-02-01

    P0埠真實資料位址輸出端,無法連線AD控制端A、B、C,當微控制器傳送資料時,P0埠的值發生變化時,你的AD a、B、C對應的通道選擇埠也發生了變化,結果不正常。 將 A、B 和 C 連線到 P1 或 P2。

    接地意味著您只使用通道 0 作為 AD,只要您只使用通道 0 輸入模擬資料即可。 看完圖,最主要的是需要測量幾組模擬量,如果只有一組,則完全接地,如果是多組,則需要連線到P1埠或P2埠。

    這不是很清楚,但如果你看看你放在上面的程式,就沒有問題。 你要從頭開始,看看出了什麼問題。

  2. 匿名使用者2024-01-31

    float adc0809(void)

    adda=0;選擇輸入通道 0

    addb=0;

    addc=0;

    oe=0;以下三個命令是啟動 AD0809ST=0; st=1;

    st=0;delaynms(1);

    while(!eoc);等待轉換結束。

    oe=1;檢索讀取的資料。

    延遲一點。 ad_data0=ad_0809 ;在其他函式中返回 ad first 的值。

    oe=0;return ad_data0;

    ADDA、ADDB、ADDC直接連線,注意上拉電阻和定義AD 0809是AD的輸出端和微控制器的介面,可以設定到P1埠,通訊有問題。

  3. 匿名使用者2024-01-30

    是的,但它一直是零頻道。

  4. 匿名使用者2024-01-29

    adc0809

    應用說明: 1)ADC0809具有內部輸出鎖存器,可直接連線到AT89S51微控制器。

    2) 在初始化期間,使 ST 和 OE 訊號都為低電平。

    3) 將要轉換的通道的位址傳送到埠 A、B 和 C。

    4) 在 ST 端子處給出至少 100ns 寬的正脈衝訊號。

    5)轉換是否完成,我們根據EOC訊號進行判斷。

    6) 當EOC變為高電平時,OE為高電平,轉換後的資料輸出到微控制器。

  5. 匿名使用者2024-01-28

    看看你的原理圖就知道了。

  6. 匿名使用者2024-01-27

    1.位址是人工定義的,在51微控制器中,P0埠是低階位址8位和資料埠8位分時復用,所有連線到位址匯流排的裝置都必須有乙個位址間隔(位址塊),例如RAM62256需要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 輸出,即沒有選擇裝置。

相關回答
15個回答2024-08-21

PIC微控制器與MCS-51系列微控制器的區別應該說有三個主要特點: >>>More

4個回答2024-08-21

AT89C52 C 系列是早期產品。 沒有了程式設計和看門狗,為了區別於早期產品,將新產品改為具有看門狗和ISP功能的AT89S52,ISP就是程式設計的意思。早期是晶格的專利技術,現在被大量使用。 >>>More

10個回答2024-08-21

定義 uint unsigned int 等效於在程式集中定義乙個 16 位整數變數 n,該變數分為上層 8 位 nh 和下層 8 位 nl >>>More

12個回答2024-08-21

這並不難,我就是這樣學會的。 只要找到正確的路,還是可以避免那麼多彎路的,我上學的時候走了很多彎路,靠自己一步一步想出來。您可以新增我了解詳細資訊,我會幫助您!

10個回答2024-08-21

org 0000h

sjmp start >>>More