電子工程網(wǎng)
標題:
ICL7135采樣問(wèn)題
[打印本頁(yè)]
作者:
eqgyzgs
時(shí)間:
2014-4-4 14:57
標題:
ICL7135采樣問(wèn)題
想用ICL7135采集電壓,單獨控制AD的時(shí)候程序沒(méi)有問(wèn)題,但是程序聯(lián)調的時(shí)候就不正確了,在>2V輸入時(shí),單片機的計數器無(wú)法計數到20000,目前最慘的時(shí)候只有5000左右,聯(lián)調的時(shí)候,低電壓的計數倒是沒(méi)有問(wèn)題,這是怎么回事?編譯用的是KEIL。
以下是AD部分代碼,AD的時(shí)鐘由T0定時(shí)器提供,控制用的是查詢(xún)模式,用中斷模式會(huì )莫名的丟失T1計數器的計數值,這點(diǎn)我也一直沒(méi)想明白。MCU用的是STC12C5A60S2,輸入晶振為8MHz,AD時(shí)鐘為1MHz,下面的程序系統時(shí)鐘是2MHz,但去掉時(shí)鐘分頻,讓單片機跑到8MHz,AD跑1MHz時(shí),計數器的計數值始終是0...
void sys_init()
{
/*系統時(shí)鐘設置*/
CLK_DIV = 0x02; //4分頻 = 2MHz
/*外設驅動(dòng)時(shí)鐘設置*/
TMOD |= 0x02;
TL0 = 0xff;
TH0 = 0xff; //2分頻
AUXR |= 0xc0; //T0,T1工作在1T模式下
WAKE_CLKO |= 0x01; //允許T0輸出時(shí)鐘
TR0 = 1;
/*PCA軟件定時(shí)器設置*/
CCON = 0;
CMOD = 0x09; //系統時(shí)鐘,2MHz,CF中斷使能
CCAPM0 = 0x49; //PCA軟件定時(shí)模式,使能中斷
/*啟用P4口*/
P4SW = 0xff;
/*開(kāi)啟總中斷*/
EA = 1;
}
/*
* ADC控制函數
*/
void ADC_init()
{
TMOD |= 0x50; //16位計數器
TL1 = 0;
TH1 = 0;
}
void ADC_sample(uint sample_addr[],uchar sample_pol_addr[],uchar times)
{
uchar i;
sample_start:
for(i=0;i
{
TL1 = 0;
TH1 = 0;
while(!ADC_BUSY) _nop_();
TR1 = 1;
while(ADC_BUSY) _nop_();
TR1 = 0;
ADC_POL = 1;
sample_pol_addr = ~ADC_POL;
sample_addr = TH1 * 256 + TL1;
if(sample_addr < 10001) sample_addr = 0;
else sample_addr = sample_addr - 10001; //正向積分10000個(gè)時(shí)鐘,關(guān)閉定時(shí)器1個(gè)時(shí)鐘
}
}
單獨調試上面這段程序和LCD顯示,完全沒(méi)問(wèn)題!_(:з」∠)_
再付一個(gè)全程序,里面有硬件接口示意圖:
LCR.zip
(4.73 KB)
2014-4-4 14:57 上傳
點(diǎn)擊文件名下載附件
下載積分: 積分 -1
作者:
pcbkey
時(shí)間:
2015-1-31 18:52
過(guò)來(lái)學(xué)習一下
歡迎光臨 電子工程網(wǎng) (http://selenalain.com/)
Powered by Discuz! X3.4
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页