PIC16C924型單片機在酒精濃度檢測儀中的應用
摘要: 本文介紹PIC16C924型單片機在酒精濃度檢測儀中的應用,并給出實(shí)際的軟件流程。
關(guān)健詞:單片機 酒精濃度檢測
引言
Microchip Technology公司PIC16C924是一種低價(jià)格、高性能、CMOS、全靜態(tài)、帶有集成LCD驅動(dòng)器模塊和5通道8位高速A/D的8位微控制器。指令總線(xiàn)和數據總線(xiàn)分開(kāi)的哈佛結構可容納14位指令和8位數據。兩級指令流水作業(yè)使所有程序跳轉指令需2個(gè)時(shí)鐘周期外,其余均為單周期指令。RISC指令集僅35條指令。PIC16C924還具有減少外部元件、降低成本、增加系統可靠性和降低功耗等特點(diǎn)。紫外線(xiàn)可擦除型用于代碼開(kāi)發(fā),OTP型用于批量生產(chǎn)。非常適合于手持式儀表等限制體積場(chǎng)合的使用。
應用方案
酒精濃度檢測儀的諸多方案中選取以PIC16C924為核心的應用方案(見(jiàn)圖1)主要是基于以下幾個(gè)方面的考慮。首先,價(jià)格經(jīng)濟,OTP型僅70元人民幣左右,便于控制成本,提高產(chǎn)品的市場(chǎng)競爭力。其次,PIC16C924功能強大。由于它內部已集成了A/D轉換器和LCD驅動(dòng)器,使得許多硬件的功能可以通過(guò)軟件來(lái)實(shí)現,從而,使它的外圍電路簡(jiǎn)單,產(chǎn)品的硬件設計更加簡(jiǎn)潔,系統的可靠性得以提高。第三,軟件開(kāi)發(fā)方便、快捷。PIC應用程序的開(kāi)發(fā)可采用硬件仿真和軟件模擬兩種辦法,考慮到開(kāi)發(fā)費用與開(kāi)發(fā)進(jìn)程兩方面因素,我們采用軟件模擬的辦法,即借助于PC機利用PCI模擬(仿真)調試工具來(lái)完成。它允許用戶(hù)通過(guò)設置斷點(diǎn),單步執行等功能對目標程序進(jìn)行調試,只是速度略顯慢些,實(shí)時(shí)性能稍差。鑒于目前微機性能的大幅度提高與集成開(kāi)發(fā)軟件的不斷完善,此法愈顯示出其可貴之處。我們采用基于WINDOWS9X下的集成開(kāi)發(fā)軟件,MPLAB4.00。它是目前的最新版本。程序的燒寫(xiě)采用MICROCHIP代理商福州高奇公司的PICKIT燒寫(xiě)器。它包括一塊ISA總線(xiàn)接口卡和一個(gè)PLCC燒寫(xiě)插座。用燒寫(xiě)軟件PT.EXE進(jìn)行PIC16C924的燒寫(xiě)工作。開(kāi)發(fā)期間采用窗口EPROM型芯片。
實(shí)踐證明,上述應用考慮是可行的,而且節約了大量的開(kāi)發(fā)成本,縮短了開(kāi)發(fā)周期。
軟件編寫(xiě)
軟件所要實(shí)現的功能是將通過(guò)精密放大器的傳感器信號進(jìn)行A/D轉換,并把轉換后的數字量進(jìn)行一定處理,轉化為酒精濃度信號PPM或mg/L,最后送液晶顯示器顯示。
主要功能包括:
·開(kāi)機自檢
·電池檢測,電源不足時(shí)給出顯示。
·節電設計,4分鐘內檢測不到信號時(shí),自動(dòng)關(guān)機。
·酒精濃度單位可互換,PPM與mg/L互換。
·音響提示,濃度高時(shí)頻率高,濃度低時(shí)頻率低。且音響可隨意關(guān)閉或打開(kāi)。
·可存儲十次測量結果(存儲次數的多少視RAM容量而定)
·結果可重復顯示或恢復顯示。
在程序的編寫(xiě)過(guò)程中,考慮到可移植性和以后功能的升級,以及調試的方便性,采用模塊化設計。也就是說(shuō),將程序的某一部分換掉以后,可以作為相應的測試程序使用。比如,將程序中酒精的PPM和mg/L濃度表?yè)Q成電壓與壓力或電壓與濕度的轉換表,則可以實(shí)現壓力測試或溫度測試。另外,除顯示子程序外,其他的濃度轉換子程序、重復顯示子程序、恢復顯示子程序、開(kāi)關(guān)聲響子程序等可以任意拿掉而不影響整個(gè)程序的正常運行。下面給出程序中用到的各寄存器的定義及主程序和各子程序的流程圖。
;******************
1IST =P16C924
#INCLUDE P16C924.INC>
;****VARIABLE DEFINITIONS
GO EQU 0X02
LCDEN EQU 0X07
COUNT1L EQU 0X70 ;LOW BIT REGISTER1 OF DALAY TIME
COUNT1H EQU 0X71 ;HIGH BIT---------------------------------------
COUNT2L EQU 0X72 ;LOW BIT REGISTER2 OF DALAY TIME
COUNT2H EQU 0X73 ;HIGH BIT-----------------------------------------
REMRCO EQU 0X74 ;REGISTER OF REPEAT MEASURE COUNT
CONCEF EQU 0X75 ;REGISTER OF CONCENTRATION FLAG
INDEXL EQU 0X76 ;INDEX OF PPM TABLE OR mg/L TABLE
INDEXH EQU 0X77 ;UPPER BIT OF INDEX
SEGMENT EQU 0X78 ;REGISTER OF LCD CODE TABLE (7 SEGMENT)
MPMTMP EQU 0X79 ;TEMPORAPY REGISTER OF PPM OR mg/L
REMRAD EQU 0X7A ;FIST ADDRESS OF OF REPEAT MEASURE TABLE
TIME1 EQU 0X7B ;COUNTER1 OF TEST WAITING
TIME2 EQU 0X7C ;COUNTER2 OF TEST WAITING
ADTEPM1 EQU 0X7D ;REGISTER OF ADRES TEMPERRARY
RMCTMP EQU 0X7F ;REGISTER OF REMRCO TEMPORARY
URDPPNT EQU 0X21 ;URD OF RDP POINT
URDPFLG EQU 0X22 ;URD OR RDP FLAG
;
;PORTB 7 6 5 4 3 2 1 0
; SND URD RDP CNC LBD PRM CSP LB0
;
;SND:SOUND LBO:LOW BATTERY OUT
;URD:RESUME DISPLAY RDP:REPEAT DISPLAY CNC:CONCENTRATION CONVERT
;LBD:LOW BATTERY DETECT PRM:PERMIT MEASURE CSP:CLOSE POWER
主程序除完成基本的初始化設置外,還實(shí)現電池電力檢測和對各子程序的調用見(jiàn)圖2。
各子程序流程限于篇幅此處從略??傊?,依據上述流程圖所編程序在我們研制的酒檢儀產(chǎn)品中運行良好,完成達到了儀器功能所需要求,可靠性好,故障率低,因此,程序的開(kāi)發(fā)是成功的?!?/span>
評論