標(biāo)題: 用單片機(jī)控制ADC0804進(jìn)行模數(shù)轉(zhuǎn)換后顯示數(shù)字量不對(duì) [打印本頁]

作者: 百二秦關(guān)終屬我    時(shí)間: 2023-2-1 14:30
標(biāo)題: 用單片機(jī)控制ADC0804進(jìn)行模數(shù)轉(zhuǎn)換后顯示數(shù)字量不對(duì)
詳細(xì)說明一下我的問題。
ADC0804的芯片
VIN-接地,VIN+通過一個(gè)限流電阻接入滑動(dòng)變阻器,滑動(dòng)變阻器一頭連著電源一頭接地。換句話說,VIN+接入阻值的變化,會(huì)使得VIN+得到的模擬電壓發(fā)生變化。與此同時(shí),51單片機(jī)接入一個(gè)數(shù)碼管,前三位動(dòng)態(tài)顯示一個(gè)十進(jìn)制數(shù)字。當(dāng)VIN+接入的阻值變化時(shí),顯示的數(shù)字也跟著變化,變化范圍是0~255。(A/D轉(zhuǎn)換這部分我學(xué)得不好)
我不知道是程序還是仿真的問題,導(dǎo)致在仿真的時(shí)候剛開始數(shù)碼管顯示000,然后顯示的數(shù)字是254???這個(gè)顯示有問題,反正是上電之后動(dòng)態(tài)顯示的段碼有問題。我不理解為什么會(huì)這樣,因?yàn)槲翌A(yù)期的效果是上電初始值顯示000,而后顯示一個(gè)0~255之間的數(shù),當(dāng)扳動(dòng)電位器后,數(shù)碼管上的值會(huì)發(fā)生相應(yīng)的變化。
寫得比較啰嗦,希望論壇上的大佬能夠幫忙,不勝感激!
源程序和proteus仿真放在壓縮包里了。

ex4.zip

51.55 KB, 下載次數(shù): 9

源程序+proteus仿真


作者: YHB51H    時(shí)間: 2023-2-2 10:44
void display(uchar bai,uchar shi,uchar ge)        //顯示函數(shù) 傳參:百位數(shù)字 十位數(shù)字 個(gè)位數(shù)字 {         P1=table[bai]|0x80;                       //送段碼百位數(shù)據(jù)         P2=0xfe;                               //送位選數(shù)據(jù) 11111110         delayms(5);                            //延時(shí)         P2=0xff;                               //消影          P1=table[shi];                              //送段碼十位數(shù)據(jù)                 P2=0xfd;                              //送位碼數(shù)據(jù)  11111101         delayms(5);                           //延時(shí)         P2=0xff;                              //消影          P1=table[ge];                        //送段碼個(gè)位數(shù)據(jù)                 P2=0xfb;                             //送位碼數(shù)據(jù)  11111011         delayms(5);                          //延時(shí)         P2=0xff;                             //消影
作者: 百二秦關(guān)終屬我    時(shí)間: 2023-2-2 12:54
YHB51H 發(fā)表于 2023-2-2 10:44
void display(uchar bai,uchar shi,uchar ge)        //顯示函數(shù) 傳參:百位數(shù)字 十位數(shù)字 個(gè)位數(shù)字 {         P1=table|0 ...

我是先送段選數(shù)據(jù),消影,再送位選數(shù)據(jù),延時(shí),這樣做是不是由于消影不及時(shí)所以才顯示不完全呢?
還有,最大的一個(gè)問題是,為什么移動(dòng)電位器,數(shù)值顯示的一直都是2.55呢?難道是我的proteus仿真連接的有問題?
作者: lkc8210    時(shí)間: 2023-2-2 15:27
這情況多數(shù)是DB腳順序接反了
作者: 百二秦關(guān)終屬我    時(shí)間: 2023-2-2 17:13
lkc8210 發(fā)表于 2023-2-2 15:27
這情況多數(shù)是DB腳順序接反了

是嗎?這個(gè)書上寫的變化范圍是0~255,那說明DB引腳都是全1啊,不應(yīng)該是仿真接的線路不對(duì)嗎?
作者: lkc8210    時(shí)間: 2023-2-2 23:22
百二秦關(guān)終屬我 發(fā)表于 2023-2-2 17:13
是嗎?這個(gè)書上寫的變化范圍是0~255,那說明DB引腳都是全1啊,不應(yīng)該是仿真接的線路不對(duì)嗎?


P0上拉電阻畫錯(cuò)了



作者: 百二秦關(guān)終屬我    時(shí)間: 2023-2-3 19:06
lkc8210 發(fā)表于 2023-2-2 23:22
P0上拉電阻畫錯(cuò)了

原來是這樣啊,我明白了,很感謝你




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