劉春元 王福奎
icl7135具有±20000個數的解析度,而且有bcd碼和stb選通訊號輸出,與微機介面十分方便,因此有很多文章介紹icl7135作為微機的高精度a/d介面電路。本篇文章與其他文章不同之處是利用icl7135的「busy」輸出訊號與微控制器mcs-51銜接。
在小型化儀表中,應該以最少的元件完成盡可能多的任務,8031需外接eprom,剩下的16個i/o口是十分寶貴的。如果利用icl7135的bcd碼和stb選通訊號就要佔5個i/o口,而利用icl7135的「busy」端,只要乙個i/o和8031內部的乙個定時器就可以把icl7135的資料送入微控制器。
為了便於讀者理解,首先介紹icl7135的「busy」端的功能。icl7135是以雙積分方式進行a/d轉換的電路。每個轉換週期分為三個階段:
[1].自動調零階段
[2].被測電壓積分階段
[3].對基準電壓進行反積分階段
以輸入電壓vx為例,其積分器輸出端(icl7135的4腳)的波形如圖1所示。「busy」輸出端(icl7135的21腳)高電平的寬度等於積分和反積分時間之和。icl7135內部規定積分時間固定為10001個時鐘脈衝時間,反積分時間長度與被測電壓的大小成比例。如果利用微控制器內部的計數器對icl7135的時鐘脈衝計數,利用「busy」作為計數器門控訊號,控制計數器只能在busy為高電平時計數,將這段busy高電平時間內計數器的內容減去10001,其餘數便等於被測電壓的數值。
圖2是mcs-51定時器的邏輯框圖,如果我們把t0規定為模式1定時器方式。定時器控制端(8031的12腳)接icl7135的「busy」端。這樣就能實現計數器由「busy」控制對微控制器1/12時鐘頻率的計數要求。
圖3是icl7135與微控制器mcs-51通過「busy」介面的電路圖。若8031的時鐘採用6mhz晶體,在不執行movx指令的情況下,ale是穩定的1mhz頻率,經過4分頻可得到250khz的穩定頻率,傳給icl7135時鐘輸入端,使icl7135的轉換速率為每秒6.25次,選取這一轉換速率,一方面照顧icl7135a/d轉換的精度,另一方面為了盡量少占用8031的資源。定時器為16位計數器,最大計數值65535。在6.25次/秒轉換速率條件下,滿度電壓輸入時,busy寬度為30001個時鐘脈衝。再結合圖1和圖2可知,8031內部定時器的輸入頻率是500khz,比icl7135的時鐘頻率(250khz)高1倍,在滿度電壓輸入時,定時器計數值為30001x2=60002。不超過定時器最大值。在「busy」高電平期間定時器的數值除以2,再減去10001,餘數便是被測電壓的數值。具體程式如下:
MCS 51硬體結構
具有cpu,ram,rom,定時 計數器以及io口等基本功能 按功能可分為三類 資料匯流排,位址匯流排和控制匯流排.aluacc 執行加減運算 b執行乘除運算.乘法 乘數取自a和b,結果a存低位元組,b存高位元組 除法 a存被除數,b存除數 結果商存a,餘數存b 暫存器暫存進入運算器前的資料 pcs...
MCS 51 延時程式
該 為keil實際除錯分析後所得出結論,因計時仍為粗略計時,故採用軟體定時時應當採用毫秒級定時並且輸入變數x值不應過大,防止出現較大誤差 12mhz stc y1指令集 void delay1ms uint x 該函式宣告佔4個機器週期 12mhz stc y1指令集 void delay1ms u...
MCS 51微控制器基礎
1.data,idata,xdata,pdata 的區別 data 固定指前面0x00 0x7f的128個ram,可以用acc直接讀寫,速度最快,生成的 也最小。idata 固定指前面0x00 0xff的256個ram,其中前128和data的128完全相同,只是訪問方式不同。i用類似c中的指標方式...