【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

相关文章

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

电脑提示msvcp90.dll缺少怎么办? MSVCP90.dll文件丢失的修复方法

《电脑提示msvcp90.dll缺少怎么办?MSVCP90.dll文件丢失的修复方法》今天我想和大家分享的主题是关于在使用软件时遇到的一个问题——msvcp90.dll丢失,相信很多老师在使用电脑时... 在计算机使用过程中,可能会遇到 MSVCP90.dll 丢失的问题。MSVCP90.dll 是 Mic

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

电脑开机提示krpt.dll丢失怎么解决? krpt.dll文件缺失的多种解决办法

《电脑开机提示krpt.dll丢失怎么解决?krpt.dll文件缺失的多种解决办法》krpt.dll是Windows操作系统中的一个动态链接库文件,它对于系统的正常运行起着重要的作用,本文将详细介绍... 在使用 Windows 操作系统的过程中,用户有时会遇到各种错误提示,其中“找不到 krpt.dll”

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触