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

標(biāo)題: A/D轉(zhuǎn)換測量電壓,并將結(jié)果顯示在數(shù)碼管上,電壓顯示為0? [打印本頁]

作者: 九零后大將    時(shí)間: 2018-9-6 09:30
標(biāo)題: A/D轉(zhuǎn)換測量電壓,并將結(jié)果顯示在數(shù)碼管上,電壓顯示為0?
利用ADC0809測量電壓,并將測量結(jié)果顯示在數(shù)碼管上,程序燒錄進(jìn)去,數(shù)碼管顯示為0,時(shí)序也沒發(fā)現(xiàn)什么問題,就是讀不出數(shù)據(jù)?哪位大神幫忙檢查一下,謝謝
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};        //共陰極數(shù)碼管0~9數(shù)碼,不帶小數(shù)點(diǎn)
uchar code table2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};        //共陰極數(shù)碼管0~9數(shù)碼,帶小數(shù)點(diǎn)

sbit _CLK=P1^7;        //時(shí)鐘信號輸入線
sbit _ST=P1^6;        //轉(zhuǎn)換啟動信號
sbit _EOC=P1^5; //轉(zhuǎn)換結(jié)束信號
sbit _OE=P1^4;        //輸出允許信號
sbit _ALE=P1^3; //地址鎖存輸入線
sbit _A=P1^0;   //
sbit _B=P1^1;        //
sbit _C=P1^2;        //輸入地址線
sbit LED1=P2^0; //數(shù)碼管1段選控制位,低電平有效
sbit LED2=P2^1; //數(shù)碼管2段選控制位,低電平有效
sbit LED3=P2^2; //數(shù)碼管3段選控制位,低電平有效

void delay_us(uint m)                //@12.000MHz
{
        while(m--)
        {
                _nop_();
                _nop_();
                _nop_();
                _nop_();
           }
}
void display(uchar num)
{
        uchar g1,g2,g3;
        uint sum;
        sum=(500/255)*num;//電壓轉(zhuǎn)換,5V做外參考電壓,分成256份
        g3=sum/100;        //個(gè)位
        g2=sum/100%10;        //十分位
        g1=sum%10;        //百分位
               
        P2=0xfe;
        P0=table2[g1];
        delay_us(10);
        P2=0xfd;
        P0=table1[g2];
        delay_us(10);
        P2=0xfb;
        P0=table1[g3];
        delay_us(10);
}
void adc()
{
        uchar num;
        _ST=0;
        _OE=0;
        _ALE=0;
        _A=0;
        _B=0;
        _C=0;        //選擇第一個(gè)通道即IN0
        _ALE=1;        //上升沿,通道鎖存地址
        _ST=1;        //上升沿,對所有寄存器清零
        _ST=0;        //下降沿啟動轉(zhuǎn)換
        while(!_EOC);
        _OE=1;
        num=P3;
        _OE=0;
        display(num);
}

void main()
{
        TMOD=0x00;
        TH0=0xFF;
        TL0=0xFA;
        TR0=1;
        ET0=1;
        EA=1;
        while(1)
        {
                adc();
                delay_us(100);
        }

}
void Timer0() interrupt 2
{
        TH0=0xFF;
        TL0=0xFA;       
        _CLK=~_CLK;                        //時(shí)鐘信號
}



作者: 小貓貓愛吃魚    時(shí)間: 2018-9-6 11:11
你好!無法的軟件和硬件的問題
1、器件端口連接和程序,是否對應(yīng)
2、ADC0809 對時(shí)鐘有要求,是否滿足
3、靜態(tài)給數(shù)碼管幾個(gè)數(shù)據(jù),看顯示是否正常
4、處理問題的時(shí)候,采用排除法
作者: 九零后大將    時(shí)間: 2018-9-6 13:28
小貓貓愛吃魚 發(fā)表于 2018-9-6 11:11
你好!無法的軟件和硬件的問題
1、器件端口連接和程序,是否對應(yīng)
2、ADC0809 對時(shí)鐘有要求,是否滿足

ADC0809沒有輸出數(shù)據(jù)
作者: erli122    時(shí)間: 2018-9-6 16:08
我也在學(xué)習(xí) AD轉(zhuǎn)換 但是我用的是STC單片機(jī)自身帶的
作者: 九零后大將    時(shí)間: 2018-9-7 16:26
erli122 發(fā)表于 2018-9-6 16:08
我也在學(xué)習(xí) AD轉(zhuǎn)換 但是我用的是STC單片機(jī)自身帶的

我這邊單片機(jī)不帶ADC功能
作者: cjm82    時(shí)間: 2018-9-9 23:42
沒必要用0809了,0809價(jià)格貴,而且只有8位,還需要提供時(shí)鐘,占用IO口也多,現(xiàn)在隨便一款4塊錢一片的51片上集成ADC性能完爆0809
作者: 北極泥    時(shí)間: 2018-9-10 10:52
可以用一個(gè)簡單的14腳 IC 搞定,如 芯海 義隆 九齊 華潤 晟矽微 等等
作者: sxhwdz    時(shí)間: 2018-9-10 12:51
g2=sum/100%10;        //十分位,這條語句是錯的,正確的應(yīng)該是:g2=sum%100/10;
作者: zl2168    時(shí)間: 2018-9-12 07:45
本帖最后由 zl2168 于 2018-9-12 12:54 編輯

介紹你幾個(gè)參考案例,自己去對照研究。
實(shí)例81  ADC0808中斷方式A-D(ALE輸出CLK
實(shí)例81 ADC0808A-D( ALE輸出CLK,中斷方式).rar (54.32 KB, 下載次數(shù): 13)

實(shí)例82  ADC0808查詢方式A-D(ALE輸出CLK
實(shí)例82 ADC0808A-D( ALE輸出CLK,查詢方式).rar (54.04 KB, 下載次數(shù): 7)

實(shí)例83  ADC0808延時(shí)方式A-D(ALE輸出CLK
實(shí)例83 ADC0808A-D( ALE輸出CLK,延時(shí)等待方式).rar (54.13 KB, 下載次數(shù): 7)

實(shí)例84  ADC0808并行A-D(虛擬CLK
實(shí)例84 ADC0808A-D(虛擬CLK).rar (35.75 KB, 下載次數(shù): 7)

Proteus仿真一下,確認(rèn)有效。以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1.書中電路和程序設(shè)計(jì)有詳細(xì)說明,程序語句條條有注解。

作者: shang1205    時(shí)間: 2018-9-12 10:13
g2=sum/100%10;        //十分位,這條語句是錯的,正確的應(yīng)該是:g2=sum%100/10;
作者: 九零后大將    時(shí)間: 2018-10-30 10:31
shang1205 發(fā)表于 2018-9-12 10:13
g2=sum/100%10;        //十分位,這條語句是錯的,正確的應(yīng)該是:g2=sum%100/10;

多謝。。。。。。。。。。。。。
作者: 九零后大將    時(shí)間: 2018-10-30 14:53
zl2168 發(fā)表于 2018-9-12 07:45
介紹你幾個(gè)參考案例,自己去對照研究。
實(shí)例81  ADC0808中斷方式A-D(ALE輸出CLK)

謝啦,我再研究一下




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