摘要:利用仿Proteus真软件实现了基于AT89C51单片机的温控报警器仿真设计。详细分析温控报警器的硬件设计原理,并在Keil开发环境下设计了对应的驱动程序,在Proteus中完成了软、硬件的联合仿真调试,最后给出了仿真运行结果。通过Proteus软件和Kell软件的联合调试,大大缩短了开发周期,降低开发成本。该设计的电路及驱动程序对相应的实际应用系统具有一定的借鉴作用。
关键词:Proteus;Keil;温控报警器;仿真;程序
Proteus软件是由英国Lab Center Elec—tronics公司开发的最新版本EDA工具软件,它集电路设计、制版及仿真等多种功能于一身,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台。它是一种可视化的支持多种型号单片机(如51、PIC、AVR、Motorola hcll等),并且支持与当前流行的单片机开发环境(Keil、MPLAB、LAR)连接调试的软硬件仿真系统。针对微控制系统与外设的混合电路的电路仿真、软件仿真、系统协同仿真,做到了一体化和互动效果。
Proteus包含以下应用软件:
ISIS——智能原理图输入系统,系统设计与仿真的基本平台。
IARES——高级PCB布线编辑软件。
在Proteus中,从原理图设计、单片机编程、系统仿真到PCB设计一气呵成。真正实现了从概念到产品的完整设计。使用Proteus可以直观的看到设计效果,可以缩短开发周期。
KeilμVision3是单片机源程序设计与编译软件,它支持汇编与C语言,能够对程序进行调试并转换成其他形式的文件。
本文在Proteus ISIS平台上设计一个能够检测温度变化并显示实时显示温度,在规定的温度范围内报警的温控报警器,可广泛应用于生产生活中需要温度控制的场合。温度报警的范围可通过程序修改。
1 系统硬件电路设计
温控报警器硬件电路主要由AT89C51单片机最小系统、ADC0808模数转换器组成的温度采集模块、四位LED显示单元构成的显示电路、报警电路构成。硬件电路的组成如图1所示。
下面具体分析各部分电路的设计原理:
1)单片机最小系统包括AT89C51单片机一块,时钟电路(12 MHz晶振)、复位电路(上电复位)。
2)温度采集模块 包括ADC0808模数转换器芯片一块,用可变电阻模拟电压变化,在实际应用中可采用温度传感器来替代。通过模数转换器将采集到电压信号转换成数字信号,使用通道0输入电压信号,转换后的数字信号通过P1口输入到单片机内部。
3)显示电路包括四位共阴LED数码显示管,采用动态显示方式,由P0口输出段码,P2口的P2.0-P2.3输出位码。该部分电路主要用于实时显示环境温度。
4)报警电路包括扬声器和两个发光二极管,扬声器在温度超出范围时发出声音报警,发光二极管随之发光报警。两个发光二极管分别用于温度高出范围和低于范围时报警,扬声器也会发出两种不同音调的声音。
硬件电路在Proteus软件环境下完成原理图的设计,主要元器件清单如下:四位共阴LED数码管7SEG-M PX4-CC-BLUE,模数转换器ADC08 08,单片机AT89C51,电容CAP,极性电容CAP-ELEC,晶振CRYSTAL,黄色发光二极管LED-YELLOW,可变电阻POT-HG,电阻RES,排阻RESPACK-8,扬声器SOUNDER。在环境温度小于60度和高于160度时报警。
2 软件程序设计
温控报警器的主要功能由程序控制,本设计采用C语言完成程序的设计,在KeilttVision3软件中完成调试。程序主要包含主程序、显示子程序、定时器中断程序等3部分。
2.1 主程序设计
主程序完成的主要内容有:定时器/计数器参数设置、启动模数转换、读取模数转换结果、根据读取内容判断是否报警等。主程序流程图如图2所示。
2.2 显示子程序
显示子程序主要用于显示温度,可以直观的察看温度。采用动态显示方式,P0口输出段码,P2口输出位码。下面给出部分代码:
2.3 定时器/计数器中断程序
该部分包含两部分,T0定时器/计数器中断主要用于为ADC0808提供时钟信号,T1定时器/计数器定时实现不同频率脉冲信号的输出,驱动扬声器发声。该部分代码不再给出。
3 调试与运行
在Proteus和Keil中进行相关的设置,可以让两者进行联调,联调可以在同一台计算机上进行,也可以在不同的计算机之间进行。通过Proteus与Keil的联调可以轻易做到在不使用硬件的前提下直接在仿真平台上进行实时仿真,对于系统的调试具有很大意义。
在硬件电路检查无误和程序编译无误之后,系统即可运行.运行时初始状态为显示器显示温度为145,调可变电阻使电阻值发生变化,使显示温度低于60℃,可以观察到低发光二极管发光,扬声器报警;继续调可变电阻使显示温度高于160℃,可以观察到高发光二极管发光,扬声器以另外一种频率声音报警。如果需要调整报警温度范围,可以通过修改主程序中的温度上限和下限值来实现。
4 结束语
文中给出了基于单片机的简易温控报警器的设计过程。在该设计中采用可变电阻代替温度传感器,可添加DS18B20温度传感器来检测实际温度,利用ADC0808和单片机完成数据分析,实时显示,报警,实现温度高于上限和低于下限时报警的基本功能,还可通过修改程序改变报警现象。
设计过程中利用Proteus与Keil软件的完美结合,使本设计的设计和调试过程更加方便快捷,提高了设计的一次成功率,节约了设计成本,缩小了设计周期。该设计的电路及驱动程序对相应的实际应用系统具有一定的借鉴作用。