当前位置:文档之家› 基于单片机ATmega16的电子湿度计设计

基于单片机ATmega16的电子湿度计设计

西南科技大学本科生毕业论文I 基于单片机ATmega16的电子湿度计设计

摘要:湿度与人们的生活和工农业生产有着密切的关系。为了创造舒适的生活环境和理想的生产条件,必须对空气湿度进行精确检测和调整控制。本文论述了基于测控技术的空气湿度检测报警装置的硬件和监控软件的设计与实现。该系统以AVR单片机ATmega16为硬件核心,通过实时采集和数据处理能够准确地监测环境湿度,采用LED 数码管作为辅助显示模块,显示当前环境湿度,当被测环境湿度超过预设定数值时,将产生声光报警,并且用PC机作为上位机为系统提供一个可视的操作界面,实现串口通信,数据库保存、查询、备份等功能。文中重点讲述系统的软硬件结构和功能特点,着重阐述了信号采集处理、单片机及扩展电路的设计思路和实现方法。在目前的试用中,该系统能够可靠、稳定、安全的测量现场湿度,具有推广应用价值。

关键词:湿度传感器;AVR单片机;湿度检测;声光报警

西南科技大学本科生毕业论文II Design of the Electronic Hygrometer Based on

ATmega16 AVR Microcontroller

Abstract:Humidity is closely related with industrial and agricultural production,as well as people's lives. In order to create a comfortable living environment and the ideal production conditions, we need measure and control the humidity precisely. This article discusses the detection of air humidity alarm monitoring hardware, software design and implementation of programs that based on the measurement and control technology. The system uses ATmega16 A VR Microcontroller as the core, it can accurately monitor the indoor air humidity through real-time acquisition, data processing. LED digital tube display is used as a supplementary module displays the current air humidity. When measured more or less than pre-set value, the system will have a sound and light alarm. And used as a PC for the system to provide a visual interface, Serial communication, Data retention,Data query,Data backup, and control functions.This paper focuses on the system hardware, the structure of software, and the features of function, and stress on the signal acquisition and processing, the expansion circuit of single-chip, design ideas and implementation.In the current trial, the system can measure the environment humidity reliably, stably and securely, with the promotion of application value.

Key words: Humidity Sensor, AVR Microcontroller, Humidity Measurement, Sound-Light Alare

西南科技大学本科生毕业论文III

目录

摘要 ........................................................................................................................................I Abstract. .............................................................................................................................. II 第1章绪论 .. (1)

1.1 课题背景、目的及意义 (1)

1.1.1 课题背景 (1)

1.1.2 课题的目的及意义 (2)

1.2 系统设计内容 (2)

第2章系统概述 (4)

2.1 系统设计主要原理 (4)

2.2 系统硬件设计方案 (4)

2.2.1 微控制器的选择 (4)

2.2.2 湿度传感器的选择 (5)

2.2.3 显示方案的确定 (6)

2.3 系统软件设计方案 (7)

2.3.1 上位机软件设计方案 (8)

2.3.2 微控器软件设计方案 (9)

第3章系统硬件设计实现 (12)

3.1 电子湿度计系统的组成结构 (12)

3.2 主控器最小系统 (13)

3.2.1 ATmega16简介 (13)

3.2.2 引脚图及引脚介绍 (14)

3.2.3 单片机最小系统电路设计 (15)

3.2.3.1 电源设计 (15)

3.2.3.2 复位电路设计 (16)

3.2.3.3 晶振电路设计 (17)

3.2.3.4 串口通信电路设计 (18)

3.3 湿度传感器检测模块电路设计 (18)

西南科技大学本科生毕业论文IV

3.4 LED数码管的显示电路设计 (20)

3.5 声光报警电路设计 (21)

3.6 RS-232的通信部分设计 (21)

第4章系统软件设计实现 (24)

4.1 总体软件设计 (24)

4.2 开机自检模块程序设计 (25)

4.3 湿度采集程序设计 (25)

湿度数据采集程序流程图下图如图4-3所示: (25)

4.4 LED显示模块程序设计 (26)

4.5 数据处理与声光报警程序设计 (27)

4.6 串行通信模块程序设计 (27)

4.7 上位机程序设计 (28)

第5章系统调试 (31)

5.1 硬件静态测试 (31)

5.2 系统联机调试及结果 (32)

5.2.1 微控制器测试 (32)

5.2.2 显示电路调试 (33)

5.2.3 声光报警电路测试 (33)

5.3 测试结果 (33)

总结 (34)

致谢 (35)

参考文献 (36)

附录1 ATmega16的引脚图 (38)

附录2 系统设计部分程序 (39)

附录3 上位机界面截图 (42)

西南科技大学本科生毕业论文

第1章绪论

本章主要介绍本次毕业设计的研究的背景、目的与作用,以及在本次设计的主要内容和设计技术指标。

1.1 课题背景、目的及意义

1.1.1 课题背景

湿度是表示大气干燥程度的物理量。在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿。空气的干湿程度叫做“湿度”。在此意义下,常用绝对湿度、相对湿度、比较湿度、混合比等物理量来表示。

空气湿度在许多方面有重要的用途,在大气学、气象学和气候学中它主要是理论中的一个重要值,而在实际生产生活中应用也极为广泛。下雨的时候,空气湿度是非常大的在气象学和水文学中湿度是决定蒸发和蒸腾的重要数据。它对不同的气候区的产生起决定性的作用。而在天气预报中,更常用到相对湿度。它反映了降雨、有雾的可能性。在医学上空气的湿度与呼吸之间的关系非常紧密。在一定的湿度下氧气比较容易通过肺泡进入血液。一般人在45—55%的相对湿度下感觉最舒适。过热而不通风的房间里的相对湿度一般比较低,这可能对皮肤不良和对粘膜有刺激作用。湿度过高影响人调节体温的排汗功能,人会感到闷热。在生物学中,尤其是在生态学中空气湿度是一个非常关键的量,它决定一个生态系统的组成。在存放水果的仓库里湿度决定水果的成熟。在存放金属的仓库里湿度过高可能导致腐蚀,其它许多货物比如化学药剂、烟、酒、香肠、木、艺术品、集成电路等等也必须在一定的湿度或在湿度为零的则件下存放。因此在许多仓库、博物馆、图书馆、计算机中心和一定的工厂(比如微电子工业)中都有空调装置来控制室内的湿度。在建筑物理中露点是一个非常重要的量。假如一座建筑内的温度不一样的话,那么从高温部分流入低温部分的潮湿的空气中的水就可能凝结,在这些地方可能会发霉,在建筑设计时必须考虑到这样的现象。此外相对湿度是衡量建筑室内热环境的一个重要指标,建筑物理把在人体的主观热感觉处于中性时,风速不大于0.15m/s,相对湿度为50%定为最舒适的热环境,这也是室内热环境设计的一个基准。

1

西南科技大学本科生毕业论文

因此,实时、及时、准确地测量环境湿度在实际应用中具有重要的意义。

1.1.2 课题的目的及意义

数据采集是工农业生产过程中进行监控所必需的环节,本课题是对嵌入式技术与数据采集技术的应用,即用流行的AVR单片机平台实现数据的采集与显示。

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。目前AVR单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。AVR单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,AVR单片机的应用如此广泛而又潜力,因而也不用质疑其生命力[1]。

本课题需要完成一个完整系统的设计,涉及到电子技术、传感器技术、计算机应用与控制技术等多学科知识,是一个硬软件相结合的设计性题目。本课题融知识性与趣味性于一体,提供了一个有力的了解小家电设计技术的平台,能提高检索文献资料的能力、电子系统设计的能力、实际动手的能力。而且可以通过这次设计,很好的掌握系统设计的工作流程、开发步骤;熟悉单片机开发的通用编程语言。

1.2 系统设计内容

本设计的题目是“基于单片机Mega16的电子湿度计设计”。选择Mega16单片机为系统的主控芯片,采用CHTM-02/N湿度传感器作为环境湿度的传感器,经过一系列处理实现对环境湿度进行智能地实时监测,当湿度超出标准范围时能自动报警。并且用PC机作为上位机为系统提供一个可视的操作界面,实现串口通信,数据库保存、查询以及备份等功能。

系统设计详细任务如下:

(1)整体方案的确定:包括单片机、传感器的选型,用A VR单片机作为主控器,

2

西南科技大学本科生毕业论文

分析ATmegal16单片机与温湿度传感器等部件实现软、硬件接口的技术以及数据显示方案湿度传感器模块设计:熟悉湿度传感器工作原理,确定其与A VR单片机的接口设计方案。

(2)数据采集的算法设计:将采集的数据经过数字滤波转化为数字量传入单片机,湿度数据是由传感器测得现场湿度信号经变送器转换直流信号,送到A/D模数转换器转换成数字量后,再送入单片机进行数据处理,对处理后的数据比较做出控制量的选择。

(3)数据显示模块设计:系统使用LED显示,并扩展报警功能,在要求的湿度达到一定的上界或者下界时,报警电路开始工作。

(4)上位机程序设计: 该部分的主要任务是用PC机为上位机提供一个可视的操作界面,实现串口通信,数据保存、查询以及备份等功能。

(5)A VR单片机最小系统的设计。

实现所有的硬件、软件设计、系统整体调试、形成可以正常运行的产品为本次设计的最终目标。

论文将从系统的设计总体方案;硬件、软件的设计实现;系统的调试等方面进行介绍。

3

西南科技大学本科生毕业论文

第2章系统概述

本章分为三个部分,主要介绍本次设计的系统的主要设计原理,给出硬件选择以及软件设计的最终方案。

2.1 系统设计主要原理

空气湿度检测是生活和工业测量中很重要的部分,根据采用的测量元件和测量方法的不同,其精度也不同,因而对数据采集(A/D转换)的精度也不同,对测量结果的定标要到专业的计量部门才能进行,这样就给现场测量带来了很大的不便,我们在空气湿度测量的研究和设计过程中查阅了大量的资料和成果,结合测控专业的特点,提出了能够实现空气湿度检测和报警的系统设计方案。

系统由湿度传感器将湿度转换为模拟电压信号,此mV级电信号经低通滤波器滤掉干扰信号,然后由放大器将信号放大为0~5V后,送A/D转换器,变换成数字量送MCU[2]。MCU接收到信号后进行数据分析,当空气湿度达到设定边缘值,将输出数字信号驱动声光报警(若组建网络后将向上位PC机输出所处位置及报警值)以让监控人员及时进行处理。

2.2 系统硬件设计方案

2.2.1 微控制器的选择

目前,再电子系统研究与设计中,常用的微控器有MC51单片机、PIC单片机、AVR单片机和ARM芯片。

方案一:采用ARM作为微控器

ARM 微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额。但是,ARM技术往往需要第三方工具、软件的支持,且ARM 系列处理器很少集成片上硬件资源,实际产品成本方面,ARM配置外设价格较高,PCB版也好设计,往往还需要考虑信号的完整性等,因此,对于初学者来说,使用起来不是很方便。

4

西南科技大学本科生毕业论文

5

方案二:采用PIC 单片机作为微控器

PIC 单片机速度快,片内资源丰富,抗干扰能力强,价格便宜。但没有地址总线,不适宜做大系统,而且只能使用汇编指令,虽然筒单,但不适合写大程序。CPU 采用RISC 结构,分别仅有33,35,58条指令,采用Harvard 双总线结构,运行速度快,低工作电压,低功耗,较大的输入输出直接驱动能力,一次性编程,小体积,适用于用量大、档次低、价格敏感的产品。

方案三:采用AVR 单片机作为微控器[3]

AVR 单片机采用的RISC 优先选取使用频率最高的简单指令,避免复杂指令:并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。AVR 单片机的程序存储器和数据存储器是分离的,并且可对具有相同地址的程序存储器和数据存储器进行独立的寻址。在AVR 单片机中,CPU 执行当前指令时取出将要执行的下一条指令放入寄存器中,从而可以避免传统 MCS51系列单片机中多指令周期的出现。传统的MCS51系列单片机所有的数据处理都是基于一个累加器的,因此累加器与程序存储器、数据存储器之间的数据转换就成了单片机的瓶颈;在AVR 单片机中,寄存器由32个通用工作寄存器组成,并且任何一个寄存器都可以充当累加器,从而有效地避免了累加器的瓶颈效应,提高了系统的性能。

综上所述,AVR 单片机与51单片机、PIC 单片机相比运行效率高很多、芯片内部的Flsah 、EEPROM 、SRAM 容量较大、全部支持在线编程擦写、每个I/O 口都可以以推换驱动的方式输出高、低电平,驱动能力强、内部资源丰富,一般都集成AD 、DA 模数转换器;PWM ;SPI 、USART 、TWI 、I2C 通信口;丰富的中断源等。现在比较流行的型号是ATmega8/16。所以,本设计选用ATmega16单片机作为主控芯片。

2.2.2 湿度传感器的选择

目前,市场上有许多类型的湿度传感器,其参数及适用场合等各不相同,现就几种常用的湿度传感器进行比较。

方案一:采用BQ8-CHR 系列湿度传感器

BQ8-CHR 系列湿度传感器采用功能高分子膜涂敷在带有导电电极陶瓷衬底上,形成阻抗随相对湿度变化成对数变化的敏感部件,导电机理为水分子的存在影响高分子膜内部导电离子的迁移率。其具有稳定、低漂移、高精度、快速响应特性、高可靠,耐水性好等特点,具有很好的适应性。特征阻抗范围为(21~45)/(60%,25)o k C ,但

西南科技大学本科生毕业论文

是由于其工作电压为1V AC(50~2KHz),而本次设计使用的均为直流电源,所以排除使用BQ8-CHR系列湿度传感器。

方案二:采用HS1101湿度传感器

用湿度传感器HS1101做成的电压输出湿度模块,高可靠性与长时间稳定性,在5VDC供电时,0~100%RH对应输出1~4VDC线性电压,温度依赖性非常低;宽量程:0~100%RH,工作温度范围宽;5VDC恒压供电,1-4VDC放大线形电压输出;抗静电,防灰尘,有效抵抗各种腐蚀性气体物质常温使用无需温度补偿;无需校准;电容与湿度变化0.34pf/%RH;典型值180pf@55%RH;长期稳定性及可靠性,年漂移量0.5%RH/年[4]。这款湿度传感器的参数比较能适合本次设计,但是HS1101系列传感器一般价格较高,通常用于工业生产过程。

方案三:采用CHTM-02/N系列湿度传感器

CHTM-02/N系列湿度传感器的敏感元件为LM35(或NTC)及CHR-01高分子湿敏电阻,输出线性电压信号。0~100%RH对应0~3V(A型)或1~3V(B型)输出,精度±5%RH,有效测量范围25~95%RH。电压DC5V,最大电流为5mA(2mA平均),带壳尺寸为61x27x17mm。价格约为人民币10元左右。广泛应用在暖通空调、加湿机、除湿机、程控交换机等民用设备及工业自动化领域。

综合比较可以发现,CHTM-02/N系列湿度传感器无论从电气特性、尺寸、应用范围,还是从价格等方面都比较适合于本次系统的设计,所以采用CHTM-02/N系列湿度传感器作为湿度检测元件。

2.2.3 显示方案的确定

LCD和LED是目前普遍采用的两种显示技术。

方案一:采用LCD显示技术

LCD是液晶显示屏的全称,主要有TFT、UFB、TFD、STN等几种类型的液晶显示屏。其主要特点是:低压应用,低驱动电压,固体化使用安全性和可靠性提高;平板化,又轻薄,节省了大量原材料和使用空间;低功耗,节省了大量的能源;品种多样,使用方便灵活、维修、更新、升级容易等许多特点。显示范围覆盖了从1英寸至40英寸范围内的所有显示器的应用范围以及投影大平面,是全尺寸显示终端;显示质量从最简单的单色字符图形到高分辨率,高彩色保真度,高亮度,高对比度,高

6

西南科技大学本科生毕业论文

响应速度的各种规格型号的视频显示器;显示方式有直视型,投影型,透视式,也有反射式。环保特性好,无辐射、无闪烁,对使用者的健康无损害。

方案二:采用LED显示技术

LED是发光二极管(Light Emitting Diode)的英文缩写,是一种固态的半导体器件,它可以直接把电转化为光。LED应用可分为两大类:一是LED单管应用,包括背光源LED,红外线LED等;另外就是LED显示屏。目前,中国在LED基础材料制造方面与国际还存在着一定的差距,但就LED显示屏而言,中国的设计和生产技术水平基本与国际同步。LED显示屏是由发光二极管排列组成的一显示器件。它采用低电压扫描驱动,具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远等特点。

LED显示器与LCD显示器相比,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。LED与LCD的功耗比大约为10:1,而且更高的刷新速率使得LED 在视频方面有更好的性能表现,能提供宽达160°的视角,可以显示各种文字、数字、彩色图像及动画信息,也可以播放电视、录像、VCD、DVD等彩色视频信号,多幅显示屏还可以进行联网播出。有机LED显示屏的单个元素反应速度是LCD液晶屏的1000倍,在强光下也可以照看不误,并且适应零下40度的低温。利用LED技术,可以制造出比LCD更薄、更亮、更清晰的显示器,拥有广泛的应用前景。

简单地说,LCD与LED是两种不同的显示技术,LCD是由液态晶体组成的显示屏,而LED则是由发光二极管组成的显示屏。LED显示器与LCD显示器相比,LED 在亮度、功耗、可视角度和刷新速率等方面,都更具优势。所以,在本设计中,采用LED显示技术[5]。

2.3 系统软件设计方案

系统软件包括单片机应用软件和PC 机应用软件。单片机应用软件主要实现定时数据采集、数字信号处理、存储、显示、通信处理等功能;PC 机应用软件主要是对进一步处理总站多路数据转发器传输过来的数据,提供友好的监测界面,实现串口通信,数据库保存、查询等功能。

系统软件部分的设计主要包括主程序和中断服务程序。其中主程序的功能是完成系统的初始化、信号采集及处理、信息显示、湿度超限报警。中断服务程序根据中断源来编写需要执行的内容。系统的主程序流程图如下图图2-1所示:

7

西南科技大学本科生毕业论文

图2-1 系统主程序流程图

2.3.1 上位机软件设计方案

现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

目前,大家普遍采用C++、VB、VC、VC#等高语言进行上位机的编程。

方案一:采用VB作为编程语言

用VB开发串行通信程序有两种法,一种是利用Windows的API函数;另一种

8

西南科技大学本科生毕业论文

是采用VB的通信控件MSComm。利用API函数编写串行通信程序较为复杂,需要掌握大量的通信知识,其优点是可实现的功能更丰富、应用面更广泛,适合于编写较为复杂的低层次通信程序。而VB的MSComm通信控件提供了标准的事件处理函数、事件、方法,并通过控件属性对串口参数进行设置,比较容易地解决了串口通信问题。但是VB不支持继承,没有“构造函数”,不能在new操作时根据情况初试化一些变量,由于不能继承,如果VB自带的控件不好用,就只有寄希望于第三方控件,增加了包袱,增加的出错的风险。

方案二:采用C++或者VC作为编程语言

C++与VC在实质上是一种语言,VC是只不过是C++专用在WINDOWS下开发WIN的软件,集成WIN的API,而C++是一种泛指,Unix、Linux和WIN等操作系统下都可以用。但由于C++要兼容C的内容,而C是面向过程的,所以C++不可避免地出现过程影子,并不算是完全的面向对象的程序设计语言。由于C++的事实标准的存在,即各个编译器总存在差异,所以或多或少存在不兼容。而且各个软件平台的C++启动代码和硬件指令不同,编译后的C++程序一般是不能跨平台的。

方案三:采用VC#作为编程语言

VC#的特点是简单、功能强大、类型安全,而且是面向对象的。VC#凭借在许多方面的创新,在保持C语言风格的表现力和雅致特征的同时,实现了应用程序的快速开发。VC#保留了对底层操作系统API的直接调用和指针。VC#对集成现有代码提供完全COM平台支持,并且通过提供垃圾回收和类型安全实现可靠性,通过提供内部代码信任机制保证安全性,提供了生成持久系统级组件的能力。

综合比较几种常见的编程语言,本设计使用方案三,即采用VC#作为上位机编程语言。

2.3.2 微控器软件设计方案

常用的单片机编程语言是汇编和C语言。

方案一:使用汇编语言

汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,

9

西南科技大学本科生毕业论文

有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。

汇编语言能够直接访问与硬件相关的存储器或I/O端口;能够不受编译器的限制,对生成的二进制代码进行完全的控制;能够根据特定的应用对代码做最佳的优化,提高运行速度;能够最大限度地发挥硬件的功能。但是还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:编写的代码非常难懂,不好维护;很容易产生Bug,难于调试;只能针对特定的体系结构和处理器进行优化;开发效率很低,时间长且单调;兼容性不好,与硬件关系非常紧密。因而不是很适合初学者的应用。

方案二:使用C语言

C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等[6]。指针是C语言的一大特色,可以说C语言优于其它高级语言的一个重要原因就是因为它有指针操作可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。

但是对于本次设计来还说,C语言具有以下优点:

(1)简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

(2)运算符丰富

C的运算符包含的范围很广泛,共有34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化。

(3)数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。

(4)C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

10

西南科技大学本科生毕业论文

C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

(5)C语法限制不太严格,程序设计自由度大

虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

(6)C语言允许直接访问物理地址,可以直接对硬件进行操作

因为既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,可以用来写系统软件。

(7)C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

综合比较之后,本次设计采用方案二,即使用C语言作为微控制器的编程语言。

11

西南科技大学本科生毕业论文

第3章系统硬件设计实现

硬件是系统的载体与执行结构,硬件设计是本次设计的重点,主要设计传感器信号放大、采集、处理,显示处理,声光报警,执行电路设计,系统供电等多个部分。本章分为6节介绍系统的硬件设计实现。

3.1 电子湿度计系统的组成结构

系统用时下流行且功能强大的A VR单片机来控制数据采集与显示模块,利用单片机采集环境湿度值,进行存储和显示,经过简单的运算发出各种控制命令,并能动态的显示当前湿度值,设定目标控制湿度值,当空气湿度高于65%或低于38%时,报警电路(包括报警器、闪烁灯)开始工作。也就是说,现场温度经温度传感器采样后变换为模拟电压信号,经低通滤波滤掉干扰信号后送放大器,信号放大后送单片机,在要求的湿度达到一定的上界或者下界时,报警电路开始工作。并且使用PC机为上位机提供一个可视的操作界面,并实现串口通信,数据保存、查询、备份以及控制功能。

系统整体结构方框图如下图图3-1所示:

图3-1 系统方框图

本电子湿度计系统模块由以下几个模块组成:湿度传感器检测部分模块,A VR 单片机主控制器,LED数码管显示模块,声光报警提示模块,最终来实现对空气湿

12

西南科技大学本科生毕业论文

度的检测报警提示以及数据保存和历史数据查询。

3.2 主控制器最小系统

3.2.1 ATmega16简介[7]

ATmega16单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC 精简指令集高速8位单片机。该单片机具有AVR高性能、低功耗RISC结构,工作在8MHz时具有8MIPS的性能,同时片内16KB的在线可编程FLASH存储器,可擦除1000次以上,并且集成了512B的SRAM 和512 B在线可编程EEPROM。另一个显著的特点是自带8通道10位高精度的逐次逼近式A/D转换器,A/D引脚与PA口的引脚两者复用,可以通过程序指定来加以区别应用。另外,它还拥有很宽的工作电压范围,可以在2.7~6V之间正常运行,具备很强的适应性。

A VR单片机具有良好的集成性能,采用低功率、非挥发的CMOS工艺制造,除具有低功耗、高密度的特点外,还支持低电压的联机Flash,EEPROM写入功能。A VR 单片机还支持Basic、C等高级语言编程。采用高级语言对单片机系统进行开发是单片机应用的发展趋势。对单片机用高级语言编程可很容易地实现系统移植,并加快软件的开发过程。

ATmega16的主要性能参数及特性如下:

● 16K 字节可重擦写Flash闪存存储器,擦写寿命为10000次;

●在16MHZ频率下速度为16MIPS的8位RISC结构单片机,内含硬件乘法器;

● 32个可编程的I/O口,40引脚PDIP封装,32个通用寄存器;

●全静态工作;

● 8通道10位AD转换器,支持单端和双端差分信号输入,内带增益可编程运算放大器;

● 2个8位定时/计数器,1个16位定时/计数器,带捕捉、比较功能;

●通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程;

●两个可编程的串行USART,可工作于主机/ 从机模式的SPI 串行接口。

ATmega16可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式:空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作;掉电方式保存RAM中的内容,但是振荡器停止工作并禁止其他所有部件工作到下一个硬件复位。

13

西南科技大学本科生毕业论文

3.2.2引脚图及引脚介绍

ATmega16的引脚图见附录1。

VCC电源正

GND电源地

端口A(PA7~PA0)端口A作为A/D 转换器的模拟输入端。端口A为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口A 处于高阻状态。

端口B(PB7~PB0)端口B为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。

端口C(PC7~PC0)端口C为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口C 处于高阻状态。如果JTAG接口使能,即使复位出现引脚PC5(TDI)、PC3(TMS)与PC2(TCK)的上拉电阻被激活。

端口D(PD7~PD0) 端口D为8位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。

RESET复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。持续时间小于门限间的脉冲不能保证可靠复位。

XTAL1反向振荡放大器与片内时钟操作电路的输入端。

XTAL2 反向振荡放大器的输出端。

AVCC AVCC是端口A与A/D转换器的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC 连接。

AREF A/D的模拟基准输入引脚。

14

西南科技大学本科生毕业论文

15

3.2.3 单片机最小系统电路设计

在单片机硬件最小系统中,没有任何信号线的连接,只有电源到主板的电源连接,在判断的过程中通过电源指示灯及工作状态指示灯来判断这一核心组成部分是否可正常工作。ATmega16单片机的最小系统如下图图3-3所示。

图3-3 单片机最小系统

3.2.3.1 电源设计

图3-4 ATmega16单片机电源

西南科技大学本科生毕业论文

单片机是一个电子器件,一个电子器件能够工作的第一个前提就是要有电源电源是一切电子器件工作的前提,对于单片机系统也不例外。A VR单片机最常用的电源电压是5V。

ATmega16的电源电路设计如上图图3-4所示。

3.2.3.2 复位电路设计

ATmega16有5个复位源[8]:

(1)上电复位

电源电压低于上电复位门限VPOT时,MCU复位。上电复位(POR)脉冲由片内检测电路产生,POR电路保证器件在上电时复位。VCC达到上电门限电压后触发延迟计数器。在计数器溢出之前器件一直保持为复位状态。当VCC下降时,只要低于检测门限,RESET信号立即生效。

(2)外部复位

引脚RESET上的低电平持续时间大于最小脉冲宽度时MCU复位。外部复位由外加于RESET引脚的低电平产生。当复位低电平持续时间大于最小脉冲宽度时即触发复位过程,即使此时并没有时钟信号在运行。当外加信号达到复位门限电压VRST(上升沿)时,tTOUT延时周期开始。延时结束后MCU即启动。

(3)看门狗复位

看门狗使能并且看门狗定时器溢出时复位发生。看门狗定时器溢出时将产生持续时间为1个CK周期的复位脉冲。在脉冲的下降沿,延时定时器开始对tTOUT记数。

(4)掉电检测复位

掉电检测复位功能使能,且电源电压低于掉电检测复位门限VBOT时MCU即复位。BOD电路的开关由熔丝位BODEN控制。当BOD使能后(BODEN被编程),一旦VCC 下降到触发电平以下(VBOT-,Figure 19),BOD复位立即被激发。当VCC上升到触发电平以上时(VBOT+,Figure19),延时计数器开始计数,一旦超过溢出时间tTOUT,MCU即恢复工作。

(5)JTAG A VR复位

复位寄存器为1时MCU复位。JTAG通过复位寄存器mcur,复位寄存器为1时MCU 复位。通过JTAG指令A VR_RESET可以使JTAG复位寄存器置位,并引发MCU复位,并使JTRF 置位。上电复位将使其清零,也可以通过写“0”来清除。

16

相关主题
文本预览
相关文档 最新文档