|
#include <reg52.h>
sbit ADDA=P1^0;//DA ADDB、 ADDC 為AD芯片的模擬信號輸入選擇引腳
sbit ADDB=P1^1;//ADDC ADDB、ADDA-000 說明模擬信 號從INO引腳進入
sbit ADDC=P1^2;
sbit ALE=P1^3;
sbit EOC=P1^4; //指明模數轉換是否結束引腳, =1, 說明轉換結束
sbit OE=P1^5; //轉換而得的數字信 號輸出控制引腳,=1,允許輸出
sbit START=P1^6; //模擬信號轉為數字信號的啟動控制引腳,下降沿啟動AD轉換
void Delay(unsigned char t)
{ while(t--);
}
void Adc08O9Convert()
{ unsigned char temp;
ADDA=ADDB=ADDC=0; //選擇模擬信號進入通道為INO
ALE=1;
START=0; //start的.上升沿清空ADC0809內部寄存器,下降沿啟動轉換
Delay(10);
START=1; //制造上升沿,清空ADC0809內部的寄存器;同時ALE=1,鎖存地址
Delay(10);
START=0; //制造 下降沿,啟動AD轉換
while(EOC==0);//等待轉換結束,當EOC=1時轉換結束
OE=1; //轉換結束, 打開輸出端鎖存器,將轉換所得數據送上數據總線
P3=0XFF;
temp=P3;//將數據讀取到臨時變量temp中
}
void main()
{
while(1)
{
Adc0809Convert();
}
}
復位和晶振是我后來檢查的時候斷開的,一直無法轉換出數字信號,但是發現不了問題。也問了一些師兄,還是不知道怎么回事的。
|
|