欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 新手求教關于單片機+ADC0808仿真問題 [打印本頁]

作者: rsdwm    時間: 2022-1-25 22:07
標題: 新手求教關于單片機+ADC0808仿真問題
仿真目的:采用總線形式進行ADC0808仿真
問題:1.輸出值范圍與預期不符,量程應該為【0-5】,仿真結果是【0.88-3.45】且在變動的過程中出現了大于9的數;2.即使采集口沒有接其他東西,也會顯示一個定值;3.本來是采集IN0的數據,但是如果IN1的模擬量變化,顯示的數據也會變化。
小弟我真的看不出來,照著視頻一行一行敲的代碼,求助個位大佬的幫助。

出錯情況
1.未連接有初值


2.量程不對



3.端口“串線”

代碼:
1.ADC0808
頭文件:
  1. #ifndef __ADC0809_H__
  2. #define __ADC0809_H__

  3. #include <REGX52.H>
  4. #include <absacc.H>

  5. sbit EOC    = P3^5;

  6. #define AD_IN0 XBYTE[0X7FF8]
  7. #define AD_IN1 XBYTE[0X7FF9]
  8. #define AD_IN2 XBYTE[0X7FFA]
  9. unsigned char ADC_Conv();
  10.         
  11. #endif
復制代碼
函數部分:
  1. #include "ADC0809.H"

  2. unsigned char ADC_Conv()
  3. {
  4.         unsigned char ad_result = 0;
  5.         AD_IN0  = 0x0000; //借助對端口地址執行寫操作時序,來滿足A/D的操作時序
  6.         while(EOC == 0);//查詢方式  高電平結束
  7.         ad_result = AD_IN0;//借助對端口地址執行讀操作時序,來滿足A/D的操作時序
  8.         return ad_result;
  9. }

復制代碼

2.主函數 與 顯示服務函數
  1. #include <REGX52.H>
  2. #include "DISPLAY.H"
  3. #include "ADC0809.H"

  4. void display_service();

  5. unsigned char ad_result = 0; // 0-255
  6. int ad_show = 0;

  7. void main()
  8. {

  9.         while(1)
  10.         {
  11.                 DotDig1 = 1;
  12.                 ad_result = ADC_Conv();
  13.                 ad_show = ad_result * 1.0 *500/255;  //5v - 500  255-份
  14.                 display_service();
  15.                 Display();
  16.         }
  17. }

  18. void display_service()
  19. {
  20.         LEDBUF[0]=23;
  21.         LEDBUF[1]=ad_show/100%10;
  22.         LEDBUF[2]=ad_show/10%10;
  23.         LEDBUF[3]=ad_show%10;
  24. }
復制代碼

附件:仿真與代碼
ADC0808總線型.zip (112.88 KB, 下載次數: 8)




作者: TEC    時間: 2022-1-26 10:06
最好把ADC部分的電路圖補全,這樣好分析一點。你的AD轉換函數應該是不對的,沒有ADWR,ADRD等的設置。
作者: wulin    時間: 2022-1-26 11:58
給你一個示例
數字電壓表ADC0808仿真.rar (76.21 KB, 下載次數: 18)


作者: 123456ZXC1    時間: 2022-1-26 12:54
ADC部分的電路圖補全一下
作者: rsdwm    時間: 2022-1-26 15:48
這個是adc部分的電路圖


作者: rsdwm    時間: 2022-1-26 15:51
123456ZXC1 發表于 2022-1-26 12:54
ADC部分的電路圖補全一下

您好,我補了一下,麻煩看一看
作者: rsdwm    時間: 2022-1-26 16:04
耽誤大家時間了,由于本人的粗心,沒有把ALE引腳的網絡標號改掉。導致ALE沒有信號。改完之后可以正常的顯示。
但是我有些許疑問,第一,為什么不連接的時候會顯示一個固定值2.49。第二,如果我測得是端口一,但端口一沒有接任何東西此時應該顯示第一個疑問的固定值,但是改變接在端口二的滑動電阻改變電壓,此時數碼管顯示的值會變動,這種“串線”的情況是由于什么。如果正常端口一接入滑動電阻,則端口二的變動不會造成端口一數值的紊亂。
作者: rsdwm    時間: 2022-1-26 16:05
rsdwm 發表于 2022-1-26 15:48
這個是adc部分的電路圖

找到問題了  ALE引腳沒改
作者: rsdwm    時間: 2022-1-26 16:06
wulin 發表于 2022-1-26 11:58
給你一個示例

謝謝,不過我的是總線方式  這個是io口控制的
作者: rsdwm    時間: 2022-1-26 16:07
TEC 發表于 2022-1-26 10:06
最好把ADC部分的電路圖補全,這樣好分析一點。你的AD轉換函數應該是不對的,沒有ADWR,ADRD等的設置。

謝謝,找到問題了,引腳標號錯了。方便看一下我新回復的問題嗎
作者: rsdwm    時間: 2022-1-26 16:07
123456ZXC1 發表于 2022-1-26 12:54
ADC部分的電路圖補全一下

謝謝,找到問題了,引腳標號錯了。方便看一下我新回復的問題嗎
作者: TEC    時間: 2022-1-26 17:40
rsdwm 發表于 2022-1-26 16:07
謝謝,找到問題了,引腳標號錯了。方便看一下我新回復的問題嗎

嘿嘿,不是很懂這個總線型方式。你的ADC0809的時鐘信號是單片機ALE引腳提供的?可以在仿真的時候加個示波器對照一下。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1