基于Proteus的液晶温度显示器仿真设计

分享到:

    随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应用于诸多领域。传统的温度检测和显示是基于模拟传感器和LED显示技术的。传感器输出的模拟信号易受干扰,在一些温度范围内线性不好,需要进行冷端补偿或引线补偿。随着科学技术的发展,由单片集成电路构成的温度传感器的种类越来越多,测量的精度越来越高,数字温度传感器具有价格低、精度高,适于微型封装、能工作在宽温度范围内等优点,在很多应用中,数字温度传感器正开始替代传统的模拟温度传感器。另外,液晶显示器体积小,便于携带、功耗低、抗干扰能力强、信息丰富等优点,已被广泛应用在仪器仪表和控制系统中。

    现代电子设计手段的发展,已由传统的手工设计阶段发展到了EDA阶段,再到虚拟设计阶段,Proteus软件就是在这大背景下应运而生的。Proteus软件是英国Labcenterelectronics公司研发的EDA工具软件,是目前最流行的嵌入式系统设计与仿真平台,它能完全脱离硬件平台进行嵌入式虚拟开发,通过各虚拟仪器构建硬件电路,调试Keil、ADS等集成开发环境中生成的软件程序,达到虚拟硬件调试系统程序的目的,为后续实际软硬件系统的设计提供实践理论依据。

1 硬件电路设计

    液晶温度显示器的硬件主要有以下部分:温度检测部分、单片机最小系统、显示电路和键盘电路,如图1所示。

    单片机采用美国ATMEL公司生产的低电压、高性能CMOS的MCS-51系列单片机AT89C52,它片内含8 K字节可重复擦写Flash闪速存储器和256字节的RAM,片内程序存储器空间能满足本系统程序存储之需要,可省去片外EPROM程序存储器,简化系统的设计,使电路结构简洁。时钟电路中的晶振频率采用12 MHz,系统复位采用上电复位方式。系统的硬件电路如图2所示。

    温度传感器采用美国Dallas公司生产的单总线(1-wire)数字温度传感器DS18B20。它的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度可达±0.5℃,通过编程可以选择9~12位A/D转换精度,测温分辨率可达0.062 5℃。DS18B20耐磨耐碰,体积小,使用方便,适用于各种狭小空间。它只有3个引脚,2脚DQ是数字信息输入/输出端,3脚VCC是外部电源输入端,1脚GND是电源地。现场温度直接以“一线总线”的数字方式传输,可以提高系统的抗干扰性。DS18B20的电源供电方式有2种:外部供电方式和寄生电源方式。工作于寄生电源方式时,VDD和GND均接地,它在需要远程温度检测和空间受限的场合特别有用,但是需要强上拉电路,软件控制变得复杂,同时芯片的性能也有所降低。因此,在本设计中,采用外接电源供方式,将DQ与P3.2相连接。

    LM016L是16x2数码液晶显示器,每行可显示16个字符,共2行。LM016L的控制器为HD44780,与液晶屏集成在一起。HD44780的控制端有3个,分别是RS、读写控制端RW和使能信号E。RS=0时,配合RW实现命令读写;RS=1时,配合RW实现显示数据的读写。本系统中,单片机的P0口作为数据口,与LM016L的D0~D7连接,为保证电路能正常显示,在P0口与D0~D7之间分别连接8个上拉电阻。P2口作为LCD的控制线,P2.0~P2.2分别连接LM016L的RS、RW和E,VDD、VSS和VEE分别接电源和地。

    本显示器设置了一个检测控制开关SW1,它的高低电平信息通过P2.3传递给单片机。当单片机复位后,若SW1为ON,DS18B20检测温度信息,经过单片机处理后送LM016L显示,工作指示灯LED1亮;若SW1为OFF,则系统暂停工作,工作指示灯LED1灭。当温度传感器DS18B20有故障无法复位时,工作指示灯LED1闪烁。

2 软件设计

    系统在Keil uVision3集成开发环境编写C51程序进行软件开发,采用模块化编程方式。在硬件设计的基础上,根据DS18B20和LM016L的工作原理,软件设计主要完成以下任务:初始化DS18B20,读/写DS18B20,读取DS18B20转换后的温度值并转换,初始化LMOl6L,LM016L显示温度值等。以上各个子任务分别用相应的子程序来实现,在主程序中有序的调用各个子程序模块,程序流程图如图3所示。

    系统软件设计的重点和难点之一是传感器输出信号的读取和转换。单片机从DS18B20中读到的温度值是16位的数字信息,其中高5位是表示温度正负的符号位。数字温度值的读取并转换成实际温度十进制值的子程序流程图如图4所示。

    温度转换子程序设计如下:

    在软件设计时,应严格按照DS18B20和LM016L的工作时序,设置好延时时间,否则会影响系统的实时性,即出现温度显示输出变化滞后温度输入的变化。

3 系统仿真

    在Keil uVision3中,采用C51编写源程序,在新建项目中选择AT89C52单片机作为CPU,再将编写好的C语言源程序加载到新建项目中。在“Project”下拉菜单中,选择“Options forTarget”对话框,在对话框中选中“Output”选项卡的“Create HEX File”选项,最后点击“Itebuild all Target Files”,编译成功后生成的“*.Hex”文件。在Proteus ISIS7.5中,双击AT89C52,将可执行程序装载到单片机中,如图5所示。

    程序导入Proteus后,点击仿真运行控制按钮后,进入仿真调试状态,点击中的Play键,进行软、硬件交互仿真,如图6所示。图6(a)表明,假如DS18B20检测到的当前温度是123.9℃,则经过单片机处理后,LM016L显示出当前的温度值123.9℃,工作指示灯亮。通过调节DS18B20模型上的上下标,可设定低于零度的温度输入,仿真显示结果如图6(b)所示。在Proteus仿真状态下,调节DS18B20模块的上下标改变温度的输入值(-55.0~+125.0 ℃),LM016L的输出温度值实时跟随变化。仿真结果表明,该温度显示器能准确的测量并显示温度,测量精度到0.1℃,仿真效果与系统预期要实现的一致。

4 结束语

    利用功能强大的Proteus软件提供的元件库设计硬件电路及软硬件仿真,实现了液晶温度显示器的仿真设计。该显示器电路结构简洁,可靠性高,成本低。通过Proteus的前期仿真提高了液晶温度显示器的设计效率,缩短了开发周期,降低了设计成本,保证了设计的合理性和可靠性。

继续阅读
开源门禁系统设计项目—基于ATmega328

门禁系统设计要求:基于atmega328单片机设计,具有通话、振铃、摘机、通话、开锁功能,还要有键盘和显示电路。

sam4s16c的片内flash读写

最近一直在玩sam4s16c,网上的所有论坛基本找不到atmel的资料,真心的不喜欢,但是工作需要,没办法。只能静下心来仔细研究Datasheet,别无他径。

把握MCU发展轨迹 正确选择MCU完成产品创新

面对缤纷多彩的 MCU 世界,如何在新品设计,老产品更新换代中正确的选择芯片和供应商将是要面临的一个重要的题目,因为无论是产品的更新还是 MCU 的更新速度都远远超出设计者预想,正确把握 MCU 发展趋势,利用 MCU 帮助产品创新是电子设计者正在考虑的问题。

SAM4L8教程之USB复合设备的实现

大家用usb数据线连接开发板的DEBUG USB,打开设备管理器会发现主机识别出有3个设备,这就是usb多功能的复合设备。下面是我探索将MSC,usb mouse和usb keyboard集合于1个设备的教程。

可视化的调试助手FreeRTOS+Trace

在AS开发库中,除了直接用于程序嵌入的库和内核以外,还有用来调试的工具。对于FreeRTOS而言,相对的线程和任务调度是比较难于用普通的设置断点,进行参数跟踪来实现的。因此,一种可视化的调试工具就被引入到AS中——FreeRTOS+Trace。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss