




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量毕业设计论文基于 msp430 单片机和 DS18B20使数码管显示的温度测量摘要:为了在现实生活和工业生产及过程控制中准确测量温度, 设计了一种基于低功耗 MSP430单片机的数字温度计, 整个系统通过 单片机 MSP430F149控制 DS18B20 读取温度,采用数码管显示,温 度传感器 DS18B20 与单片机之间通过串口进行数据传输, MSP430 系列单片机具有超低功耗,且外围的整合性高, DS18B20 只需一个 端口即可实现数据通信,连接方便,通过多次实验证明,该系统的测 试结果与实际环境温度一致,除了具有接
2、口电路简单,测量精度高, 误差小,可靠性高等特点外,其成本低,功耗低的特点使其拥有更广 阔的应用前景。 矚慫润厲钐瘗睞枥庑赖。关键字:温度测量 MSP430 单片机 温度传感器 DS18B20 超低 功耗Abstract: in order to accurately measure the temperature in real life and industrial production and process control, a digital thermometer was designed with low power consumption based on MSP430 sin
3、gle chip microcomputer, the control system of DS18B20 read the temperature through the single-chip MSP430F149, the use of digital tube display, temperature sensor DS18B20 and single chip microcomputer for data transmission through the serial port,MSP430 Series MCU with low power consumption the peri
4、phery,基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量and high integration, DS18B20 only needs one port to realize the data communication, the connection is convenient, through many experiments, the test results of the system and the actual environment temperature is the same, except with the interface circuit i
5、s simple, high precision, small error, high reliability, low cost, low power consumption it has a wider application prospect. 图表 1 聞 創沟燴鐺險爱氇谴净。MSP430 temperatureKeywords: temperature measurementsensor DS18B20ultra low2 power consumption 残骛楼諍锩瀨濟溆塹籟。目录一温度测量器的总体设计 3酽锕极額閉镇桧猪訣锥。二温度测量器的硬件选择 4彈贸摄尔霁毙攬砖卤庑。1
6、主控器件: MSP430F149 4謀荞抟箧飆鐸怼类蒋薔。2 温度信息采集单元: DS18B20 5厦礴恳蹒骈時盡继價骚。2.1 DS18B20 5茕桢广鳓鯡选块网羈泪。2.2 DS18B20 管脚排列 6鹅娅尽損鹌惨歷茏鴛賴。3.显示单元:数码管及其驱动 7籟丛妈羥为贍偾蛏练淨。3.1 数码管 7預頌圣鉉儐歲龈讶骅籴。3.2 驱动芯片: 74HC573 8渗釤呛俨匀谔鱉调硯錦。三 . 系统软件程序 9铙誅卧泻噦圣骋贶頂廡。1、系统的程序流图 9擁締凤袜备訊顎轮烂蔷。基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量2.处理 DS18B20 的子程序 10贓熱俣阃歲匱阊邺镓
7、騷。2、1 初始化时序 11坛摶乡囂忏蒌鍥铃氈淚。2、 2 写时序 13蜡變黲癟報伥铉锚鈰赘。2、3 读时序 15買鲷鴯譖昙膚遙闫撷凄。3、温度计算子程序 17綾镝鯛駕櫬鹕踪韦辚糴。4、处理数码管显示的子程序 20驅踬髏彦浃绥譎饴憂锦。四、系统调试 2猫1虿驢绘燈鮒诛髅貺庑。1、硬件检测和调试 21锹籁饗迳琐筆襖鸥娅薔。2、软件程序调试 23構氽頑黉碩饨荠龈话骛。3、整体调试 23輒峄陽檉簖疖網儂號泶。五、结论分析 2尧4侧閆繭絳闕绚勵蜆贅。参考文献: 2识5饒鎂錕缢灩筧嚌俨淒。附录一: 2凍5鈹鋨劳臘锴痫婦胫籴。附录二: 2恥5諤銪灭萦欢煬鞏鹜錦。附录三: 3鯊2腎鑰诎褳鉀沩懼統庫。一温度测
8、量器的总体设计生活中最常见的应该是利用物体的热胀冷缩测温度,比如家里用 的温度计、体温计等等,这种很好做但是精密程度不够,反正生活中 用的也不需要那么精密。 这里提出使用电子器件测温度, 利用温度传 感器,就是利用某些材料电阻随温度的变化, 通过电学上面测电阻用 公式换算到温度等于多少度。传感器用处应该很多,不光是测温度,基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量侧压力、光照强度等都可以用类似的方法, 就是把想要测的量全转化 成测电学量, 然后公式换算出温度。 我们提出用单片机 MSP430为温 度测量的主控制器, 温度传感器 DS18B20 通过单总线与单片机连接
9、, 数码管显示及其驱动原件位显示单元,系统的基本组成如图 1 所示。 硕癘鄴颃诌攆檸攜驤蔹。图 1 系统的基本组成 阌擻輳嬪諫迁择楨秘騖。 二温度测量器的硬件选择1 主控器件: MSP430F149MSP430F149 是一种新型的混合信号处理器, 采用了美国德州仪器 (Texas Instruments) 公司最新低功耗技术 (工作电流为 0.1 一 400 p A ) ,它将大量的外围模块整合到片内,特别适合于开发和设计单片 系统。 MSP430149 单片机主要具有如下特点: 氬嚕躑竄贸恳彈瀘颔澩。 低 电 压、超低功耗。工作电压 3.3V ,等待方式下工作电流为 1.3 w A,在 R
10、AM 保持关闭工作方式下工作电流仅为 0 A 。基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量 具 有 12 位的模数转换器 (ADC12) ,可以得到很高的精度, 并且 省去了使用专门的模数转换器给设计电路板带来的麻烦。 拥 有 大容量的存储空间。存储器方面包括多达 60 k Flash ROM 和 2 k RAM ,如此数量的存储空间完全可以满足程序及数据的需要。 两 通 道串行通信接口。可用于与计算机进行异步或同步串行通 信。 硬 件 乘法器。该乘法器独立于 CPU 进行乘法运算的操作, 在提 高乘法运算速度的同时也提升了 CPU 的利用效率。 串 行 在系统编程
11、。通过仿真器对程序进行下载,并通过专用软 件对程序及单片机的工作状态进行监控,极大地方便了程序的调试。 釷鹆資贏車贖孙滅獅赘。2 温度信息采集单元: DS18B202.1 DS18B20 单线数字温度传感器, 即“一线器件 ”,其具有独特 的优点: 采用单总线的接口方式 与微处理器连接时 仅需要一条口线即 可实现微处理器与 DS18B20 的双向通讯。 单总线具有经济性好, 抗干扰能力强, 适合于恶劣环境的现场温度测量, 使用方便等优点, 使用户可轻松地组建传感器网络,为测量系统的构建引入全新概 念。 怂阐譜鯪迳導嘯畫長凉。 测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 +
12、 125 ; 在 -10+ 85 C 范围内,精度为 0.5 C 。谚辞 調担鈧谄动禪泻類。 在使用中不需要任何外围元件且有负压特性 电源极性接反时,基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量温度计不会因发热而烧毁,但不能正常工作。 持多点组网功能 多个 DS18B20 可以并联在惟一的单线上, 实 现多点测温。 供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获 取电源。因此,当数据线上的时序满足一定的要求时,可以不接外 部电源,从而 使系统结构更趋简单,可靠性更高 。 嘰觐詿缧铴嗫偽純铪锩。 测量参数可配置 DS18B20 的测量分辨率可通过程序设定
13、 912 位。DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封 装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统, 因此也就被设计者们所青睐。 熒绐譏钲鏌觶鷹緇機库。2.2 DS18B20 管脚排列1. GND 为电源 地;2. DQ 为数字信号输入输出端;3. VDD 为外接供电电源输入端 (在寄生电源接线方式时接地) 。基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量图 2 芯片 BS18B20 管脚图3.显示单元:数码管及其驱动3.1 数码管本次设计因为是要显示温度 -55 + 125 ,则选择了四位十 二段共阴极的数码管显示,其引脚图如下
14、: 鶼渍螻偉阅劍鲰腎邏蘞。基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量纣忧蔣氳頑莶驅藥悯骛。图 3 四位阴极数码管引脚图3.2 驱动芯片: 74HC57374HC573的八个锁存器都是透明的 D 型锁存器,当使能( G) 为高时, Q 输出将随数据( D)输入而变。当使能为低时,输出将锁 存在已建立的数据电平上。 输出控制不是影响锁存器的内部工作, 即 老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种 电路可以驱动大电容或低阻抗负载, 可与直接与系统总线接口并驱动 总线,而不需要外接口 。 颖刍莖蛺饽亿顿裊赔泷。74HC573VccQ0Q1Q2Q3Q4Q5
15、Q6Q7LP基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量OED0D1D2D3D4D5D6D7GND. 系统软件程序 濫驂膽閉驟羥闈詔寢賻。1、系统的程序流图系统的程序主要包括主程序、 读出温度子程序、 写出温度子程序、 温度转换命令字程序、 计算温度子程序和数码管显示数据子程序。 程 序的功能是实时显示温度、读出并处理 DS18B20的测量温度值,温 度测量没 1s进行一次,其程序流程如图: 銚銻縵哜鳗鸿锓謎諏涼。基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量2. 处理 DS18B20的子程序DS18B20的一线工作协议流程是:初始化 ROM
16、操作指令存储器操作指令数据传输。其工作时序包括:10基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量初始化时序写时序读时序2、 1 初始化时序主机首先发出一个 480 960微秒的低电平脉冲,然后释放总线变 为高电平,并在随后的 480微秒时间内对总线进行检测,如果有低 电平出现说明总线上有器件已做出应答。若无低电平出现一直都 是高电平说明总线上无器件应答。做为从器件的 DS18B20在一上电后就一直在检测总线上是否有 480960微秒的低电平出现,如果有,在总线转为高电平后等待 1560微秒后将总线电平拉低 60240微秒做出响应存在脉冲,告 诉主机本器件已做好准备。若
17、没有检测到就一直在检测等待。 挤貼 綬电麥结鈺贖哓类。11基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量图4 初始化时序时间图程序 C 代码如下:/初始化 DS18B20void DS18B20Init(void)DQ_OUT;/设置为输出方向DQ_LOW;/ 拉低总线Delayus(50);DQ_HIGH;/ 释放总线Delayus(6);12基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量DQ_IN;/ 设置为输入方向while(DQ_DATA);/ 等待应答信号while(DQ_DATA);/ 等待释放总线2、2 写时序接下来就是主机发出各种
18、操作命令,但各种操作命令都是向 DS18B20写0和写 1组成的命令字节, 接收数据时也是从 DS18B20读取 0或1的过程。因此首先要搞清主机是如何进行写 0、写 1、读0和读1 的。写周期最少为 60微秒,最长不超过 120微秒。写周期一开始做为 主机先把总线拉低 1微秒表示写周期开始。 随后若主机想写 0,则继续 拉低电平最少 60微秒直至写周期结束, 然后释放总线为高电平。 若主 机想写 1,在一开始拉低总线电平 1微秒后就释放总线为高电平, 一直 到写周期结束。而做为从机的 DS18B20则在检测到总线被拉底后等 待 15微秒然后从 15us 到45us 开始对总线采样,在采样期内
19、总线为高 电平则为 1,若采样期内总线为低电平则为 0。赔荊紳谘侖驟辽輩袜錈。13基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量图 5 写时序图 程序 C 代码如下:/写一个字节void WriteByte(uchar WriteData) uchar i;uchar tmpData;for(i=0;i=1;DQ_OUT;14基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量DQ_LOW;if(tmpData)DQ_HIGH;elseDQ_LOW;Delayus(5);DQ_HIGH;2、3 读时序对于读数据操作时序也分为读 0时序和读 1时序两个过
20、程。读 时隙是从主机把单总线拉低之后,在 1微秒之后就得释放单总线为高 电平,以让 DS18B20把数据传输到单总线上。 DS18B20在检测到总线 被拉低1微秒后,便开始送出数据, 若是要送出 0就把总线拉为低电平 直到读周期结束。若要送出 1则释放总线为高电平。主机在一开始拉 低总线 1微秒后释放总线,然后在包括前面的拉低总线电平 1微秒在内15基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量的 15微秒时间内完成对总线进行采样检测, 采样期内总线为低电平则 确认为 0。采样期内总线为高电平则确认为 1。完成一个读时序过程, 至少需要 60us 才能完成 。 塤礙籟馐
21、决穩賽釙冊庫。程序 C 代码如下:/读一个字节uchar ReadByte(void)uchar i;uchar ReadData=0;for(i=0;i=1;DQ_HIGH;Delayus(1);DQ_IN;if(DQ_DATA) ReadData|=0x80;Delayus(6);return ReadData; 3、温度计算子程序DS18B20中的温度传感器完成对温度的测量,用 16位二进制形式提 供,形式表达,其中 S 为符号位。17基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量bit7 bit6 bit15 bit4 bit3 bit2 bit1 bit0LS
22、 Byte32221202-12-22-32-42bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8MS ByteSSSSS62652424裊樣祕廬廂颤谚鍘羋蔺。图7 DS18B20的 16位二进制形式例 如125的数字输出为 07D0H (正温度 直接吧16进制数转成 10 进制即得到温度值 )-55的数字输出为 FC90H。 (负温度 把得到的 16进制数 取反后 加1 再转成 10进制数)程序 C 代码如下:/温度计算程序void GetT()if(MSB&0xF0)0) / 判断是否为负温度flag=1;else flag=0;18基于 msp4
23、30 单片机和 DS18B20 使用数码管显示的温度测量if(flag) / 如果为负温度取反加 1MSB=MSB;LSB=LSB+1;t1=MSB4);/计算各位数码管要显示的数值if(flag)Bit1=16; / 如果为负温度则显示 -elseBit1=t1/100;Bit2=t1%100/10;Bit3=t1%10;19基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量图 8 温度转换的例图4、处理数码管显示的子程序本设计使用的是四位十二段共阴极数码管, 其中有四个位选引脚, 控制数码管的各个位, 八个段选引脚, 控制每一个数码管的八个段位 a、b、c、d、e、f
24、、g、 dp,详细如上图 3的引脚图,共阴极数码管各引 脚对高电平有效, 实现其对温度的显示的 C 程序如下: 仓嫗盤紲嘱珑詁鍬齊驁。/数码管扫描显示程序void Display(void)for(uchar i=0;i4;i+)P3OUT=BitCode; /输出位码20基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量if(i=3) / 输出段码 ,如果第三位显示小数点P2OUT=CodeBiti&0x7F;elseP2OUT=CodeBiti;BitCode0;i-);while(IFG1&OFIFG);/ 判断 XT2 是否起振BCSCTL2=SELM1+SELS;
25、/MCLK SMCLK时钟源为/端口初始化函数void InitPort(void)P2SEL=0x00;/P2 口所有引脚设置为一般的 IO 口P3SEL=0x00;/P3 口所有引脚设置为一般的 IO 口P2DIR=0xFF;/P2 口所有引脚设置为输出方向P3DIR=0xFF;/P3 口所有引脚设置为输出方向P2OUT=0x00;/P2 口先输出低电平P3OUT=0x80;/P3 口先输出低电平/P5SEL&=BIT7;/P5. 设 7置为一般的 IO 口/P5DIR|=BIT7;/P5.7 设置为输出方向/P5OUT&=BIT7;/P5.7 输出低电平来使能 74HC573TX2CLK
26、 不分频来驱动数码管/ms 级延时子程序void DelayMs(uint ms) while(ms-)for(uint i=0;i700;i+);/数码管扫描显示程序27基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量void Display(void)for(uchar i=0;i4;i+)P3OUT=BitCode; / 输出位码if(i=3) / 输出段码 ,如果第三位显示小数点 P2OUT=CodeBiti&0x7F;elseP2OUT=CodeBiti;BitCode=1;/ 位码右移一位if(BitCode=0x10) BitCode=0x01;DelayM
27、s(2); / 延时 1msP2OUT=0XFF;/10us 级延时子程序void Delayus(uint us)while(us-)_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_
28、NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();28基于 msp430 单片机和 DS18B20 使用数码管显示的温度测量_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP(); _NOP();_NOP();_NOP();_NOP();_NOP();/初始化 DS18B20void DS18B20Init(void)DQ_OUT;/ 设置为输出方向DQ_LOW;/ 拉低总线Delayus(50);DQ_HIGH;/ 释放总线Delayus(6);DQ_IN;/ 设置为输入方向 while(DQ_DATA);/ 等待应答信号 while(DQ_DATA);/ 等待释放总线/读一个字节uchar ReadByte(void)uchar i;uchar ReadData=0;fo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 少年歌曲音乐课件
- 插画设计师课件
- 客运市场调研合同
- 护理安全不良事件管理
- 建筑工程职责分工协议
- 学前教育实践报告
- 处方点评知识培训
- 各类标准化会议接送合同
- VP气体采购合同
- 小儿急性喉炎护理
- 英语词汇的奥秘知到章节答案智慧树2023年武汉科技大学
- 研究生复试自我介绍面试个人简历PPT模板
- 腔内心电图经外周中心静脉导管picc尖端定位技术
- The+Little+Woman英文名著《小妇人》整本书阅读指导课件
- 用友ERP-U8基础档案设置
- 慢性胃炎中医症候评分表
- DB21T 3701-2023 海砂资源开发利用规范
- 高中美术鉴赏(必修) 湘美版 《我们怎样鉴赏美术作品》
- 学生心理健康档案表格
- 夜空中最亮的星二部合唱简谱
- 病毒的遗传与变异
评论
0/150
提交评论