基于at89s52单片机的温湿度控制内容摘要:
数字电路或单片机、价格低等优点。 频率 /温度输出式集成湿度传感器。 典型产品为 HTF3223 型。 它除具有 HF3223 的功能以外,还增加了温度信号输出端,利用负温度系数( NTC)热敏电阻作为温度传感器。 当环境温度变化时,其电阻值也相应改变并且从 NTC 端引出,配上二次仪表即可测量出温度值。 系统简介 系统功能简介 本系统实现的功能如下: 对环境 温 、 湿度数据的 采集、 处理 、 存储 、 显示以及 通过控制器 串行 口 上传至上位 PC 机 ,并且可以在上位 PC 机 VB 控制 平台上显示实时采集到的温、湿度值 ,绘制 出 温、湿度波形。 系统下位机可以和上位机联合工 作,又可以单独工作,即通过矩阵键盘可以对系统温、湿度报警值进行设置并存储,利用 LCM1602 对系统采集到的温湿值进行显示 等功能。 系统设计简介 7 图 1 系统结构图 系统采用 ATMEL 公司生产的 AT89S52 单片机作为控制器。 其显示界面采用 LCM1602 显示温湿度传感器所检测到的实时数值 , 它是 2 行 16 列字符 型 液晶显示模块。 并且显示屏在系统的设置模式下显示按键输入值,具有显示输入对错提示的功能。 数据采集部分分别用到 DALLAS 公司的 DS18B20 数字温度传感器 ,用到 Honeywell 公司的 HIH3610 湿度传感器 配 合 ADC0809 作为 系统 湿度采集 部分。 系统扩展了一个 片外 存储器 EEPROM 用以保存系统 设置 的报警 值 ,故而具有掉电数据 不丢失 的功能。 另外系统的控制器在 处理报警 时,采用 定时器 T0 中断, 在中断 程序 中查询 当前有没有报警申请、处于哪一类报警申请,从而产生不同 的 控制 信号 , 驱动蜂鸣器发出不同的报警声音。 与 PC 机的通信,采用的是串行异步通信 方式 ,从单片机 TXD 和 RXD 端的 TTL 电平到 PC 机的标准 RS232 电平的转换, 系统 采用美信公司的 MAX232 芯片。 本章小结 本章主要介绍到系统的设计背 景,温湿度的检测技术及发展前景,另外还简要介绍了本系统的设计和功能。 8 2 方案选择 控制模块 方案一、采用 ATMEL 公司产品 AT89S52 单片机作为系统控制模块。 采用 ATMEL 公司生产的 AT89S52 系列的单片机作为主控制器。 其特点是 支持 ISP 在线可编程写入技术。 串行写入、 其频率高达 33MHz,故其 速度更快、内部集成看门狗计时器,不再需要像 89C51 那样外接看门狗计时器单元电路 , 稳定性更好。 AT89S52 是 一款 高性能 、低功耗 8 位单片机 ,片内含 8k Bytes ISP(Insystem programmable)的可反复擦写 1000次的 Flash 只读程序存储器。 AT89S52 具有如下特点: 40 个引脚 、 8k Bytes Flash 片内程序存储器 、 256 bytes 随机存取数据存储器( RAM) 、 32个外部双向输入 /输出( I/O)口 、5个中断 源, 2 层 优先级中断嵌套 、 2个 16 位可编程定时 /计数器 、 1 个全双工串行通信口 、看门狗( WDT)电路。 此外,空闲模式下, CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。 同时该芯片还具有 PDIP、 TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。 方案二、采用如新华龙公司 C8051 系列或 ATMEL 公司 ATmega 系列等高档八位单片机作为本系统控制核心。 这一类高档单片机最显著的特点就是功能全,如空间更大的 FLASH和 SRAM 存储器、双串口、更多的硬件定时器资源等。 但是其价格往往比普通单片机贵。 根据系统设计要求和资源预算,并且考虑系统成本, 为了使本系统性价比达到更高,决定选用方案一,即 AT89S52 单片机作为本系统控制 核心 模块。 2. 2 输入模块 方案一:采用独立式 按键作为输入模块,其特点:直接用 I/O 口构成单个按键电路,接口电路配置灵活、软件结构简单,但是当 键数较多时,占用 I/O 口较多; 方案二:采用矩阵式键盘作为输入电路,其特点:电路和软件稍复杂,但相比之下,当键数越多时越节约 I/O 口。 本设计 使 用键盘输入预置报警温 、湿 度值,若采用独立按键,对数值进行递增递减需频繁按键,为软件设计增加负担,且操作界面不友好。 若采用矩阵式按键,可以方便地输 9 入一个温度值,使操作界面更具人性化,节约了宝贵的 I/O 口资源。 通过对比, 方案二 为系统输入模块 最佳方案。 2. 3 显示模块 方 案一、采用 LED 数码管显示。 特点:成本较低,显示内容局限 ,需要外围驱动电路 ; 方案二、采用 LCD 显示。 特点:成本相对 LED 较高,显示内容丰富 ,与单片机可以直接接口。 考虑到本设计要显示的内容 较多 , 且要达到同样的显示效果,采用数码管显示方法很可能要比 LCM1602 显示成本更高,且目前市场上的 LCM1602 模块已经十分普及, LCM1602是两行十六列字符型液晶显示屏。 显示亮度高,可显示的内容丰富,故 采用 LCM1602 作为输出显示将是最佳的 解决 方案。 2. 4 数据采集 模块 温度 采集 模块 方案一: 用模拟温度传 感 器,比如普通的热敏电阻。 热敏电阻的温度特性曲线是一条指数曲线,非线性度较大,因此在使用时要进行线性化处理,线性化处理虽然能改善热敏电阻的特性曲线,但比较复杂。 为此常在要求不高的一般应用中,作出在一定的温度范围内温度与阻值成线性关系的假定,才能简化计算。 另外, 温度与输出电压量是非线性的,读出的是模拟量, 需要 A/D 转换器 进行转换才能送给数码管显示 , 从而 增加了软硬件的负担。 方案二:采用数字温度传感器 DS18B20 作为温度传感器模块,它具有独特的单总线接口方式,需一根总线就能实现控制模块与 DS18B20 之间的半双工通信。 DS18B20 是集传感元件和转换电路于一体的小芯片上。 另外, DS18B20 也支持 “ 一线总线 ” 接口,测量温度范围为 55℃ ~ +125℃ ,在 10~ +85℃ 范围内, 误差 为177。 ℃。 现场温度直接以 “一线总线” 的数字方式传输,大大提高了系统的抗干扰性。 适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 与前一代产品不同,新的产品支持 3V~ 的电压范围,使系统设计更灵活、方便,体积更小。 综上分析, DS18B20 大大节约了 I/O 口资源,且 软件 实现方便 ,它有 精确的转换电路 10 直接送出直观的数据,并且 DS18B20 拥有较高的温度分辨率 度(采用默认的 12 位精度 时),在价格方面,单个 DS18B20 市场价 7 元,与 模拟温度传感器 加 A/D 转换器的组合价格相差不大。 用它作为本设计传感器模块最恰 当不过, 故 选择方案二。 湿度 采集 模块 方案一、采用普通的湿敏元件作为湿度采集模块主要部分。 普通的 湿敏元件是最简单的湿度传感器。 湿敏元件主要电阻式、电容式两大类。 但其抗腐蚀能力都不是很理想,且湿度的检定法较为复杂 ,线性都不好。 方案二、采用 集成湿度传感器 作为湿度采集模 块主要部分。 线性电压输出式集成湿度传感器 HIH3610, 采用恒压供电,内置放大电路,能输出与相对湿度呈比例关系的伏特级电压信号,响应速度快,重复性好,抗污染能力强。 根据设计要求中的技术指标,采用方案二完全可以实现系统设计 , 且 HIH3610 内部集成了信号处理电路, 故省去复杂的信号处理步骤,所以 选择 Honeywell 公司生产的HIH3610 实现本设计相对湿度值的采集。 本章小结 本 章 主要阐述了系统的几大模块的方案比较, 充分考虑设计的成本,和在确保系统的精度的前提之下 ,来选择一些硬件资源, 进而做 出了最合适系统的设计方案选择。 本设计 还有部分模块 , 见论文的硬件 设计。 11 3 数字信号处理 数字信号处理 简介 数字信号处理是将 信号 以数字方式表示并处理的理论和技术。 数字信号处理与 模拟信号 处理是信号处理的子集。 本系统在数据采集的终 端均加入了数字信号处理。 数字信号处理的目的是对真实世界的连续模拟信号进行测量或 滤波。 因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过 模数转换器 实现。 数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器( DSP) 和 专用集成电路( ASIC)等。 数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。 数字滤波 技术简介 数据滤波技术的实现意义 数字滤波 在数据采集过程中非常重要 ,它 主要适用于随机干扰信号的 过滤 处理,对于系统误差无能为力,对于硬件设计来说,由于集成度越来越高,所以数字滤波的价值越 来越大,每减少一个硬件器件就可以节省可观的成本,如果又运用了合理的算法的话。 不仅节约了硬件资源,更加完善了设计系统的稳定性。 这也是设计本系统的一项原则。 数字 滤波 与模拟滤波的区别 所谓数字滤波,就是通过一定的计算或判断程序减少干扰在有用信号中的比重,故实质上是一种程序滤波。 与此对应的就是模拟滤波,由于模拟滤波牵扯到的其他知识太多 ,在此不详细介绍了 , 模拟滤波主要无源 滤 波(直接用电阻、电容、电感等不外接电源的元件组成的)与有源滤波(如运算放大器等需要外接电源组成的),其目的是将信号中的噪音和干扰滤 去或者将希望得到的频率信号滤出为我所用。 数字滤波的出现克服了模拟滤波的很多不足, 它 具有以下优点: A.是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。 B.可以对频率很低的信号实现滤波,克服了模拟滤波的缺陷。 12 C.可以根据信号的不同,采用不同的滤波方法或参数,具有灵活、方便、功能强的特点。 列举三种 数字滤波 技术 及在本文中的使用 递推平均滤波法 方法:把连续取 N个采样值看成一个队列,队列的长度固定为 N,每次采样到一个新数据放入队尾 , 并扔掉原来队首的一次数据 .(先进先出原则 ), 把队列中的 N 个数据进行算术平均运算 , 就可获得新的滤波结果。 优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。 缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费 RAM。 限幅滤波法 方法:根据经验判断,确定两次采样允许的最大偏差值(设为 A),每次检测到新值时判断:如果本次值与上次值之差 小于等于 A,则本次值有效。 如果本次值与上次值之差 大于 A, 则本次值无效 , 放弃本次值 , 用上次值代替本次值。 优点 :能有效克服因偶然因素引起的脉冲干扰。 缺点:无法抑制那种周期性的干扰 , 平滑度差。 在系统的温度采集 终端加入了 程序判断滤波。 根据干挠出现的现象分析, 加入 限幅滤波 能很好地将随机出现的一 些 跳变干扰滤除。 限幅平均滤波法 方法:相当于 “ 限幅滤波法 ”+“ 递推平均滤波法 ”。 每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理。 优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。 缺点:比较浪费 RAM。 在本设计中,对于湿度数据的采集,采用 了 限幅 平均滤波法 ,它 溶 入了两种滤波的 思 13 想。 对系统湿度值采集所出现的跳变干挠,和因温度跳变 等原因 引起的数据波动进行了相应的处理, 滤除了脉冲干扰 ,并且输出信号平滑。 本章小结 由于本系统要 将 温度、湿度数据 被单片机 采集 ,再 用 单片机来 控制各模块实现相应功能。 为了 使单片机能够采集更稳定、更 准 确的数据, 固然离不开 数字信号处理 , 鉴于 本设计 曾出现的干扰及误差 ,决定 数据采集模块的终端加入了数字滤波。 在温度数据采集之后加限幅滤波,有效地 滤除了系统 随机 脉冲 干挠引起的数据采集出错; 在湿度数据采集终端加入了限幅平均滤波,处理因采 集所出现的跳变干挠,和温度跳变等原因引起的采集数据波动,使输出更为平滑。 本章内容介绍到系统中所用到的三种数字滤波方法,并对其进行一一分析。 14 4 硬件设计 系统外围器件介绍 74LS164 利用软件实现模拟串行口,外接 74LS164 来扩展并行 IO 口,节约单片机资源 ,具体应用见 LCM1602液晶显示及驱动。 74LS164是一个串行输入并行输出的移位寄存器。 并带有清除端。 其中 各引脚功能如下 : Q0~ Q7: 并行输出端 A、 B: 串行输入端 MR: 清除 端 CP: 时钟输入端。 VCC: +5V 电源 GND:地 图 2 74LS164 引。基于at89s52单片机的温湿度控制
相关推荐
C2440 开发板简介 这里所用的 S3C2440 嵌入式系统开发板功能比较强大 ,配备了完备的硬件资源和开发软件 ,开发板的结构如图 所示。 图 开发板结构图 S3C2440A 是韩国三星公司推出的 16/32 位 RISC 微控制器 ,其 CPU 采 用的是 ARM920T 内核。 电源电路实现了 5v 直流输入到 、 、 输出转换的功能 ,为板上各功能模组的正常工作提供所需电压。
信息也通过数据总线传送。 PA0~ PA7:端口 A 输入输出线,一个 8 位的数据输出锁存器 /缓冲器, 一个 8 位的数据输入锁存器。 PB0~ PB7:端口 B 输入输出线,一个 8 位的 I/O 锁存器, 一个 8 位的输入输出缓冲器。 PC0~ PC7:端口 C 输入输出线,一个 8 位的数据输出锁存器 /缓冲器, 一个 8 位的数据输入缓冲器。 端口 C 可以通过工作方式设定而分成
尽管如此, MAX038 作为一个多功能的高速器件 .仍具有广泛的用途。 随着应用面的扩大,价格也会逐渐下降。 DAC0832 简介 和使用说明 DAC0832 是 8 位分辨率 D/A 转换集成芯片,与处理器完全兼容,其价格低廉,接口简单,转换控制容易等优点,在单片机应用系统中得到了广泛的应用。 其中 DAC0832 芯片为电流输出方式的转换芯片。
============= TEMPDIN BIT。 ============================= 中断向量区 ========================= ORG 0000H LJMP START ORG 00BH LJMP T0IT。 =============================系统初始化 ========================== ORG
write_1602dat(Error[j])。 } ThreeAlam()。 //错误提示 pass=0。 ReInputEn=0。 //关闭重置功能, ReInputCont=0。 DisplayChar()。 break。 } } if(i==6) { //DisplayListChar(0,1,ResetOK)。 write_1602(er)。 for(j=0。 j16。 j++) {
者方便用户对现有事件作出一定的修改或者删除。 ( 3) 课程管理模块:在课程管理模块中需要有星期的标识,在某一天记录课程时,需要对这门课程的时间有一定的显 示,还有作业的情况方面的提醒,其他的增添删除操作基本同日程管理模块类似。 ( 4) 设置界面模块:其中包含了一些对界面的设置以及对日程的设置选项。 ( 5) 关于信息模块:其中包含了一些本软件的设计信息及使用的一些基本信息。