摘要: 本文介绍PIC16C924型单片机在酒精浓度检测仪中的应用,并给出实际的软件流程。
关健词:单片机 酒精浓度检测
引言
Microchip Technology公司PIC16C924是一种低价格、高性能、CMOS、全静态、带有集成LCD驱动器模块和5通道8位高速A/D的8位微控制器。指令总线和数据总线分开的哈佛结构可容纳14位指令和8位数据。两级指令流水作业使所有程序跳转指令需2个时钟周期外,其余均为单周期指令。RISC指令集仅35条指令。PIC16C924还具有减少外部元件、降低成本、增加系统可靠性和降低功耗等特点。紫外线可擦除型用于代码开发,OTP型用于批量生产。非常适合于手持式仪表等限制体积场合的使用。
应用方案
酒精浓度检测仪的诸多方案中选取以PIC16C924为核心的应用方案(见图1)主要是基于以下几个方面的考虑。首先,价格经济,OTP型仅70元人民币左右,便于控制成本,提高产品的市场竞争力。其次,PIC16C924功能强大。由于它内部已集成了A/D转换器和LCD驱动器,使得许多硬件的功能可以通过软件来实现,从而,使它的外围电路简单,产品的硬件设计更加简洁,系统的可靠性得以提高。第三,软件开发方便、快捷。PIC应用程序的开发可采用硬件仿真和软件模拟两种办法,考虑到开发费用与开发进程两方面因素,我们采用软件模拟的办法,即借助于PC机利用PCI模拟(仿真)调试工具来完成。它允许用户通过设置断点,单步执行等功能对目标程序进行调试,只是速度略显慢些,实时性能稍差。鉴于目前微机性能的大幅度提高与集成开发软件的不断完善,此法愈显示出其可贵之处。我们采用基于WINDOWS9X下的集成开发软件,MPLAB4.00。它是目前的最新版本。程序的烧写采用MICROCHIP代理商福州高奇公司的PICKIT烧写器。它包括一块ISA总线接口卡和一个PLCC烧写插座。用烧写软件PT.EXE进行PIC16C924的烧写工作。开发期间采用窗口EPROM型芯片。
实践证明,上述应用考虑是可行的,而且节约了大量的开发成本,缩短了开发周期。
软件编写
软件所要实现的功能是将通过精密放大器的传感器信号进行A/D转换,并把转换后的数字量进行一定处理,转化为酒精浓度信号PPM或mg/L,最后送液晶显示器显示。
主要功能包括:
·开机自检
·电池检测,电源不足时给出显示。
·节电设计,4分钟内检测不到信号时,自动关机。
·酒精浓度单位可互换,PPM与mg/L互换。
·音响提示,浓度高时频率高,浓度低时频率低。且音响可随意关闭或打开。
·可存储十次测量结果(存储次数的多少视RAM容量而定)
·结果可重复显示或恢复显示。
在程序的编写过程中,考虑到可移植性和以后功能的升级,以及调试的方便性,采用模块化设计。也就是说,将程序的某一部分换掉以后,可以作为相应的测试程序使用。比如,将程序中酒精的PPM和mg/L浓度表换成电压与压力或电压与湿度的转换表,则可以实现压力测试或温度测试。另外,除显示子程序外,其他的浓度转换子程序、重复显示子程序、恢复显示子程序、开关声响子程序等可以任意拿掉而不影响整个程序的正常运行。下面给出程序中用到的各寄存器的定义及主程序和各子程序的流程图。
;******************
1IST =P16C924
#INCLUDE
;****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
主程序除完成基本的初始化设置外,还实现电池电力检测和对各子程序的调用见图2。
各子程序流程限于篇幅此处从略。总之,依据上述流程图所编程序在我们研制的酒检仪产品中运行良好,完成达到了仪器功能所需要求,可靠性好,故障率低,因此,程序的开发是成功的。■
上一篇:TMC2310DSP芯片在水下目标检测与参数估计中的应用
下一篇:遗传算法在黑盒测试中的应用
- 热门资源推荐
- 热门放大器推荐