A. 求一個中斷模式的ADC0809八通道循環采樣的程序,程序流程圖或proteus模擬
proteus裡面沒有ADC0809的模擬模型,
功能類似的元件是ADC0808,它有模擬模型,但是稍有差異,
確要模擬的話,就只能用ADC0808代替了。
B. 求助單片機煙霧報警模擬,報警器一直不亮,無法置零!
這個資料可以參考下,也用了adc0808,(淘()寶)搜:51單片機火災報警器(MQ2+DS18B20)proteus模擬和C程序資料
C. ADC0808無法正常轉換模擬量
程序一共兩句注釋。。。
顯示確定什麼問題,可以查查電源,是否穩定。
數碼管顯示,是刷新的問題。調整電阻的時候,電壓其實是一個波動變化的值,所以肯定會有數值的變動。根據你的顯示數值來看,電源估計不是很穩定。建議在每個IC電源腳加退偶電容。
D. 求教一個單片機ADC0808或者0809的AD轉換C語言程序,如果可以和PC機通信就非常感謝了
//------------------------------------------------------------
// ADC0809模數轉換
//ADC0809采樣通道3輸入的模擬量,轉換後結果顯示在數碼管上
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//ADC0809引腳定義
sbit OE=P1^0;
sbit EOC=P1^1;
sbit ST=P1^2;
sbit CLK=P1^3;
//延時
void Delayms(uint ms)
{
uchar i;
while(ms--)for(i=0;i<120;i++);
}
//顯示轉換結果
void Display_Result(uchar d)
{
P2=0xf7;
P0=LEDData[d%10];
Delayms(5);
P2=0xfd;
P0=LEDData[d%100/10];
Delayms(5);
P2=0xfd;
P0=LEDData[d/100];
Delayms(5);
}
// 主程序
void main()
{
TMOD=0x02;
TH0=0x14;
TL0=0x00;
IE=0x82;
TR0=1;
P1=0x3f;//選擇ADC0809通道3(0111)
//高4位設通道地址為0111
while(1)
{
ST=0;ST=1;ST=0;//啟動轉換
while(EOC==0); //等待轉換結果
OE=1; //允許輸出
Display_Result(P3); //顯示A/D轉換結果
OE=0; //關閉輸出
}
}
//T0定時器中斷給ADC0809提供時鍾信號
void Timer0_INT() interrupt 1
{
CLK=!CLK; //ADC0809時鍾信號
}
E. 用ADC0808進行AD轉換與顯示,畫出了硬體圖,軟體程序為什麼打人keil檢查結果有錯誤,求指點具體程序
P2 =1 << 2;P0 = SEG_CODE[ v % 10]; delay_ms(5)
P2 =1 << 1;P0 = SEG_CODE[ v % 100/10]; delay_ms(5)
P2 =1 << 0;P0 = SEG_CODE[ v % 100] &0x7F; delay_ms(5)
這三行的最後delay_ms(5)都缺少分號;