基于MSP430F149的温湿度记录仪的设计说明书
收藏
资源目录
压缩包内文档预览:(预览前20页/共23页)
编号:91864919
类型:共享资源
大小:1.66MB
格式:ZIP
上传时间:2020-08-10
上传人:QQ14****9609
认证信息
个人认证
郭**(实名认证)
陕西
IP属地:陕西
50
积分
- 关 键 词:
-
基于
MSP430F149
温湿度
记录仪
设计
说明书
- 资源描述:
-
基于MSP430F149的温湿度记录仪的设计说明书,基于,MSP430F149,温湿度,记录仪,设计,说明书
- 内容简介:
-
I基于 MSP430F149 的温湿度记录仪 摘摘 要要 市场上已有温湿度记录仪电池使用时间短、功能单一,本设计通过软、硬件的优化来实现功耗低的功能。硬件主要由超低功耗单片机 MSP430、传感器 SHT10、断码液晶、串口 MAX3232 和 AT45DB161 flash 等器件组成。软件方面主要通过定时器产生一秒中断方式,使其进行温湿度的采集、显示和存储。记录仪具有数据存储大、功耗低、能和 PC 通信、性价比高等特点。研究结果表明,该仪器能够长时间记录温湿度,使用方便,性能可靠而且当温度到达上限实现报警的功能。关键词关键词 MSP430 温湿度记录仪 功耗低 IIThe Design of temperature and humidity recorder Based on the MSP430Zheng Fengjun Directed by Lecturer Jang ShaojunAbstract 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 3目 录摘摘 要要 .I IABSTRACTABSTRACT .IIII2 2 背景介绍背景介绍 .4 4 2.1 选题背景 .4 2.2 研究的目的及意义 .53 3 温湿度记录仪各模块的介绍温湿度记录仪各模块的介绍 .5 5 3.1 单片机 MSP430 .5 3.2 串口 MAX3232.6 3.3 flash at45db .63.4 时钟 DS1302.63.5 lcd 液晶显示器.73.6 温湿度传感器 SHT10.73.7 本章小结 .74 4 温湿度温湿度监测监测的硬件设计的硬件设计 .7 74.1 msp430 的外围电路.84.2 电源电路 .94.3 通信电路 .94.4 时钟电路 .104.5 存储电路 .104.6 显示电路 .114.7 报警电路 .125 5 温湿度温湿度监测监测的软件设计的软件设计 .12125.1 Altium Designer 的介绍.125.2 Altium Designer 使用.135.3 程序流图.145.4 程序 .145.5 本章小结.20 46 6 问题发现和解决问题发现和解决 .20206.1 程序问题.206.2 硬件问题.216.3 本章小结 .217 7 总结总结 .2121参考文献:参考文献: .2222致谢致谢 .2323 5基于 MSP430F149 的温湿度记录仪1 引言日常生活和工业生产都离不开温湿度,因此人们发明了很多仪器去测量它们,并且经历了长久的发展过程,从很久以前的长度测量方法以及干湿测量方法,到现在的电测量方法,温湿度测量技术已经一步一步得趋于成熟。但是这些测量方法仍存在一些缺点和不足,不能满足我们现在对温湿度测量的要求,尤其是一些场所,要求实时测量并记录其全过程,并且超过温度上下限时报警,这些导致了新的温湿度记录仪的产生。该仪器温湿度参数是由温湿度传感器SHT10获得的,其值为数字量,直接按预先设定的时间间隔将温湿度参数储存到内部的flash中。在完成存储后,如果将其与PC机相连,PC将向记录仪发送相应的指令,产生中断,此时记录仪将数据上传PC,再对数据进行整体分析,采取相应措施。它能够长时间的记录环境或被测对象的温度,工作温度范围广,满足通用性。在气温监测,货物存储、实验过程等方面有很重要的作用。2 背景介绍 2.1 选题背景选题背景1592年,意大利人Galileo创造了最早的温湿度测量仪。他在一个容器中,倒入一定量的液体,倒置了一个有细长颈的器皿,为了使液面上升到细颈内,从长颈器皿中抽出一部分空气。由于气体的热胀冷缩现象,长颈内的液面将随着外界温度的变化而变化,因此温湿度的高低就反映到液面的升降上,但是这个测量器是没有刻度的,在应用上受到限制。荷兰人华伦海特于 1714 年制定了华氏温标,这是历史上最早出现的温标,华氏温标单位用“”来表示,也读作华氏度。0 华氏度是由一定浓度的盐水变为固体时的温度规定的,32 华氏度、212 华氏度分别是由纯水变为固体时的温度和 1.013105 帕斯卡气压下水急剧转化为气体的温度规定的。 瑞典的 Anders Celsius 于 1742 年创立了另一种温标,制成了水银温湿度计,温湿度记录仪以水转化为气体的温度作为 0 度,以水的凝固温度为 100 度。1745 年,瑞典科学家 Linnaeus 研制了摄氏温湿度计,他是将 Anders Celsius 的水银温湿度计的冰点和沸点这两个温度点颠倒过来制成的。1802年,出现了查理斯定律,即在恒压一定量气体的体积随绝对温度的上升而上升。反之,一定体积的气体,压力与开尔文温度变化的趋势相同。当 Charles 定律出现后,气体温湿度计也有了相应的提升,相比较水银温湿度计,气体温度计的效果无论在测温范围方面还是在精确度上,都超过前者。1821年,德国的塞贝克发现热电效应,即温差与电压相互转换的现象。于是就出现了热电偶温湿度计。英国的 Dawid 在同一年里发现了温湿度影响电阻的规律,再此之后热电阻温湿度计随之产生。2.2 研究的目的及意义研究的目的及意义在测量范围内,温度、湿度是一对很重要的参数,无论是人们生活的环境还是工业生产、农作物的生长都需要对温度和湿度进行适时准确的测量,以保证能源的节约和各行各业安全健康的发展。随着科学技术的迅猛发展,测量领域内对温湿度的检测也取得飞速发展,其水平直接影响人类的各种活动。利用单片机对温湿度控制,具有很多优点,如高精度、小体积、多功能、低价格,易操作等,极大的满足了生产生活的需求。 63 温湿度记录仪各模块的介绍温湿度记录仪的整体结构框架如图 4-1 所示,记录仪由 FLASH 存储器、外部时钟、电源电路、报警器、温湿度传感器、液晶显示、MSP430 单片机等模块组成。并且能够与 PC 机通信,将数据传送到 PC,再进行分析综合,有助于对整体趋势的把握。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 更适合应用于电池供电装置或系统中。 7(4)在开发工具方面。对于 MSP430f149 来说,采用了 JTAG 技术和 Flash 型存储器,使开发工具变得既简便又低廉,同时也能够实现在线编程。而 89C51 单片机,很早进入中国市场,使用者对它相对了解,所以有很多开发工具被创造出来,适应设计者的要求。但是仍存在一个很大的问题,即如何实现在线编程。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 时,能保存时钟和数据信息,且电流小于 300NA,也就是说率小于 1MW,因此功耗很低。 83.5 LCD 液晶显示器液晶显示器LCD 液晶显示器的整体是由上下两个玻璃板构成的,在两块板之间设置液晶盒,LCD 液晶下层板放置薄膜晶体管,在上层板中,放置彩色滤光片。LCD 液晶分子的运动趋势由薄膜晶体管上的电压和信号的改变决定,由此决定每一个像素点偏振光被过滤掉还是射出,从而显示出想要显示的效果。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-14.1 MSP430 的外围电路的外围电路MSP430及其外围电路如图4-2所示,单片机周围有晶振电路、复位电路、电源电路。MSP430 9外接了一个32768HZ的晶振,芯片内部的工作频率通过倍频提供,每条指令的执行周期为125ns。图 4-24.2 电源电路电源电路如图4-3所示,SOUR2是经过电阻R9和R10分压后得到的R10上的电压,送入MSP430进行模数转换,转换值与预先设置的值进行比较,如果低于设定值,则通知单片机,并在LCD液晶上显示电量不足的信息。二极管D1能防止P2产生的大电流进入单片机,能很好的保护单片机正常运行。稳压管VR1为MSP430提供3.3V电压。图 4-34.3 通信电路通信电路使用 MAX3232 作为与 PC 通信的芯片,通信示意图如图 4-4 所示,供电电压为+3.3v。电路中 10的 C9、C10、C13、C14 的值在串口使用说明上都为 0.1uf。DB9 各管脚定义:1、载波检测(DCD);2、数据接收端(RXD);3、数据发送端(TXD);4、数据终端准备好(DTR);5、信号地(SG);6、数据准备好(DSR);7、发送请求(RTS);8、发送清除(CTS);9、振铃提示(RI);图 4-44.4 时钟电路时钟电路该设计时钟电路由时钟芯片、晶振和电阻组成。如右图 4-5 所示,时钟电路在很多系统中都很常见,如手机、笔记本、电子手表、学习机等都有时钟电路。DS1302 电路是目前普遍使用的串行时钟芯片,该时钟电路具有很多优点,如电路计时准确、价格便宜、操作方便、可靠性强、使用方法简单。时钟电路最突出的特点是数据传输使用的是串行输出,节省了输入输出口。除此之外,时钟电路具有充电功能,掉电后为保证电路正常工作,能够通过软件提供充电操作,也能够停止该动作。晶体振荡器 Y1 使用的频率为 32.768kHz。图 4-54.5 存储电路存储电路AT45DB 的连接如图 4-6 所示,片选引脚/CS 为使能端,串行时钟(SCK)端进行读写控制。SI 和 SO 为串行输入线和串行输出线,微处理器指令控制设备运行。AT45DB161B 具有通用串行接口,但是只支持模式 0 和 3。在这两种模式下,当 SCK 端出现 0 到 1 的跳变时,存储器将输入数据;当 SCK 出现 1 到 0 的跳变时,存储器将输出数据。二者的不同之处在于 SCK 触发沿的变化不同。复位时,串行外设接口的模式 3 为存储器的默认使用模式。以上所有的地址、指令和数据都从高字 11节传送。图 4-64.6 显示电路显示电路根据显示要求驱动器使用了 HT1621,驱动器是 34*2 位的内存映象和功能齐全的驱动芯片。液晶能够在很多地方使用,例如一些显示子系统和 LCD 模块等场合。只用四条或五条引脚来连接驱动和主控制器。基于本设计的理念,HT1621 也有节电模式,电流最大为 5uA,有助于系统整体功耗的降低。液晶使用了普瑞翔 FY-T03937ARP 如图 4-7。 12图 4-74.7 报警电路报警电路温湿度记录仪的报警电路如图 4-8 所示,单片机通过 BELLLC 端控制蜂鸣器。当温度超过上下限时,该端为高电平,三极管导通,报警电路报警。相反,当该端为低电平时,三极管截止,报警电路不工作。图 4-85 温湿度监测的软件设计5.1 Altium Designer 的介绍的介绍该软件是 EDA(电路设计自动化)软件开发商 Altium 公司推出的一体化的电子产品开发系统。 13这套软件融合了原理图绘制、电路仿真、PCB 绘制、自动布线、信号完整性分析和设计输出等技术,给使用此系统的人们提供了轻松的设计方法,是一种快捷高效的设计研发途径。该系统已经在很大程度上加快了印刷电路板的设计效率和产品质量。EDA 指的是将整个设计过程中由人完成的部分现在交给计算机来完成此任务。例如电路原理图的绘制、印刷电路板文件的制作、执行电路仿真等工作。随着电子科技的迅速发展,功能强大的器件不断出现,人们的要求也越来越高,电路的设计也变得很复杂,这些工作想要靠手工完成,几乎是不可能的事情,电路设计自动化已经成为必然的趋势,设计人员开始使用简单方便的CAD(计算机辅助设计)软件来进行设计,除了能够画原理图和设计印刷电路板,也能够打印各种报表。Altium Designer 不仅沿用了 EDA、CAD 的基本功能和特点,还扩展了一些改进的高端的功能。该平台拓展了板级设计的传统界面,集成了可编程片上系统和现场可编程门阵列设计功能,从而允许设计人员能集成系统设计中的印刷电路板设计与现场可编程门阵列和嵌入式设计。在继承先前EDA 软件功能的基础上,此软件综合了现场可编程门阵列设计、嵌入式系统软件设计的功能,对计算机的系统需求比以前的版本要高。功能介绍:1、原理图设计;2、PCB 设计;3、嵌入式开发;4、现场可编程门阵列的开发。 5.2 Altium Designer 使用首先在软件建立一个印刷电路板的工程文件,然后向工程中添加原理图文件,最后再向工程中添加 PCB,更新 PCB,设计 PCB。如图 5-1 所示。 14图 5-15.3 程序流图程序流图软件部分可分为主程序、中断程序和各种子程序。在主程序和中断程序里调用数据接收、A/D 转换、数据存储、显示、数据上传等子程序。在没有和PC机连接的情况下,单片机执行完操作后,若没有操作,会进入休眠状态,直到与上位机相连,将单片机唤醒。当单片机与PC相连时,可以接收上位机发送来的命令并执行,上传相应的数据。图5-2为本设计的程序流图。定时器 1 秒休眠按键显示读时间温度图5-25.4 程序程序初始化程序P2OUT&=BIT1;/关蜂鸣器P4DIR|=BIT0; P4OUT&=BIT0; /发光二极管灭P6DIR&=BIT4; 15P6OUT&=BIT4;InitSystemClock(); / / 为时钟源选择外部晶振为振源 /*初始化定时器a*/CCR0 = 32767; /设置定时器A的中断时间为1STACTL = TASSEL_1 + MC_1; /计数时钟ACLK, 增计数模式8分频+ID_3CCTL0 |= CCIE; /使能CCR0比较中断/*ds1302*/P1SEL&=(BIT0+BIT1+BIT2); /定义为普通I/O口 P1DIR |= DS_RST+DS_SCL; /bit1 bit0 bit3输出 /*初始化re232*/Init_rs232 ();/ /*初始化1621显示*/P2SEL&=(BIT2+BIT4+BIT5); /定义p2.2 p2.4 p2.5为普通I/O口P2DIR|=BIT2+BIT4+BIT5; /定义p2.2 p2.4 p2.5为输出Init_1621();qingping();/先清 屏/ad/P6DIR &=BIT3; 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(&temp,&hum);Getshijian(gettimer30s); chadianliang(); show_all1621();P2DIR|=BIT1;P2OUT|=BIT1; Delays(18);P2OUT&=BIT1; /蜂鸣器控制主程序中标志位扫描程序_EINT(); /打开全局中断if(guanji=0) /不关机 这条命令只执行一次 Init_1621(); P4DIR|=BIT7; /开启VSP4OUT|=BIT7;P1IFG =0x00;P2IFG =0x00; 16key_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,&hum);temp=temp_offset+temp+tempset;hum=hum_offset+hum+humset; if(miao%caijishijian=0)&(LOG=0x40)&(kongzhi=0)&(model=0) /判断存储一次 storagetoat45db(); if(miao%60=0)&(model=0) /每60秒检测一次电量 chadianliang(); 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&=BIT1;/蜂鸣器不响P1IE &=( BIT6+BIT7); / 关闭P1.6P1.7中断使能 P2IE &= BIT0; /关闭P2.0中断使能P5OUT=BIT0+BIT1;P1OUT=BIT0+BIT1+BIT2; P3OUT=BIT1+BIT2+BIT3+BIT4;CCTL0 &=CCIE; /关闭定时器P4DIR|=BIT0; P4OUT&=BIT0; LPM1; 17显示总调用函数void show_all1621() / /显示总调用 if(model=0) /普通模式 showtime() ; xianshifuzhi() ;show_T1_5_X4_LOG_MEM_H_X1() ;showwenshi() ; void show_setmodel1() qingping(); /设置模式1 /设置部分全亮 switch(xian_choose) case 0: Ht1621Wr_Data_4(0x80, 23);/温度高限亮set_show_wendu_H() ; break;case 1: Ht1621Wr_Data_4(0x80, 21);/温度低限亮set_show_wendu_L() ;break;case 2: Ht1621Wr_Data_4(0x10, 1); /显示湿度高限set_show_shidu_H() ;break;case 3: Ht1621Wr_Data_4(0X10, 17); /显示湿度高限set_show_shidu_L() ;break;default: break; Delays(40);/闪烁switch(xian_choose) case 0: case 1:if(wei_choose=1) Write_Data(0x00, 26);Write_Data(0x00, 2);else if(wei_choose=2) Write_Data(0x00, 28);Write_Data(0x00, 4); 18break;case 2: case 3: if(wei_choose=1) Write_Data(0x00, 26);Write_Data(0x01, 2);else if(wei_choose=2) Write_Data(0x00, 28);Write_Data(0x00, 4);break;default: break;Delays(40);void show_setmodel2() /设置模式2 qingping();switch(xian_choose) case 0:set_show_shifen();Delays(40); if(wei_choose=1) /让选中位灭 达到闪烁效果 Write_Data(0x00, 14); Write_Data(0x01, 8); else if(wei_choose=2) Write_Data(0x00, 10); Write_Data(0x00, 12);Delays(40);break;case 1:set_show_yueri();Delays(40);if(wei_choose=1) /让选中位灭 达到闪烁效果Write_Data(0x00, 14);Write_Data(0x00, 8); else if(wei_choose=2) Write_Data(0x00, 10); Write_Data(0x00, 12); 19Delays(40); break;case 2:set_show_year();Delays(40);if(wei_choose=1) /让选中位灭 达到闪烁效果Write_Data(0x00, 10);else if(wei_choose=2) Write_Data(0x00, 12);Delays(40); break;case 3 :set_show_caijishijian();Delays(40);if(wei_choose=1) /让选中位灭 达到闪烁效果Write_Data(0x00, 24);else if(wei_choose=2)Write_Data(0x00, 26);else if(wei_choose=3)Write_Data(0x00, 28);else if(wei_choose=4)Write_Data(0x00, 30);Delays(40);default: break; void show_setmodel3() qingping();switch(xian_choose) case 0: set_show_temp_wucha(); break;case 1: set_show_hum_wucha();break;default: break; Delays(40);switch(xian_choose) case 0: if(wei_choose=1) Write_Data(0x08, 28);else if(wei_choose=2) Write_Data(0x08, 30); break;case 1: 20if(wei_choose=1) Write_Data(0x01, 4);else if(wei_choose=2) Write_Data(0x01, 6);break;default: break; Delays(40);5.5 本章小结本章小结本章主要介绍了能进行融合原理图绘制、电路仿真、印刷电路板的绘制、自动布线的 Altium Designer 软件。同时,也简单的介绍了温湿度记录仪的程序框架。6 问题发现和解决6.1 程序问题程序问题问题1:按键触发概率低。按键程序原来是这样的:if(P1IFG & 0x0f) switch(P1IFG) case 0x01:if(keyin = 0x0e) /如果是第一个按键被按下 delay();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);找到了原因原来逻辑上对的实际上很有可能有其他的干扰存在,于是屏蔽低四位的干扰,程序如下:if(P1IFG&BIT5) /如果是第一个按键被按下 delay1();if(P1IN&BIT5) while(P1IN&BIT5)=0 ); /等待按键放开 21key_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 功耗问题的解决。虽然采取了大量硬件软件措施降低功耗,但是功耗还是达到了十几毫安秒。芯片一一卸下检测剩下的电路的总电流,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。