PIC16C924型單片機(jī)在酒精濃度檢測(cè)儀中的應(yīng)用
摘要: 本文介紹PIC16C924型單片機(jī)在酒精濃度檢測(cè)儀中的應(yīng)用,并給出實(shí)際的軟件流程。
關(guān)健詞:單片機(jī) 酒精濃度檢測(cè)
引言
Microchip Technology公司PIC16C924是一種低價(jià)格、高性能、CMOS、全靜態(tài)、帶有集成LCD驅(qū)動(dòng)器模塊和5通道8位高速A/D的8位微控制器。指令總線和數(shù)據(jù)總線分開的哈佛結(jié)構(gòu)可容納14位指令和8位數(shù)據(jù)。兩級(jí)指令流水作業(yè)使所有程序跳轉(zhuǎn)指令需2個(gè)時(shí)鐘周期外,其余均為單周期指令。RISC指令集僅35條指令。PIC16C924還具有減少外部元件、降低成本、增加系統(tǒng)可靠性和降低功耗等特點(diǎn)。紫外線可擦除型用于代碼開發(fā),OTP型用于批量生產(chǎn)。非常適合于手持式儀表等限制體積場(chǎng)合的使用。
應(yīng)用方案
酒精濃度檢測(cè)儀的諸多方案中選取以PIC16C924為核心的應(yīng)用方案(見圖1)主要是基于以下幾個(gè)方面的考慮。首先,價(jià)格經(jīng)濟(jì),OTP型僅70元人民幣左右,便于控制成本,提高產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。其次,PIC16C924功能強(qiáng)大。由于它內(nèi)部已集成了A/D轉(zhuǎn)換器和LCD驅(qū)動(dòng)器,使得許多硬件的功能可以通過軟件來實(shí)現(xiàn),從而,使它的外圍電路簡(jiǎn)單,產(chǎn)品的硬件設(shè)計(jì)更加簡(jiǎn)潔,系統(tǒng)的可靠性得以提高。第三,軟件開發(fā)方便、快捷。PIC應(yīng)用程序的開發(fā)可采用硬件仿真和軟件模擬兩種辦法,考慮到開發(fā)費(fèi)用與開發(fā)進(jìn)程兩方面因素,我們采用軟件模擬的辦法,即借助于PC機(jī)利用PCI模擬(仿真)調(diào)試工具來完成。它允許用戶通過設(shè)置斷點(diǎn),單步執(zhí)行等功能對(duì)目標(biāo)程序進(jìn)行調(diào)試,只是速度略顯慢些,實(shí)時(shí)性能稍差。鑒于目前微機(jī)性能的大幅度提高與集成開發(fā)軟件的不斷完善,此法愈顯示出其可貴之處。我們采用基于WINDOWS9X下的集成開發(fā)軟件,MPLAB4.00。它是目前的最新版本。程序的燒寫采用MICROCHIP代理商福州高奇公司的PICKIT燒寫器。它包括一塊ISA總線接口卡和一個(gè)PLCC燒寫插座。用燒寫軟件PT.EXE進(jìn)行PIC16C924的燒寫工作。開發(fā)期間采用窗口EPROM型芯片。
實(shí)踐證明,上述應(yīng)用考慮是可行的,而且節(jié)約了大量的開發(fā)成本,縮短了開發(fā)周期。
軟件編寫
軟件所要實(shí)現(xiàn)的功能是將通過精密放大器的傳感器信號(hào)進(jìn)行A/D轉(zhuǎn)換,并把轉(zhuǎn)換后的數(shù)字量進(jìn)行一定處理,轉(zhuǎn)化為酒精濃度信號(hào)PPM或mg/L,最后送液晶顯示器顯示。
主要功能包括:
·開機(jī)自檢
·電池檢測(cè),電源不足時(shí)給出顯示。
·節(jié)電設(shè)計(jì),4分鐘內(nèi)檢測(cè)不到信號(hào)時(shí),自動(dòng)關(guān)機(jī)。
·酒精濃度單位可互換,PPM與mg/L互換。
·音響提示,濃度高時(shí)頻率高,濃度低時(shí)頻率低。且音響可隨意關(guān)閉或打開。
·可存儲(chǔ)十次測(cè)量結(jié)果(存儲(chǔ)次數(shù)的多少視RAM容量而定)
·結(jié)果可重復(fù)顯示或恢復(fù)顯示。
在程序的編寫過程中,考慮到可移植性和以后功能的升級(jí),以及調(diào)試的方便性,采用模塊化設(shè)計(jì)。也就是說,將程序的某一部分換掉以后,可以作為相應(yīng)的測(cè)試程序使用。比如,將程序中酒精的PPM和mg/L濃度表換成電壓與壓力或電壓與濕度的轉(zhuǎn)換表,則可以實(shí)現(xiàn)壓力測(cè)試或溫度測(cè)試。另外,除顯示子程序外,其他的濃度轉(zhuǎn)換子程序、重復(fù)顯示子程序、恢復(fù)顯示子程序、開關(guān)聲響子程序等可以任意拿掉而不影響整個(gè)程序的正常運(yùn)行。下面給出程序中用到的各寄存器的定義及主程序和各子程序的流程圖。
;******************
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è)置外,還實(shí)現(xiàn)電池電力檢測(cè)和對(duì)各子程序的調(diào)用見圖2。
各子程序流程限于篇幅此處從略??傊?,依據(jù)上述流程圖所編程序在我們研制的酒檢儀產(chǎn)品中運(yùn)行良好,完成達(dá)到了儀器功能所需要求,可靠性好,故障率低,因此,程序的開發(fā)是成功的?!?/span>
評(píng)論