【TB作品】MSP430F5529单片机,温控小风扇,DS18B20温度读取,PWM风扇

本文主要是介绍【TB作品】MSP430F5529单片机,温控小风扇,DS18B20温度读取,PWM风扇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

功能

/*

  • OLED

  • SCL ----------P3.0

  • SDA ----------P3.1

  • VCC ----------3.3V

  • GND ----------GND

  • 风扇

  • DATA ----------P2.4

  • VCC ----------3.3V

  • GND ----------GND

  • DS18B20

  • DATA ----------P1.5

  • VCC ----------3.3V

  • GND ----------GND

  • 功能:

  • S1 改变占空比为 0 400 600 800

  •   S2 改变占空比为根据温度变化
    
  •   OLED每0.5S刷新一次温度显示
    
  •   DS18B20测温
    

*/

功能

S1 改变占空比为 0 400 600 800 手动档位

S2 自动档位

OLED显示温度

DS18B20测温

 * S1 改变占空比为  0  400  600  800*       S2 改变占空比为根据温度变化*       OLED每0.5S刷新一次温度显示*       DS18B20测温

部分代码


void main(void)
{WDTCTL = WDTPW | WDTHOLD; /* Stop watchdog timer */P5SEL |= BIT4 + BIT5; /* XT1引脚复用,用作晶振 */UCSCTL6 &= ~(XT1OFF + XT2OFF); /* 打开XT1、XT2 */P5SEL |= BIT2 + BIT3; /* XT2引脚复用,用作晶振 */while (SFRIFG1 & OFIFG) /* 等待晶振正常起振 */{SFRIFG1 &= ~OFIFG;UCSCTL7 &= ~(DCOFFG + XT1LFOFFG + XT2OFFG);}UCSCTL4 |= SELA__XT1CLK + SELS__XT2CLK + SELM__XT2CLK; /* 时钟源选择   ACLK---XT1CLK   SMCLK---XT2CLK   MCLK---XT2CLK */UCSCTL5 |= DIVA__1 + DIVS__4 + DIVM__1; /* 时钟源分频  ACLK/1=32768HZ     SMCLK/4=1MHZ        MCLK/1=4MHZ */OLED_Init(); /* OLED初始化 */P1DIR |= BIT0; /* LED0 */P1OUT |= BIT0;P4DIR |= BIT7; /* LED1 */P4OUT |= BIT7;P1REN |= BIT1; //KEY1P1OUT |= BIT1;P2REN |= BIT1; //KEY2P2OUT |= BIT1;DS18b20_Port_Init();TA1CTL |= MC_1 + TASSEL_1 + TACLR; /* 10MS 定时 */TA1CCR0 = 32768 / 100;TA1CCTL0 = CCIE;P2DIR |= BIT4; /* 方向 */P2SEL &= ~BIT4; /* 第二功能不开 */P2OUT |= BIT4; /* 方向 */OLED_ShowString(0, 1, "TEMP :");OLED_ShowString(0, 3, "POWER:");OLED_ShowChar(50, 3, '0', 16);_EINT(); //打开总中断while (1){//按键S1  改变风扇占空比if ((P2IN & BIT1) == 0){delay_ms(10);if ((P2IN & BIT1) == 0){while ((P2IN & BIT1) == 0);fengshansudu = (fengshansudu + 1) % 4; // 0 1  2  3代表不转和三档速度if (fengshansudu == 0){P2DIR |= BIT4; /* 方向 */P2SEL &= ~BIT4; /* 第二功能不开 */P2OUT |= BIT4; /* 方向 */}else{P2DIR |= BIT4; /* 方向 */P2SEL |= BIT4; /* 第二功能不开 */TA2CCR0 = 1000; /* PWM模式    计数到1000  PWM周期就是1MS */TA2CCTL1 = OUTMOD_3; /* 模式 */TA2CCR1 = 2; /* 占空比 */TA2CTL = TASSEL_2 + MC_1 + TACLR; /* smclk, up-down mode, clear TAR  1MHZ */TA2CCR1 = 200 + fengshansudu * 200; /* 占空比 */}P1OUT ^= BIT0; //为了观察}}//按键S2  改变风扇  为 自动档位if ((P1IN & BIT1) == 0){delay_ms(10);if ((P1IN & BIT1) == 0){while ((P1IN & BIT1) == 0);P2DIR |= BIT4; /* 方向 */P2SEL |= BIT4; /* 第二功能不开 */TA2CCR0 = 1000; /* PWM模式    计数到1000  PWM周期就是1MS */TA2CCTL1 = OUTMOD_3; /* 模式 */TA2CCR1 = 2; /* 占空比 */TA2CTL = TASSEL_2 + MC_1 + TACLR; /* smclk, up-down mode, clear TAR  1MHZ */fengshansudu = 4; //代表自动速度P4OUT ^= BIT7; //为了观察}}//打开定时器TA1CTL |= MC_1 + TASSEL_1 + TACLR; /* 10MS 定时 */LPM0; //进入低功耗}
}

全部代码

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

这篇关于【TB作品】MSP430F5529单片机,温控小风扇,DS18B20温度读取,PWM风扇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常

一、问题描述 一位同学反馈,他写的argo存过中调用了一个自定义函数,函数会加载hdfs上的一个文件,但有些节点会报FileSystem closed异常,同时有时任务会成功,有时会失败。 二、问题分析 argodb的计算引擎是基于spark的定制化引擎,对于自定义函数的调用跟hive on spark的是一致的。udf要通过反射生成实例,然后迭代调用evaluate。通过代码分析,udf在

下载/保存/读取 文件,并转成流输出

最近对文件的操作又熟悉了下;现在记载下来:学习在于 坚持!!!不以细小而不为。 实现的是:文件的下载、文件的保存到SD卡、文件的读取输出String 类型、最后是文件转换成流输出;一整套够用了; 重点: 1:   操作网络要记得开线程; 2:更新网络获取的数据 切记用Handler机制; 3:注意代码的可读性(这里面只是保存到SD卡,在项目中切记要对SD卡的有无做判断,然后再获取路径!)

ROS1 + Realsense d455 固件安装+读取rostopic数据

目录 安装固件(一定要匹配)ROS1 wrapper 安装方法Realsense SDK 安装方法Realsense Firmware 安装方法 修改roslaunch配置文件,打开双目图像和IMU数据其他坑点参考链接 安装固件(一定要匹配) 如果你是使用ROS1获取realsense数据的话,一定要注意,SDK, Firmware的版本不是越新越好!!,这是因为intel已经不

Python批量读取身份证信息录入系统和重命名

前言 大家好, 如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。 实现过程概述: 模块与功能: re 模块:用于从 OCR 识别出的文本中提取所需的信息。 日期模块:计算年龄。 pandas:处理和操作表格数据。 PaddleOCR:百度的

基于stm32的河流检测系统-单片机毕业设计

文章目录 前言资料获取设计介绍功能介绍具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机设计精品

java读取resource/通过文件名获取文件类型

java读取resource java读取resource目录下文件的方法: 借助Guava库的Resource类 Resources.getResource("test.txt") 通过文件名获取文件类型 mongodb java

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(4)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)-CSDN博客  这节就是真正的存储数据了   理清一下思路: 1.存储路径并检查 //2进制文件类存储private static string Data_Binary_Pa