MSP430内部温度传感器测试程序
msp430实验报告
msp430实验报告msp430实验报告引言:msp430是一种低功耗、高性能的微控制器,被广泛应用于嵌入式系统和物联网设备中。
本实验报告将介绍我对msp430微控制器进行的一系列实验,包括实验目的、实验过程、实验结果以及对实验的总结和展望。
实验目的:本次实验的主要目的是熟悉msp430微控制器的基本功能和使用方法,以及学习如何进行简单的控制程序设计。
通过实验,我希望能够掌握msp430的基本操作和编程技巧,并且能够运用所学知识解决实际问题。
实验过程:在实验开始之前,我首先对msp430微控制器进行了一些基本的了解。
我了解到,msp430具有低功耗、高性能和丰富的外设接口等特点,可以满足各种嵌入式系统的需求。
接着,我根据实验指导书的要求,准备好实验所需的硬件设备和软件工具。
第一部分实验是关于GPIO口的实验。
我按照实验指导书上的步骤,将msp430与LED灯连接起来,并编写了一个简单的程序,实现了对LED灯的控制。
通过这个实验,我学会了如何配置GPIO口和编写简单的控制程序。
第二部分实验是关于定时器的实验。
我学习了如何配置msp430的定时器,并编写了一个简单的程序,实现了定时闪烁LED灯的功能。
通过这个实验,我深入了解了定时器的工作原理和编程方法。
第三部分实验是关于ADC的实验。
我学习了如何配置msp430的ADC模块,并编写了一个简单的程序,实现了对外部模拟信号的采样和转换。
通过这个实验,我了解了ADC的基本原理和使用方法。
实验结果:通过一系列实验,我成功地掌握了msp430微控制器的基本功能和使用方法。
我能够独立完成GPIO口的配置和控制、定时器的配置和编程、ADC的配置和采样等任务。
实验结果表明,msp430具有强大的功能和灵活的编程能力,可以满足各种嵌入式系统的需求。
总结和展望:通过本次实验,我对msp430微控制器有了更深入的了解,并且掌握了一些基本的操作和编程技巧。
然而,由于实验时间和条件的限制,我还没有完全发挥出msp430的潜力。
基于MSP430的平衡式温度计的研制
转换成电压值送 到检 流汁 , , 1 同H , 软件将电位器调节出的电信 t q
号转 换 成 的 A D值 拟 合 成温 度 值 并 用数 码 管 显示 。调 节 电位 器 , / 当检 流 汁指 零 , 即两 路 模 拟 量 平 衡 时 , 时 显 示 的温 度 值 就 是 热 此
电偶 测 量 刘 的温 度值 。测量 温 度 的 直读方 式避 免 了 人 为误 差 。另
K y rs sn l c i mi o o t mp r t r a ue n , mp rt r o e s t e wo d ;ige hp c c, y e e a u e me s r me t e e a u e c mp n a e t
飞机 发 动 机 的 温 度 测 试 是 飞 机 性 能 检 测 的重 要 部分 ,其 专 川测 试仪 器 U 1 1 T 2 0精 度 高 , 定 性 好 , 仪 器 中应 用 了大 量 的 稳 但
mo c p r i le ral a d ti ma e h n t me t e u gn r o v ne t s o e ae smpi d ge t n hs f i y k s te isr u n d b g ig moe c n e in. s
平 衡 式 温 度计 中有 两 路 模 拟 量 ,一 路 为热 电 偶 采 集 到 的 电
信号 , 另一 路 为 蒯 电位 器 得 到 的 模拟 量 。 仪器 用 电桥 对 热 电 原
偶 进 行 冷 端 补 偿 ,将 两路 模 拟 量 经 多 级 处 理 后 分 别 接 人 枪 流 计 的 州端 , 将 电位 器 与 度 盘 联 动 , 据 榆 流 计 指 针 的 偏 转 调 节 电 并 根 一 化 器 , 盘 随之 转 动 。 度 当检 流 汁指 零 , 盘 的 读 数 就 是 温 度 值 , 度 其
基于MSP430的低成本及超低功耗数字测温器设计
陈煦斌 ,秦 立军 , 邢 正 军 ,孔祥 雨
( 华 北 电 力 大 学 现 摘 要 :文 中设 计 的 测 温 装 置 主 要 是 面 向低 成 本 和低 功耗 的 应 用 需 求 ,利 用 MS P 4 3 0单 片 机 内嵌 的 温 度 传 感 器 以 及 简
纠正 . 得 到 能 够 满 足 实际 需要 的 温度 值 。
关 键 词 :MS P 4 3 0; 温度监测 ; 线性 回 归 ; 数据纠正 ; 超低 功 耗
中图分类号 : T P 7 3 2
文 献标 识 码 : A
文 章 编 号 :1 6 7 4 — 6 2 3 6 ( 2 0 1 3 ) 1 5 — 0 0 8 1 — 0 3
电气 设 备 的 运 行 温 度 在 一 定 程 度 上 可 以反 映 该 设 备 的 当前 状 况 . 并且 , 事实表 明 , 很 多事 故 发 生 的起 因 源 自设 备 的 运 行 温 度 过 高 。因 此 , 如 果 能 实 时地 掌握 设 备 的 运 行 温 度 。 对 电气 设 备 的安 全 运 行 有 十分 积极 的 作 用 。 然而 . 从 成本 和功耗方 面的考 虑 . 很 多 电气 设 备 若 加 装 高 精 度 的 温度 传 感 器 。 难免显得不切 实际 。 因此 , 设 计 一 款 低 成 本 以及 超 低 功 耗 的 测 温 装 置 , 能 够很 好 地 完 成 一 些 传 统 测 温 装 置 无 法 胜 任 的 工 作 , 比如 变 压 器 油 温 及 环 境 温 度 测 量 , 线 路 故 障 指 示 器 内部 温 度 测 量 等 。 该 测 温 装 置 与 相 应 的 诊 断 模块结 合在一起 。 还能进 一步 构成温 度告警 装置 , 从 而 实 现 更 高级的功能 。 M S P 4 3 0是 近 年 来 使 用 十 分 热 门 的 一 款 单 片 机 , 它 能 通 过 软 硬 件 选 择 不 同 的 时 钟 频 率 和 时 钟 模 式 ,乃 至 满 足 一 些 超 低 功 耗 的 应 用 。并 且 , 这 款 单 片 机 内部 集 成 了多 能 功 能 模 块 .其 中 应 用 比 较 多 的 模 块 如 A D转换模 块 , D A 转 换 模 块 以及定 时器等 , 在 大多数 场合下 , 内 部 集 成 的 模 块 完 全 能 够 满 足需 求 。除此 之外 , MS P 4 3 0中 还 集 成 了一 个 t e m p e r a t u r e s e n s o r ( 温 度传感 器 ) 模块 。 它 的温度 数值 可 以 由 A D 转 换 器 直接 读取 , 然而 , 这个模 块 由于测量 精度 不是 很 高 , 所 以 常 常 被 人 忽 略 。但 是 , 如 果 能 够 运 用 得 当 的方 法 对 测 量 误 差 进 行 补偿 . 那 么完 全 可 以利 用 MS P 4 3 0单 片 机 设 计 出 一 款 简 易 廉 价并且 能够满 足一定 需求 的测温装 置 , 并 且 由 于 MS P 4 3 0
[整理]MSP430单片机的热敏电阻温度测量.
MSP430单片机的热敏电阻温度测量测量温度一般采用热敏电阻做传感器,测量的方法有R —V 转换电压测量法和R —F 转换频率测量法。
这两种方法的电路复杂且成本高,电路中很多元器件直接影响测量精度。
本文论述一种类R —F 转换频率的测量法,用NE555定时器和热敏电阻等器件构成振荡器,由MSP430单片机的捕获功能来捕获多谐振荡器输出信号的高低电平并计数,热敏电阻Rt 与捕获高低电平时的计数值的差值成正比关系。
该方法电路简单、成本低,系统流程框图如图1所示。
1负温热敏电阻PT-25E2热敏电阻温度阻值变化曲线如图2所示。
PSB 型负温热敏电阻由Co 、Mn 、Ni 等过渡金属元素的氧化物组成,经高温烧成半陶瓷,利用半导体毫微米的精密加工工艺,采用玻璃管封装,耐温性好,可靠性高,反应速度快且灵敏度高。
它采用轴向型结构,便于安装,能承受更高温度,且玻璃封装耐高低温(-50~350℃)。
2 MSP430单片机计数法测温原理以NE555定时器为核心组成典型的多谐振荡器,把被测热敏电阻Rt 作为定时元件之一接入电路中,NE555定时器输出引脚接MSP430单片机的P1.2脚(Timer_A:捕获、CCI1A输入引脚)。
系统电路如图3所示。
由NE555工作原理可知,多谐振荡器输出信号(周期性矩形波)的高电平时间(1个周期内)为:由上述测量原理可知,误差主要来源为:R1、R2精度,单片机的定时器和电容器的精度以及稳定度。
这里选用高精度(±0.001%)、温度系数小于±0.3×10-6/℃的精密金属箔电阻器。
因此当选用高精度、高稳定度的电容器,且单片机的工作频率足够高,就可以得到较好的测温精度。
3 MSP430单片机捕获原理捕获计数法的原理如图4所示。
通过MSP4.30单片机TACTL寄存器给定时器A设置一个固定的时钟频率,和计数模式(本系统设为连续模式)。
又知Timer A工作在连续计数模式时,TAR(16位)计数范围是O-FFFFH值。
基于MSP430单片机和CC2500无线模块的仓库温度测量系统
仓 库作 为一个 工厂 的物料和 成品集 散地 , 于生产 和货 物的流 通起着 非常重要 的作用 。除银 行外 , 厂 对 工 里几乎 所有 的流动 资产都 集 巾在仓 库 , 库 的流 动顺 畅 与否 , 料 的收发 是 否正 常有 序 , 仓 物 直接 关 系到 工厂 的 各种生 产效率 是否达成 有效 目标 。因此 , 有特殊 要求 的仓库 内安装仓 库温 度监控 系统是 非常有必 要 的 , 在 同 时为 了防止火灾 的发生 , 仓库对 电源 的使用也 有着严 格 的要 求 , 因此 , 低功耗 … 的仓库 温度 管理 系统 应运 而
入)G 0 (, D 2 一般 用途 ) G O 一般 用途 ) , D 0( 。MS 4 0 2 7 P 3 F 2 4与 C 2 0 C 5 0连接 原 理 图如 图 2所 示 , 中 G 0 其 D 0可
以被用 来 作为 温度 传感 器 , 过 A 通 D检测 G O D 0的电压 , 计算 出温度 。
生。
1 设 计原 理
本 系 统 是 以 rs4 02 7 a p 3 12 4举片 机 和 C 2 0 -j 线 C 5 0 3无
通 讯芯 片为基 础来实 现 的。由于 仓库 的复 杂性及列‘ 温 具体 度 采集 的要求 , 仓库 可 能需 要 设置 多 个温 度 采集 点 。如 在 果采 用有 源的 温 度 采集 方 式 , 会增 加 火 灾 发 生 的可 能 性 。 采用超 低功耗 的 4 0单片机 和 超低 待 机功 耗 的 C 2 0 3 C 5 0无 线通讯 芯 片 , 大大降低 了对 电源 的要 求 , 2节 5号 电池 完 以 全 可 以实 现 对 温 度 采 集 点 的供 电 。分 别 利 川 MS 4 0和 P3 C 20 C 5 0实现对 温度 采集 的节 点 和 手持 式 温度 采 集 控 制器
MSP430系列单片机16位ADC测试程序
* 功 能:1/16秒唤醒CPU一次。
* 入口参数:无
* 出口参数:无
****************************************************************************/
// W1 | |<----->| A1+ COM0-COM3|--->| 7.1Digit,4-Mux LCD |
// |_| | | +----------------------+
// +------->| A1- VREF |---+
以记录外部输入为0V和10.00V时,ADC2的实际读数,作为校准参考值。参
考《超低功耗电压表》程序。
本程序给出了多路ADC同时采样的程序处理方法,可供参考。
//=========================================================================
// 开启内部1.2V基准源, 开启缓冲器,ADC时钟选择为SMCLK/2(524KHz)
for (i = 0; i < 500; i++); // 略延迟,让基准电压稳定
SD16CCTL0 |= SD16DF+SD16GRP; // ADC0与ADC1编组,数据格式为有符号
{
while(ADC_Flag==0) LPM0; //CPU休眠,等待被采样结束唤醒
ADC_Flag=0;
ADC_Sum0+=ADC_Result0; //ADC0采样结果累加
由MSP430单片机和DS1820构成的小型测温系统
功能和 更高的性 能, 传 感器与单 片机 的结合成 为一个重要的发展趋势 。本文介绍 了 MS P 4 3 0单片机 与数 字化 温度传感 器 D S 1 8 2 0的接 口设计 , 并给 出 了程序设 计。
DS 1 8 2 0的 主要 特性 如 下 : ( 1 ) 独特 的单线接 口方 式 . D S 1 8 2 0在与微处理器连接 时只需要一
根总线就可 以实现与微处理器 的双 向通信 : ( 2 ) D S 1 8 2 0 支持多点组 网功能 .多个 D S 1 8 2 0 可 以并联在 唯一 的 总线上 . 以实现多点测温 : ( 3 ) D S 1 8 2 0 在 使用 中不需要任何外 围元器件件 : ( 4 ) 可 以由数据线来供 电: ( 5 ) 测温范 围一 5 5 ℃至+ 1 2 5 %, 固有测 温分辨率 为 0 . 5 q C ; ( 6 ) 测量结果 以 9 位数字量方式串行传送 : ( 7 ) 用户可 以设置报警温度 。 以下是该芯片 内部结构方框图 , 如图 1所示。
芯 片进 行 连接
1 硬 件 设计
本 系统的硬件接 口电路相 对比较简单 . 主要就是 M 连接 首先简要介绍数字化温度传感
器 DS 1 8 2 0 。 1 . 1 DS I 8 2 0的 芯 片
如图 3 所示 为具体 的接 口电路 图
电平 。如 图 4所示为总线复位的时序图。
片帆 接收复位脉 冲 赫小 4 8 ol l B
l
D o 一
'
i
S ' — L ’ W R H 虬 ‰一
基于MSP430的智能温度检测系统设计
No 6 . De .. 01 c 2 0
MI CROP R0CES SOR S
基 于 MS 4 0的智 能 温度 检测 系统 设 计 P3
董鹏永 , 袁盼鑫 , 牛庆丽
( 州科 技 学院计算机 系 , 州 406 ) 郑 郑 504 摘 要 : 述 了 一 种 以 l 位 单 片机 MS40 19 为 控 制 核 心 , 用 数 字 化 温 度 传 感 器 论 6 P3 F4 利
文献标 识码 : B
文章编号 :0 2— 2 9(0 0 O 0 7 0 10 2 7 2 1 ) 6— 0 5— 4
Th sg fIt lg n e e De in o n el e tT mp r t r a u ig S s e Ba e n MSP 3 i e a u e Me s r y t m s d o n 40
D NG P n yn , U N P n—x , I ig— i O eg— o gY A a i N U Qn l n
( eat etfC m u r c neZ eghuC lg Si c Dp r n o o p t i c,hn zo o eo c ne& Tcnl y Z eghu4 0 6 , h a m e Se  ̄ f e ehoo , hnzo 5 04 C i ) g n
DS1 B2 o ra ie te tmp r t r a u e nt Th a d r o o iin a d s fwa e d sg ft e 8 0 t e lz e e a u e me s rme . e h r wa e c mp sto n ot r e in o h h
D 1 B 0实现 温度 测量 的智 能 温度检 测 系统 。详 细论述 了该 系统 的硬 件 组 成 和软 件设 计 , 出 了 S82 给
基于MSP430和DS18B20的智能温度检测系统的设计
高校 理科 研 究
基于 MS 4 0和 D B 0晌智鹾温度趁测系统晌设计 P3 S1 2 8 张 彤
[ 摘 要] 介绍 了一种 以 1 位单 片机 MS 4 0 19 6 P 3 F 4 为控制核心 , 利用数字化温度传 感器 D 1B 0实现温度 测量 的智能温度检测 系 S8 2 统. 详细论述 了该系统 的硬件组成和软件设计 , 给出了关键部分的电路 图, 相应的 MS 4 0 1 9单片机温度测量程序. P3F4 实验结果表明 该 智能温度检 测系统具有低成本 、 可靠性高、 结构简单 、 ・ 巨能稳定、 经济 实用等特点 , 可根据不 同需要 可应 用于多种工农业温度检测 领域. 【 关键词 ] P 3F 4 D 1B 0 温度检测 系统 MS4O19 S8 2
㈠
l储 控 存 嚣 制
路 比较复杂 , 成本也 比较高 。 设计 本智 能温度检测系统采用的是一种改
进型智能温度传感 器 D 1B 0 S 8 2 ,数字温度传感器通过单总线 与单片机 连接 , 系统结 构简单 , 抗干扰能力 强 , 适合于恶劣 环境 下进行现场温度 测量 ,也可应 用于仓库测温 、高层空调控制和农业生产过程监控等领
根 总线 上 挂 接 多 个 D 1B 0的 目的 。 S8 2 21 S 8 2 .. D 1 B 0的 工 作 过 程 2
该系统采用美国 T 公 司生产的 l I 6位带闪存的单片机 M P 3 F 4 ̄ S 40 1 9 作为 主控芯片 。该芯片工作电压是 1 . 8伏至 36伏, 的优点有: . 它 处理能 力强 、 运行速度快 、 功耗低 ; 芯片 内有数量较多的寄存器 , 存储器可以进 行多种运算 ; P 3F 4 有 较多中断源 , MS 4 0 1 9 还可 以随意 的嵌套 ; 中断请 用 求唤醒处于省 电状态的系统 只需 6微秒 ; 具有很多外 围器件 ,6位定时 1 器 Tm r 4 ie A有 种工作模式 ,可以同时进行多个捕获 , 比较功能 ;具有 4 个可独立编程的输入 / 出接口; 8 输 具有微秒 A T R 0与微秒 A T R 1串行 通信接 口; 具有多达 6 K 0 B的闪存存储器 , 可有 l 万次擦写次数 。该款 O 芯片 的超低功耗和 良好的性 能价格 比使其非常适合工业监控领域 。 23语音报警模块 - 系统使用语音报警的方式对温度超限报警 。由 ID12 S 40芯片控制 语 音 报 警 , 芯 片 具 有分 段 录放 功 能 , 次 分 段 录 放 的时 间 为 2 此 每 0秒 。被 测温度 由 MS 4 0单 片机 预先判 断 ,当测 量值低于或高 于标准温度值 P3 时 , 统 会 放 出 预 先 录制 好 的相 应 温度 语 音 , 系 这样 就 实 现 了 温 度 报 警功 能。 24温 度 显示 模 块 . 液 晶显示 模块 H M10 A是 基于 ¥ A 0 9 片构 建的 2 l 列 T 62 6 06 芯 行 6 字符型 的 L D液 晶显示模 块 , C 其字 符显示 的分 辨率是 5×8即每个字 ( 符是 由一个 5 8 × 的点矩阵构成) 。基于 ¥ A 0 9 6 0 6 所编写 的控制程序亦 可 以很方 便 地应 用于 其 它大 部分 字符 型 液 晶显示 模块 。因此 选用 H M10 A模块显示 系统的测 温结果 。 T 62 2 . 5数据存储模块 系统采用 的存储芯片是 C T 4 6 。 A 2 WC 4 这种芯 片是一个 6 k位串行 4 C SE P O 它的内部含有 8 9 MO E R M, 12个 8位字节 , 具有 一个 3 2字节 的 写缓冲器 , 器件具有一个专门写保护功能 , 该 通过 IC总线接 口进行操 2
基于MSP430单片机的无线温度检测系统设计
机 需
,
其 突 出 的 特 点 是 可 以 实现 极 低 的 功 耗
的工
。
它有 5
1
种可编程
作 模 式 其 中活 动 模 式 下
,
工
作电流仅
IJ A
。
280 p A
L PM 4 ,
模 式 下 仅 需
4 8K B + 2 56B
以 及
口
0
.
M S P 4 3 0 F 16 1 1
内部 具 有
,
的
F la s h
s o gc aa tr t so w o t, ih rl bl , i l tu tr , tbep ro ma c n r ciai , n y t n h rce i i fl c s hg ei i t smpe s cu e sa l ef r n ea dp a t l a d ma r sc o a i y r c t y
序 列 号 是 出厂 前 被
,
0 0 62 5 ℃
.
,
可 实现 高 精 度 测 温
.
。
适 应 电压 范 围
,
:
光 刻 好 的 其 排 列 是 : 品 类 型 标 号 接 着的 4 8 位 是 产
该 D S l 8 B Z O 环 冗 余 校 验 码 (C R C 码 ) 光 刻 R O M 的
。
3 0
E E PR OM 性 质的上
.
再 由 复 制 R A M 命令 写 入
。
(4 ) 成 本 低 廉
1) S 18 8 2 0
。
、
下 限 报 警寄存 器 中
6 内部 结 构 主 要 由 四 部 分 组 成 : 4 位 光
msp430 实验报告
msp430 实验报告MSP430 实验报告引言:MSP430是一款低功耗、高性能的微控制器,广泛应用于嵌入式系统开发领域。
本实验报告将介绍我对MSP430进行的一系列实验,包括基本的GPIO控制、定时器应用、模拟信号采集和通信接口应用等。
实验一:GPIO控制在本实验中,我使用MSP430的GPIO引脚控制LED灯的亮灭。
通过配置引脚的输入/输出模式以及设置引脚电平,我成功地实现了对LED灯的控制。
这为后续实验奠定了基础,也让我更加熟悉了MSP430的寄存器配置。
实验二:定时器应用在本实验中,我探索了MSP430的定时器功能。
通过配置定时器的时钟源和计数模式,我实现了定时器中断功能,并利用定时器中断实现了LED灯的闪烁。
这个实验让我更加深入地了解了MSP430的定时器模块,并学会了如何利用定时器进行时间控制。
实验三:模拟信号采集在本实验中,我使用MSP430的模拟信号输入引脚和模数转换模块,成功地将外部的模拟信号转换为数字信号。
通过配置ADC模块的采样速率和精度,我实现了对模拟信号的准确采集,并将采集到的数据通过串口输出。
这个实验让我对MSP430的模拟信号处理有了更深入的了解。
实验四:通信接口应用在本实验中,我使用MSP430的串口通信模块,实现了与外部设备的数据传输。
通过配置串口的波特率和数据格式,我成功地实现了与计算机的串口通信,并通过串口发送和接收数据。
这个实验让我掌握了MSP430与外部设备进行数据交互的方法。
结论:通过一系列的实验,我对MSP430的基本功能和应用有了更深入的了解。
MSP430作为一款低功耗、高性能的微控制器,具备丰富的外设和强大的处理能力,适用于各种嵌入式系统的开发。
通过学习和实践,我掌握了MSP430的GPIO控制、定时器应用、模拟信号采集和通信接口应用等基本技能,为以后的嵌入式系统开发打下了坚实的基础。
未来展望:MSP430作为一款成熟的微控制器,具备广阔的应用前景。
基于MSP430G2553的DS18B20测温程序
/** main.c*//************************************************************* ********************************************include header file************************************************************** *******************************************/#include<msp430g2553.h>#include"system.h"#include"uart.h"#include"ds18b20.h"unsigned int temp;char tx_buf[6] = {0,0,0,0,'\n','\0'};/************************************************************* ********************************************** Function name: main** Descriptions: main function** input parameters: none** output parameters: none** Returned value: none************************************************************** *******************************************/void main(void){System_Init();UartInit();_EINT();if (DS18B20_Init()){P1OUT |= BIT0;}else{P1OUT |= BIT6;}while (1){__delay_cycles(800000);__delay_cycles(800000);temp = DS18B20_GetTemp();// x_buf[0] = temp%10000/1000+'0';// tx_buf[1] = temp%1000/100+'0';// tx_buf[2] = temp%100/10+'0';// tx_buf[3] = temp%10+'0';tx_buf[0] = temp%100/10+'0';tx_buf[1] = temp%10+'0';Uart_SendStr(tx_buf);}}/************************************************************* ********************************************Include header file************************************************************** *******************************************/#include<msp430g2553.h>#include"system.h"/************************************************************* ********************************************Function Declaration************************************************************** *******************************************/void Config_WDT(void);void Config_Clock(void);void Config_IO(void);/************************************************************* ********************************************** Function name: Config_WDT** Descriptions: WatchDog Timer Configuration** input parameters: none** output parameters: none** Returned value: none************************************************************** *******************************************/void Config_WDT(void){WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer}/*********************************************************************************************************** Function name: Config_Clock** Descriptions: System Clock Configuration** input parameters: none** output parameters: none** Returned value: none*********************************************************************************************************/void Config_Clock(void){BCSCTL1 = CALBC1_8MHZ; // Set DCO 1M 8M 12M 16MDCOCTL = CALDCO_8MHZ;BCSCTL2 = SELM_1 + DIVM_1 + DIVS_3; // MCLK = 8M;SMCLK = 1MBCSCTL2 &= ~SELS;if (CALBC1_8MHZ == 0xFF || CALDCO_8MHZ == 0xFF){while(1); //hang-up}}/*********************************************************************************************************** Function name: Config_IO** Descriptions: IO Port Configuration** input parameters: none** output parameters: none** Returned value: none*********************************************************************************************************/void Config_IO(void){// set all IO port outputsP1DIR = 0xFF; // All P1.x outputsP1OUT = 0x00; // All P1.x resetP2DIR = 0xFF; // All P2.x outputsP2OUT = 0x00; // All P2.x reset}/************************************************************* ********************************************** Function name: System_Init** Descriptions: WatchDog Timer Configuration** input parameters: none** output parameters: none** Returned value: none************************************************************** *******************************************/void System_Init(void){Config_WDT();Config_Clock();Config_IO();__delay_cycles(800000);__delay_cycles(800000);}#ifndef SYSTEM_H_#define SYSTEM_H_/************************************************************* ********************************************Extern Function Declaration************************************************************** *******************************************/extern void System_Init(void);#endif/* SYSTEM_H_ */************************************************************** *******************************************/#include<msp430g2553.h>#include<string.h>#include"uart.h"/************************************************************* ********************************************** Function name: UartInit** Descriptions: Serial port initialization** input parameters: none** output parameters: none** Returned value: none************************************************************** *******************************************/void UartInit(void){P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXDP1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXDUCA0CTL1 |= UCSSEL_1; // CLK = ACLKUCA0BR0 = 0x03; // 32kHz/9600 = 3.41UCA0BR1 = 0x00; //UCA0MCTL = UCBRS1 + UCBRS0; // Modulation UCBRSx = 3UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt}/************************************************************* ********************************************** Function name: Uart_SendHexInt** Descriptions: Serial port send data by interrupt** input parameters: _data: data** output parameters: none** Returned value: none************************************************************** *******************************************/void Uart_SendHexInt(unsigned char _data){IE2 |= UCA0TXIE; // enable USCI_A0 TX interruptUCA0TXBUF = _data;}/************************************************************* ********************************************** Function name: Uart_SendStr** Descriptions: Serial port send string** input parameters: *pBuffer: the buffer will be transmitted** output parameters: none** Returned value: none************************************************************** *******************************************/void Uart_SendStr(char *pBuffer){unsigned int q0;unsigned int n_Byte;n_Byte = strlen(pBuffer);for(q0 = 0;q0<n_Byte;q0++){while((IFG2&UCA0TXIFG)==0);UCA0TXBUF = *pBuffer;pBuffer++;}}/************************************************************* ********************************************Interrupt Response Function************************************************************** *******************************************//************************************************************* ********************************************** Function name: USCI0TX_ISR** Descriptions: Serial port transmit interrupt function ** input parameters: none** output parameters: none** Returned value: none************************************************************** *******************************************/#pragma vector = USCIAB0TX_VECTOR__interrupt void USCI0TX_ISR(void){while((IFG2&UCA0TXIFG)==0);IE2 &= ~UCA0TXIE; // close USCI_A0 TX interrupt }/************************************************************* ********************************************** Function name: USCI0RX_ISR** Descriptions: Serial port receive interrupt function ** input parameters: none** output parameters: none** Returned value: none************************************************************** *******************************************/#pragma vector = USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){unsigned char RcvBuf = 0;RcvBuf = UCA0RXBUF;Uart_SendHexInt(RcvBuf);}#ifndef UART_H_#define UART_H_/************************************************************* ********************************************Extern Function Declaration************************************************************** *******************************************/extern void UartInit(void);extern void Uart_SendHexInt(unsigned char);extern void Uart_SendStr(char*);#endif/* USART_H_ *//*********************************************************************************************************Function Declaration*********************************************************************************************************/#define DS18B20_Delay(us) __delay_cycles(8*us)void DS18B20_WriteByte(unsigned char);unsigned char DS18B20_ReadByte(void);void DS18B20_ReadBytes(unsigned char, unsigned char*); void DS18B20_ReadID (unsigned char *id);void DS18B20_Config(void);unsigned int DS18B20_ReadTemp(void);unsigned char DS18B20_CRC(unsigned char, unsigned char*); unsigned char CrcTable [256]={0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209,143, 12, 82, 176, 238,50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53};unsigned char DS18B20_IDBuff[8];/*********************************************************************************************************** Function name: DS18B20_Init** Descriptions: Initial DS18B20** input parameters: none** output parameters: none** Returned value: 0: detect ds18b20 fail!1:detect ds18b20 success!*********************************************************************************************************/unsigned char DS18B20_Init(void){unsigned char return_val = 0;DS18B20_WRITE;DS18B20_Delay(5);DS18B20_DQ_CLR;DS18B20_Delay(500);DS18B20_DQ_SET;DS18B20_Delay(20);DS18B20_READ;DS18B20_Delay(5);if(DS18B20_DQ_IS_LOW)return_val = 1; //detect 1820 success!elsereturn_val = 0; //detect 1820 fail!DS18B20_Delay(100);DS18B20_WRITE;DS18B20_Delay(5);DS18B20_DQ_SET;return return_val;}/************************************************************* ********************************************** Function name: DS18B20_WriteByte** Descriptions: DS18B20 send one byte** input parameters: dat: byte** output parameters: none** Returned value: none************************************************************** *******************************************/void DS18B20_WriteByte(unsigned char dat){unsigned char i;DS18B20_WRITE;DS18B20_Delay(5);for (i=0;i<8;i++){DS18B20_DQ_CLR;DS18B20_Delay(5);if (dat&0x01){DS18B20_DQ_SET;}DS18B20_Delay(85);DS18B20_DQ_SET;dat >>= 1;DS18B20_Delay(1);}}/************************************************************* ********************************************** Function name: DS18B20_ReadByte** Descriptions: DS18B20 read one byte** input parameters: none** output parameters: none** Returned value: read byte************************************************************** *******************************************/unsigned char DS18B20_ReadByte(void){unsigned char i,dat=0;for(i=0;i<8;i++){DS18B20_WRITE;DS18B20_Delay(1);DS18B20_DQ_CLR;dat >>= 1;DS18B20_DQ_SET;DS18B20_READ;DS18B20_Delay(12);if(DS18B20_DQ_IS_HIGH){dat |= 0x80;}DS18B20_Delay(5);}return dat;}/************************************************************* ********************************************** Function name: DS18B20_ReadBytes** Descriptions: DS18B20 read bytes** input parameters: len: number of bytes** output parameters: *p: read buffer** Returned value: none************************************************************** *******************************************/void DS18B20_ReadBytes(unsigned char len, unsigned char *p) {unsigned char i;for(i=0;i<len;i++){*p = DS18B20_ReadByte();p++;}}/************************************************************* ********************************************** Function name: DS18B20_ReadID** Descriptions: DS18B20 read ID** input parameters: none** output parameters: *id: ds18b20 ID** Returned value: none************************************************************** *******************************************/void DS18B20_ReadID(unsigned char *id){DS18B20_Init();DS18B20_WriteByte(0x33); //read ROMDS18B20_ReadBytes(8,id);}/************************************************************* ********************************************** Function name: DS18B20_Config** Descriptions: DS18B20 internal config** input parameters: none** output parameters: none** Returned value: none************************************************************** *******************************************/void DS18B20_Config(void){DS18B20_Init();DS18B20_WriteByte(0xcc); //skip ROMDS18B20_WriteByte(0x4e); //write scratchpadDS18B20_WriteByte(0x19); //upper limitDS18B20_WriteByte(0x1a); //lower limitDS18B20_WriteByte(0x7f); //set 11 bit (0.125)DS18B20_Init();DS18B20_WriteByte(0xcc); //skip ROMDS18B20_WriteByte(0x48); //save set valueDS18B20_Init();DS18B20_WriteByte(0xcc); //skip ROMDS18B20_WriteByte(0xb8); //call-back set value}/************************************************************* ********************************************** Function name: DS18B20_GetTemp** Descriptions: DS18B20 get temperature** input parameters: none** output parameters: none** Returned value: temperature************************************************************** *******************************************/unsigned int DS18B20_GetTemp(void){DS18B20_ReadID(DS18B20_IDBuff);DS18B20_Config();DS18B20_Init ();DS18B20_WriteByte(0xcc); //skip romDS18B20_WriteByte(0x44); //Temperature convertDS18B20_Init ();DS18B20_WriteByte(0xcc); //skip romDS18B20_WriteByte(0xbe); //read Temperaturereturn DS18B20_ReadTemp();}/************************************************************* ********************************************** Function name: DS18B20_ReadTemp** Descriptions: read temperature from ds18b20** input parameters: none** output parameters: none** Returned value: temperature buffer************************************************************** *******************************************/unsigned int DS18B20_ReadTemp(void){unsigned int Temperature;unsigned char temp_buff[9];DS18B20_ReadBytes(9,temp_buff);if (DS18B20_CRC(9,temp_buff)==0) //CRC verify succeed{Temperature = temp_buff[1]*0x100 + temp_buff[0];// Temperature *= 0.625;Temperature /= 16;}return Temperature;}/************************************************************* ********************************************** Function name: DS18B20_CRC** Descriptions: CRC verification** input parameters: len: number of bytes** *temp_buff: verification array** output parameters: none** Returned value: verification result************************************************************** *******************************************/unsigned char DS18B20_CRC(unsigned char len, unsigned char *temp_buff){unsigned char i,crc_data=0;for(i=0;i<len;i++) //table look-up verifycrc_data = CrcTable[crc_data^temp_buff[i]];return crc_data;}#ifndef DS18B20_H_#define DS18B20_H_/************************************************************* ********************************************Port Definitions************************************************************** *******************************************///#define DS18B20_DQ_DIR P1DIR//#define DS18B20_DQ_OUT P1OUT//#define DS18B20_DQ_IN P1IN//#define DS18B20_DQ BIT5#define DS18B20_DQ_DIR P2DIR#define DS18B20_DQ_OUT P2OUT#define DS18B20_DQ_IN P2IN#define DS18B20_DQ BIT0/************************************************************* ********************************************Macro definition -- Main clock frequency************************************************************** *******************************************/#define MCLKFRQ 8000000L/************************************************************* ********************************************Extern Function Declaration************************************************************** *******************************************/unsigned char DS18B20_Init(void);unsigned int DS18B20_GetTemp(void);#endif/* DS18B20_H_ */。
模数转换模块ADC12的设计MSP430F5529 片内温度传感器的方法和编程实现
微机原理实验实验六模数转换模块(ADC12)的设计与应用一、实验目的1. 了解数模转换(ADC)的基本原理、转换过程及性能指标;2. 熟练掌握片内 ADC12 模块的 4 种工作模式;3. 熟练掌握片内 ADC12 模块的寄存器及其配置应用方法;4. 掌握应用 MSP430F5529 片内温度传感器的方法和编程实现方法;5. 了解 I2C 设备的应用方法及片外温度传感器的编程实现方法;二、实验内容1. ●编程实现并分析:采用单通道单次采样模式,选择A0 通道作为输入通道,模拟转换参考电压组合选择 ADC12 内部生成电压 1.5V 和 AVSS,转换结果存储在 ADC12MEM0 缓冲寄存器中。
(1)源程序#include<msp430.h>void main(){volatile unsigned int i;WDTCTL=WDTPW+WDTHOLD; //关闭看门狗P6SEL |= BIT0; //使能A0输入通道REFCTL0 &= ~REFMSTR; //复位控制位以控制ADC12参考电压控制寄存器ADC12CTL0=ADC12ON+ADC12SHT02+ADC12REFON;//打开ADC12,设置采样间隔,打开参考电压产生器,并设置参考电压为1.5V,ADC12CTL1=ADC12SHP; //采样保持触发信号选择采样定时器ADC12MCTL0=ADC12SREF_1; //Vr+=Vref+,Vr-=Avssfor(i=0;i<64;i++); //延迟以使参考电压稳定ADC12CTL0 |= ADC12ENC; //使能转换while (1){ADC12CTL0 |=ADC12SC; //开始转换while(!(ADC12IFG&BIT0));__no_operation(); //设置断点查看ADC12MEN0缓冲寄存器}}(2)写出配置ADC12模块转换时钟源ADC12CLK的控制寄存器和控制位;控制寄存器:ADC12CTL1控制位:ADC12DIVx:第5~7位,时钟分频控制位ADC12SSELx:第3~4位,参考时钟源选择控制位(3)写出上述实验要求下ADC12模块的默认时钟源及其频率;默认时钟源是MODCLK,由内部模块振荡器MODOSC产生,频率约为4.8MHZ.(4)写出配置ADC12模块参考电压的控制寄存器和控制位;控制寄存器:ADC12CTL0控制位:ADC12REF2_5V:第6位,内部参考电压的电压值选择控制位ADC12REFON:第5位, ADC12参考电压开关控制位控制寄存器:ADC12MCTL0控制位:ADC12SREFx:第4~6位,参考电压选择控制位(5)分析上述实验要求下ADC12模块配置的参考电压与转换量程的关系ADC模块是12位,表示的数值的取值范围是0~4095,参考电压(基准电压)为1.5V,则分辨率为 1.5V/212=0.366mV.(6)分析ADC12模块配置的时钟源与采样触发信号和转换信号是否有关?从寄存器的控制位可以看出,采样周期和ADC12CLK的个数有关,时钟源和采样触发信号无关。
(完整版)基于MSP430单片机的环境参数监测仪的设计制作毕业设计
常州机电职业技术学院毕业设计(论文)系部:信息工程系专业:应用电子技术题目:基于MSP430单片机的环境参数监测仪的设计制作指导者:评阅者:2014 年 4 月毕业设计(论文)中文摘要温湿度和光照度等参数是标定环境不可缺少的参数,对其进行准确的测量具有重要意义。
本文以室内外居住环境为背景,设计出一种以MSP430F5438A超低功耗单片机为控制核心的环境参数监测仪。
论文对环境参数监测系统硬件和软件模块包括子系统模块进行了详细设计:通过相应的传感器芯片对包括温度、湿度、光强、红外辐射度和可燃气体浓度等环境参数进行检测和采集;通过微处理器MSP430F5438A将传感器芯片采集到的数据进行分析处理,并在液晶终端进行参数的实时显示和监控。
论文分别对温度传感器模块,单总线湿度传感器模块,光照度传感器模块,气敏传感器模块,红外热释电模块以及按键和液晶显示模块进行了单模块分别调试。
在此基础上对这些子程序模块进行了整合调试及整机功能和功耗测试,最终完成整个监控系统及仪器的设计制作。
实验显示,本环境参数监测仪具有体积小、携带方便、功耗低、可靠性高、免维护、成本低等优点,在室内外环境参数监测领域,具有很好的应用前景。
关键词:MSP430单片机环境参数监测传感器液晶显示毕业设计(论文)外文摘要Title: The Design and Production of Environmental Parameter Monitor Based on MSP430Abstract:Parameters such as temperature, humidity and illuminance are indispensable to the calibration environment, which has important significance for accurate measurement. The aim of this thesis isto design an environmental parameter monitor, which controlledby an ultra-low power MSP430F5438A for indoor and outdoor living environment.The detailed design of hardware and software module including subsystem module in the environmental parameter monitor is proposed in this thesis. The corresponding sensor chip is usedto detect and collect the environmental parameter such as temperature, humidity, illuminance, the infrared radiation intensity and combustible gas concentration. The MSP430F5438A analyzes and processed the data which collected by sensor chips, and realized the real-time display and monitoring for parameterson LCD terminal.The thesis proceeds debugging on single module likes temperature sensor module, single bus humidity sensor module, illuminance sensor module, gas sensor module, pyroelectricinfrared module and buttons and LCD module, respectively. On the basis of that, after debugging and test on the function and power for the integrated subroutine modules, the design and production of the whole monitoring system and instrument is completed.Test results given show that the environmental parameter monitor has several advantages, such as small volume, portable, low power consumption, high reliability, maintenance-free, low cost and so on. It has a great application prospect in the field of indoor and outdoor environmental parameters monitoring.Key words: MSP430, Environmental Parameter Monitor, Sensor, LCD Display目录1 绪论 (1)1.1 课题背景 (1)1.2 论文的主要内容 (2)2 数据监测系统的总体设计方案 (4)2.1 系统总体框图设计 (4)2.2单片机选型 (4)2.2.1 MSP430单片机概述 (4)2.2.2 MSP430F5438A介绍 (6)2.3 传感器的选型 (6)3 系统硬件设计 (8)3.1 主控芯片模块 (8)3.1.1 单片机最小系统模块 (8)3.1.2系统电源模块 (8)3.2 子系统模块 (8)3.2.1光强采集模块 (8)3.2.2 温度采集模块 (10)3.2.3 湿度采集模块 (11)3.2.4 气敏传感器监测模块 (11)3.2.5 红外采集模块 (12)3.2.6液晶显示和键盘模块 (14)3.3 硬件电路板的焊接与制作 (16)3.3.1 系统硬件电路原理图 (16)3.3.2 系统硬件电路PCB图 (17)4 系统软件设计 (19)4.1 软件开发环境及编程思想简介 (19)4.2系统主程序设计 (19)4.3 系统子程序设计 (20)4.3.1 按键设置程序 (20)4.3.2 数据监测程序 (20)4.3.3 主控芯片MSP430F5438A时钟设定程序 (21)4.3.4 DHT11单总线数据读取程序 (22)4.3.5 片内ADC程序 (23)4.3.6模拟I2C通信协议 (24)5 监测系统调试分析 (29)5.1人机操作界面测试分析 (29)5.2 光强模块测试分析 (30)5.3 温度模块测试分析 (30)5.4 湿度模块测试分析 (30)5.5 气敏传感器监测模块测试分析 (31)5.6 红外监控模块测试分析 (31)5.7整机装配与调试 (32)5.7.1整机装配调试 (32)5.7.2功耗测试 (32)总结 (32)致谢 (33)参考文献 (34)附录A 系统原理图 (35)附录B 系统PCB图 (36)附录C 控制程序源代码 (37)1 绪论1.1 课题背景为了使人类拥有舒适、健康的生活,很多情况下要监测周围的环境参数。
基于MSP430单片机的温度测控装置的设计与开发
基于MSP430单片机的温度测控装置的设计与开发设计与开发基于MSP430单片机的温度测控装置一、引言随着科技的不断进步,温度测控装置在生活和工业中扮演着重要的角色。
本文将介绍基于MSP430单片机的温度测控装置的设计与开发。
该装置可以用于实时监测环境温度,并根据设定的阈值控制温度。
二、硬件设计1.传感器选择:本设计采用温度传感器DS18B20。
它是一种数字式温度传感器,通过一根串行线来与单片机通信。
2.电路连接:将传感器与MSP430单片机连接。
传感器的VCC引脚接单片机的3.3V电源,GND引脚接地,DQ引脚接到单片机的GPIO引脚。
3.LCD模块:为了显示当前温度和控制参数,我们需要一个LCD模块。
将LCD模块的数据引脚接到单片机的GPIO引脚。
4.电源:设计一个适当的电源电路,以提供所需的电压和电流。
三、软件设计1.硬件初始化:在程序开始时,初始化MSP430单片机的GPIO引脚,配置传感器引脚为输入模式和LCD数据引脚为输出模式。
2.温度采集:通过传感器的引脚与单片机通信,获取当前温度数据。
传感器采用一线式通信协议,在读取温度数据之前,先向传感器发送读取命令,然后从传感器接收数据。
单片机通过GPIO引脚进行数据的收发。
3.温度显示:将获取到的当前温度数据通过LCD模块显示出来。
4.温度控制:设定一个温度阈值,当实际温度超过阈值时,单片机控制继电器等设备进行温度调节。
可以采用PID控制算法,根据当前温度与设定温度的差异,调整控制设备的输出。
5.程序循环:通过一个无限循环来保持程序运行。
四、测试与验证1.硬件测试:对硬件电路进行测试,确保传感器和LCD模块的接线正确,电源电压稳定。
2.软件测试:通过模拟不同温度值,确认温度采集、显示和控制功能正常。
3.综合测试:将温度测控装置放置在实际环境中,观察温度采集和控制性能,根据需要进行调整。
五、结论本文设计与开发了基于MSP430单片机的温度测控装置。
MSP-EXP430G2入门
提纲:一.MSP-EXP430G2套件介绍1.包装清单unchPad简介(430文件夹_用户指南)(一)LaunchPad片上资源(1)开发板硬件简介(2)主要功能模块(二)LaunchPad特性(三)LaunchPad电路图(主要参考【LaunchPad】开发板介绍.pdf)3.MSP430G2553数据资料(技术资料汇总_G2553中文资料.pdf)4.安装MSP-EXP430G2 LaunchPad二.编译部分1.编译工具的选择2.编译工具的安装(根据安装提示便可)3.程序编译、烧录流程4.编程规则(MSP430 编程规则.pdf)三.基础程序部分1.功能模块程序(MSP430G2xx3 Code Examples文件夹)2.基础应用程序(例程代码)四.应用举例——MSP430G2452内置温度传感器温度检测五.LaunchPad扩展部分1.eZ430连接、编程要点2.与卫星板的连接3.与LaunchPad兼容的MSP430器件一.MSP-EXP430G2套件介绍1.包装清单:⏹LaunchPad目标板(附一个烧好测温实验例程的MPS430G2553)⏹MPS4302452一个——具有8通道10位ADC、片上比较器、触控式I/O、通用串行接口、8Kb闪存、256字节SRAM的低功耗16位MSP430微控制器⏹32.768KHz时钟晶振⏹0.5m长的USB-B线缆⏹插座式10引脚印刷板连接线两个⏹LaunchPad贴签两个⏹快速启动指南unchPad简介(一)LaunchPad片上资源(1)开发板硬件介绍:板上材料清单开发板指示图(2)主要功能模块:⏹复位模块⏹时钟模块⏹I/O端口模块;⏹WDT看门狗模块;⏹Timer A定时器模块⏹比较器A模块⏹ADC10数模转换模块⏹USART串行异步通讯模块⏹CPU模块(二)LaunchPad特性⏹实验班成本低、低功耗⏹USB调试与编程接口无需驱动即可安装使用,且具备高达9600波特的UART串行通信速度⏹支持所有采用PDIP14或PDIP20封装的MSP430G2XX和MSP430F20XX器件⏹分别连接至绿光和红光LED的两个通用数字I/O口引脚可提供视觉反馈⏹两个按钮可实现用户反馈和芯片复位⏹器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板⏹高质量的20引脚DIP插座,可轻松简便地插入目标器件或将其移除(三)LaunchPad电路图LaunchPad原理图见“【LaunchPad】开发板介绍.pdf”。
基于MSP430单片机的高压开关柜温度在线检测系统设计
/ \ 按时接收
机是美 国德 州仪器 ( ) 1 ,在 19 年推 出的一种 1 位 1 96 6
低功耗软件设计 , 对解决可靠性 、稳定性和频繁更换 用 T 公司的 MS 40 I P 3 系列单片机 。MS 40 P 3 系列单片
电池问题具有意义 。
中 霰 俄表 2 8 M 期 周{毳 0 ̄ 0 6
维普资讯
技术探讨
超 低功 耗 的混 合信 号 处理 器 , 用精 简 指令 集 (IC 采 RS )
程序初始化
开 总 中 断 进 行 接 收 数 据 的 初始 化
结构 ,电源 电压采用的是 1 - . . 3 V电压 ,在 1 H 的 8 6 M z
和询 问触点 单 片机 两 个部 分 。如 果被 询 问的触 点单 片
线 总线” 方式把温度数据 串行给单 片机 , 开关 在
机在规定时 问内没有反应 ,向上位机 发送 “F ,表 F"
示 询 问失 败 。因为 它采 用稳 压 电源 的供 电方 式所 以不 用 进入 休 眠模 式 ,软 件 流程 如 图 2所 示 。
片机 安装 在 开关 柜 的柜 壁 上 ,可 以采 用 稳压 电源 供 电 的 方式 。 3 集 成温 度传 感 器 的硬件 实 现 . 2
进入 L 3 眠模 式 MP 休 是否为本机、、
芝 // !
i Y
唤醒系统进行 I 温度转换 I
—
—
———ຫໍສະໝຸດ !————一 发送采集 到的 1 温度数据 I
赵光兴 张 帆
2 3 2 4 ̄ 、 害 工 k 举 由. 信 . 荤 院 f 徽 弗 山 k- 每 鼠 害
基于MSP430单片机的多路无线温度检测系统
基于MSP430单片机的多路无线温度检测系统作者:王玲, 王中训,王恒来源:《现代电子技术》2011年第01期摘要:设计了基于MSP430的多点无线温度检测系统。
系统采用低功耗的MSP430F149单片机作为核心控制部件,硬件由无线通信模块、温度采集电路、显示模块和串口通信模块组成,软件采用模块化的设计方法。
测试表明,整个系统都是在超低功耗的要求下进行元件及运行方式的选择,各个基站只需要3 V电池供电就能实现长时间运作,能很好地实现超低功耗,并且实现了测量温度的实时性。
关键词:MSP430单片机; NRF24L01; NTC热敏电阻;超低功耗中图分类号:TN919-34文献标识码:A文章编号:1004-373X(2011)01-0125-03Multi-spots Wireless Temperature Detecting System Based on MSP430WANG Ling,WANG Zhong-xun,WANG Heng(Institute of Science and Technology for Opto-electronics Information, Yantai University, Yantai 264005, China)Abstract: The multi-spots wireless temperature detecting system based on MSP430 is designed, which uses the low power consumption MSP430F149 microcontroller as the core control unit. Its hardware is composed of wireless communication module, temperature acquisition circuits, display module and serial communication modules. Its software adopts modular design methods. The system tests show that the components and running modes of the whole system are selected under ultra-low power consumption, and each base station can get long working hours by using 3V battery. This system greatly realized ultra-low power consumption.Keywords: MSP430 MCU; NRF24L01; NTC thermistor; ultra-low power0 引言温度在人类日常生活中扮演着极其重要的角色,同时在工农业生产过程中,温度检测具有十分重要的意义。
基于MSP430单片机和DS18B20的小型测温系统
A 50 之类 的模拟传感器 , D9) 经信号取样 电路 、 放大电 路和模数转换 电路处理 ,获取表示温度值 的数字信
号 , 交 由微 处 理 器 或 D P处理 。被测 温 度 信号 , 再 S 从 敏感 元 件 接 收 的非 电模 拟 量 开 始 ,到 转 换 为微 处 理
器可处理的数字信号之间 ,设计者须考虑 的线路环
低, 结构简单。系统电路图如图 1 所示 。
收 稿 日期 :0 l 0 一 2 2 1- l 2
() 7 带有 3 个捕捉 , 比较寄存 器的 1 6位定 时器
作者 简介 : 张希辉 (95 )男 , 15一 , 辽宁铁岭人 , 高级工程师 , 主要从 事智 能控 制系统和光通信 系统 的研发 。
摘 要 : 绍 了超 低功耗 1 位 单片机 MS 40 l2 和数 字温度传感 器 DS8 2 介 6 P 3F11 1B 0的基本特性 , 结合 4位段 型液 晶显 示
模 块 L M0 6和升压 型 DC DC 变换 器 MAX17 , C 4 — 6 4 设计 了一 个小型测 温 系统 , 并基 于集成 开发 环境 I R Wok ec A rbn h
( ) 种 省 电模 式 ( 35 备用 模式 :. A; A 0 8 R M保 持关 闭模式 :. A)从备用模式唤醒只需 6 s 01 ; ; 该 系统 主 控 芯 片 采 用 美 国 1 公 司 的 超 低 功 耗 f 1 () 6 4 1 位精简指令集结构 ,2 8 15 指令周期 ; n l 6位单片机 M P 3 F 1 S 40 12 ,温度检测采用数字温度 1 () k 26 5 4 + 5 字节 F A H存储器,2 字节 R M LS 18 A ; 传感器 D 1B 0 S 8 2 ,温度显示单元采用 4位段型液晶 ( ) 门狗定时器 Wa h o ie, 6看 t dg m r可用作通用 c T 显示模块 L M 4 ,电源部分采用升压 型 D — C电 C 06 CD 源模 块 M X 64 A 17 。整个 系统采用 33 . V供 电,功耗 定 时器 ;
以MSP430F149为核心的温度检测仪的硬件模块和软件设计
以MSP430F149为核心的温度检测仪的硬件模块和软件设计作者:吕芮栋等来源:《现代电子技术》2012年第01期摘要:温度检测仪主要是对温度进行检测,对温度的灵敏作出及时的反应。
以MSP430F149 为核心的温度检测仪成本较低,功耗低,有很高的可靠性,对周围环境抗干扰的能力也较强,对温度的变化反应灵敏,这就得益于其内部的硬件模块和软件设计,能够应用于不同的环境,据不同的需要应用在多类的温度检测系统中。
这里从其硬件模块和软件设计对其特点进行分析、论证。
关键词:MSP430F149; 检测系统; 硬件; 软件; 低功耗中图分类号:TN710-34文献标识码:A文章编号:1004-373X(2012)01-0199-03instrument based on MSP430F149L-dong, ZHANG Zhi-(School of Electronic and Information Engineering, Xi’an Technological University, Xi’an 710032, China)Abstract:The temperature measuring instrument is mainly to detect temperature and respond to temperature change. The temperature measuring instrument based on MSP430F149 with low cost, low power consumption and high reliability, which has strong anti-interference ability for the surrounding environment, and is temperature sensitive. The hardware module and software design of thetemperature measuring instrument can be applied to different environment. The features are analyzed and discussed from the hardware module and software design.Keywords: MSP430F149; detection system; hardware; software; low power consumption收稿日期:2011-08-100 引言兰州大型的综合工程重离子加速器——冷却存储环(HIFRL-CSR)是国家科学重点工程之一,在其内部控制系统里存在着大量的测量温度的场合,这些场合依靠约束离子的行为发挥CSR主环中的磁场作用,在磁场中,这些带电粒子束有时处于聚焦状态,有时则处于传输状态,且磁场性能的好坏对束流品质有直接影响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MSP430内部温度传感器测试程序
//MSP430基础实验开发组件 - ADC12内部模块演示程序之内部温度传感器
//时钟设置:
////ACLK = n/a, MCLK = SMCLK = default DCO ~ 800kHz, ADC12CLK = ADC12OSC //当前演示程序功能描述:
////利用MSP430F14X内部的温度传感器,通过ADC12的通道10进行AD转换
////计算取得摄氏温度和华氏温度,通过断点在View->Watch中观察温度值
////由于定标问题, 可能会存在温度的误差
#include <msp430x14x.h>
unsigned int long temp;
unsigned int long
TemperF;
//华氏温度
unsigned int long
TemperC;
//摄氏温度
void main(void) {
WDTCTL = WDTPW +
WDTHOLD; //关闭系统看门狗 ADC12CTL0 = SHT0_8 + REFON + ADC12ON; //内部1.5V参考电压,打开ADC12模块,设置采样保持定时器
ADC12CTL1 =
SHP;
//采使用采样定时器
ADC12MCTL0 = SREF_1 +
INCH_10; //参考电压和通道选择 ADC12IE =
BIT0;
//ADC12MEM0
ADC12CTL0 |=
ENC;
//允许转换
_BIS_SR(GIE);
//开启系统中断
while(1) {
ADC12CTL0 |=
ADC12SC; //开始采样并AD转换
//oF = ((x/4096)*1500mV)-923mV)*1/1.97mV = x*761/4096 - 468
//IntDegF = (ADC12MEM0 - 2519)* 761/4096
TemperF = (temp - 2519) * 761;
TemperF = TemperF /
4096; //简化的华氏温度转换公式
//oC = ((x/4096)*1500mV)-986mV)*1/3.55mV = x*423/4096 - 278
//IntDegC = (ADC12MEM0 - 2692)* 423/4096
TemperC = (temp - 2692) * 423;
TemperC = TemperC /
4096; //简化的摄氏温度转换公式
_NOP();
//加入断点可用来观察IntDegF和IntDegC结果
}
}
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR(void) {
temp =
ADC12MEM0;
//保存转换结果
}。