资源描述
目 录
摘要 (1)
Abstract (1)
前言 (2)
1 系统整体设计 (3)
2 硬件设计 (3)
2.1 芯片介绍 (3)
2.1.1 单片机AT89C51 (3)
2.1.3 液晶显示LCD1602 (9)
2.2 模块功能介绍 (11)
2.2.1 复位电路和时钟电路 (11)
2.2.2 传感器电路 (11)
2.2.3 显示电路 (12)
2.2.4 超限处理电路 (13)
2.3 整体电路图 (14)
3 软件设计 (14)
3.1 主程序框图 (14)
3.2 温湿度采集及处理框图 (15)
3.3 LCD显示框图 (15)
4 仿真与调试 (15)
4.1 仿真软件介绍 (15)
4.1.1 Proteus简介 (16)
4.1.2 Keil C51 编译器简介 (16)
4.2 系统整体仿真图 (19)
5 结束语 (19)
致谢 (20)
附录 (20)
参考文献 (24)
基于单片机的仓库温湿度智能控制系统设计
摘 要:本课题是基于AT89C51单片机的仓库温湿度智能控制系统,系统采用集温湿度传感器与A/D转换器为一体的SHT11芯片作为温湿度采集模块,通过单片机处理进而通过LCD1602构成的显示模块显示温湿度。其它模块包括了串行通信模块和超限报警处理电路,分别实现了上下位机温湿度给定值的设定和超限报警处理。本文主要介绍了系统的硬件设计和软件设计。系统结构简单、实用,提高了测量精度和效率。
关键词:单片机;SHT11;LCD;温湿度
SCM based intelligent temperature and humidity control system design of warehouse
Abstract: This topic is the AT89C51 microcontroller-based warehouse of intelligent temperature-humidity control system, the system uses the set temperature and humidity sensor with a/d converter for one SHT11-temperature and humidity data acquisition module, by single-chip computer in turn by LCD1602 constitute the display module displays the temperature and humidity. Other modules include serial communication module and overload alarm circuit, respectively, to achieve a set and overload alarm for a given value of temperature and humidity. This article mainly introduces the system of hardware design and software design. System structure is simple, practical, improves accuracy and efficiency.
Key words: single chip microcomputer; SHT11; LCD; temperature and humidity
前言
防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测控设备。
传统的方法是用与温度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的仓库进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。目前,国内大中型库房在仓库管理中由于技术和资金上的原因,多数仅限于只对温度进行监测,当温度超标时进行强制通风和翻仓,即使如此,处理不及时或因设备人力条件有限仍会造成大量损失。实现仓库储藏物的温升主要是由于湿度引起的,仓库储藏物本身的水分过高或连续的高湿天气将导致储藏物新陈代谢加快而放出热量,放热引起的温升又使代谢进一步加剧以至发霉变质。这种恶性循环一旦形成很难进行有效控制。因此,仓库在进行温度监测的同时,必须重视对空气湿度的检测,以利于提前采取有效措施控制仓库储藏物升温而霉变。本文所介绍的温湿度智能控制系统是基于AT89C51单片机为控制核心,结合传感器、通讯和数字电子电路技术,实现了温度和湿度检测与仓库温度和湿度的有效控制,降低经济损失和劳动强度。
温湿度传感器在工农业生产、气象、环保、医学等领域得到越来越广泛的应用。温湿度采集系统目前普遍采用的几种方案:
方案一:采用单总线的DS1820的温度传感器和HS110X相对湿度传感器组成的温湿度采集系统。
方案二:采用集温湿度传感器于一体的SHT11芯片为主要芯片的温湿度采集系统。
由于传统的模拟式湿度传感器(方案一)不仅要设计信号调理电路,还要经过复杂的校准和标定过程,其测量精度难以保证。而SHT11是瑞士Sensiri-on公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案。所以本设计采用的是方案二。
1 系统整体设计
本设计核心部件为AT89C51,信号采集及处理部分由SHT11构成,进入单片机后经处理后通过LCD1602显示温湿度,信号显示采用的液晶屏为5×7点阵,一行可显示16字,两行。通过上位机部分对测量的温湿度进行上下值的设定,应用RS-485通信方式完成测控电路与上位PC机的数据交换[5]。当测量超过限定值,通过超限报警处理电路对其进行处理分别显示不同的二极管灯亮,蜂鸣器产生长鸣。
硬件中包括一个开关,为复位开关。开机后,所有器件初始化,温湿度传感器SHT11开始进行温湿度测量和计算,最后通过LCD液晶显示器显示结果。在测量结果中有超过设定的温湿度上下限的,通过超限模块作出反应。
其他是一些附件,比如复位、晶振电路。整体电路框图如图1所示:
SHTII温湿度传感器
复位电路
晶振电路
LCD1602
信号显示
RS-485
通信接口
超限模块
PC机
AT89C51
单片机
电源电路
图1 整体电路框图
2 硬件设计
2.1 芯片介绍
2.1.1 单片机AT89C51
89C51是一种带4K字节可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容[11]。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[1]。
1、主要特性:
·与MCS-51兼容;
·4K字节可编程闪烁存储器;
·寿命:1000写/擦循环;
·数据保留时间:10年;
·全静态工作:0Hz-24Hz;
·三级程序存储器锁定;
·128×8位内部RAM;
·32可编程I/O线;
·两个16位定时器/计数器;
·5个中断源;
·可编程串行通道;
·低功耗的闲置和掉电模式;
·片内振荡器和时钟电路。
2、管脚说明(如图2所示)[2]:
VCC:供电电压。 图2 AT89C51芯片引脚图
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高[3]。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如表1所示[4]:
表1 P3口管脚备选功能
P3.0 RXD
串行输入口
P3.4 T0
记时器0外部输入
P3.1 TXD
串行输出口
P3.5 T1
记时器1外部输入
P3.2 /INT0
外部中断0
P3.6 /WR
外部数据存储器写选通
P3.3 /INT1
外部中断1
P3.7 /RD
外部数据存储器读选通
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置“0”。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)[6]。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出[7]。
3、振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为 片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度[8]。
4、芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行[9]。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止[10]。
5、结构特点:
·8位CPU; ·2个16位的定时器/计数器;
·片内振荡器和时钟电路; ·5个中断源,两个中断优先级;
·32根I/O线; ² ·全双工串行口;
·外部存贮器寻址范围ROM、RAM64K; ·布尔处理器。
2.1.2 温湿度传感器SHT11
SHT11是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。温湿度传感器SHT11集温度传感器和湿度传感器于一体,因此采用SHT11进行温湿度实时监测的系统具有精度高、成本低、体积小、接口简单等优点;另外SHT11芯片内部集成了14位A/D转换器,且采用数字信号输出,因此抗干扰能力也比同类芯片高。该芯片在温湿度监测、自动控制等领域均已得到广泛应用。该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。共主要特点如下:
·高度集成,将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上;
·提供二线数字串行接口SCK和DATA,接口简单,支持CRC传输校验,传输可靠性高;
·测量精度可编程调节,内置A/D转换器(分辨率为8~12位,可以通过对芯片内部寄存器编程选择);
·测量精确度高,由于同时集成温湿度传感器,可以提供温度补偿的湿度测量值和高质量的露点计算功能;
·封装尺寸超小(7.62 mm×5.08mm×2.5 mm),测量和通信结束后,自动转入低功耗模式;
·高可靠性,采用CMOSens工艺,测量时可将感测头完全浸于水中。
SHT11温湿度传感器采用SMD(LCC)表面贴片封装形式,接口非常简单,引脚名称 及各引脚的功能如下:
·脚1-GND和脚4-VDD——信号地和电源,其工作电压范围是2.4~5.5 V;
·脚2-DATA和脚3-SCK——二线串行数字接口,DATA为数据线,SCK为时钟线;
·脚5~8——未连接。
SHT11的内部结构和工作原理:
温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图3所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D 转换器;最后经过二线串行数字接口输出数字信号。SHT11在出厂前,都会在恒湿或恒温环境巾进行校准,校准系数存储在校准寄存器中;在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT11内部还集成了一个加热元件,加热元件接通后可以将SHT11 的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。
相对湿度传感器
温度
传感器
I2C总线接口
和
CRC寄存器
放大器
14为A/D转换器
校准存储器
SCK
DATA
GND
VDD
图3 SHT11内部结构图
微处理器是通过二线串行数字接口与SHT11进行通信的。通信协议与通用的I2C总线协议是不兼容的,因此需要用通用微处理器I/O口模拟该通信时序。微处理器对SHT11的控制是通过5个5位命令代码来实现的,命令代码的含义如表2所示。
表2 SHT11控制命令代码
命令代码
含 义
00011
测量温度
00101
测量湿度
00111
读内部状态寄存器
00110
写内部状态寄存器
11110
复位命令,使内部状态寄存器恢复默认值。下一次命令前至少等待11ms
其他
保留
SHT11应用设计:
微处理器采用二线串行数字接口和温湿度传感器芯片SHT11进行通信,所以硬件接门设计非常简单;然而,通信协议是芯片厂家自己定义的,所以在软件设计中,需要用微处理器通用I/O口模拟通信协议。
硬件设计:
SHT11通过二线数字串行接口来访问,所以硬件接口电路非常简单。需要注意的地方是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHT11之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有要求;当工作电压高于4.5V时,SCK频率最高为10MHz,而当工作电压低于4.5V 时,SCK最高频率则为1MHz。
软件设计:
微处理器和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线。该二线串行通信协议和I2C协议是不兼容的。在程序开始,微处理器需要用一组“启动传输”时序表示数据传输的启动,如图4所示。当SCK时钟为高电平时,DATA翻转为低电平;紧接着SCK变为低电平,随后又变为高电平;在SCK时钟为高电平时,DATA再次翻转为高电平。
DATA
SCK
图4 数据传输启动时序
2.1.3 液晶显示LCD1602
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5×7或者5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。1602LCD是指显示的内容为16×2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高、数字式接口、体积小、重量轻、功耗低。
1602LCD 主要技术参数:
显示容量:16×2个字符;
芯片工作电压:4.5—5.5V;
工作电流:2.0mA(5.0V);
模块最佳工作电压:5.0V;
字符尺寸:2.95×4.35(W×H)mm。
1602采用标准的16脚接口,其中:
第1脚:VSS为电源地。
第2脚:VDD接5V电源正极。
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比 度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度);
第5脚:RW为读写信号线,高电平“1”时进行读操作,低电平“0”时进行写操作;
第6脚:E(或EN)端为使能(enable)端。
第7~14脚:D0~D7为8位双向数据端。
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。
1602LCD的指令说明及时序:
1602 液晶模块内部的控制器共有11条控制指令,如表3所示。
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说
明:1为高电平、0为低电平)
表3 1602LCD控制指令
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开、关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存储器地址
0
0
0
1
字符发生存储器地址
8
置数据存储器地址
0
0
1
显示数据存储器地址
9
读忙标志活地址
0
1
BF
计数器地址
10
写数到CGRA,M或DDRAM
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置。I/D:光标移动方向,高电平右移,低电平左移;S:
屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电
平表示关显示;C:控制光标的开与关,高电平表示有光标,低电平表示无光标;B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位。S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令。DL:高电平时为4 位总线,低电平时为8 位总线;N:低
电平时为单行显示,高电平时双行显示;F:低电平时显示5×7 的点阵字符,高电
平时显示5×10 的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址。BF:为忙标志位,高电平表示忙,此时模块不能
接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
2.2 模块功能介绍
2.2.1 复位电路和时钟电路
此复位电路的工作原理是:单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电通过电阻给电容进行充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于0.3秒),RC构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期,89C51将复位。正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,RST端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正常工作(这是单片机的上电复位,也叫初始化复位);当按下复位键时,电容两端放电,电容又回到0V了,于是又进行了一次复位工作(这是手动复位原理)。如图5所示。
单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路[12],如图5所示。
图5 手动复位及时钟电路
2.2.2 传感器电路
此模块是整个电路设计的信号采集及初步处理的模块,由温湿度传感器芯片SHT11构成,如图6所示。主要的功能结构在前面的芯片介绍中已有,这里不重新介绍。下面介绍多点温湿度采集系统的设计,对于多点采集只需在单个采集的基础上作一点程序上的改动,所以本文只作介绍不作仿真,只对单个采集仿真[16]。
图6 SHT11传感器电路
多点采集系统设计
由于每个SHT11占用单片机两个I/ O口,所以单片机有限的I/ O口资源将制约着单个微控制器上所能测量的最大点数;由于每个SHT11的测量所需时间是固定不变的,采用单独操作的逐个测量方式在多点测量系统中必然导致数据采集时间过长、控制滞后,从而影响控制系统性能的提高。在仓库测控应用系统中,要求所采集的温湿度数据是反应整个仓库相同时间点的总体情况的,所以多个SHT11必须同时开始测量,即单片机必须同时向多个SHT11发送测量命令。结合仓库应用的具体要求,本文对多个SHT11传感器和微控制器的连接方式采取如下方案:各SHT11的SCK线接到微控制器的同一个I/ O 口上, 而DATA线则分别接到不同I/ O口线上。这种连接方式有几个优点:首先,n个传感器只占用n+1个I/ O口,比前述方式节省了n-1个I/ O口,解决了多点测量系统中单片机I/ O口资源短缺和尽可能增加测量点之间的矛盾问题;其次,由于多个SHT11共用一条时钟线所以在每次测量中可以同时发出测量命令,多个传感器同时进行测量,只需一次等待时间则完成了整体数据的收集,大大缩短了数据采集时间,为控制系统快速响应提供了条件[17]。
下面以三点测量为例详细介绍该设计方案的实现,如图7所示。测量部分中3个SHT11的SCK时钟线均连接到AT89S52的P2.6口,而各DATA线分别接到P2.7、P2.5和P2.4。当需要再增加测量点时只需要增加对应的I/ O口数即可以,而且只需对程序作很少的修改即可实现系统的灵活扩展。
图7 SHT11多点采集设计
2.2.3 显示电路
此模块是由LCD1602芯片组成实时温湿度显示的电路部分。LCD1602是一个两行每行16字的液晶显示屏,D0-D7接P0口,RW接地,RS、E接P2.0、P2.1 起控制作用。
如图8所示。
图8 LCD1604 显示及其连接电路
2.2.4 超限处理电路
此部分电路是由5个发光二极管和一个蜂鸣报警器构成,分别是D0、D1、D2、D4和D5,蜂鸣器接单片机的P1.0口,发光二极管与单片机的连接部分如图所示。D0、D1、D2、D4、D5分别代表着发光、降温、加热、干燥和加湿,一旦传感器测定的温湿度超过设定的限额,就会产生不同的发光反应,起警示作用,同时蜂鸣报警器连续发出“滴” 的声音。如图9所示。
图9 超限处理警示电路和蜂鸣器电路部分
2.3 整体电路图
图10 整体电路图
3 软件设计
3.1 主程序框图
图11 主程序框图
3.2 温湿度采集及处理框图
图12 SHT11温湿度采集处理框图
3.3 LCD显示框图
图13 LCD显示框图
4 仿真与调试
4.1 仿真软件介绍
本设计用到了Proteus和Keil c51两种软件,两者能完美的结合在一起,实现虚拟的实物效果,为以后的实物焊接提供了保障[18]。
4.1.1 Proteus简介
Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。
Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“The Route to PCB CAD”。Proteus产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
其功能模块:—个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARES PCB设计。
PROSPICE仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LED甚至LCD显示CPU模型。
>>支持许多通用的微控制器,如PIC,AVR,HC11以及8051最新支持ARM
>>交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘,I2C,SPI器件
>>强大的调试工具,包括寄存器和存储器,断点和单步模式
>>IAR C-SPY和Keil uVision2等开发工具的源层调试
>>应用特殊模型的DLL界面-提供有关元件库的全部文件
最新版支持非常丰富仿真元件共7000多种,还有很多第三方模型。如MMC卡,以太网卡,ATA硬盘,麦克风,等等。
4.1.2 Keil C51 编译器简介
1、8051开发工具
Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。
2、uVision2集成开发环境
(1)项目管理
工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。
一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。
uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特性。
uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。
(2)集成功能
uVision2的强大功能有助于用户按期完工。
A.集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。
B.文件寻找功能:在特定文件中执行全局文件搜索。
C.工具菜单:允许在V2集成开发环境下启动用户功能。
D.可配置SVCS接口:提供对版本控制系统的入口。
E.PC-LINT接口:对应用程序代码进行深层语法分析。
3、第三部分编辑器和调试器
(1)源代码编辑器
uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。
(2)断点
uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。
在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。
(3)调试函数语言
uVision2中,你可以编写或使用类似C的数语言进行调试。
A.内部函数:如printf,memset,rand及其它功能的函数。
B.信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。
C.用户函数:扩展指令范围,合并重复动作。
(4)变量和存储器
用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整:
A.当前函数的局部变量
B.用户在两个不同watch窗口页面上的自定义变量
C.堆栈调用(call stack)页面上的调用记录(树)(call tree)
D.不同格式的四个存储区
4、C51编译器
Keil C51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。
(1)存储器和特殊功能寄存器的存取
C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字-at-还能把变量放入固定的存储器存储模式(大,中,小)决定了变量的存储类型。
连接定位器支持的代码区可达32个,这就允许用户在原有64K ROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。
(2)中断功能
C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。
可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。
(3)灵活的指针
C51提供了灵活高效的指针。
通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。
特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需1-2字节,因此,指针存取非常迅速。
4.2 系统整体仿真图
图14 系统整体仿真图
5 结束语
由于采用的是高效单片机作为核心,集温度传感器和湿度传感器于一体的SHT11作为主要的采集与测量系统,其中它自带的A/D转换器,使得此温湿度控制仪具有精度高、成本低、体积小、接口简单等优点,还具有良好抗干扰能力。加上优化程序,使得本系统具有很高的实用性。
单片机的应用如今已经在工业、电子等方方面面展示出了它的优越性,利用单片机在设计电路逐渐成了趋势,它与外围的简单电路再加上优化程序就可以构建任意的产品,使得本设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计增加更多精彩。
在设计过程中,由于时间和本人能力的限制,设计中
展开阅读全文