【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 的慢查询日志…

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

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

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

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

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

亲爱的读者们👋   欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀   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日,韶关市迎来主题为“算启新篇智创未来”的第三届粤港澳大湾区(广东)算力产业大会暨第二届中国算力网大会,活动由广东省人民政府主办,广东省政数局、韶关市人民政府共同承办。暴雨信息作为算力产业发展的重要构建者受邀赴会&#xf…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

【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 自…

scGPT实验解读

本篇内容为发表在Nature Methods上的scGPT的部分实验内容 来自:scGPT: toward building a foundation model for single-cell multi-omics using generative AI, Nature Methods, 2024 目录 scGPT揭示特定细胞状态的基因网络缩放法则和迁移学习中的上下文效应 scGP…

寄存器、缓存、内存(虚拟、物理地址)、DDR、RAM的关系

寄存器、缓存、内存、DDR、RAM的关系 1. 主要概念内部存储器:2.1 寄存器,register2.2 主存储器,内存,memory2.3 缓存,高速缓冲存储器,cache 外部存储器2.4 快闪存储器,闪存,flash Me…

AI图书推荐:使用GPT-4和ChatGPT开发AI应用APP

这本书是面向想要学习如何使用大型语言模型构建应用程序的 Python 开发人员的全面指南。作者 Olivier Caelen 和 Marie-Alice Blete 涵盖了 GPT-4 和 ChatGPT 的主要特征和好处,并解释了它们的工作原理。您还将获得使用 GPT-4 和 ChatGPT Python 库开发应用程序的逐…

多台相同IP产品如何组网?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

Unity协程详解

什么是协程 协程,即Coroutine(协同程序),就是开启一段和主程序异步执行的逻辑处理,什么是异步执行,异步执行是指程序的执行并不是按照从上往下执行。如果我们学过c语言,我们应该知道&#xff0…