基于MSP430单片机温度测量系统设计毕业论文_第1页
基于MSP430单片机温度测量系统设计毕业论文_第2页
基于MSP430单片机温度测量系统设计毕业论文_第3页
基于MSP430单片机温度测量系统设计毕业论文_第4页
基于MSP430单片机温度测量系统设计毕业论文_第5页
免费预览已结束,剩余69页可下载查看

下载本文档

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

文档简介

IIIIII基于 MSP430单片机温度测量系统设计毕业论文目录摘要 错 误!未定义书签。Abstract 错 误!未定义书签。TOC\o"1-5"\h\z\o"CurrentDocument"第1章绪论 1\o"CurrentDocument"MSP430单片机概述 1\o"CurrentDocument"MSP430的特点 2\o"CurrentDocument"课题研究的主要内容 4\o"CurrentDocument"研究内容 4\o"CurrentDocument"论文安排 4\o"CurrentDocument"第2章系统总体方案设计 5\o"CurrentDocument"控制系统的原理图 5\o"CurrentDocument"温度测量原理 5\o"CurrentDocument"MSP430F149单片机 6\o"CurrentDocument"MSP430F149的组成 6\o"CurrentDocument"MSP430F149的特点 7\o"CurrentDocument"MSP430F149的定时器及转换模块 7\o"CurrentDocument"单线数字温度传感器 DS18B20 8\o"CurrentDocument"DS18B20的技术性能: 9\o"CurrentDocument"DS18B20的应用范围 9\o"CurrentDocument"DS18B20产品型号与规格 10\o"CurrentDocument"温度传感器 DS18B20特点: 10\o"CurrentDocument"DS18B20使用中注意事项 10\o"CurrentDocument"温度传感器 DS18B20内部结构 11\o"CurrentDocument"数据采集系统 13\o"CurrentDocument"第3章硬件部分 15\o"CurrentDocument"硬件电路图 15\o"CurrentDocument"电源及复位模块 16\o"CurrentDocument"键盘输入模块 18\o"CurrentDocument"报警模块 19\o"CurrentDocument"功率放大器 LM386 19\o"CurrentDocument"LM386 内部原理 21\o"CurrentDocument"显示模块 23\o"CurrentDocument"LCD1602基本参数及引脚功能 231602LCD主要技术参数 24引脚功能说明 24\o"CurrentDocument"第 4章 软件部分 29\o"CurrentDocument"最小系统设计 29\o"CurrentDocument"采集模块 31\o"CurrentDocument"键盘输入模块 32\o"CurrentDocument"显示模块 34\o"CurrentDocument"报警模块 37\o"CurrentDocument"总结 39\o"CurrentDocument"致谢 40参考文献 41附录 42C等高级语言进行系统程序设计时, 对DS18B20操作部分最好采用汇编语言实现。2、在DS18B20的有关资料中均未提及单总线上所挂 DS1820数量问题,容易使人误认为可以挂任意多个 DS1820,在实际应用中并非如此。当单总线上所挂 DS18B20超过 8个时, 就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时 要加以注意。2.4.6温度传感器 DS18B20内部结构温度传感器 DS18B20内部结构: DS18B20采用三脚 PR35封装如图2-2所示,其内部框图如 2-3所示 [5]。64位的ROM开始8位是产品类型的编号,接着是每个器件的唯一的序号共计 48位,最后 8位是前56位的CRC校验码。高速缓存器存储器包含一个高速暂存 RAM和一个非易失性的可电擦除的 EP2RAM。配置寄存器为高速缓存器中的第五个字节,它的内容用于确定温度值的数字转换分辨率,各位字节的定义如表 2-2示:表2-2各位字节的定义TMR1R011111后五位一直是 1,TM是测试模式位,用于设置 DS18B20在工作模式还是测试模式,在 DS18B20出厂时被设置为 0,用户不要去改动, R1和R0决定温度转换的精度位数,也就是设置分辨率。

图2-4DS18B20内部结构图在温度进行计算时,以 12位转换位数为例:对于正的温度,只要将测到的数值整数部分取出, 转换为十进制, 再将小数部分乘以 0.0625就可以将得到的十进制的小数位的温度值了。而对于负的温度,则需要将采集到的数值取反加 1,即可以得到实际温度的十六进制表示。在按照正温度的计算方法就可以得出十进制的负的温度了 [6]。如表2-3及表2-4所示。表2-3DS18B20温度寄存器格式Bit7Bit6Bit5Bit4Bit3Bit2Bit1bit0LSByte232221202-12-22-32-4Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8LSByteSSSSS262524

表2-4部分温度值温度/℃二进制表示16进制表示+125000001111101000007D0H+25.062500000001100100010191H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-25.06251111111001101111FE6FH-551111110010010000FC90H2.5数据采集系统该系统采用美国 DALLAS公司生产的单线数字温度传感器 DS18B20来采集温度数据, 作为单片机 MSP430149的温度传感器, 该芯片有很多优点,可把温度信号直接转换成串行数字信号供微机处理。由于每片DS18B20含有唯一的硅串行数, 从DS18B20读出的信息或写入 DS18B20的信息,仅需要一根口线(单线接口) 。由于该系统采用 DS18B20作为温度采集传感器,这部分电路就比较简单了,图 2-5为温度采集电路。2-5温度采集电路

I/O口可以通过图2-5I/O口可以与MSP430F149的P2.6口直接相连,来完成数据的传送。第3章硬件部分本章主要介绍硬件部分的各个模块,这些模块包括电源模块及复位TI公司的TPS76033芯片,保证 MSP430F149单片机的工作电压。复位模块采用MAX809芯片。键盘输入模块主要是用来输入数据, 从而实现人机交互。LM386芯片,实现报警控制。显示模块采用 LCD1602显硬件电路图单片机的最小系统如图 3-1所示:图3-1单片机最小系统电路单片机电路作为整个系统的核心控制部分,主要完成与其他电路的

接口,从而获得数据进行处理,将处理的结果采用某种方式表现出来,比如显示或报警。从单片机最小系统电路可以看出,单片机接口电路非常简单,分别采用单片机的一般 I/O口实现与其他电路的连口,在单片机的时钟设计上与其他单片机有一定的区别, MSP430F149单片机采用两个时钟的输入,一个32kHz的时钟信号, 一个 8MHz的时钟信号。 该系统的时钟部分是采用晶体振荡器实现的 [7]。考虑到电源的输入纹波对单片机的影响,在电源的管理脚增加一个 0.1uF的电容来实现滤波,以减小输入端受到的干扰。另外单片机还有模拟电源的输入端,因此在这里需要考虑干扰问题,在该系统中的干扰比较小,因此模拟地和数字地共地,模拟电源输入端增加一个滤波电容以减少干扰。电源及复位模块本模块采用 TPS76033(低功耗 50mA低压降(LDO)稳压器)芯片实现,如图 3-2所示:图3-2TPS76033实物图电压电路:由于 MSP430F149单片机的工作电压一般是 1.8v~3.6v,并且功率极低。为了方便起见,本系统采用电池(如 2节普通5号电池)供电,因此输出电压为 3V。而整个系统采用 3.3V供电。考虑到硬件系统对电源要求具有稳压功能和纹波小等特点,另外也考虑到硬件系统的低功耗特点, 因此该硬件系统的电源部分采用 TI公司的TPS76033芯片实现,该芯片能很好的满足该硬件的系统的要求,另外该芯片具有很小的封装,因此能有效的节约 PCB板的面积[8]。为了使输出电源的纹波小, 在输出部分用了一个 2.2uF和0.1uF的电容,另外在芯片的输入端也放置一个 0.1uF的滤波电容,减少输入端受到的干扰。电源电路具体如图 3-3所示。图3-3电源电路复位电路:在单片机系统里,单片机需要复位电路,复位电路可以采用 RC复位电路,也可以采用复位芯片实现的复位电路, RC复位电路具有经济性,但可靠性不高,用复位芯片实现的复位电路具有很高的可靠性,因此为了保证复位电路的可靠性,该系统采用复位芯片实现的复位电路,该系统采用 MAX809芯片 [1]。为了减小电源的干扰,还需要在复位芯片的电源的输入端加一个0.1uF的电容来实现滤波,以减小输入端受到的干扰。复位电路如图 3-4所示:

3-4复位电路3-4复位电路键盘输入模块键盘输入电路主要是用来输入数据,从而实现人机交互。该系统的键盘设计是采用扫描方式实现的矩阵键盘。 该系统的键盘电路图如图 3-5P1.0P1.0、P1.1、P1.2、P1.3构成键图3-5键盘输入电路该矩阵扫描键盘由行线和列线组成,

盘的行线, P1.4、Pl.5、Pl.6和Pl.7构成键盘的列线。键盘的行线作为键盘的控制输出端,键盘的列线作为键盘的输入端。在设计时为了程序设计的方便性,键盘的列线采用的是 Pl.4、Pl.5、P1.6、Pl.7,这样可以利用该管脚的中断功能。这样在没有按键按下的情况下,该四个管脚的电平为高电平,如果有按键按下时,则相应的列线管脚为低电平,这时通过设置Pl.4、Pl.5、P1.6、P1.7为低电平触发中断方式,低电平就触发中断而进入中断服务程序,从而获得输入的数据。键盘的工作原理具体如下 :首先将 P1.0、P1.1、P1.2、P1.3.设置为输出,将P1.4、P1.5、P1.6、P1.7设置为输入, 并将 P1.4、P1.5、P1.6、P1.7设置为低电平触发中断方式 ;将P1.3设置为低电平, 如果该行上有按键按下的话,则 P1.4、P1.5、P1.6或者 P1.7上为低电平 [10],就会触发中断,进入中断服务程序,获得输入的数据。如果没有按键按下的话,则 Pl.4、Pl.5、P1.6和P1.7上为高电平,不会进入中断服务程序。依次将 P1.0、P1.1、P1.2、P1.3设置为低电平来判断该行是否有输入, 如果没有输入的话, P1.4、P1.5、P1.6、P1.7均为高电平,如果有输入的话, P1.4、P1.5、P1.6、P1.7上为低电平,就会触发中断,进入中断服务程序,获得输入数据。键盘的扫描时间很短,仅仅几微秒的时间,然而按键的时间一次至少需要几十毫秒,所以只要有按键按下的话是都可以被扫描到的。另外还要考虑键盘的抖动处理。报警模块该部分电路主要是驱动一个蜂鸣器,这样只需要将蜂鸣器的一端接地,另一端以单片机进行相接就可以了。 而驱动该蜂鸣器需要 LM386功率放大器。功率放大器 LM386LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广

泛应用于录音机和收音机之中。 LM386具有以下特性 ,LM386如图3-6所示:(1)静态功耗低,约为 4mA,可用于电池供电。(2)工作电压范围宽, 4-12v或5-18v。(3)外围元件少。(4)电压增益可调, 20-200。(5)低失真度。图3-6LM386LM386内部电路原理图如图 3-7所示。与通用型集成运放相类似,它是一个三级放大电路。3-7LM386内部原理图LM386内部原理1、第一级为差分放大电路T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为 T1和T2的有源负载; T3和T4信号从管的基极输入, 从T2管的集电极输出, 为双端输入单端输出差分电路。 使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。2、第二级为共射放大电路T7为放大管,恒流源作有源负载,以增大放大倍数。第三级中的 T8和T9管复合成 PNP型管,与NPN型管T10构成准互补输出级。 二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。 引脚2为反相输入端,引脚 3为同相输入端。电路由单电源供电,故为 OTL电路。输出端(引脚 5)应外接输出电容后再接负载。电阻R7从输出端连接到 T2的发射极,形成反馈通路,并与 R5和R6构成反馈网络,从而引入了深度电压串联负反馈, 使整个电路具有稳定的电压增益。如图3-7所示 ,引脚 2为反相输入端, 3为同相输入端; 引脚5为输出端;引脚 6和4分别为电源和地;引脚 1和8为电压增益设定端;使用时在引脚 7和地之间接旁路电容,通常取 10μF。查LM386的datashee,电源电压t 4-12V或5-18V(LM386N-4);静态消耗电流为 4mA;电压增益为 20-200dB;在 1、8脚开路时,带宽为300KHz;输入阻抗为 50K;音频功率 0.5W。 尽管LM386的应用非常简单,但稍不注意,特别是器件上电、断电瞬间,甚至工作稳定后,一些操作(如插拔音频插头、旋音量调节钮)都会带来的瞬态冲击,在输出喇叭上会产生非常讨厌的噪声。下面介绍改进措施:(1)通过接在 1脚、8脚间的电容( 1脚接电容+极)来改变增益,断开时增益为 20dB。因此用不到大的增益,电容就不要接了,不光省了成本,还会带来好处 --噪音减少(2)PCB设计时,所有外围元件尽可能靠近 LM386;地线尽可能粗一

些;输入音频信号通路尽可能平行走线,输出亦如此。3)选好调节音量的电位器。质量太差的不要,否则受害的是耳朵;阻值不要太大, 10K最合适,太大也会影响音质!4)电源的处理,也很关键。如果系统中有多组电源,由于电压不同、负载不同以及并联的去耦电容不同, 每组电源的上升、 下降时间必有差异。非常可行的方法:将上电、掉电时间短的电源放到 +12V处,选择上升相对较慢的电源作为 LM386的Vs,但不要低于 4V。5)尽可能采用双音频输入 /输出。好处是: “+”、“-”输出端可以很好地抵消共模信号,故能有效抑制共模噪声。6)第 7脚( BYPASS)的旁路电容不可少!实际应用时, BYPASS端必须外接一个电解电容到地,起滤除噪声的作用。工作稳定后,该管脚电压值约等于电源电压的一半。增大这个电容的容值,减缓直流基准电压的上升、下降速度,有效抑制噪声。7)在器件上电、掉电时的噪声就是由该偏置电压的瞬间跳变所致。8)减少输出耦合电容。此电容的作用有二:隔直+8)减少输出耦合电容。此电容的作用有二:隔直压,直流电压过大有可能会损坏喇叭线圈;耦合音频的交流信号。它与扬声器负载构成了一阶高通滤波器。 减小该电容值, 可使噪声能量冲击的幅度变小、宽度变窄;太低还会使截止频率提高。分别uF最为合适。 图测试,发现10uF/4.7uF最为合适。能量冲击的幅度变小、宽度变窄;太低还会使截止频率提高。分别uF最为合适。 图测试,发现10uF/4.7uF最为合适。0接线图。3-8为放大增益为3-8放大器增益 =20图3-9报警电路由图3-9可知LM386的IN+(3)口与 MSP430F149的P2.5端口通过一个100欧姆的电阻相连接,来完成相应的控制。3.5显示模块系统的显示电路采用 LCD液晶显示器显示,这样的方式能满足该系统的要求,也可很容易的完成。本设计采用的是 LCD1602,他有很多优点:(1)显示质量高(2)数字式接口(3)体积小、重量轻(4)功耗低3.5.1LCD1602基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光厚,是否带背光在应用中并无差别,两者尺寸差别如图3-10所示:

图3-10LCD1602尺寸图1、1602LCD主要技术参数显示容量:16×2个字符芯片工作电压 :4.5—5.5V工作电流 :2.0mA(5.0V)模块最佳工作电压 :5.0V字符尺寸 :2.95×4.35(W×H)mm2、引脚功能说明1602LCD采用标准的 14脚(无背光)或 16脚(带背光)接口,各引脚接口说明如表 3-1所示:( 1)第 1脚 VSS为地电源。( 2)第 2脚 VDD接 5V正电源。( 3)第 3脚 VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生 “鬼影”,使用时可以通过一个 10K的电位器调整对比度。4)第 4脚RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。5)第 5脚R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平 R/W为高电平时可以读忙信号,当 RS为高电平 R/W为低电平时可以写入数据。6)第 6脚E端为使能端, E端由高电平跳变成低电平时,执行命令。7)第 7~ 14脚 D0~ D7为 8位双向数据线。8)第 15脚是背光源正极。9)第 16脚是背光源负极。表3-1引脚口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据 /命令原则12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的,表 3-2为LCD1602的控制命令,表中给出了 11条指令,这些指令包括清显示,光标返回,置输入模式,显示开 /控制等等,其中‘ 1’为高电平, ‘0’为低电平。表3-2控制命令表序号指令RSR/WD7D6D5D4D3D2D1D0

1清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开 /控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生贮存期地址0001字符发生存储器地址8置数据存储器地址001显示数据存储器地址9读忙标志或地址01BF计数器地址10写数据到CGRAM或DDRAM10要写的数据内容11从CGRAM读数11读出的数据内容下面介绍 LCD1602的11条指令:1)指令 1:清显示,指令码 01H,光标复位到地址 00H位置。(2)指令 2:光标复位,光标返回到地址 00H。(3)指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。(4)指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。(5)指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。(6)指令 6:功能设置命令 DL:高电平时为 4位总线,低电平时为 8位总线N:低电平时为单行显示,高电平时双行显示 F:低电平时显示5x7的点阵字符,高电平时显示 5x10的点阵字符。(7)指令 7:字符发生器 RAM地址设置。(8)指令 8:DDRAM地址设置。(9)指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。(10)指令 10:写数据。(11)指令 11:读数据。图3-11为显示电路 .通过图3-11看出,该显示电路直接与单片机的数据I/O口进行连接, VSS为电源地, VDD为电源正极,接 5V电源,RS为数据命令选择, RW为读写命令选择, D0-D7用来接收数据,由于MSP430F149具有丰富的 I/O口资源,这样采用并行的接口方式非常容易,减小系统设计的复杂度, 也可以增加系统的可靠性。 P4.0-4.7是用来显示数据, 分别与对应 LCD1602的D0—D7相连接, P2.2、P2.3和P2.4是用来控制数码管的选通状态。 P2.2与LCD1602的RS端相连接,用来控制数据命令, P2.3与RW相连接,用来控制读 /写操作, P2.4与使能端E相连接。3-11显示电路第4章软件部分本章介绍系统的软件设计,主要包括采集模块、键盘输入模块、显示模块、报警模块和主处理模块。下面具体介绍各个模块的软件设计 [1]最小系统设计主处理模块主要是将各个模块进行协调处理和实现数据交互。主处理模块首先完成初始化上作,初始化后进入循环处理,在循环过程中主处理获得采集模块的数据,井将数据进行处理,根据处理后的结果来进行显示或者报警。由于报警的上限和下限需要设置,另外考虑到对数据行显示或者报警。由于报警的上限和下限需要设置,另外考虑到对数据的保存,因此主程序先检查门限是否在 FLASH里面有,如果没有则进行等待设置数据,设置完成后才进入下一步处埋,也就是程序必须在有设置数据的情况下才能正常运行。下面而给出主处理的流程图,如图 4-1所示。4-1主处理器流程图4-1主处理器流程图考虑到需要对设置数据进行读写,这样需要对 FLASH进行操作,下面给出 FLASH操作的函数。该函数的功能是将一个 WOED类型的数据写入到FILASH里面。voidFLASH_ww(int*pDataintnValue){PCTL3=0xA500; //LOCK=0;PCTL1=0xA540; //WRT=1;*pData=nValue;}该函数的功能是将一个 BYTE类型的数据写入到 FLASH里面。voidFLASH_wb(char*pDatacharnValue){PCTL3=0xA500; //LOCK=0;PCTL1=0xA540; //WRT=1;*pData=nValue;}该函数的功能是将 FLASH里而的内容擦除掉。voidFLASH_cir(int*pData){PCTL1=0xA502;//ERASE=1;PCTL3=0Xa500; //LCOK=0;*pData=0;}根据上而流程图给出简单的程序,下面的程序是简单化的处理,只是将得到的结果除以 100获得整数部分,该程序忽略小数部分的处理,该程序也是假定上下限在 0-100之间。以下为具体的程序。见附录 2。采集模块采集模块重要是通过 DS18B20温度传感器获得数据,并对采集来的数据进行处理后送给 MSP430F149。CPU对DS18B20的访问流程是: 先对DS18B20初始化,再进行 RoI1操作命令,最后才能对存储器操作、数据操作。 DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制 DS18B20完成温度转换这一过程,根据 DS18B20的通讯协议,须经三个步骤 :每一次读写之前都要对 DS18B20进行复位,复位成功后发送一条 ROM指令,最后发送 RAM指令,这样才能对 DS18B20进行预定的操作图 4-2为该模块的程序流程图。4-2采集模块程序流程图键盘输入模块键盘输入电路主要是用来输入数据,从而实现人机交互。该系统的键盘设计是采用扫描方式实现的矩阵键盘。该矩阵扫描键盘由行线和列线组成, P1.0、P1.1、P1.2、P1.3构成键盘的行线, P1.4、P1.5、P1.6、P1.7构成键盘的列线。键盘的行线作为键盘的控制输出端,键盘的列线作为键盘的输入端。在设计时为了程序设计的方便性,键盘的列线采用的是 P1.4、P1.5、P1.6、P1.7,这样可以利用该管脚的中断功能。这样在没有按键按下的情况下,该四个管脚的电平为高电平,如果有按键按下时,则相应的列线管脚为低电平,这时通过设置 P1.4、P1.5、P1.6、P1.7为低电平触发中断方式,低电平就触发中断而进入中断服务程序,从而获得输入的数据。键盘的工作原理具体如下 :首先将 P1.0、P1.1、P1.2、P1.3设置为输出,将P1.4、P1.5、P1.6、P1.7设置为输入, 并将 P1.4、P1.5、P1.6、P1.7设置为低电平触发中断方式,将 P1.3设置为低电平,如果该行上有按键按下的话,则 P1.4、P1.5、P1.6、或者 P1.7.上为低电平,就会触发中断,进入中断服务程序, 获得输入的数据。 如果没有按键按下的话, 则 P1.4、P1.5、P1.6和Pl.7上为高电平,不会进入中断服务程序。依次将 P1.0、P1.1、P1.2、P1.3设置为低电平来判断该行是否有输入, 如果没有输入的话, P1.4、P1.5、P1.6、P1.7均为高电平,如果有输入的话, P1.4、P1.5、P1.6、P1.7上为低电平,就会触发中断,进入中断服务程序,获得输入数据。键盘的扫描时间很短,仅仅几微秒的时间,然而按键的时间一次至少需要几十毫秒,所以只要有按键按下的话是都可以被扫描到的。另外还要考虑键盘的抖动处理。为了防止键盘的扫描而影响其他部分的处理,这里采用了定时器 B来检察是否有按键按下。图 4-3为该部分的程序流程图。

图4-3输入模块流程图该模块主要包括对定时器 B和端口中断的处理初始化部分 ;该部分主要完成端口的初始化和定时器 B的初始化。该部分端口的初始化程序。voidInt_INPUTPort(void){//将管脚在初始化的时候设置为输入方式PIDIR=0;//将所有的管脚设置为一般 I/O口PISEL=0;//将 P1.4、P1.5、P1.6和P1.7设置为输入方向PIDIR&=~(BIT4);PIDIR&=~(BIT5);PIDIR&=~(BIT6);PIDIR&=~(BIT7);//将P1.0,P1.1,P1.2和P1.3设置为输出方向PIDIR|=~BIT0;PIDIR|=~BIT1;PIDIR|=~BIT2;PIDIR|=~BIT3;//将Pl.4、Pl.5、Pl.6和Pl.7设置为低电平中断触发方式P1IE|=BIT4;//管脚P1.4使能中断P1IES|=BIT4;//对应的管脚由高到低电平跳变使相应的标志置位P1IE|=BIT5;//管脚 P1.5使能中断P1IES|=BIT5;//对应的管脚由高到低电平跳变使相应的标志置位P1IE|=BIT6;//管脚P1.6使能中断P1IES|=BIT6;//对应的管脚由高到低电平跳变使相应的标志置位P1IE|=BIT7;//管脚P1.7使能中断P1IES|=BIT7;//对应的管脚由高到低电平跳变使相应的标志置位Return}该部分代码为定时器 B的初始化程序代码voidInit_Timer(void){TBCTL=TBSSEL0+TBCLR; //选择 ACLK,清除 TARTBCCTL0=CCLE;//TBCCR0中断允许TBCCR0=32768; //时间间隔为 1sTBCLT|=MC0; //增计数模式}显示模块该部分主要完成数据的显示功能。在硬件设计中,显示电路直接与单片机的数据 I/O口进行连接。 P4.0-P4.7是用来显示数据, P2.2、P2.3和P2.4是用来控制数码管的选通状态, 显示模块相对比较简单, 只是简单的将数据显示在数码管脚上,该模块主要包括端口初始化和数据显示两部分,下而是对 LCD正常运行时所需程序的编写。//LCD液晶操作函数 /////////////////////////////LCD1602液晶初始化voidLCD_init(void){LCD_DATA_DDR|=LCD_DATA;//数据口方向为输出LCD_EN_DDR|=LCD_EN;//设置 EN方向为输出LCD_RS_DDR|=LCD_RS;//设置 RS方向为输出LCD_write_command(0x28);//4位数据接口delay_nus(40);LCD_write_command(0x28);//4位显示LCD_write_command(0x0c);//显示开LCD_write_command(0x01);//清屏}//液晶使能voidLCD_en_write(void){LCD_EN_PORT|=LCD_EN;delay_nus(1);LCD_EN_PORT&=~LCD_EN;}//写指令voidLCD_write_command(unsignedcharcommand){delay_nus(16);LCD_RS_PORT&=~LCD_RS;//RS=0LCD_DATA_PORT&=0X0f;//清高四位LCD_DATA_PORT|=command&0xf0;//写高四位LCD_en_write();command=command<<4;//低四位移到高四位LCD_DATA_PORT&=0X0f;//清高四位LCD_DATA_PORT|=command&0xf0;//写低四位LCD_en_write();} //写数据voidLCD_write_data(unsignedchardata){delay_nus(16);LCD_RS_PORT|=LCD_RS;//RS=1LCD_DATA_PORT&=0X0f;//清高四位LCD_en_write();Data=data<<4;//低四位移到高四位LCD_DATA_PORT&=0X0f;//清高四位LCD_DATA_PORT|=data&0xf0;//写低四位LCD_en_write();}//写地址函数voidLCD_set_xy(unsignedcharx,unsignedchary){unsignedcharaddress;if(y==0)address=0x80+x;elseaddress=oxc0+x;LCD_write_command(address);}//LCD在任意位置写字符串//列 x=0~15,行 y=0,1voidLCD_write_string(unsignedcharX,unsignedcharY,unsignedchar*s){LCD_set_xy(X,Y);//写地址while(*s)//写写显示符{LCD_write_data(*s);s++;}}//LCD在任意位置写字符//列 x=0~15,行 y=0,1voidLCD_write_char(unsignedcharX,unsignedcharY,unsignedchardata){LCD_set_xy(X,Y);//写地址LCD_write_data(data);}//延时函数 ///////////////lus延时函数voiddelay_lus(void){ asm(“nop”); }//Nus延时函数voiddelay_nus(unsignedintn){unsignedintI;for(i=0;i<n;i++)delay_1us();}//1ms延时函数voiddelay_nms(unsignedintn){unsignedinti=0;for(i=0;i<n;i++)delay_1ms();}4.5报警模块报警处埋模块相当简单,这里只是简单的在一个 I/O口上送出数据来驱动蜂鸣器,该模块包括初始化端口和数据产生两个部分,下面就各个部分给出具体的程序代码到。初始化部分 :该部分将输出端口设置为输出方向。程序代码如下 :voidinit_AlarmPort(void){//将P2.5设置为输出方向P2DIR=BIT5;Return;}数据产生部分 :该部分主要是在输出端口产生数据,这里不是简单的一个高电平或者低电平,而是有一定频率的数据,因为只有是交流信号才-可以让蜂鸣器发声。 至于不同的周期信号可以得到不同的频率, 可以根据信号处理的知识进行分析, 这里就不进行讨论。 下面给出代码 [12],voidRing(void){intI;P2OUT|=BIT5;//高电平for(i=0;i<200;i++)_NOP();P2OUT&=~(BIT5)//低电平for(i=0;i<200;i++)_nop();在上面的程序中, _NOP()为MSP430提供内联函数。 上面程序中是一个单音频率的数据 .可以根据信号处理的知识修改上而的程序,产生出具有丰富频率的数据 [11]。总结基于MSP430单片机的温度控制器的设计已基本完成,各部分功能都已实现。 MSP430F149单片机片上资源比较丰富,这使得课题外围电路相对简单,还留有大部分 I/O口以便今后扩展。温度采集模块用DS18B20来实现,电路简单,且价格便宜,精度与稳定度都比较高。液显示模块采用 LCD1602显示终端的温度。 键盘模块电路, 用户可以通过键盘直接操纵温控仪工作,并通过显示观察温控结果,为用户提供了一个良好的人机接口。在设计过程中,要考虑到各方而的因素,不能仅从理论方而进行设计,还要结合到实践、考虑到具体应用,只有这样才可以做出符合现实需要的产品。尽管本文设计基本满足系统的要求,但还存在诸多需要多改进之处,文中也可能存在一些不足及疏忽之处,欢迎大家批评指正。致谢在查找资料、整理资料和设计阶段都得到了 XXX老师的大力支持和悉心指导,多次过问进展情况并提供诸多帮助,同时在论文修改阶段 X老师给予非常有责任心的关心和指异,多次给出修改意见,使文章能不断提高质量。 XXX严谨务实的治学态度令本人受益匪浅, X老师的设计思想也渗透在本文各章节中,而且 X老师那种具有亲和力的指导方式使我们之间的距离拉得很近,她不仅是我的老师,也是我的朋友,本论文是在X老师的亲切关怀与悉心指导下完成的。再次对 X彦平老师悉心帮助表示感谢!参考文献沈建华,杨艳琴,翟晓曙。 MSP43O系列 16位超低功耗单片机实践与系统设TOC\o"1-5"\h\z[M]。清华大学出版社, 2005秦龙。MSP430单片机应用系统开发典型事例 [M]。北京:中国电力出版社胡大可。 MSP43O系列 FLASH型超低功耗 1位单片机 [M]。北京:北京航空航大大学出版社, 2001魏小龙。 MSP430系列单片机接口技术及系统设计实例 [M]。北京:北京航空航大大学出版社, 2002李维,郭强。液晶显示应用技术 [M]。电子工业出版社, 2000梅丽凤。基于MSP430控制的液晶显示屏设计与实现 [M]。辽宁工业大学信息科学与工程学院, 2007李维绽,郭强。液晶显示器件应用技术 [M]。北京:北京邮电学院出版社, 1999李元斌。 DS18B20数字传感器温度检测显示系统 [J]。湖北:华中科技大学生命学院试验中心, 430074郑敏。DS18B20温度传感器在温度大枷多路测控技术中的应用 [J]。四川:鄂州大学电子工程系, 520081马云峰。单片机与数字温度传感器 DS18B20的接口技术 [J]。山东:潍坊学院信息与控制工程系, 261041向奇汝。多功能温度控制器,自动化与仪器仪表, 1999张友德,赵志英。单片机原理应用与实验 [M]。上海复旦大学出版社, 1992百度百科。 MSP430单片机。 /vie

温馨提示

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

评论

0/150

提交评论