【TB作品】msp430f149单片机,读取ds18b20温度,显示到数码管,串口发送温度到电脑

本文主要是介绍【TB作品】msp430f149单片机,读取ds18b20温度,显示到数码管,串口发送温度到电脑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

功能

msp430f149单片机

读取ds18b20温度,显示到数码管,串口发送温度到电脑

部分程序

/*************************************************
*  程序功能:用DS18B20测量室温并在数码管上显示。
*  -------------------------------------------------
*  测试说明:观察显示温度数值。
*************************************************/
#include <msp430x14x.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>/* 延时函数,IAR自带,经常使用到 */
#define CPU_F ( (double) 8000000)   /* 外部高频晶振8MHZ */
/* #define CPU_F ((double)32768)   //外部低频晶振32.768KHZ */
#define delay_us( x )	__delay_cycles( (long) (CPU_F * (double) x / 1000000.0) )
#define delay_ms( x )	__delay_cycles( (long) (CPU_F * (double) x / 1000.0) )/* 自定义数据结构,方便使用 */
#define uchar	unsigned char
#define uint	unsigned int
#define ulong	unsigned long/****************主函数****************/
void main( void )
{/*下面六行程序关闭所有的IO口*/P5DIR	= 0xff;P5OUT	= 0xff; P1DIR = 0XFF; P1OUT = 0XFF;P2DIR	= 0XFF; P2OUT = 0XFF;P3DIR	= 0XFF; P3OUT = 0XFF;P4DIR	= 0XFF; P4OUT = 0XFF;P5DIR	= 0XFF; P5OUT = 0XFF;P6DIR	= 0XFF; P6OUT = 0XFF;WDTCTL = WDTPW + WDTHOLD;Clock_Init();UART_Init();P6DIR	|= BIT6; P6OUT |= BIT6; /* 关闭电平转换 */P5DIR	|= BIT5; P5OUT |= BIT5; /* 关闭电平转换 */P6DIR	|= BIT7; P6OUT |= BIT7; /* 关闭蜂鸣器 *//* 设置看门狗定时器,初始化控制数码管的IO */WDTCTL	= WDT_ADLY_1_9;IE1	|= WDTIE;/* 计数时钟选择SMLK=8MHz,1/8分频后为1MHz */TACTL |= TASSEL_2 + ID_3;/* 打开全局中断 */_EINT();/* 循环读数显示 */while ( 1 ){wendu = Do1Convert();                   /* 读取温度s */Disp_Numb( wendu );                     /* 显示温度 *//* 串口发送温度 wendu */memset( fasong, 0, sizeof(fasong) );    /* 清空发送数组 */sprintf( fasong, "%d%d.%d  \r\n", (int)dN[5],(int)dN[4] ,(int)dN[3]  );Print_Str( fasong );}
}/******************************************** 函数名称:watchdog_timer* 功    能:看门狗定时器中断服务函数,进行数码*        管动态扫描* 参    数:无* 返回值  :无********************************************/
#pragma vector = WDT_VECTOR
__interrupt void watchdog_timer( void )
{/** P4OUT = 0xFF;*  wei_h;* wei_l;*/P4OUT = scandata[dN[5 - cnt]];if ( cnt == 1 )P4OUT &= ~BIT7;  /* 在第二位显示小数点 */duan_h;duan_l;P4OUT = ~(1 << cnt);wei_h;wei_l;cnt++;if ( cnt == 3 )cnt = 0;
}/******************************************** 函数名称:Disp_Numb* 功    能:将从DS18B20读取的11bit温度数据转换*        成数码管显示的温度数字* 参    数:temper--11bit温度数据* 返回值  :无********************************************/
void Disp_Numb( uint temper )
{uchar i;for ( i = 0; i < 6; i++ )dN[i] = 0;          /* 初始化显示变量 *//* 数值转换 */if ( temper & BIT0 ){dN[0]	= 5;dN[1]	= 2;dN[2]	= 6;}if ( temper & BIT1 ){dN[1]	+= 5;dN[2]	+= 2;dN[3]	+= 1;}if ( temper & BIT2 ){dN[2]	+= 5;dN[3]	+= 2;if ( dN[2] >= 10 ){dN[2]	-= 10;dN[3]	+= 1;}}if ( temper & BIT3 ){dN[3] += 5;}if ( temper & BIT4 ){dN[4] += 1;}if ( temper & BIT5 ){dN[4] += 2;}if ( temper & BIT6 ){dN[4] += 4;}if ( temper & BIT7 ){dN[4] += 8;if ( dN[4] >= 10 ){dN[4]	-= 10;dN[5]	+= 1;}}if ( temper & BIT8 ){dN[4]	+= 6;dN[5]	+= 1;if ( dN[4] >= 10 ){dN[4]	-= 10;dN[5]	+= 1;}}if ( temper & BIT9 ){dN[4]	+= 2;dN[5]	+= 3;if ( dN[4] >= 10 ){dN[4]	-= 10;dN[5]	+= 1;}}if ( temper & BITA ){dN[4]	+= 4;dN[5]	+= 6;if ( dN[4] >= 10 ){dN[4]	-= 10;dN[5]	+= 1;}if ( dN[5] >= 10 ){dN[5] -= 10;}}
}

全部程序

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

这篇关于【TB作品】msp430f149单片机,读取ds18b20温度,显示到数码管,串口发送温度到电脑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1028624

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定