【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

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

篆刻作品欣赏孙溟㠭凿刻山东临清“独占鳌头”

孙溟㠭凿刻山东临清“獨占鳌头”  我的家乡山东临清城区,史称“中洲”,西有卫河,其北侧为元代运河,由问津桥入卫河,南侧为明代运河由头闸入卫,一南一北,形成纵贯市区的“人”字形,中洲四面环水,两运河交汇处地势突出,明正德年砌石为坝,以防水患,其状如鳌头,运河四处河闸如鳌四足,鳌后广济桥如尾,时任知州马伦提名“鳌头矶”,明代临清文人方元焕为鳌头矶题“獨占”,寓“魁星点斗,獨占鳌头”之意,今在高考

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

据阿谱尔APO Research调研显示,2023年全球髓内钉市场销售额约为4.7亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球髓内钉市场销售额约为4.7亿美元,预计在2024-2030年预测期内将以超过3.82%的CAGR(年复合增长率)增长。 髓内钉市场是指涉及髓内钉制造、分销和销售的行业。髓内钉是一种用于整形外科手术的医疗器械,用于稳定长骨骨折,特别是股骨、胫骨和肱骨。髓内钉通常由不銹钢或钛等材料制成,并插入骨的髓管中,以在愈合过程中提供结构支

vue+elementUI下拉框联动显示

<el-row><el-col :span="12"><el-form-item label="主账号:" prop="partyAccountId" :rules="[ { required: true, message: '主账号不能为空'}]"><el-select v-model="detailForm.partyAccountId" filterable placeholder="

Python利用qq邮箱发送通知邮件(已封装成model)

因为经常喜欢写一些脚本、爬虫之类的东西,有需要通知的时候,总是苦于没有太好的通知方式,虽然邮件相对于微信、短信来说,接收性差了一些,但毕竟免费,而且支持html直接渲染,所以,折腾了一个可以直接使用的sendemail模块。这里主要应用的是QQ发邮件,微信关注QQ邮箱后,也可以实时的接收到消息,肾好! 好了,废话不多说,直接上代码。 # encoding: utf-8import lo

温湿度采集及OLED显示

目录 软件I2C和硬件I2C每隔2秒钟采集一次温湿度数据,显示到OLED上,同时通过串口发送到上位机的“串口助手”软件 软件I2C和硬件I2C "I2C"代表Inter-Integrated Circuit,是一种用于在数字电路之间进行通信的串行通信协议。软件I2C和硬件I2C是两种实现这种协议的方式。 软件I2C是通过软件来模拟I2C通信协议的实现方式。在这种情况下,微控制

407串口01发送

实验一: 工程。 链接:https://pan.baidu.com/s/1g8DV4yZWOix0BbcZ08LYDQ?pwd=2176 提取码:2176 串口1的使用。发送功能。 单片机发送信息到电脑。 通过串口进行通信。 首先单片机这边。 单片机这边,需要对单片机的串口模块进行使能初始化,设置串口的格式。 单片机和电脑的串口收发格式要配置一致。不然A和B肯定通信不成功,鸡和鸭讲,