?? ad.txt
字號:
//輸入通道可采用(1)單端輸入(2)差分輸入。可在初始化程序中完成
//輸入通道跟蹤方式采用(1)低功耗方式,即啟動信號發出后,固定的3個SAR CLK的跟蹤時間。這樣便于隨時換道,軟件不用延時
// (2)一直跟蹤方式,啟動信號發出后,直接轉換。所以換道后,軟件需延時一段時間之后,再發出啟動信號
//AD采集子程序的時間:跟蹤時間(3個SAR CLK或固定的軟件延時)+16個SAR CLK的轉換時間+運算時間
//AD采集的精度與SAR CLK(由system clk分頻得到)的關系不大,但SAR CLK過高,會影響采集精度
//AD采集的溫度穩定性(零點漂移)不好。處理方法:加CMOS開關減零點漂移
//ADC的建立時間:要注意信號的內阻,參考技術手冊
//ADC可以有多種啟動方式:手動、定時、外部信號/
//ADC電路本身有增益調節,但如果結合DAC電路,可得到更大范圍的增益控制
#include<WYWCOMM.H>
#include<C8051F020.H>
//IO口定義
//此模塊調用其它模塊的外部變量和函數的聲明(此程序無)
//此模塊的宏定義(常數等)
//此模塊必要的庫函數包含(include)
//全局變量(靜態或一般)的定義(此程序無)
//以下為函數定義
//--------------------------------------------------------------------------------------
void v_IniC8051f020ADC0_f(void) //運行時間:
//功能: c8051f020的ADC0的初始化,功能查看下面程序和芯片技術資料
{
AMX0CF=0x00;//全部單端輸入
AMX0SL=0x00;//開始在通道0
ADC0CF=0xf8;//轉換時鐘分頻系數為32(最大),增益為1
ADC0CN=0xc0;//11000000b 低功耗模式(3個SAR clk的跟蹤時間);啟動模式:寫1到AD0BUSY;數據右對齊
REF0CN=0x03;//00000011b ADC0電壓基準取自VREF0引腳,ADC1電壓基準取自VREF1引腳,內部電壓基準VREF輸出使能,溫度傳感器關閉
// 溫度傳感器關閉
}
//--------------------------------------------------------------------------------------
int16 s16_DataC8051f020ADC0_f(uint8 chanel)
//功能:chanel為通道地址,范圍0-8
// 返回值:通道對應的16位有符號采集值(實際12位)
//運行時間:至少19個SAR CLK,絕對時間與晶振和分頻系數有關(2MHZ且分頻系數為32(最大)時,時間約為304us)
{
int16 shuju;
AMX0SL=chanel;
AD0INT=0;
AD0BUSY=1;
while(AD0INT==0);
AD0INT=0;
shuju=ADC0;
return shuju;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -