(哈爾濱工程大學 信息與通信工程學院,哈爾濱 150001)
隨著中國制造2025的提出,電子產品受到了國家的高度重視,智能化發展趨勢已成定局。如今電子產業發展迅猛,電子信息類從業者對電阻電容等參數的測量需求與日俱增。目前市面上的電阻電容測量儀存在操作復雜,精度不足,成本高昂等問題,如何提高此類產品的自動化程度、測量精度,減小體積,降低成本成為了研究的主要方向。
本文介紹了一種采用STC89C52單片機作為主控芯片[1],使用高精度16位ADC LTC1864對待測電阻進行測量,測量范圍0至3 MΩ,單片機控制繼電器實現量程的自動轉換;利用NE555芯片分別與100,100 k,10 M等電阻組成多個多諧振蕩器,采集振蕩頻率[2],完成對5 pF到500 μF電容的測量。數據通過LCD1602顯示出來,并顯示相應提示語句,超出量程時,顯示屏提示報警。電阻測量時將待測電阻插入插槽,即可顯示讀數;電容測量時,只需判斷其大致類型屬于pF、nF、μF哪一種,即可顯示讀數;還增設了二極管導通判斷功能。實驗結果表明該系統內各量程電阻測量精度可達0.09%,各量程電容測量精度可達1%。本測量儀具有自動化水平高,測量精準,使用簡便,成本低等特點,解決了同類型產品價格高昂,精度不準,操作繁瑣等問題。
本設計以STC89C52單片機作為主控芯片,由顯示模塊、按鍵模塊、電容測量模塊、電阻測量模塊、ADC模塊、二極管模塊和量程轉換模塊組成。
通過按鍵模塊中的復位按鍵、模式按鍵,單片機接收到使用者發出的控制信息,憑借按鍵值選擇測量模式,當電阻測量時,電阻測量模塊采集的電壓值模擬量經過ADC模塊轉化后得到數字量,傳遞給單片機[3],與此同時單片機控制量程轉換模塊,驅動三極管使繼電器導通,完成量程的自動轉換;當電容測量時,單片機對電容測量模塊中多諧振蕩器的振蕩頻率進行計數;測試結果輸出到LCD1602顯示。
系統電路方框圖如圖1所示。
圖1 系統電路方框圖
主控模塊采用由STC89C52組成的最小系統,包括復位電路,時鐘電路。STC89C52采用了低功耗、高性能的CMOS8位微控制器,具有8 k字節的系統可編程Flash存儲器,512字節隨機存取存儲器,4個8位雙向IO口,看門狗定時器,內置4 KB EEPROM,MAX810復位電路;可調用3個16 位定時器/計數器,4個外部中斷,以及一個7向量4級中斷結構完成復雜操作;利用全雙工串行口進行數據傳輸、外設擴展,最高運作頻率可達35 MHz[4]。
在STC89C52單片機中,要使單片機復位需要在晶振工作時,在RST引腳上保持至少兩個機器周期的高電平信號,為滿足本設計上電自動復位的設計要求,本設計將VCC通過10 μF電容連接至RST引腳,同時將RST引腳經過500 Ω電阻和地相連,利用10 μF電容充電特點,使RST引腳電壓慢慢減小,完成本設計上電自動復位的要求。
本設計時鐘電路采用內部時鐘方式,將12 M晶振通過19腳、20腳與單片機內部的高增益反向放大器相連,同時接入30 pF的微調電容構成一個穩定的自激振蕩器電路。
顯示模塊采用LCD1602,1602 采用標準的16腳接口,其管腳說明如下。
第1腳:VSS為地電源。
第2腳:VDD接5 V正電源。
第3腳:V0為LCD顯示器的對比度調整端,對比度高低與該腳電壓大小成負相關,對比度設置的不恰當會影響LCD數據顯示,使用時可以通過一個10 k的電位器調整對比度。
第4 腳:RS為寄存器選擇端,高電平時選擇數據寄存器向LCD1602傳輸數據、低電平時選擇指令寄存器對LCD1602進行指令控制。
第5腳:RW為讀寫信號線,與單片機的一個IO口連接,當RW為低電平時,進行寫操作;當RW為高電平時,進行讀操作。可與RS端配合,進行更復雜操作,如果不需要進行讀取操作,可以直接將其接VSS。
第6 腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。
第7~14腳:D0~D7為8位雙向數據線。
第15~16腳:這兩個引腳為LCD1602背光端,在仿真中通常隱藏。
LCD1602與單片機P0.0--P0.7及P2.0,P2.1和一排阻連接,用于從單片機接收控制數據及顯示數據;在LCD1602的3腳連接一10 k滑動變阻器,用于修改對比度[5]。
按鍵控制模塊中的模式選擇按鍵由一按鍵和一10 k電阻組成,其SW端連接至單片機P3.3腳。默認測量電阻,當該按鍵按動,即切換至電容測量。
主控模塊原理圖如圖2所示。
圖2 主控模塊
本設計采用LTC1864作為ADC模塊的主要芯片,利用該芯片16位串行數據傳輸的特點,配合5 V電壓,可達到5/65535的測量分辨率[6]。該芯片采用單5 V電源供電,可在-20~ +50 ℃的溫度范圍內工作,最大采樣率為250 ksps,隨著采樣速率的降低,供電電流減小,低功耗符合本設計要求。
LTC1864共8個引腳,在proteus軟件中僅體現6腳,其1腳參考電壓端接5 V VCC;2腳接收電阻測量模塊的數據;3端接地,與1端中間連接0.1 μF電容隔直;5(CONV)、7(SCK)、8(SDO)腳分別與單片機1、2、3腳連接,用于時鐘及傳送數據。
ADC轉換模塊原理圖如圖3所示。
圖3 ADC轉換模塊
本系統的電阻測量模塊由基準電阻、三極管、穩壓二極管、繼電器、反相比例運算放大器、電壓跟隨器和待測電阻組成。
反相比例運算放大器和電壓跟隨器中的運算放大器均采用OP07芯片,OP07是雙極性的運算放大器集成電路,具有低噪聲、非斬波穩零、輸入偏置電流低、開環增益高等特點,在高增益的測量設備和放大微弱信號傳感器上廣為適用。
不同于以往電阻測量設計中的比例測量法[7],本系統中反相比例運算放大器承擔了采集待測電阻電壓的主要任務,反相比例運算放大器沒有共模輸入信號,反相端虛地,輸出電阻近似為零,大大減少了電阻測量中產生的誤差。
如圖4所示,當選擇至電阻測量模式時,RX待測電阻與基準電阻從大到小依次連接,直到單片機發出量程合適信號為止。當繼電器導通時,在U6處的反相比例放大器將采集到待測電阻的負電壓值,在U4處的1:1反相放大器將電壓值由負值轉換為正值,由于電壓跟隨器具有輸入阻抗高,輸出阻抗低的顯著特點,最后在輸出級通過U41處的電壓跟隨器將電壓值傳遞給ADC模塊中的 LTC1864,進行模數轉換。
量程控制方面利用單片機控制S1,S2,S3處三極管基極的高低電平,從而控制繼電器某一路導通與否,達到自動轉換量程目的,其中STC89C52單片機端口的輸出電流很小,不能直接驅動繼電器,所以利用三極管進行放大,再用放大的信號去驅動繼電器[8]。
本設計所用繼電器為歐姆龍公司C6L系列的信號繼電器,具體型號為G6L-1F-5 V。該繼電器體積小,可高密度安裝,減小了測量儀器體積,便于攜帶;穩定性極強,可保證觸點快速咬合,減少故障的發生;接觸電阻為100 MΩ,消耗功率僅為180 mW,符合本設計長續航的設計要求。
電阻測量模塊原理圖如圖4所示。
圖4 電阻測量模塊
本系統使用STC89C52單片機以及NE555芯片構成的多諧振蕩電路進行電容測量[9]。NE555是一種多用途的數字-模擬混合集成電路,成本低,性能可靠,只需要外接幾個電阻、電容,就可以實現單穩態觸發器、多諧振蕩器及施密特觸發器等脈沖產生與變換電路。
在系統中,NE555芯片分別與100,100 k,10 M電阻組成多諧振蕩器,在直接反饋無穩態的狀態下工作,此時555芯片會輸出一定頻率的方波,其頻率的大小與被測量的電容之間的關系是:
以往的研究提示,不同年齡及不同臨床分期陰莖癌患者的復發和轉移存在差異[8-9]。本研究同樣發現,60歲以上的陰莖鱗狀細胞癌患者術后復發和轉移的發生率明顯高于60歲以下的患者(43.4% vs 77.8%)。臨床分期為Ⅲ和Ⅳ期的患者,術后復發和轉移的發生率明顯高于Ⅰ和Ⅱ期的患者(100.0% vs 53.7%)。上述結果說明不同年齡和臨床分期的患者其預后和生存期有明顯差異,也提示臨床上應對陰莖鱗狀細胞癌患者進行早期診斷和早期干預,尤其對于老年(>60歲)和臨床分期較晚的患者(Jackson分期Ⅲ和Ⅳ期)術后應及時進行復發或轉移的監測[10]。
F=0.722/(RC)
(1)
式中,F為振蕩頻率;R為所選檔位電路的阻值;C為所要測量電容值。
如果電阻值確定,使用單片機定時一秒鐘,用單片機的計數器測量出相應方波的頻率,就能得到電容的大小。
NE555 IN端連接單片機P3.5,μF端連接P2.5,nF連接P2.6,pF連接P2.7。
電容模塊中的換擋電路由3個擋位組成,將電阻串接在NE555芯片3,6腳之間,通過改變電阻值進行擋位的調整,并使用LED燈提示。
其中C為待測電容,根據公式(1)。
當SW1閉合時,電阻R的值是100歐姆,公式改寫為:
F=0.00722/C=7220/(C*1 μF)
(2)
該檔位可以測量μF級別的電容。
同理,當SW2閉合時,電阻R的值是100 k歐姆,此時多諧振蕩器中RC的數量級不變,振蕩頻率仍在單片機可測范圍內,由此可以測量nF級別的電容。
同理,當SW3閉合時,電阻R的值是10 M歐姆,由此可以測量pF級別的電容。
電容測量模塊原理圖如圖5所示。
圖5 電容測量模塊
實物制作時,需考慮采用何種供電方式如何供電,本設計大部分為典型數字元器件,供電要求都為+5 V或-5 V,由于基準電壓決定著電阻測量模數轉換的精度,其中LTC1864對供電要求尤其嚴格。
LM385系列為微功率二端帶隙穩壓器二極管,具有非常低的動態阻抗、低噪聲、穩定性強等特點,可隨時間和溫度的變化而穩定工作,使用方便,用途廣泛。
本設計采用9 V方電池,通過電壓基準芯片LM385-5V0得到+5.00 V基準電壓,5 V電壓通過電源極性轉換器ICL7660,產生-5 V電壓,從而實現OP07的雙極性供電要求。
系統程序設計采用模塊化設計方法[10]。整個程序由主程序模塊、ADC轉換模塊、電阻測量模塊、電容測量模塊、延時模塊,計數器模塊、定時器模塊、中斷模塊、LCD顯示模塊等模塊組成。其中最主要的是主程序、ADC轉換模塊、電阻測量及電容測量程序設計。
當系統上電之后,單片機開始初始化操作,默認按鍵值為1進行電阻測量,按動一次mood模式按鍵后,按鍵值改變為2進行電容測量,而二極管模式上電即運行,不需程序控制,僅需將待測二極管按提示插入相應位置,若二極管導通,即蜂鳴器發聲提醒。
主程序流程圖如圖6所示。
圖6 主程序流程圖
在ADC LTC1864子程序中,需先將CONV端置高電平,打開ADC轉換,再將CONV置低,并延時幾微秒,判斷16位采樣值是否為1,再將該數據傳入單片機中。
LTC1864 子程序流程圖如圖7所示。
圖7 16位ADC LTC1864子程序流程圖
電阻測量子程序是通過調用ADC采樣程序,對所測電阻范圍進行大致估計,同時依據ADC最大檔位采樣后的值進行檔位選擇,將繼電器換到合適的測量檔位,為減小誤差,五次調用A/D采樣子程序五次讀取A/D采樣值取平均值,經過數據處理,最后將數據顯示在LCD1602上。
交流電壓通過整流、濾波得到的直流電壓會因濾波不充分,含有剩余的交流成分;直接使用電池供電,也會因負載波動而產生波紋。由于存在波紋電壓,基準電壓源波動,從而會影響到LTC1864的基準電壓,導致電阻測量產生誤差。
本設計在電阻測量數據處理上引入數據結構的思想,利用LTC1864轉換速度快的特點,建立數組短時間存儲大量電阻測量數據,使用快速排序法,任取其中一個測量值作為中心,所有比它大的值一律前放,所有比它小的值一律后放,從而形成左右兩個子表,在各子表重新選擇中心值,依此規律調整,直至每個子表元素只剩一個,完成對電阻測量數據的大小排序。該序列的中心值即為最接近實際值的測量結果。
該快速排序法每趟可確定多個元素位置,并且成指數增加,可十分快速地完成排序,不會對實際使用產生任何影響。
電阻測量流程圖如圖8所示。
圖8 電阻測量程序框圖
電容測量子程序是利用單片機的定時計數器,配合中斷來完成。STC89C52單片機內部有兩個定時/計數器T0和T1,其基本功能都是加1。通過設定單片機寄存器數值,可利用定時器進行定時;利用計數器對外部事件下降沿計數。我們使用定時器定時一秒鐘,計數器在此期間內增加的數值就是555多諧振蕩器方波的大小,將得到的頻率依據公式(1)處理,最后將數據顯示在LCD1602上。
電容測量流程圖如圖9所示。
圖9 電容測量程序框圖
為了測試該智能電阻電容測量儀的運作情況及測量精度,先在proteus軟件中畫出本設計仿真電路圖,再利用proteus軟件將待測電阻電容參數修改,得到仿真測試數據[11]。
仿真環節結束后進行實物制作測試環節,通電本系統開始工作,首先將想測量的電阻電容插入相應的槽內,默認先開始進行電阻測量,按動mood模式鍵后,進行電容測量,再按動RC復位鍵,即可又回到電阻測量。二極管導通測量則獨立于電阻電容測量,無需按鍵控制,直接將二級管放在相應位置即可,導通即會蜂鳴器發聲。
電阻、電容的仿真結果分別如表1表2。
電阻、電容的實測結果分別如表3表4。
表1 電阻測量仿真數據 Ω
表2 電容測量仿真數據
表3 電阻實測數據
Ω
表4 電容實測數據
實驗結果分析:
從表1和表2可知,電阻仿真精度最高可達0.09%,電容測量精度在1%以內。操作中無需手動切換檔位,實現了量程的自動轉換。
在實際電阻測量環節中選用高精度千分之一誤差的電阻500,5 k進行測試,從表3可知,本系統在電阻實測中依然具備高精度的特點;在電容實測時由于待測電容本身精度不足,造成表4中偶爾測量誤差略大。
此外,由于實際制作中各元件間難免存在干擾,其中干擾對電容測量的影響最大,針對此問題,在得到大量電容仿真數據的基礎上,通過電容實測值與仿真值的對比校正,依據最小二乘法,估計干擾比例系數,再對程序進行修改,使電容測量誤差大大減小。另一方面,由于電源本身輸出電壓存在微小波動,也會導致實測值與仿真值稍有不同。
本智能電阻電容測量儀是以STC89C52單片機為操作核心,在電阻測量方面采用LTC1864高精度十六位ADC采集電壓計算電阻值,使電阻測量精度大大提高,其中仿真精度可達0.09%,通過單片機控制繼電器實現電阻的量程自動轉換,操作簡便;在電容測量方面使用NE555芯片分別與100,100 k,10 M電阻組成多諧振蕩器,通過單片機計數器計算振蕩頻率,實現寬量程電容的測量,操作簡單,精度高。該電阻電容測量儀操作界面僅有兩個按鍵,大大簡化了操作流程,易于上手。除此之外,該電阻電容測量儀所采用的元件結構簡單,造價低廉,總成本約為50元,遠低于同功能相似產品,易于推廣。