基于PIC16F628單片機的便攜式電子秤
——
目前,臺式電子秤在商業(yè)貿易中的使用已相當普遍,但存在較大的局限性:體積大、成本高、需要工頻交流電源供應、攜帶不便、應用場(chǎng)所受到制約?,F有的便攜秤為桿秤或以彈簧、拉伸變形來(lái)實(shí)現計量的彈簧秤,居民用戶(hù)使用的基本是桿秤。彈簧盤(pán)秤制造工藝要求較高,彈簧的疲勞問(wèn)題無(wú)法徹底解決,一旦超過(guò)彈簧彈性限度,彈簧秤就會(huì )產(chǎn)生很大誤差,以至損壞,影響到稱(chēng)重的準確性和可靠性,只是一種暫時(shí)的代用品,也被列入逐漸取消的行列。多年來(lái),人們一直期待測量準確、攜帶方便、價(jià)格低廉的便攜式電子秤(袖珍電子秤)投放市場(chǎng)。
基于電子秤的現狀,本項目擬研究一種用單片機控制的高精度智能電子秤設計方案。這種高精度智能電子秤體積小、計量準確、攜帶方便,集質(zhì)量稱(chēng)量功能與價(jià)格計算功能于一體,能夠滿(mǎn)足商業(yè)貿易和居民家庭的使用需求。
本項目研究的便攜式電子秤主要技術(shù)指標為:稱(chēng)量范圍0~15kg;分度值0.01kg;精度等級Ⅲ級;電源DC1.5V(一節5號電池供電)。主要功能有自檢、去皮、計價(jià)、累計、單價(jià)設定、計量單位選擇、過(guò)載報警和弱電壓指示等。儀器若不進(jìn)行稱(chēng)量操作,5分鐘后自動(dòng)進(jìn)入休眠模式,降低電源消耗。
儀器的測量原理
本文采用電容傳感器進(jìn)行稱(chēng)重,有別于目前市場(chǎng)上使用的應變式稱(chēng)重傳感器。應變式稱(chēng)重傳感器設計成本很高,難以普及,而電容傳感器具有結構簡(jiǎn)單、靈敏度高、動(dòng)態(tài)特性好、無(wú)接觸測量、分辨力強、適應性強和抗干擾力強等優(yōu)點(diǎn),最大特點(diǎn)是價(jià)格便宜,但它的主要缺點(diǎn)是電容量一般很小,僅幾十至幾百皮法,甚至只有幾個(gè)皮法,環(huán)境變化將影響電容量發(fā)生變化,因而應用受到一定程度的限制。
在電子稱(chēng)重技術(shù)的應用中,可將電子線(xiàn)路緊靠傳感器的極板以減小電纜分布電容的影響,利用微處理技術(shù)對電容式傳感器的溫度特性和非線(xiàn)性特性進(jìn)行補償。 本文采用變極距式電容傳感器,它由一對距離可變的平行極板構成。兩板以彈性元件相連,當向一活動(dòng)板施加拉力時(shí),兩極板距離發(fā)生變化,從而改變了平板電容器的電容量。經(jīng)電容-頻率轉換電路后,電路輸出頻率與電容成正比。被測物重量與電容量改變成正比,頻率的改變即頻差與在傳感器上所加重物的重量成正比,因而變極距式電容傳感器有良好的線(xiàn)性度。測質(zhì)量時(shí)只須測出電容的變化量。然而,電容值的直接測量非常困難。因此,系統將不易測量的電容變化量轉換成易于測量的頻率信號的變化量,并采用高穩定參考電容生成參考頻率信號,消除系統誤差,實(shí)現高精度測量。電容-頻率轉換框圖如圖1所示。兩路頻率分別送入后級處理電路,經(jīng)過(guò)數據選擇、帶通濾波傳入單片機系統。

圖1 電容頻率轉換框圖
硬件電路設計
儀器的構成
本文研究的便攜式電子秤硬件系統由電源、電容傳感器、高穩定參考電容、ICM7556定時(shí)器、MAX325多路開(kāi)關(guān)、PIC16F628單片機系統、控制鍵盤(pán)、LCD顯示等組成。測量系統硬件電路框圖如圖2所示。

圖2 儀器結構框圖
PIC16F628的主要功能特點(diǎn)
PIC16F628單片機是Microchip公司的PIC系列單片機之一。PIC 8位單片機系列是該公司推出采用RISC(Reduced Instruction Set Computer)結構的嵌入式控制器,具有執行速度高、功耗低、體積小巧、工作電壓低、驅動(dòng)能力強、品種豐富等優(yōu)越性能。其總線(xiàn)結構采取數據總線(xiàn)和指令線(xiàn)分離獨立的哈佛(Harvard)結構,具有很高的流水處理速度。與同類(lèi)8位單片機相比,程序存儲器可節省一半,指令運行速度可以提高4倍左右。此外,PIC系列單片機集成了一系列外部功能模塊,例如:上電復位電路、I/O引腳上拉電路、看門(mén)狗定時(shí)器等。這樣,在組成系統時(shí),就可以最大限度的簡(jiǎn)化電路、降低成本,提高系統的可靠性。
PIC16F628單片機具有直接驅動(dòng)液晶顯示器的能力。輸入端口具有跳變中斷能力,能方便地接收按鍵輸入,另有多級外部及內部中斷,可通過(guò)程序禁止主晶振振蕩而使單片機進(jìn)入低功耗狀態(tài),適合用于以電池作能源、需液晶驅動(dòng)的應用場(chǎng)合。
PIC16F628單片機的工作電壓范圍為3.0V~5.5V,時(shí)鐘頻率為DC~20MHz,內部具有1K 14(位)片內程序存儲器,224字節通用RAM,128字節EEPROM,15根雙向I/O線(xiàn)和10個(gè)中斷源,并帶有一個(gè)16位定時(shí)器/計數器(TMR1)和一個(gè)8位定時(shí)器/計數器(TMR0)。
PIC16F628的精簡(jiǎn)指令集僅有35條指令,除了地址分支跳轉指令(GOTO、CALL)為雙周期指令外,其余皆為單周期指令,執行速度可調范圍寬(DC~200ns),具有8級硬件堆棧,3種尋址方式(直接、間接、相對)。
PIC16F628的15個(gè)I/O口均是獨立雙向可編程的,并可直接驅動(dòng)LED數碼管,最大拉電流和灌電流分別為25mA和20mA。TMR0帶有8位可編程預分頻器,可進(jìn)行1~256分頻。
PIC16F628信息處理單元電路的設計
PIC16F628是整個(gè)系統的信息處理核心。它需要完成鍵盤(pán)輸入檢測、采樣通道選擇、信號分析處理、信息顯示、欠電報警和過(guò)載報警等多種智能功能。單片機信息處理單元電路如圖3所示。圖中采用的MAX325是MAXIM公司生產(chǎn)的精密單電源SPST(single-pole single-throw)模擬開(kāi)關(guān),它由一個(gè)常開(kāi)型開(kāi)關(guān)和一個(gè)常閉型開(kāi)關(guān)組成,具有低功耗、低導通電阻等特點(diǎn)。該芯片兩控制端(IN1、IN2)均連接CPU的RB3引腳,系統兩路頻率信號輸入通道的選擇由CPU控制。
低電壓檢測信號通過(guò)芯片6腳(INT)輸入,低壓時(shí)產(chǎn)生外部中斷。鍵盤(pán)檢測信號與芯片10~12腳(RB4~RB6)相連,有鍵按下,就產(chǎn)生RB口電平變換中斷,在中斷服務(wù)程序中,掃描鍵盤(pán),取得鍵值。顯示緩沖區的寫(xiě)入依靠芯片中通用同步/異步收發(fā)器(USART),顯示器LCD的數據端和時(shí)鐘端分別與芯片的7腳(DT)、8腳(CK)相接。

圖3 信息處理單元電路
軟件設計
作為便攜式儀器,系統在整個(gè)設計過(guò)程中遵循簡(jiǎn)化硬件電路,以軟件設計代替硬件的設計原則,最大限度的減小儀器的體積和重量,因而系統的軟件實(shí)現功能豐富。軟件設計采用模塊化結構,主要有人工校正模塊、欠電報警模塊、鍵盤(pán)檢測模塊、采樣通道切換模塊和數據處理模塊。
系統主程序
系統主程序控制單片機系統按預定的操作方式運行,它是單片機系統程序的框架。系統上電后,對系統進(jìn)行初始化。初始化程序主要完成對單片機內專(zhuān)用寄存器的設定,單片機工作方式及各端口的工作狀態(tài)的規定。系統初始化之后,進(jìn)行計數器讀取、零點(diǎn)校正、過(guò)載檢測等工作。
主程序流程圖如圖4所示。

圖4 系統主程序流程圖
中斷服務(wù)程序設計
系統程序設計中,鍵盤(pán)檢測產(chǎn)生外部中斷,采樣通道產(chǎn)生內部定時(shí)中斷。在中斷優(yōu)先級的問(wèn)題上,因為PIC16F628單片機只有一個(gè)中斷入口地址0004h,每種中斷都要由此進(jìn)入中斷程序,所以中斷程序開(kāi)始現場(chǎng)保護后,要進(jìn)行各種中斷標志位的順序檢測和判斷。當判斷到中斷標志位時(shí),轉到相應的中斷服務(wù)子程序中,根據檢測標志位的順序,定義中斷優(yōu)先級,先判斷定時(shí)中斷優(yōu)先級最高,其次是鍵盤(pán)檢測中斷。
中斷服務(wù)程序流程圖如圖5所示。

圖5中斷服務(wù)程序流程
采樣通道切換模塊,系統傳感器單元含有兩個(gè)電容-頻率轉換電路,兩個(gè)電路輸出信號的獲取均通過(guò)單片機PIC16F628的計數器1實(shí)現。利用定時(shí)器0的定時(shí)中斷功能,每隔0.1s切換一次振蕩工作電路及模擬開(kāi)關(guān)MAX325通道。
定時(shí)器0中斷服務(wù)程序流程圖如圖6所示。

圖6 定時(shí)器0中斷服務(wù)程序流程圖 圖7 鍵盤(pán)中斷服務(wù)程序流程圖
鍵盤(pán)檢測模塊,系統中按鍵組合成鍵盤(pán)后排列成3 5矩陣形式,采用RB口中斷的方式檢測鍵盤(pán)中有無(wú)按鍵。對各列線(xiàn)都送以低電平(稱(chēng)為"全掃描"),若有鍵按下,則產(chǎn)生中斷。進(jìn)入中斷程序后,通過(guò)"逐列掃描"(逐列送低電平),查看各行線(xiàn)電平值來(lái)鑒別被按下的鍵,返回鍵值。對按鍵的具體處理由主程序中鍵盤(pán)處理子程序完成。鍵盤(pán)檢測中斷服務(wù)程序流程圖如圖7所示。
軟件抗干擾設計
測量算法采用數字濾波、曲線(xiàn)擬合兩種數據處理方法。數字濾波(軟件濾波)復用性好、可實(shí)現超低頻濾波且修改方便。因此,在硬件濾波設計基礎上,系統通過(guò)軟件濾波進(jìn)一步濾除有害干擾信號。同時(shí),曲線(xiàn)擬合使系統對測量曲線(xiàn)進(jìn)行不失真跟蹤處理,也保證了測量計算的準確性。
PIC16F628片內帶有看門(mén)狗定時(shí)器(WDT),它是一個(gè)擁有獨立的RC 時(shí)鐘信號源、計時(shí)周期約為18ms的CPU片內自激式RC振蕩計時(shí)器。在燒寫(xiě)程序時(shí)借助程序燒寫(xiě)器啟用WDT,一旦程序跑飛,WDT將立即強迫程序返回到復位向量處(在復位向量處安排了一段出錯程序),即可將系統納入正軌。
軟件低功耗設計
因為系統功耗正比于CPU的工作時(shí)間,所以盡量縮短CPU的運行時(shí)間應是低功耗軟件設計的一條重要準則。
(1) 使用單片機睡眠方式
PIC16F628設有低功耗模式,即睡眠方式(SLEEP)。便攜式電子秤作為隨身攜帶的手持式稱(chēng)量器具,一定不是常處在工作狀態(tài)。在未關(guān)斷電源的情況下,當器具閑置了預定的一段時(shí)間后,單片機將自動(dòng)進(jìn)入SLEEP模式,在"睡眠"方式,耗電小于1 A。
(2) 使用單片機的中斷功能
系統軟件設計應用了三個(gè)中斷:RB口中斷(用于檢測鍵盤(pán)輸入)、外部中斷(用于低電壓檢測)、定時(shí)器0中斷(用于切換頻率量輸入通道)。中斷的使用有效地減少了CPU的運行時(shí)間,從而降低功耗。
本系統中,嚴格選用低功耗的CMOS器件,硬件上的配合簡(jiǎn)單而有效,軟件上的設計周密而層次分明,整個(gè)系統能真正的實(shí)現低功耗工作。
結束語(yǔ)
本文設計研究的準確度等級Ⅲ級、最大稱(chēng)量15kg并集多種智能功能于一體的便攜式電子秤,技術(shù)指標參考了目前國內市場(chǎng)上使用最多、國內外產(chǎn)量最大的電子衡器的技術(shù)指標,由此可預見(jiàn)產(chǎn)品投放市場(chǎng)后將有極大的競爭力。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂) 稱(chēng)重傳感器相關(guān)文章:稱(chēng)重傳感器原理
評論