电容式湿度测量Word格式文档下载.docx
《电容式湿度测量Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电容式湿度测量Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
PIC16xx系列微控制器中的一种,它由高性能RISC结构的CPU、存储器、I/O接口和复位电路等组成。
外部结构特点是28脚双列直插式大规模集成芯片。
各引脚功能如下:
OSC1/CLKIN:
为晶体振荡器输入/外部时钟源输入引脚。
OSC2/CLKOUT:
晶体振荡器输出/外部时钟源输出引脚。
在晶体振荡器方式下,接晶体或陶瓷振荡器;
在RC振荡方式,输出1/4fosc。
MCLR/Vpp:
芯片复位/编程电压输入脚,复位时,低电平有效。
RA0/AN0~RA5/AN4/SS:
复用引脚,RA0~RA5为双向数据线;
AN0~AN4为A/D输入输出通道;
RA5~AN4/SS还可作为同步串口使用。
RB0~RB7:
B口双向数据信号线,其引脚含有可控的弱上拉电阻。
其中,RB4/INT可作为外部中断输入端;
RB4~RB7可产生变化中断;
RB6可作为串行编程的时钟端;
RB7可作为串行编程的数据端。
RC0~RC7:
复用引脚,为C口双向数据信号线,C口引脚均为多功能复用引脚。
RC0/T1OS0/T1CK1可选择TMR1振荡器输出或TMR1时钟输入;
RC1/T1OS1/CCP2可作为TMR1振荡器输入或捕捉器2输入/比较器输出/PWH2输出;
RC2/CCP1可作为捕捉器1输入/比较器输出/PWH1输出;
RC3/SCK/SCL可作为同步串行时钟输入/SPI的I2C方式输入;
RC4/SDI/SDA可作为SPI数据输入(SPI)或数据I/O(I2C);
RC6/SDO可作为SPI数据输出(SPI);
RC6/TX/CK可以作为异步发送或SCI同步时钟线;
RC7/RX/DT可以作为异步接收或SCI同步数据线。
内部结构特:
a.高性能CPU
仅35条单字指令,采用的时钟频率为20MHz,指令周期为200ns;
具有8级深度的硬件堆栈;
具有中断能力,有11个中断源;
带有片内RC振荡器的看门狗(WDT);
具有程序保密位,可防止非法拷贝;
具有低功耗SLEEP方式,功率低,采用高速CMOS&
nbsp;
EPROM工艺制造;
可选择不同的振荡器方式;
工作电压为3.0V~6.0V。
b.分离的程序和数据空间
该PIC器件带有13位程序存储器,最大寻址能力为8k×
14位,用户存储空间(0000~0FFFh)共4k×
14位。
当访问大于以上地址范围的物理存储空间时,可采用滚动循环访问方式。
数据存储区分为每个存储体Bank0和Bank1,每个存储体又由通用寄存器和专用寄存器构成。
当状态寄存器中的RP0位为0时,选中Bank0;
RP0为1时选中Bank1。
每个存储体最大可以扩展到7Eh(128个字节)。
在每个存储体中,专用寄存器被安排在低空间,用SRAM实现的通用寄存器被安排在高地址空间。
专用寄存器中含有A/D的寄存器。
c.完善的串行通信接口(SCI)
SCI利用RC6和RC7两个引脚来作为通信线的二线制串行通信接口。
它们可被定义为三种方式:
全双工异步方式、半双工同步主控方式和半双工同步从动方式。
SIC部件含有两个8位的可读写状态和控制寄存器,分别为发送和控制寄存器TXSTA、接收和控制寄存器RCSTA。
d.片内器件模块
有3个定时/计数器和3个双向I/O口。
含有16位捕捉/比较/PWM模块。
其中捕捉器的最大分辨率为12.5ns;
而比较器的最大分辨率为200ns;
PWM的分辨率为10位。
带有5路A/D转换器和A/D中断功能。
基于PIC16C73的智能售电系统笔者在开发智能电表售电系统时,采用PIC16C73单片机设计了一个PIC通信通道来作为遥控器和PC机间的数据通信通道。
将红外遥控器插入通信通道即可与PC机进行数据交换。
首先,PIC通信通道取红外线遥控器中的用户识别码并送入PC机,由PC机的数据库管理模块完成用户的注册、注销和售电等工作;
然后,再由PIC通信通道将PC机的RS232C串行通信接口输出的用户识别码及所售电量送入红外线遥控制中,最后再由红外线遥控器将售电量送入智能电表。
该智能电表售电系统的功能结构框图如图3所示。
PIC通信通道的硬件系统设计该智能电表售电系统的PIC通信通道的硬件电路结构。
PC机与PIC通信通道采用异步串行通信方式,但由于PC机的RS-232C串行通信接口传输的信号为CMOS电平,而PIC16C73的串行通信接口传输的信号为TTL电平,因而通信通道采用MAX-232芯片来完成信号电平的自动转换;
而PIC通信通道与红外线遥控器则采用并行通信方式进行信息传输,此时,PIC16C73单片机使用RB口作为并行I/O口。
为了能让用户认可售电信息,笔者专门设计了由MC14499芯片来完成7段显示器的硬件驱动显示电路。
PIC通信通道的软件设计
为确保PIC单片机与PC机之间以及PIC单片机与红外线遥控器之间能够准确的进行信息通信,双方制定了一个合理的、可行的通信协议。
a.PIC16C73与PC机之间的通信协议PIC16C73通信波特率为9600bps;
通信采用查询方式,差错控制采用奇偶校验法;
数据的帻格式为1位起止位、8位数据位、1位奇偶位、1位停止位;
双方设置的握手信号如下:
“FFH”:
为PC机请求接收信号;
“01H”:
为PC机接收信号完毕;
b.PIC16C73与红外线遥控器的通信协议PIC16C73与红外遥控器设置的握手信号为:
“00H”为红外线遥控器发送数据准备就绪;
单片机接收数据准备就绪;
“FFH”为单片机发送数据准备就绪;
红外线遥控器接收数据准备就绪;
“$”为数据传送结束标志。
4&
结束语Microchip公司的PIC系列单片机具有实用、低价、易学、省电、高速和体积小等特点。
该系列单片机不是单纯的功能堆积,而是以多型号来满足不同层次的需要,并可提供低价的OTP芯片。
另外,该系列单片机还具有低功耗睡眠功能、掉电复位锁定、上电复位电路、看门狗电路等功能,而且外围器件少、占用空间小;
成本低,保密技术也十分可靠,可最大限度地保护开发者的利益。
因此,在工业控制、仪器仪表、计算机、家电等诸多领域具有极其广阔的发展前景。
1.2.2DS1820的特性
1DS1820
·
单线接口:
仅需一根口线与MCU连接
无需外围元件
由总线提供电源
测温范围为-55℃~75℃,精度为0.5℃
九位温度读数
A/D变换时间为200ms
用户自设定温度报警上下限,其值是非易失性的
报警搜索命令可识别哪片DS1820超温度限
2DS1820引脚及功能
GND:
地;
DQ:
数据输入/输出脚(单线接口,可作寄生供电);
VDD:
电源电压
3)DS1820的工作原理
①64bit闪速ROM;
②温度传感器;
③非易失性温度报警触发器TH和TL。
64bit闪速ROM的结构如表1.1所示:
表1.1闪速ROM的结构
8bit检验CRC
48bit序列号
8bit工厂代号(10H)
USBLSBUSBLSBUSBLSB
它既可寄生供电也可由外部5V电源供电。
在寄生供电情况下,当总线为高电平时,DS1820从总线上获得能量并储存在内部电容上当总线为低电平时,由电容向DS1820供电。
DS1820的测温原理:
内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时振荡器的脉冲无法通过门电路。
计数器设置为-55℃时的值,如果计数器到达0之前,门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。
同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。
如果门电路仍然未关闭,则重复以上过程。
温度表示值为9bit,高位为符号位,其结构如下:
MSBLSB
1
符号位次数代表-25℃
对DS1820的使用,多采用单片机实现数据采集。
处理时,将DS1820信号线与单片机一位口线相连,单片机可挂接多片DS1820,从而实现多点温度检测系统。
系统对DS1820的操作以ROM命令和存储器命令形式出现。
1.3DS1820命令简介
DS1820在本设计中的应用非常重要,要想很好的应用DS1820必须对它的各个代码指令有所了解。
1.3.1ROM命令代码及其含义
READROM命令代码〔33H〕:
如果只有一片DS1820,可用此命令读出其序列号,若在线DS1820多于一个,将发生冲突。
MATCHROM命令代码〔55H〕:
多个DS1820在线时,可用此命令匹配一个给定序列号的DS1820,此后的命令就针对该DS1820。
SKIPROM命令代码〔CCH〕:
此命令执行后的存储器操作将针对在线的所有DS1820。
SEARCHRDH命令代码〔F0H〕:
用以读出在线的DS1820的序列号。
ALARMSEARCH命令代码〔ECH〕:
当温度值高于TH或低于TL中的数值时,此命令可以读出报警的DS1820。
1.3.2存储器操作命令代码及其含义
WRITESCRATCHPAD命令代码〔4EH〕:
写两个字节的数据到温度寄存器。
READSCRATCHPAD命令代码[BEH]:
读取温度寄存器的温度值。
COPYSCRATCHPAD命令代码〔48H〕:
将温度寄存器的数值拷贝到EERAM中,保证温度值不丢失。
CONVERT命令代码〔44H〕:
启动在线DS1280做温度A/D转换。
RECALL
EE命令代码〔B8H〕:
将EERAM中的数值拷贝到温度寄存器中。
READPOWERSUPPLY命令代码〔B4H〕:
在本命令送到DS1280之后的每一个读数据间隙,指出电源模式:
“0”为寄生电源;
“1”为外部电源。
DS1820单线通信功能是分时完成的,它有严格的时隙概念。
因此系统对DS1820的各种操作必须按协议进行。
操作协议为:
初始化DS1820(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
1.4原理及程序流程图
原理图很流程图在设计中可以帮助我们对电路的了解和分析有帮助,它能清楚直观的将电路表示出来。
1.4.1温度检测系统原理及程序流程图
温度检测系统原理图如图1-1所示,采用寄生电源供电方式。
为保证在有效的DS1820时钟周期内,提供足够的电流,我们用一个MOSFET管和89C51的一个I/O口(P1.0)来完成对DS1820总线的上拉。
当DS1820处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10μs。
采用寄生电源供电方式时VDD必须接地。
由于单线制只有一根线,因此发送接收口必须是三态的,为了操作方便我们用89C51的P1.1口作发送口Tx,P1.2口作接收口Rx。
通过试验我们发现此种方法可挂接DS1820数十片,距离可达到50米,而用一个口时仅能挂接10片DS1820,距离仅为20米。
同时由于读写在操作上是分开的故不存在信号竞争问题。
图1-1采用寄生电源供电的DS1820温度检测系统
DS1820测量温度时使用特有的温度测量技术。
DS1820内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。
当计数门打开时,DS1820对f0计数,计数门开通时间由高温度系数振荡器决定。
芯片内部还有斜率累加器,可对频率的非线性予以被偿。
测量结果存入温度寄存器中。
一般情况下的温度值应为9位(符号点1位),但因符号位扩展成高8位,故以16位被码形式读出,表1.2给出了温度和数字量的关系。
表1.2DS1820温度数字对应关系表
温度℃
输出的二进制码
对应的十六进制码
+125
0000000011111010
00FAH
+25
0000000000110010
0032H
+1/2
0000000000000001
0001H
0000000000000000
0000H
-1/2
1111111111111111
FFFFH
-25
1111111111001110
FFCEH
-55
111111*********0
FF92H
1.4.264位激光ROM
64位ROM的结构如下:
开始8位是产品类型的编号(DS1820为10H),接着是每个器件的唯一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS1820可以采用一线进行通信的原因。
主机操作ROM的命令有五种,如表1.3所列。
表1.3DS180的ROM命令
指
令
说
明
读ROM(33H)
读DS1820的序列号
匹配ROM(55H)
继读完64位序列号的一个命令,用于多个DS1820时定位
跳过ROM(CCH)
此命令执行后的存储器操作将针对在线的所有DS1820
搜ROM(F0H)
识别总线上各器件的编码,为操作各器件作好准备
报警搜索(ECH)
仅温度越限的器件对此命令作出响应
1.4.3高速暂存器
它由便笺式RAM和非易失性电擦写EERAM组成,后者用于存储TH、TL值。
数据选写入RAM,经校验后再传给EERAM。
便笺式EAM点9个字节,包括温度信息(第1、2字节)、TH和TL值(3、4字节)、计数寄存器(7、8字节)、CRC(第9字节)等,第5、6字节不用。
暂存器的命令共6条,见表1.4所列。
表1.4DS1820贮控制命令
温度转换(44H)
启动在线DS1820做温度A/D转换
读数据(BEH)
从高速暂存器读9bits温度值和CRC值
写数据(4EH)
将数据写入高速暂存器的第2和第3字节中
复制(48H)
将高速暂存器中第2和第3字节复制到EERAM
读EERAM(B8H)
将EERAM内容写入高速暂存器中第2和第3字节
读电源供电方式(B4H)
了解DS1820的供电方式
在正常测温情况下,DS1820的测温分辨力为0.5℃,可采用下述方法获得高分辨率的温度测量结果:
首先用DS1820提供的读暂存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后现用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。
考虑到DS1820测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度Ts可用下式计算:
Ts=(Tz-0.25℃)+(CD-Cs)/CD
1.4.4告警信号
DS1820完成温度转换后,就把测得的温度值与TH、TL作比较。
若T>
TH或T<
TL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。
因此,可用多只DS1820同时测量温度并进行告警搜索。
一旦某测温点越限,主机利用告警搜索命令即可识别正在告警的器件,并读出其序号,而不必考虑非告警器件。
1.4.5CRC的产生
在64位ROM的最高有效字节中存储有循环冗余校验码(CRC)。
主机根据ROM的前56位来计算CRC值,并和存入DS1820中的CRC值作比较,以判断主机收到的ROM数据是否正确。
CRC的函数表达式为:
CRC=X8+X5+X3+1。
此外,DS1820尚需依上式为暂存器中的数据来产生一个8位CRC送给主机,以确保暂存器数据传送无误。
1.5多路温度测控仪的电路设计
用单片机控制的多路测度测控仪的电路。
现用6只DS1820同时测控6路温度(视实际需要还可任意扩展通道数)。
采用89C51单片机,其P1.1口接单线总线。
DS1820采用寄生电源供电方式。
为保证在有效的DS1820时钟周期内能提供足够的电流,图4中采用一个MOSFET管和89C51的H.0口来完成对DS1820的总线上拉。
P1.2~P1.7口用来输出温度测控信号,经驱动器MC1413后分别驱动6只固态继电器,通过改变加热或致冷系统的工作状态,可实现对被监测系统的实时控制。
为提高系统的可靠性,该系统设计了由硬件与软件组成的“看门狗”。
硬件看门狗由MAX813L及其外围电路组成,同时还具有电源监控和复位功能。
P1.1定时输出喂狗,按键S1为手动复位。
键盘扫描和动态扫描的显示共用一片可编程接口芯征8279,显示采用8位共阴极LED数码管,它可用来显示通道数、温度测量值以及TH、TL的值。
无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS1820挂接,读出其序列号。
其工作过程为:
主机Tx发一个脉冲,待“0”电平大于480μs后,复位DS1820,待DS1820所发响应脉冲由主机Rx接收后,主机Tx再发读ROM命令代码33H(低位在前),然后发一个脉冲(15μs)并接着读取DS1820序列号的一位。
用同样方法读取序列号的56位。
对于图5系统的DS1820操作的总体流程图。
它分三步完成:
①系统通过反复操作,搜索DS1820序列号;
②启动所有在线DS1820做温度A/D变换;
③逐个读出在线DS1820变换后的温度数据。
主机启动温度变换并读取温度值的详细流程图.;
主机写入存储器数据详细流程图。
当有更多的检测点需要测温时,可利用89C51的其它口进行扩展。
同时,也可利用89C51的串行通信口(RXD,TXD)与上位计算机进行通信,从而构成微机温度测量系统网需要注意的是,在系统安装及工作之前应将主机逐个与DS1820挂接,以读出其序列号。
主机发出一个脉冲,待“0”电平大于480μs后,复位DA1820,在DS1820所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(15μs),并接着读取DS1820序列号的一位。
另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS1820和各种操作必须按协议进行,即:
第2章硬件设计
2.1系统简介
该装置可实现的功能如下:
在0~50℃和20%~98%RH间任意设定温湿度控制点;
可以对环境温湿度的控制可满足指标
可实时监测环境温湿度的变化情况,并记录、存储相关数据;
温湿度的控制精度分别为:
温度(0~50℃)+0.5℃;
湿度(20%~98%RH)+2%~3%RH。
该装置的扩展功能
具有多点定时控制电路;
设有语音提示功能,可方便地实现仪器操作和工作管理提示;
配有通信接口,可方便地与计算机进行通信;
2.2硬件设计
该装置的硬件框图如图2-1所示。
他主要由单片机PIC16C73及外部电路构成。
PIC16C73是由美国Microhip公司生产的8位单片微机,采用harvard结构,这种结构可使指令执行和取指操作重叠进行,因而具有很高的执行速度。
他只有35条单字节指令,除了跳转指令是2周期指令外,其他指令都是单周期指令。
这些特点使它较之于别的8位单片机节省了1/2的程序空间,并且有4:
1的速度优势。
PIC16C73在芯片内集成了一个8位算术逻辑单元和工作寄存器、4K程序存储器、192个数据寄存器、22个I/O口、3个定时/计数器及2个扑捉/比较/PWM模块和2个串行口。
其中A/D转换器具有5路模拟量输入端,同时还具有时钟、复位、看门狗定时等。
这五路模拟量输入通道共同复用一个采样/保持和A/D转换器。
PIC16C73外接温湿度采样电路及电器驱动电路,因而可实现对温度的控制。
该系统硬件主要包括本机地址设定电路、采样电路、键盘显示电路、看门狗电路、电器驱动电路、时间设置及定时驱动电路、RS-232通信等电路。
图2-1电路图
2.3电路设计
设计出合理而用的电路是我们设计的目