【TB作品】MSP430 G2553 单片机口袋板,电风扇模拟控制系统设计

功能

电风扇模拟控制系统设计

基本要求:
用LED/LCD 显示电风扇的工作状态 (1,2,3,4 四档风力),
显示风类:“自然风”、“常风”和“睡眠风”。
设计 “自然风”“常风”和“睡眠风” 三个风类键用于设置风类
设计一个“摇头”键用于控制电机摇头。
设计一个“定时”键,用于定时时间长短设置:
发挥部分:
设计过热检测与保护电路
若电风扇电机过热(用内存参数模拟温度,用键),则电机停止转动,
蜂鸣器报警电机冷却后(用键模拟) 电机又恢复转动。
显示格式:
LED 数码管/LCD 屏显示方法自定

效果

在这里插入图片描述

部分代码


void main(void)
{char t_j = 0;WDTCTL = WDTPW + WDTHOLD; /* 关闭看门狗 */P1DIR = 0xFF; /* 设置方向 */P1SEL = 0; /* 设置为普通I/O 口 */P2DIR = 0xFF; /* 设置方向 */P2SEL = 0; /* 设置为普通I/O 口 */P2OUT = 0x00;P1OUT = 0x00;delay_ms(200);LCD_init();//P4.1 设置为PWM 输出P4DIR |= BIT1;P4SEL |= BIT1;TBCCR0 = 1000;                 //PWM 周期TBCCR1 = 0;                  //PWM 占空比TBCCTL1 = OUTMOD_7;             //PWM 输出模式TBCTL = TBSSEL_2 + MC_1 + ID_3;      //SMCLK, UP 模式CCTL0 = CCIE;                         // CCR0 interrupt enabledCCR0 = 32768 - 1;TACTL = TASSEL_1 + MC_1;              // ACLK, upmodeP5DIR = 0X00;              //其余的都是按键P5REN |= 0XFF;P5OUT = 0XFF;//P4.4输出给beepP4DIR |= BIT4;P4OUT &= ~BIT4;//P4.3输出给摇头电机P4DIR |= BIT3;P4OUT &= BIT3;//P4.2 继电器P4DIR |= 0X04;P4OUT |= 0X04;              //高电平是关闭继电器//P4.5输出P4DIR |= BIT5;P4OUT &= ~BIT5;__bis_SR_register( GIE);while (1){delay_us(10);t_j++;if (t_j > 100){if (Countdown_Flag){tmp_r = (hour * 3600) + (minute * 60) + second;if (tmp_r>0){TBCCR1 = fengli[fengli_Flag_dangwei];        //每一秒钟检测一次风扇的转速}else{fengli_Flag_dangwei = 0;TBCCR1 = fengli[fengli_Flag_dangwei];        //每一秒钟检测一次风扇的转速}}else{TBCCR1 = fengli[fengli_Flag_dangwei];        //每一秒钟检测一次风扇的转速}Read_DS18B20(&TAM_KISIM, &ONDALIK_KISIM);if ((negative == 0) && (limited == 0)){cnt = 0;disp[cnt++] = 't';disp[cnt++] = '=';disp[cnt++] = '0' + (TAM_KISIM % 1000 / 100);disp[cnt++] = '0' + (TAM_KISIM % 100 / 10);disp[cnt++] = '0' + (TAM_KISIM % 10);disp[cnt++] = '.';disp[cnt++] = '0' + (ONDALIK_KISIM % 10000 / 1000);disp[cnt++] = '0' + (ONDALIK_KISIM % 1000 / 100);disp[cnt++] = '0' + (ONDALIK_KISIM % 100 / 10);disp[cnt++] = '0' + (ONDALIK_KISIM % 10);disp[cnt++] = 'C';disp[cnt++] = 0;LCD_dsp_string(0, 2, disp); /* 在第一行第一列显示"LCD TEST" */}if (TAM_KISIM > 50){//P4.4输出给beepP4OUT &= ~BIT4;        //鸣叫P4OUT &= 0XFB;        //低电平是打开继电器,是关闭风扇}else{P4OUT |= BIT4;        //不鸣叫P4OUT |= 0X04;        //高电平是关闭继电器,是正常风扇工作}update_disp();}//按键检测if ((P5IN & BIT0) == 0)              //0档位风力{
//            delay_ms(10);if ((P5IN & BIT0) == 0){fengli_Flag_dangwei = 0;update_disp();while ((P5IN & BIT0) == 0);}}if ((P5IN & BIT1) == 0)              //1档位风力{
//            delay_ms(10);if ((P5IN & BIT1) == 0){fengli_Flag_dangwei = 1;update_disp();while ((P5IN & BIT1) == 0);}}if ((P5IN & BIT2) == 0)              //2档位风力{
//            delay_ms(10);if ((P5IN & BIT2) == 0){fengli_Flag_dangwei = 2;update_disp();while ((P5IN & BIT2) == 0);}}if ((P5IN & BIT3) == 0)              //3档位风力{
//            delay_ms(10);if ((P5IN & BIT3) == 0){fengli_Flag_dangwei = 3;update_disp();while ((P5IN & BIT3) == 0);}}if ((P5IN & BIT4) == 0)              //摇头电机{
//            delay_ms(10);if ((P5IN & BIT4) == 0){if (shake_Flag == 1)shake_Flag = 0;elseshake_Flag = 1;if (shake_Flag == 1)P4OUT |= BIT3;elseP4OUT &= ~BIT3;update_disp();while ((P5IN & BIT4) == 0);}}if ((P5IN & BIT5) == 0)              //加倒计时,一次加10分钟,小时不能多于12小时{
//            delay_ms(10);if ((P5IN & BIT5) == 0){tmp_r = hour * 60 + minute;tmp_r += 10;hour = tmp_r / 60;minute = tmp_r % 60;update_disp();while ((P5IN & BIT5) == 0);}}if ((P5IN & BIT6) == 0)              //减倒计时,一次减10分钟,分钟不能小于0{
//            delay_ms(10);if ((P5IN & BIT6) == 0){tmp_r = hour * 60 + minute;if (tmp_r >= 10){tmp_r -= 10;hour = tmp_r / 60;minute = tmp_r % 60;}else{fengli_Flag_dangwei = 0;hour = 0;minute = 0;second=0;}update_disp();while ((P5IN & BIT6) == 0);}}if ((P5IN & BIT7) == 0)              //定时模式的开关{
//            delay_ms(10);if ((P5IN & BIT7) == 0){if (Countdown_Flag){Countdown_Flag = 0;hour=0;minute=0;second=0;fengli_Flag_dangwei=0;}else{Countdown_Flag = 1;}update_disp();while ((P5IN & BIT7) == 0);}}}
}

全部代码

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

慢SQL的治理思路

慢SQL的治理思路 什么是慢SQL慢SQL产生的原因查看慢 SQL 是否开启开启慢 SQL 记录开启慢查询日志分析慢 SQL解决和优化慢SQL的方法 什么是慢SQL 慢 SQL 指的是 MySQL 中执行比较慢的 SQL,排查慢 SQL 最常用的方法是通过慢查询日志来查找慢 SQL。 MySQL 的慢查询日志…

使用element的过渡效果来做动效

transition来做过渡效果&#xff1a; <transition name"el-zoom-in-bottom"><div></div> </transition> name属性&#xff1a; 属性描述el-fade-in-linear淡入淡出匀速&#xff1b;el-fade-in淡入淡出快速&#xff1b;el-zoom-in-center中…

快速排序与归并排序(非递归)

目录 快速排序&#xff08;双指针法&#xff09; 原理 代码 快速排序&#xff08;非递归&#xff09; 原理 代码 归并排序 介绍 优点 缺点 图片 原理 代码 归并排序&#xff08;非递归&#xff09; 代码 快速排序&#xff08;双指针法&#xff09; 快速排序的精…

2024年06月编程语言流行度排名

点击查看最新编程语言流行度排名&#xff08;每月更新&#xff09; 2024年06月编程语言流行度排名 编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的 一门语言教程被搜索的次数越多&#xff0c;大家就会认为该语言越受欢迎。这是一个领先指标。原始数据来自…

python中的抽象基类详解

在Python中&#xff0c;抽象基类&#xff08;Abstract Base Classes&#xff0c;简称ABCs&#xff09;是一种特殊的类&#xff0c;主要用于定义接口&#xff0c;即一组方法的规范&#xff0c;但不提供这些方法的实现。抽象基类不能被直接实例化&#xff0c;除非其所有抽象方法都…

【30天精通Prometheus:一站式监控实战指南】第15天:ipmi_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们&#x1f44b;   欢迎加入【30天精通Prometheus】专栏&#xff01;&#x1f4da; 在这里&#xff0c;我们将探索Prometheus的强大功能&#xff0c;并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。&#x1f680;   Prometheus是云原生和DevOps的…

(奇幻森林)POLYGON - Enchanted Forest - Nature Biomes - 3D Environment Art by Synty

各种雄伟的树木,装饰着优雅简化的树叶,在头顶形成了一个天堂般的树冠,在苔藓覆盖的森林地面上投下了宁静的咒语。 每一项资产,从引人入胜的环境材料到平缓的波浪状山丘,都经过精心制作,将您带到魔法和自然融合的地方。POLYGON-魔法森林-自然生物技术为数字领域注入真正魔…

60 关于 SegmentFault 的一些场景 (2)

前言 呵呵 此问题主要是来自于 帖子 月经结贴 -- 《Segmentation Fault in Linux》 这里主要也是 结合了作者的相关 case, 来做的一些 调试分享 当然 很多的情况还是 蛮有意思 本文主要问题如下 1. 访问异常堆栈地址1 2. 访问异常堆栈地址2 3. 访问异常堆栈地址3 4. sta…

第三届大湾区算力大会丨暴雨开启数字未来新篇

5月30-31日&#xff0c;韶关市迎来主题为“算启新篇智创未来”的第三届粤港澳大湾区(广东)算力产业大会暨第二届中国算力网大会&#xff0c;活动由广东省人民政府主办&#xff0c;广东省政数局、韶关市人民政府共同承办。暴雨信息作为算力产业发展的重要构建者受邀赴会&#xf…

Java的数据库编程-----JDBC

目录 一.JDBC概念&使用条件&#xff1a; 二.mysql-connector驱动包的下载与导入&#xff1a; 三.JDBC编程&#xff1a; 使用JDBC编程的主要五个步骤&#xff1a; 完整流程1&#xff08;更新update&#xff09;&#xff1a; 完整流程2(查询query)&#xff1a; 一.JDB…

汪小菲直播翻车亲儿子直言麻六记有异味网友热议引爆话题

汪小菲直播翻车&#xff01;亲儿子直言“麻六记”有“异味”&#xff0c;网友热议引爆话题在星光璀璨的娱乐圈&#xff0c;汪小菲一直以家庭幸福、事业有成的形象示人。然而&#xff0c;近日的一场直播让他遭遇了前所未有的尴尬。在直播中&#xff0c;汪小菲兴致勃勃地向观众跨…

链表头部插入结点

Linked List Inserting a node at beginning #include<stdlib.h>//为了用malloc #include<stdio.h> struct node {int data;struct node* next;//在cpp中可以只写 Node *Link&#xff1b;//为了表意明确&#xff0c;Link也经常被命名为next }; struct node* head…

视频搬运的素材网站有哪些?打包好的视频素材在哪找?

短视频创作的朋友们&#xff0c;欢迎进入这个充满创意的世界&#xff01;如果你曾为找不到合适的素材而苦恼&#xff0c;那么今天就让我为你介绍几个能够快速丰富你视频内容的素材平台。无论是为了搬运视频还是寻找灵感&#xff0c;下面这些网站都将是你的强力助手。特别地&…

【软件测试】6.设计测试用例的设计方法

目录 1.基于需求的设计方法 2.具体的设计方法 2.1等价类 2.2边界值 2.3正交法 2.4判定表法 2.5场景法 2.6 错误猜测法 1.基于需求的设计方法 基于需求的设计方法也是总的设计测试用例的方法&#xff0c;在工作中&#xff0c;我们需要参考需求文档/产品规格说明书来设计…

MySQL—函数(介绍)—字符串函数(基础)

一、引言 提到函数&#xff0c;在SQL分类中DQL语句中有一个聚合函数&#xff0c;如COUNT()、SUM()、MAX()等等。这些都是一些常见的聚合函数&#xff0c;而聚合函数只是函数的一种&#xff0c;接下来会详细的学习和介绍一下函数的应用场景和以及 mysql 当中文件的函数有哪些。 …

(ISPRS,2023)RS-CLIP: 基于对比视觉-语言监督的zero-shot遥感场景分类

文章目录 相关资料摘要引言方法CLIP回顾伪标签生成课程学习策略 实验数据集不同文本提示失败案例分析课程学习zero-shot分类 相关资料 论文&#xff1a;RS-CLIP: Zero shot remote sensing scene classification via contrastive vision-language supervision 摘要 零样本遥…

【GeoServer系列】——安装与发布shapefile数据

GeoServer是一个基于java的服务器&#xff0c;它允许用户查看和编辑地理空间数据。使用OGC制定的开放标准&#xff0c;GeoServer在地图创建和数据共享方面具有极大的灵活性。 功能概述&#xff1a; Open and Share Your Spatial Data GeoServer允许您向世界显示您的空间信息。G…

CIFAR-10 数据转为图片-python

CIFAR-10 数据集 """ CIFAR-10 是 32X32 的彩色图片&#xff0c;共有10个类别&#xff0c;每个类别6000张图片&#xff0c;50000张训练图片&#xff08;均分为5个batch&#xff09;&#xff0c;10000张测试图片&#xff08;每个类别选1000张&#xff09; 将 CI…

【STL】C++ queue队列(包含优先级队列) 基本使用

目录 一 queue 1 常见构造 1 空容器构造函数 2. 使用指定容器构造 3 拷贝构造函数 2 empty 3 size 4 front && back 5 push && pop 6 emplace 7 swap 二 优先级队列( priority_queue) 1 常见构造 2 其他操作 3 大堆和小堆 1. 大小堆切换 2 自…

Python知识点10---函数

提前说一点&#xff1a;如果你是专注于Python开发&#xff0c;那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了&#xff0c;而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python的函数和Scala的函数很像&#xff0c;语法很简单&#xff0c;注…