自建ISP编程器的温度报警显示控制系统的设计
扫描二维码
随时随地手机看文章
1 系统的组成
系统主要由单片机、温度报警模块、液晶显示模块、时钟模块、ISP编程器和键盘模块等组成,如图1所示。
2 系统原理
首先通过ISP编程器将程序下载到单片机系统中,利用温度报警,液晶显示和时钟模块,通过键盘控制或人工控制实现实时的温度报警控制显示,实现人机交流。
2.1 数字温度传感器DS18B20
DS8B20可由用户设置温度报警界限,在使用过程中,可由一根I/O数据线既供电又传输数据。它的核心是一个直接数字化的温度传感器,可将-55℃~+125℃之间的温度值按9、10、11、12位的分辨率进行量化,与之对应的温度增量值分别为0.5℃、0.25℃、0.125℃、0.0625℃,器件上电后的默认值为12位的分辨率。
2.2 液晶显示模块YXD1602
此模块将LCD控制器、驱动器、RAM、ROM和LCD显示器整合在一块PCB板上,YXD1602为兼容的液晶显示模块,支持5×7点阵和2行×16字符两种模式,背光亮度和显示对比度可调。这种模块使用简单方便,用户只要向LCM送入相应的命令和数据就可实现所需要的显示内容,并且它与单片机接口也很简单。
与数码管相比,液晶显示具有功耗低、抗干扰能力强等有优点,因此被广泛地应用在仪器仪表和控制系统中。
2.3 时钟芯片DS1302
DS1302是一款涓流充电的时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用SPI同步串行的方式进行通信,仅需用到三根信号线:RES(复位),I/O(数据线),SCLK(同步串行时钟)。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。
3 硬件的总体设计
本系统因无外接存储RAM,所以各外接器件与单片机AT89S8252的通信均采用I/O口访问方式。端口分配如下:P0.0~P0.7以及P2.5~P2.7被液晶显示模块YXD1602A占用;P2.0~P2.2被时钟芯片DS1302占用;P2.3口为温度传感器的数据数据输入输出口;P2.4为报警发光二极管占用;P1.0~P1.3为按键接口;P1.5~P1.7三个SPI串行外部接口在下载程序时使用。图2为硬件电路原理图。
单片机AT89S8252的P0.0~P0.7是“准双向口”,当它们作为外部输入线,也就是读引脚时,要先通过指令,把端口锁存器置1,然后再实行读引脚操作,否则就可能读入出错。因本设计中PO 口作为I/O 口使用,所以在它与YXD1602A连接时需外加上拉电阻。具体设计时使用了4.7kΩ的阻排。
对于液晶显示模块YXD1602的引脚3,即液晶显示驱动电压引脚,可根据实际需求接地或接一个电位器,经过试验本系统中接了一个20kΩ的电位器,可以调节驱动电压。对于它的引脚16,即背光源正极,可接一个100 Ω的电阻到电源,亦可直接接到电源。本设计中直接将它接到电源正极,因接100Ω时亮度不够。
P2.0~P2.2被时钟芯片DS1302占用,囚DS1302是SPI接口部件,所以只需三根线即可实现通信,使用时在它的引脚8接了一个3.6V的镍铬电池,作为备份电源,它采用外部品振,要求为32.768kHz。
P2.3口是温度传感器DS18B20的单总线接口,DS18B20可通过总线窃取电源,但在实际应用中还是使用了外接电源。因外接电源时,我们可以在总线上挂接多个测温节点。
4 ISP编程器的设计
利用单片机SPI接口的在线串行编程功能和计算机的打印机接口可以制作ISP(In-System Programming)编程器,使用ISP编程器通过3个SPI引脚、计算机的打印机接口和相应的编程软件就能将程序下载到芯片中去,这样就为我们节省了购买价格昂贵的烧录器和编程器的费用。下载器的硬件原理如图3所示。
计算机打印机接口(LPT)是一个并行接口,通常我们认为它只有输出功能,是用来连接计算机和打印机并输出数据到打印机的。实际上,LPT端口同时具有输入功能,它也可以作为并行输入的接口。表1为LPT端口各个引脚功能。
需要用电缆连接计算机的打印机接口和编程器。计算机打印机接口是DB25母头,编程器与计算机的打印机接口连接端需使用DB25公头。
按照图3发计编程器,引脚2与12、引脚3与11分别短接;引脚6与SPI接口的SCK信号线相接;引脚7与SPI接口的MOSI信号线相接;引脚9与单片机的RST信号线相接;引脚10与SPI接口的MISO信号线相接;最后,引脚18~25全部接地。
同时,为了缓解并行口状态线过火的灌电流,在计算机打印机接口和单片机SPI接口之间用74HC244做缓冲。
按照图3设计编程器,并辅以相应的驱动软件PonyProg2000,就可以将目标程序下载到单片机中,从而达到编程的功能。利用 PonyProg2000编程后,有一个编程校验过程,可以确保程序正确完整地写入单片机。
5 系统的软件设计
系统的软件设计,使用单片机C51语言,采用模块化程序设计方法,使得程序结构清晰,同时也便于今后进一步扩展系统功能。软件部分包括:主程序、液晶显示子程序、温度传感器子程序、时钟子程序,键盘子程序等。主程序流程图如图4所示。温度传感器子程序流程图如图5所示。
首先,需进行程序的复位,接着是LCD的初始化工作。因为液晶显示器是一个慢显示的器件,所以在运行显示程序前必须进行初始化,否则液晶显示模块无法正常显示。进入启动画面后,需进行中断的设置,包括一个定时中断和一个外部中断,外部中断优先级高。然后初始化时钟,初始化温度计后就进行温度的采集,采集时判断是否中断运行中断处理程序。
6 结束语
本系统制成PCB,经实际调试系统能够正常高效得达到所需要求。通过单片机对各功能模块的控制,可以实现将当前温度、时间通过LCD显示出来。同时系统在设计时留有充分的扩展作量,只需要加一些简单的模块就可以轻松的实现语音及报警控制。经实际应用,此系统有很好的实用价值。系统的3D图如图6所示,具休硬件实物如图7所示。
主要特点:(1)采用先进的技术,设计合理,系统整体结构简单、操作方便、功耗低、测量精度高,实时性好。(2)系统的软硬件设计都采取了抗干扰措施,保证在干扰环境下都能够正常工作。(3)数字温度传感器的应用,以及LCD显示都使得系统界面直观,操作简单。(4)系统扩展方便,可以轻松扩展其他功能。