毕业论文——基于MSP430F149的温湿度记录仪的设计_第1页
毕业论文——基于MSP430F149的温湿度记录仪的设计_第2页
毕业论文——基于MSP430F149的温湿度记录仪的设计_第3页
毕业论文——基于MSP430F149的温湿度记录仪的设计_第4页
毕业论文——基于MSP430F149的温湿度记录仪的设计_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

邯郸学院本科毕业论文(设计)邯郸学院本科毕业论文(设计) 题题 目目 基于 MSP430F149 的温湿度记录仪的设计 学学 生生 指导教师指导教师 年年 级级 专专 业业 电子信息工程 二级学院二级学院 信息工程学院 邯郸学院信息工程学院 年 月 I 摘摘 要要 市场上已有温湿度记录仪电池使用时间短、功能单一,本设计通过软、硬 件的优化来实现低功耗。硬件主要由超低功耗单片机 MSP430、传感器 SHT10、段码液晶、 串口 MAX3232 和 AT45DB161 Flash 等器件组成。软件方面主要通过定时器产生一秒中断 方式,使其进行温湿度的采集、显示和存储。记录仪具有数据存储大、功耗低、能和 PC 通信、性价比高等特点。研究结果表明,该仪器具有长时间记录温湿度,使用方便,性 能可靠,当温度到达上限实现报警的功能。 关键词关键词 MSP430 温湿度记录仪 功耗低 II The Design of temperature and humidity recorder Based on the MSP430 Abstract On the market,there has been a lot of problems of temperature and humidity recorder, such as single function, short battery life ,a kind of recorder based on MSP430 single chip was presented.The instrument through the soft and hardware to achieve low power consumption function. The hardware is mainly composed of low power microcontroller MSP430, sensor SHT10, Fault code liquid crystal, serial port MAX3232 and Flash AT45DB161.Software mainly through the timer generating a second interrupt mode and the power using query mode.The temperature and humidity recorder can realize the data acquisition, display and storage. It has the merits of big data storage volume, low power consumption,PC communication and high performancecost ratio. The results indicate that the device can long time record temperature and humidity. it is convenient in use and stable in performance.Besides,when the temperature reaches upper limit,the buzzer will sound. Key words MSP430F149 Temperature and humidity recorder Low power 1 目目 录录 摘摘 要要 I I ABSTRACT IIII 2 2 背景介绍背景介绍 1 1 2.1 选题背景1 2.2 研究的目的及意义1 3 3 温湿度记录仪各模块的介绍温湿度记录仪各模块的介绍 1 1 3.1 单片机 MSP430 .2 3.2 串口 MAX3232 2 3.3 FLASH AT45DB3 3.4 时钟 DS1302 .3 3.5 LCD 液晶显示器 3 3.6 温湿度传感器 SHT10 4 3.7 本章小结4 4 4 温湿度温湿度监测监测的硬件设计的硬件设计 4 4 4.1 msp430 的外围电路 .4 4.2 电源电路5 4.3 通信电路5 4.4 时钟电路6 4.5 存储电路6 4.6 显示电路7 4.7 报警电路8 4.8 Altium Designer 的介绍 8 5 5 温湿度温湿度监测监测的软件设计的软件设计 1010 5.1 程序流图.10 2 5.2 MSP430 的开发软件 10 6 6 问题发现和解决问题发现和解决 1111 6.1 程序问题.11 6.2 硬件问题.12 6.3 本章小结.12 7 7 总结总结 1212 参考文献参考文献 1313 致致 谢谢 1414 附附 录录 1515 1 基于 MSP430F149 的温湿度记录仪 1 引言 日常生活和工业生产都离不开温湿度,因此人们发明了很多仪器去测量它们,并且经历了长久 的发展过程,从很久以前的长度测量方法以及干湿测量方法,到现在的电测量方法,温湿度测量技 术已经一步一步的趋于成熟。但是这些测量方法仍存在一些缺点和不足,不能满足我们现在对温湿 度测量的要求,尤其是一些场所,要求实时测量并记录其全过程,并且超过温度上下限时报警,这 些导致了新的温湿度记录仪的产生。该仪器温湿度参数是由温湿度传感器SHT10获得的,其值为数 字量,直接按预先设定的时间间隔将温湿度参数储存到内部的Flash中。在完成存储后,如果将其与 PC机相连,PC将向记录仪发送相应的指令,产生中断,此时记录仪将数据上传PC,再对数据进行 整体分析,采取相应措施。它能够长时间的记录环境或被测对象的温度,工作温度范围广,满足通 用性。在气温监测,货物存储、实验过程等方面有很重要的作用。 2 背景介绍 2.1 选题背景选题背景 1592年,意大利人Galileo创造了最早的温湿度测量仪。他在一个容器中,倒入一定量的液体, 倒置了一个有细长颈的器皿,为了使液面上升到细颈内,从长颈器皿中抽出一部分空气。由于气体 的热胀冷缩现象,长颈内的液面将随着外界温度的变化而变化,因此温湿度的高低就反映到液面的 升降上,但是这个测量器是没有刻度的,在应用上受到限制。 荷兰人华伦海特于 1714 年制定了华氏温标,这是历史上最早出现的温标,华氏温标单位用 “”来表示,也读作华氏度。0 华氏度是由一定浓度的盐水变为固体时的温度规定的,32 华氏度、 212 华氏度分别是由纯水变为固体时的温度和 101300 帕斯卡气压下水急剧转化为气体的温度规定 的。 瑞典的 Anders Celsius 于 1742 年创立了另一种温标,制成了水银温湿度计,温湿度记录仪以水 转化为气体的温度作为 0 度,以水的凝固温度为 100 度。1745 年,瑞典科学家 Linnaeus 研制了摄 氏温湿度计,他是将 Anders Celsius 的水银温湿度计的冰点和沸点这两个温度点颠倒过来制成的。 1802年,出现了查理斯定律,即在恒压一定量气体的体积随绝对温度的上升而上升。反之,一 定体积的气体,压力与开尔文温度变化的趋势相同。当 Charles 定律出现后,气体温湿度计也有了 相应的提升,相比较水银温湿度计,气体温度计的效果无论在测温范围方面还是在精确度上,都超 过前者。 1821年,德国的塞贝克发现热电效应,即温差与电压相互转换的现象。于是就出现了热电偶温 湿度计。英国的 Dawid 在同一年里发现了温湿度影响电阻的规律,再此之后热电阻温湿度计随之 产生。 2.2 研究的目的及意义研究的目的及意义 在测量范围内,温度、湿度是一对很重要的参数,无论是人们生活的环境还是工业生产、农作 物的生长都需要对温度和湿度进行适时准确的测量,以保证能源的节约和各行各业安全健康的发展。 随着科学技术的迅猛发展,测量领域内对温湿度的检测也取得飞速发展,其水平直接影响人类的各 种活动。利用单片机对温湿度控制,具有很多优点,如高精度、小体积、多功能、低价格、易操作 等,极大的满足了生产生活的需求。 2 3 温湿度记录仪各模块的介绍 3.1 单片机单片机 MSP430 本设计考虑到低功耗的需求选用了 MSP430f149 作为主控制器。MSP430 系列是所有主流单片 机芯片中能耗最低的。其在一个芯片上集成了中央处理器和许多模拟、数字电路,提供了单片解决 的方案。其具有超低功耗、体积小、功能强的优点,得到广泛应用。 单片机 MSP430 的优点如下: (1)功耗低。单片机 MSP430 工作电压范围为 1.83.6V,有一种活动模式,耗电电流为 250uA;有五种低功耗模式,0.1uA 为 RAM 保持模式下的耗电电流,0.7uA 为实时时钟模式下的电 流。输入输出口的最大漏电流仅为 50nA。 (2)MSP430 单片机集成的片内外设较为丰富,为简化设计提供了很大的方便。这些外设包 括看门狗、模拟比较器 A、定时器 A、定时器 B、串口 0/1、乘法器、IIC 串口总线、10 位/12 位 模数转换器、端口 16、基本定时器等模块。 (3)处理能力强大。16 位单片机 MSP430 系列,采用了目前最流行的精简指令集结构,指令 数目少,其指令执行周期为一个时钟周期。 (4)系统能够长时间稳定工作。数字控制振荡器 DCO 是该系列默认的内部集成振荡器,单片 机复位后,为使程序从正确的地方开始运行,确保晶体振荡器的起振和稳定时间充足,CPU 应首先 由 DCO 启动。系统工作的时钟频率,可由软件来设置,通过改变寄存器相应的控制位设定适当的 频率。为保证系统工作正常和运行的稳定性,在 DCO 用作 CPU 时钟的过程中,如果出现问题,数 字控制振荡器会自动开启。 (5)开发环境方便,效率高。MSP430 系列有三种类型,即 Flash 型、ROM 型、OTP 型, Flash 型单片机应用广泛。不同类型的单片机开发方法不相同,Flash 型单片机的开发和调试环境很 方便,因为器件片内集成了可电擦写的 Flash 存储器及 JTAG 调试接口,所以,在一个软件集成环 境中,可以运行所有编译和调试过程。使用方法是将程序从 JTAG 调试接口下载到存储器中,控制 系统运行。要想读出片内中央处理器的状态,也要由该调试接口控制程序进行操作。这种方式不需 要专门的编程器和仿真器,只需要一个 JTAG 调试器和 PC 机,使用简单方便。而 ROM 型和 OTP 型的 MSP430 系列是由专门的仿真器开发的,开发完之后再烧写或掩摸的一种芯片。 以下是 MSP430f149 和 89C51 单片机性能的比较。 (1)十六位 MSP430f149 单片机,其指令使用的是精简指令集( RISC ),指令相对较少, 有 27 条指令。其中,大多数为模拟指令,很多片内 Flash 和寄存器都可参加程序的执行。由于这 27 条指令均为单周期的指令,所以运行速度快。相比较而言,八位 89C51 使用的是复杂指令集( CISC ),指令较多,有 111 条指令且运行速度慢。 (2)MSP430f149 是十六位的开放性架构,经过转换还能使总线变为八位的,所以对这样的基 本结构而言,无论外接八位,还是十六位的模块,或者扩展模数转换或数模转换模块也是很方便的。 对于 89C51,由于 89C51 系列的片内总线为八位,所以内部的模块基本上也都是八位的。又由于受 其内部性质的影响,内部模块虽然有了一定的增加,但是如果增加模拟功能的部件,仍显得困难。 这使得 MSP430f149 的产品及功能部件迅速增加。 (3)在功耗方面,89C51 系列单片机比 MSP430f149 消耗的功耗多。89C51 正常运行的电源 电压为 5V,有待机方式(系统时钟还在运行)和掉电方式(停止包括系统时钟的所有工作)两种 低功耗模式。在正常运行情况下,电流消耗为 24mA;对于后者,一些模块也要消耗电流 3mA 左 右。但是,为了保存 89C51 单片机内 RAM 中的内容,即便是停止所有工作,单片机所需电压能降 到 2V 时,也需要提供电流约 50uA 。所以,MSP430 要比 89C51 更适合应用于电池供电装置或系 统中。 (4)在开发工具方面。对于 MSP430f149 来说,采用了 JTAG 技术和 Flash 型存储器,使开发 工具变得既简便又低廉,同时也能够实现在线编程。而 89C51,很早进入中国市场,使用者对它相 对了解,所以有很多开发工具被创造出来。但是仍存在一个很大的问题,即如何实现在线编程。 3 3.2 串口串口 MAX3232 串口 MAX3232 的输出级使用的是输入和输出的电压差值,为了能够实现真正的 RS-232 的功 能,输出电平保持 RS-232 的电平,必须使电源电压在 3.0V 到 5.5V 之间。MAX3232 具有两个发送 端和两个接收端,具有关断模式,电流仅为 1uA,有效的降低了功率的消效并延长了电池的使用时 间。在关断模式下,串口 MAX3232 仍对芯片外设进行监测,接收端口仍保持有效的电平。当芯片 传输数据的频率过于频繁时,串口仍就能实现 RS-232 规定的电压+5.0V 和-5.0V。只要输入电压在 3.0V 到 5.5V 范围内,即可提供输出正负电压 5.5V。如果串口输出电压低于 5.5V,且工作在非连续 模式下,就会开启电荷泵(开关电容式电压变换器) ;如果串口电压高于 5.5V,就会关闭电荷泵。 3.3 FLASH AT45DB 存储芯片选用了 Nand-Flash 系列。存储芯片现在流行 TF 卡,TF 卡可以方便拔插,但是功耗 比 Nand-Fash 系列高不少。本设计选用了 AT45DB161D,其有三种工作模式,典型待机电流为 25uA,典型掉电电流为 9uA,典型读取电流 7mA。存储器为八管脚的芯片,主要有片选端(/CS) 、 电源(VCC) 、串行输入(SI) ,写保护(WP) 、串行输出(SO)和串行时钟(SCK)等管脚。 AT45DB161D 是具有串行接口、运行电压为 2.5V 或 2.7V 的 Flash 存储器,能够存储各种数字 语音,图像,程序代码等。AT45DB161D 适用于要求高速操作的场合。 存储器串口与 SPI 兼容,存储速率能够达到 66MHz。AT45DB161D 的存储地址分为页、块、 扇、片。总容量为 17301504 位,主存储器为 4096 页,512 或 528 字节定义为一页。与以前的存储 器不同,此存储器串行口顺序访问数据,而不是采用总线分时复用或并行传输的方式。顺序访问比 并行接口节省了很多引脚,充分利用了芯片的资源,有助于硬件设计,提高了系统工作的稳定性。 AT45DB161D 在要求引脚数低、电压低、功耗低以及容量高的场合是最佳的选择。 存储器 AT45DB161D 读取操作、重复编程操作的工作电压都为 2.5V 至 3.6V 或 2.7V 至 3.6V, 而并不需要高输入电压来支持,为设计者提供了极大的方便。 3.4 时钟时钟 DS1302 随着科学技术的提高和人们生活水平的不断改善,测量时间的准确性也越来越重要。记录、显 示时间的仪器在人们的努力下,也得到了提升。从电子仪表到数字时钟,测量工具逐步改进,计时 更加可靠,更加准确。在由单片机构成的系统中,实时时钟是必不可少的器件。现在大多数实时时 钟,通常使用单片机的定时器设定初值,溢出后产生中断的方法实现,这种方式既需要采用计数器, 又使用软件编程,耗费了单片机很多资源,而且需要选择中断或查询方式,同时在一些系统中或许 不可以采用中断;有的系统为了满足对时钟芯片的要求,则使用并行接口芯片,如 MSM5832、DS12C885 等,它们虽能满足系统对实时时钟的要求,但这些芯片存在很大缺点,如并 行接口的芯片与单片机连接的接口繁琐、芯片占用空间大、占用数据位和地址位接口多,给整个系 统带来不便。 此温湿度记录仪的数字时钟是由串行实时时钟 DS1302 和 MSP430 同步通信构成的。 其 3-wire 结构节省了 MSP430 很多能源,减少了不必要的消耗。而且,电路掉电后,时间和数据等 重要内容仍然不会消失。这些特点拟补了普通时钟芯片具有的缺点,该时钟电路可靠性和准确性有 了很大提高,适用于要求比较高的场合,优越性明显高于其它时钟芯片,在很多自动化控制、无人 的测控系统等领域,具有较高的使用价值。 时钟芯片 DS1302,能与单片机进行同步串行方式的通信,其内部内含有一个实时时钟和 31 字 节数据暂存存储器,仅需用到三根线进行数据的控制和传递,即 SCLK 串行时钟,RES 复位,输 入输出数据线。实时时钟能提供日、时、分、秒、月、年的精确信息,根据每月的天数和闰年、平 年的天数,时钟可自动做出调整。也可通过对时钟进行设置,决定使用 24 小时模式还是使用 12 小时模式。DS1302 工作电压范围 2.05.5V,当电压为 2V 时,能保存时钟和数据信息,且电流小 于 300 纳安,也就是说率小于 1 毫瓦,因此功耗很低。 3.5 LCD 液晶显示器液晶显示器 LCD 液晶显示器的整体是由上下两个玻璃板构成的,在两块板之间设置液晶盒,LCD 液晶下 层板放置薄膜晶体管,在上层板中,放置彩色滤光片。LCD 液晶分子的运动趋势由薄膜晶体管上 的电压和信号的改变决定,由此决定每一个像素点偏振光被过滤掉还是射出,从而显示出想要显示 4 的效果。 LCD 液晶显示器的优点是显示的内容多,控制简单,功耗低,可以显示字符、图片等内容; 缺点是显示器本身不会发光,而是根据背光来达到显示的目的,并且价格也不便宜。相比于 LCD 液晶屏,LED(二极管)的优点是液晶本身会发光,所以从远处能够看清屏上的内容,而 LCD 则 不能看清,并且其价格比 LCD 要低;缺点是显示的内容少,一般是数码,而且很耗电,控制复杂。 基于本设计低功耗的设计理念,并且对发光亮度没有要求,应选择 LCD 显示屏。 芯片的驱动器使用的是功能强大并且可以编程的 HT1621,可驱动很多种显示器,其中包括有 效电平时间与总周期之比为 1/2、1/3 和 1/4 的,偏置比为 1/2 或 1/3 的显示器。驱动芯片内有 128 位显示 RAM,可以选择低功耗的运行模式,适用于本设计所选的 LCD 模块和 HT1621 模块组成的 显示系统。HT1621 正常工作电压为 2.4V 到 2.5V,内部设有振荡器(频率 256kHz) ,外部有时钟 (频率 256kHz)或者晶体振荡器(频率 32kHz) 。 3.6 温湿度传感器温湿度传感器 SHT10 考虑到功能要求和功耗要求选用了 SHT10 温湿度传感器,该传感器为输出数字量的集成器件, 是由瑞士 Sensirion 公司推出。传感器的组成包括两个部分,即 1 个测温元器件以及 1 个测湿元器 件,能同时实现测量温湿度的要求,并且在同一芯片上,结合串行接口电路和 14 位模数转换器。 这些器件不仅使该产品具有性价比高的优点,而且反应快、功耗低,使其成为首选产品。 SHTl0 具有很多优点,体积小,精度高,数字输出等特点给设计者带来很大方便。 3.7 本章小结本章小结 本章主要对温湿度记录仪各模块的结构和功能特点做了简单的介绍,从中可以看出都采用了超 低功耗的器件,使整个系统将功耗降到最低。 4 温湿度监测的硬件设计 温湿度记录仪的整体结构框架如图 4-1 所示,记录仪由 Flash 存储器、外部时钟、电源电路、 报警器、温湿度传感器、液晶显示、MSP430 单片机等模块组成。并且能够与 PC 机通信,将数据 传送到 PC,再进行分析综合,有助于对整体趋势的把握。 图 4-1 温湿度记录仪的整体框架 4.1 MSP430 的外围电路的外围电路 MSP430及其外围电路如图4-2所示,单片机周围有晶振电路、复位电路、电源电路。MSP430 外接了一个32768HZ的晶振,芯片内部的工作频率通过倍频提供,每条指令的执行周期为125ns。 5 图 4-2 单片机外围电路 4.2 电源电路电源电路 如图4-3所示,SOUR2是经过电阻R9和R10分压后得到的R10上的电压,送入MSP430进行模数 转换,转换值与预先设置的值进行比较,如果低于设定值,则通知单片机,并在LCD液晶上显示电 量不足的信息。二极管D1能防止P2产生的大电流进入单片机,能很好的保护单片机正常运行。稳 压管VR1为MSP430提供3.3V电压。 图 4-3 电源电路 4.3 通信电路通信电路 使用 MAX3232 作为与 PC 通信的芯片,通信示意图如图 4-4 所示,供电电压为+3.3v。电路中 的 C9、C10、C13、C14 的值在串口使用说明上都为 0.1uf。 DB9 各管脚定义:1、载波检测(DCD);2、数据接收端(RXD);3、数据发送端(TXD); 4、数据终端准备好(DTR);5、信号地(SG);6、数据准备好(DSR);7、发送请求(RTS); 6 8、发送清除(CTS);9、振铃提示(RI); 图 4-4 通信电路 4.4 时钟电路时钟电路 该设计时钟电路由时钟芯片、晶振和电阻组成。如右图 4-5 所示,时钟电路在很多系统中都很 常见,如手机、笔记本、电子手表、学习机等都有时钟电路。DS1302 电路是目前普遍使用的串行 时钟芯片,该时钟电路具有很多优点,如电路计时准确、价格便宜、操作方便、可靠性强、使用方 法简单。时钟电路最突出的特点是数据传输使用的是串行输出,节省了输入输出口。除此之外,时 钟电路具有充电功能,掉电后为保证电路正常工作,能够通过软件提供充电操作,也能够停止该动 作。晶体振荡器 Y1 使用的频率为 32.768kHz。 图 4-5 时钟电路 4.5 存储电路存储电路 AT45DB 的连接如图 4-6 所示,片选引脚/CS 为使能端,串行时钟(SCK)端进行读写控制。 SI 和 SO 为串行输入线和串行输出线,微处理器指令控制设备运行。AT45DB161B 具有通用串行接 口,但是只支持模式 0 和 3。在这两种模式下,当 SCK 端出现 0 到 1 的跳变时,存储器将输入数据; 当 SCK 出现 1 到 0 的跳变时,存储器将输出数据。二者的不同之处在于 SCK 触发沿的变化不同。 复位时,串行外设接口的模式 3 为存储器的默认使用模式。以上所有的地址、指令和数据都从高字 节传送。 7 图 4-6 存储电路 4.6 显示电路显示电路 根据显示要求驱动器使用了 HT1621,驱动器是 34*2 位的内存映象(图 4-7)和功能齐全的驱 动芯片。液晶能够在很多地方使用,例如一些显示子系统和 LCD 模块等场合。只用四条或五条引 脚来连接驱动和主控制器。基于本设计的理念,HT1621 也有节电模式,电流最大为 5uA,有助于 系统整体功耗的降低。 图 4-7 RAM 映象图 液晶使用了普瑞翔 FY-T03937ARP,如图 4-8 所示。 8 图 4-8 液晶 4.7 报警电路报警电路 温湿度记录仪的报警电路如图 4-9 所示,单片机通过 BELLLC 端控制蜂鸣器。当温度超过上下 限时,该端为高电平,三极管导通,报警电路报警。相反,当该端为低电平时,三极管截止,报警 电路不工作。 图 4-9 报警电路 4.8 Altium Designer 的介绍的介绍 该软件是 EDA(电路设计自动化)软件开发商 Altium 公司推出的一体化的电子产品开发系统。 这套软件融合了原理图绘制、电路仿真、PCB 绘制、自动布线、信号完整性分析和设计输出等技术, 给使用此系统的人们提供了轻松的设计方法,是一种快捷高效的设计研发途径。该系统已经在很大 程度上加快了印刷电路板的设计效率和产品质量。 9 EDA 指的是将整个设计过程中由人完成的部分现在交给计算机来完成此任务。例如电路原理 图的绘制、印刷电路板文件的制作、执行电路仿真等工作。随着电子科技的迅速发展,功能强大的 器件不断出现,人们的要求也越来越高,电路的设计也变得很复杂,这些工作想要靠手工完成,几 乎是不可能的事情,电路设计自动化已经成为必然的趋势,设计人员开始使用简单方便的 CAD(计算机辅助设计)软件来进行设计,除了能够画原理图和设计印刷电路板,也能够打印各种 报表。 Altium Designer 不仅沿用了 EDA、CAD 的基本功能和特点,还扩展了一些改进的高端的功能。 该平台拓展了板级设计的传统界面,集成了可编程片上系统和现场可编程门阵列设计功能,从而允 许设计人员能集成系统设计中的印刷电路板设计与现场可编程门阵列和嵌入式设计。在继承先前 EDA 软件功能的基础上,此软件综合了现场可编程门阵列设计、嵌入式系统软件设计的功能,对 计算机的系统需求比以前的版本要高。 功能介绍:1、原理图设计;2、PCB 设计;3、嵌入式开发;4、现场可编程门阵列的开发。 使用该软件时,首先在软件建立一个印刷电路板的工程文件,然后向工程中添加原理图文件, 如图 4-10 所示,最后再向工程中添加 PCB,更新 PCB,设计 PCB,如图 4-11 所示。 4-10 原理图 10 图 4-11 印刷电路板 5 温湿度监测的软件设计 5.1 程序流图程序流图 软件部分可分为主程序、中断程序和各种子程序。在主程序和中断程序里调用数据接收、A/D 转换、数据存储、显示、数据上传等子程序。在没有和PC机连接的情况下,单片机执行完操作后, 若没有操作,会进入休眠状态,直到与上位机相连,将单片机唤醒。当单片机与PC相连时,可以 接收上位机发送来的命令并执行,上传相应的数据。 图5-1为本设计的程序流图。 开开始始 定定时时一一秒秒外外部部中中断断 休休眠眠 显显示示 读读时时间间和和温温度度 中中断断服服务务 是是否否达达到到一一 秒秒 YN 图 5-1 主程序流程图 5.2 MSP430 的开发软件的开发软件 国内MSP430使用的开发软件种类并不多,主要有IAR公司的EW430和AQ430。目前IAR的用户 居多。IAR Systems是全世界高端的嵌入式系统开发产品和服务的供应商。1983年,该公司成立, 至今为止已经有二十七年的历史,提供的工具和服务与嵌入式系统的设计、开发、测试的每一个过 程都有关,例如:带有C和C+编译器和调试器的集成开发环境、实时操作系统和中间件、开发套 件、硬件仿真器以及状态机建模工具。 本设计使用的是EW430,IAR EW430软件提供了工程管理,程序编辑,代码下载,调试等多种 功能,为设计提供了很大的方便。IAR界面如图5-2所示。 11 图 5-2 IAR 界面 6 问题发现和解决 6.1 程序问题程序问题 问题1:按键触发概率低。 原来的按键程序如下: if(P1IFG if(keyin = 0x0e) while(keyin != 0x0f); /等待按键放开 KeyVal = 1; LPM1_EXIT; P1IFG = 0; return; 该程序在逻辑上是对的,因为单个按键程序是没有任何问题的。 分析如下: 1)是不是由于delay()的时间太短或者太长造成的呢?经过查阅资料知道按键消抖时间50毫秒 左右,经过尝试修改delay()时间发现不能从根本上解决问题;还有很大的概率按键失灵; 2)怀疑是写的程序太乱,执行效率低,来不及执行按键。通过三天的修改程序架构,已经变 得十分简单了,结果还是没有太大改善,但是程序顺畅了。 3)怀疑是中断使用过多,触发太频繁导致触发程序失败。经过精简中断函数,去掉了一个20 毫秒的定时器,去掉了一个RS232发送中断,没有太大改观。 4)或许按键程序有问题。通过仿真器的采集P1IFG的值,发现了乱码,P1IFG应该是0x80却有 时候变为0x87(低三位接了DS1302);找到了原因原来逻辑上对的实际上很有可能有其他的干扰 存在,于是屏蔽低四位的干扰,程序如下: 12 if(P1IFG if(P1IN /等待按键放开 key_val = 1; P1IFG =0x00; 完美解决了按键问题。 问题 2:段码液晶显示不正常。 1)可能是段码程序问题,经过仔细检查程序发现还是不正常显示。 2)可能是电路问题,经过反复推敲电路设计发现没问题。排除方法是:测量电压、电流。发 现驱动 HT1621 正常工作。驱动 HT1621 的上拉电阻采取资料提供的标准 100k 电阻,发现问题依旧。 3)询问厂家是否按标准制作,回答是肯定的。我们只好再次进行上述的步骤结果还是徒劳, 迷茫中我们要求厂家提供测试正常的视频依据和测试代码,经过仔细比对发现视频中有一处和原理 有悖。进过仔细审查发现厂家没有按要求去生产,把 COM 口放错位置且是顺时针排序。而我们提 供给他们的图纸是逆时针的。乱码问题也解决了。 问题 3:串口通讯不正常与速度太慢。 在调试串口时候发现程序有错误,按照教程修改好了。由于 4 万条数据要以 9600 波特率传送, 需要传送十几分钟,我们改为 115200HZ 的波特率。发现总是通讯失败,查阅相关资料发现 MSP430 默认工作频率 800KHZ,虽然传送数据用的是子时钟 8MHZ,但 CPU 主时钟频率低,不能 胜任提供数据工作,经过修改把 CPU 提高到 8MHZ,但是频率越高功耗越大,所以我们进行降频 实验最后降到 1MHZ 发现正常工作。因此确定 CPU 工作在 1MHZ 模式下。 问题 4:存储不正常。 NAND-Flash 虽然功耗低但是操作起来复杂,经过查阅相关资料发现存储电路设计的并不完美, 因为 MSP430 有 SPI 接口,但设计电路时候却用了普通 I/O 口模拟 SPI,造成某些对时间要求苛刻 的函数并不能够顺利执行,最后采用精简逻辑使用两个函数完成存储读取的任务。 6.2 硬件问题硬件问题 1)断不开地问题的解决。采用三极管断开器件与地的连接以节省功耗,却发现芯片依然工作。 器件分离测试发现各个芯片都存在这个问题。最后决定使用三极管断开电源的方法。 2)I/O 功耗问题的解决。虽然采取了大量硬件软件措施降低功耗,但是功耗还是达到了十几毫 安秒。芯片一一卸下检测剩下的电路的总电流,最终发现原因在连接外部电源的接口,分析后认为 电源接口有一个检测端口不插入外部电源就处于低电平而检测端口接的 I/O 可能是高电平,所以 I/O 口设为输入口后应该再输出一个低电平,问题解决。 3)上拉电阻功耗问题的解决。在使用上拉电阻时候起初采用了经典的十千欧电阻,单个电阻 电流为 0.33mA,由于上拉电阻比较多电流总和就达到了 35mA。所以才用了一兆欧姆的电阻作为 上拉电阻,经过测试系统工作正常。 6.3 本章小结本章小结 本章大略地说明了存在的问题及其解决方法。总结出的方法是,首先考虑软件问题,其次考虑 硬件问题,最后综合考虑。最初的程序跑在板子上功耗最高时候四十多毫安秒。经过软件的优化降 低了大部分的功耗,经过硬件的排查几乎满足了要求。软硬件的综合考虑之后功耗满足了设计的要 求。 7 总结 本设计要求能对温度、湿度同时进行检测。来自SHT10的数字信号通过SHTDATA端进入单片 机,在单片机中,温度湿度数据一方面送到LCD液晶屏显示;另一方面将温湿度数据存储在 13 AT45DB中,存储下来的数据可以经MAX3232总线传输到计算机中,在计算机中使用相应的软件, 可以观测温湿度数据的曲线,也能对数据进行打印,实现了智能化,人性化。 本设计采用 MSP430 单片机实现了温湿度的记录、显示、报警、设置、上传到 PC 等功能。而 且还可以对测量温湿度的时间长短、起始时间等参数进行设置。由于 MSP430 单片机的超低功耗特 性,以及采用高效率电源管理模块,程序设计中采用低功耗设计方式,使得整个系统减少了功耗的 浪费。 参考文献参考文献 1 胡大可MSP430 系列 Flash 型超低功耗 16 位单片机北京航空航天大学出版社,2001 2 蔡纯洁,邢武PIC16/17 单片机原理和应用,合肥:中国科学技术大学出版社,2001 3 张雪彤,张荣华,胡书敏等大洋中脊热水探测与新型传感器J地质论评,2006 4 沈建华,杨艳琴MSP430 系列 16 位超低功耗单片机原理与应用M北京:清华大学出 版社,2004 5 童诗白,华成英模拟电子技术M北京:高等教育出版社,2001 6 陈延奎基于 80C51 单片机的通用数据采集与处理系统J机械出版社,2008 7 李朝青单片机 /设置定时器A的中断时间为1S TACTL = TASSEL_1 + MC_1; /计数时钟ACLK, 增计数模式8分频+ID_3 CCTL0 |= CCIE; /使能CCR0比较中断 /*ds1302*/ P1SEL /定义为普通I/O口 P1DIR |= DS_RST+DS_SCL; /bit1 bit0 bit3输出 /*初始化re232*/ Init_rs232 (); / /*初始化1621显示*/ P2SEL /定义p2.2 p2.4 p2.5为普通I/O口 P2DIR|=BIT2+BIT4+BIT5; /定义p2.2 p2.4 p2.5为输出 Init_1621(); qingping(); /先清 屏 /初始化ad/ P6DIR ADC12CTL0 = ADC12ON+SHT0_0+MSC; / 打开ADC,设置采样时间 ADC12CTL1 = CSTARTADD_3+SHP+CONSEQ_0; /配置寄存器 ADC12MCTL3 = INCH_3; / 选择采样通道a3 ADC12CTL0 |= ENC; / 使能转换 P6SEL |= BIT3; /使能ADC通道 / /* 初始化flash*/ AT45_ini(); /*初始化按键*/ key_init(); /*初值设定*/ chuzhi_from_flash();/读出flsh中的初值 /初次显示/ th_read( Getshijian(gettimer30s); chadianliang(); show_all1621(); P2DIR|=BIT1;P2OUT|=BIT1; Delays(18);P2OUT /蜂鸣器控制 /*初始化完成*/ while(1) _EINT(); /打开全局中断 if(guanji=0) /不关机 这条命令只执行一次 Init_1621(); 16 P4DIR|=BIT7; /开启VS P4OUT|=BIT7; P1IFG =0x00; P2IFG =0x00; key_init(); guanji=2; /跳出这条命令 qingping(); CCTL0 |= CCIE; /使能CCR0比较中断 if(guanji=2) /不关机 if(model=0) LPM1; if(kongzhi=0) if(miao%60=0) Getshijian(gettimer30s); th_read( temp=temp_offset+temp+tempset; hum=hum_offset+hum+humset; if(miao%caijishijian=0) if(miao%60=0) else if(model=1) show_setmodel1() ; else if(model=2) show_setmodel2() ; else if(model=3) show_setmodel3() ; if(guanji=1) qingping(); P2DIR|=BIT1;P2OUT/蜂鸣器不响 P1IE / 关闭P1.6P1.7中断使能 P2IE /关闭P2.0中断使能 P5OUT=BIT0+BIT1; P1OUT=BIT0+BIT1+BIT2; P3OUT=BIT1+BIT2+BIT3+BIT4; CCTL0 /关闭定时器 P4DIR|=BIT0; P4OUT LPM1; 17 /* 函数名称:TimerA_ISR 功 能:定时器A的中断服务函数 参 数:无 返回值 :无 */ #pragma vector=TIMERA0_VECTOR _interrupt void TimerA_ISR(void) LPM1_EXIT; /退出低功耗模式 miao+; if(miao=3600) miao=0; show_yanshi+; /控制时间显示 if(show_yanshi=60) show_yanshi=0; show_all1621() ; /* 函数名称:RS232收发中断 */ #pragma vector = UART1RX_VECTOR _interrupt void UART1_RXISR(void) LPM1_EXIT; /退出低功耗模式 kongzhi=0xff; rs232kongzhi(); kongzhi=0; /* 函数名称:PORT1_ISR 功 能:P1端口的中断服务函数 参 数:无 返回值 :无 */ #pragma vector=PORT1_VECTOR _interrupt void PORT1_ISR(void) LPM1_E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论