【TB作品】MSP430F149 单片机 音乐喷泉

功能

声音越大,亮的灯越多。
oled显示出当前的声音大小。

硬件接线

//OLED----MSP430
//VCC-----3.3V
//GND-----GND
//D0------P3.2
//D1------P3.0
//RES-----P2.0
//DC------P2.2
//CS------P8.1

led
P4八个引脚

adc
P6.0

部分代码


    _EINT();
    while (1)
    {
        adok_ifg = 1; /* 转换结束后变成0 */
        ADC12CTL0 |= ADC12SC;                   // Sampling open
        delay_ms(500);
        while (adok_ifg == 1)
            ; /* 等待装换结束 */

        fute = adcvalue * 0.00805;
        xianshi[0] = fute % 100 / 10 + '0';
        xianshi[1] = '.';
        xianshi[2] = fute % 10 + '0';
        xianshi[3] = 'V';
        xianshi[4] = 0;
        OLED_ShowString(0, 0, xianshi);

        xianshi[0] = adcvalue % 10000 / 1000 + '0';
        xianshi[1] = adcvalue % 1000 / 100 + '0';
        xianshi[2] = adcvalue % 100 / 10 + '0';
        xianshi[3] = adcvalue % 10 + '0';
        xianshi[4] = 'X';
        xianshi[5] = 0;
        OLED_ShowString(0, 2, xianshi);

        if (adcvalue <= min_YIN)
            adcvalue = min_YIN;
        if (adcvalue > max_YIN)
            adcvalue = max_YIN;

        adcvalue = adcvalue - min_YIN;

        temp1 = max_YIN - min_YIN;
        duan = temp1 / 8;
        if (adcvalue > duan * 7)
        {
            P4OUT = 0X00;
        }
        else if (adcvalue > duan * 6)
        {
            P4OUT = BIT7;
        }
        else if (adcvalue > duan * 5)
        {
            P4OUT = BIT7 + BIT6;
        }
        else if (adcvalue > duan * 4)
        {
            P4OUT = BIT7 + BIT6 + BIT5;
        }
        else if (adcvalue > duan * 3)
        {
            P4OUT = BIT7 + BIT6 + BIT5 + BIT4;
        }
        else if (adcvalue > duan * 2)
        {
            P4OUT = BIT7 + BIT6 + BIT5 + BIT4 + BIT3;
        }
        else if (adcvalue > duan * 1)
        {
            P4OUT = BIT7 + BIT6 + BIT5 + BIT4 + BIT3 + BIT2;
        }
        else if (adcvalue > 50)
        {
            P4OUT = BIT7 + BIT6 + BIT5 + BIT4 + BIT3 + BIT2 + BIT1;
        }
        else
        {
            P4OUT = 0XFF;
        }

        temp1 = max_YIN - min_YIN;
        temp2 = (float) adcvalue / (float) temp1 * 300;
        temp3 = temp2;

        temp1 = 210 + temp3;
        CCR1 = temp1; //设置为210到510

        xianshi[0] = 'P';
        xianshi[1] = 'W';
        xianshi[2] = 'M';
        xianshi[3] = temp1 % 10000 / 1000 + '0';
        xianshi[4] = temp1 % 1000 / 100 + '0';
        xianshi[5] = temp1 % 100 / 10 + '0';
        xianshi[6] = temp1 % 10 + '0';
        xianshi[7] = 0;
        OLED_ShowString(0, 4, xianshi);

    }
}

// ADC12 interrupt service routine
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR(void)
{
    adcvalue = ADC12MEM0;

    adok_ifg = 0;

}

全部代码

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

移动端 UI 风格,打造极致体验

移动端 UI 风格&#xff0c;打造极致体验

Python疑难杂症--考试复习

1.排序输出字典中数据 dic1 {Tom:21,Bob:18,Jack:23,Ana:20} dic2 {李雷:21,韩梅梅:18,小明:23,小红:20} nint(input()) if n>len(dic1):nlen(dic1) print(sorted(dic1.keys())[:n]) print(sorted(dic2.items(),keylambda item:item[1])[:n]) 2.罗马数字转换 def F(s):d{…

上位机图像处理和嵌入式模块部署(f407 mcu中的项目开发特点)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 和soc相比较&#xff0c;mcu的项目规模一般不算大。因为&#xff0c;soc项目中&#xff0c;从规划、硬件开发、驱动、应用端、服务器端到测试&…

蓝桥杯物联网竞赛 比赛总结

CUBEMX配置建议&#xff1a; 对于CUBEMX配置来说stm32l071kbu6的引脚不算太多&#xff0c;功能模块相对的也不多&#xff0c;所以我建议直接熟练到能将所有模块烂熟于心&#xff0c;不用看原理图就能熟练配置下来&#xff0c;因为国赛看原理图去配置太花费时间 我建议学习的时…

【设计模式深度剖析】【4】【行为型】【策略模式】

文章目录 策略模式定义英文原话直译 角色类图策略接口Strategy&#xff1a;具体策略类上下文类Context测试类 策略模式的应用策略模式的优点策略模式的缺点策略模式的使用场景 策略模式 策略模式&#xff08;Strategy Pattern&#xff09; Strategy策略也称作Policy政策。 想…

Springboot jar运行时,将jar内的文件拷贝到文件系统中

背景 因为执行需要&#xff0c;需要把jar内templates文件夹下的的文件夹及文件加压到宿主机器的某个路径下&#xff0c; 以便执行对应的脚本文件 PS: 通过类加载器等方式&#xff0c;直接getFile遍历文件&#xff0c;在idea中运行是没问题的&#xff0c;但是当打包成jar运行就会…

【JavaEE】留言板与图书管理系统

目录 留言板1. 准备工作2. 约定前后端交互接口lombok3. 服务器代码4. 调整前端页面代码 图书管理系统1. 准备工作2. 约定前后端交互接口3. 服务器代码4. 调整前端页面代码 留言板 需求: 界⾯如下图所⽰ 输⼊留⾔信息, 点击提交. 后端把数据存储起来.⻚⾯展⽰输⼊的表⽩墙的信…

Mysql使用中的性能优化——搭建Mysql的监测服务

大纲 环境安装配置Mysql安装设置root密码新增远程访问账户修改绑定地址重启 新增 MySQL Server Exporter 用户 安装启动mysqld_exporter安装启动新增配置启动 安装启动Prometheus创建用户下载并解压修改配置启动 安装启动grafana安装启动 测试参考资料 抛开场景和数据&#xff…

【YOLOv8改进[CONV]】SPDConv助力YOLOv8目标检测效果 + 含全部代码和详细修改方式 + 手撕结构图

本文将使用SPDConv助力YOLOv8目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 SPDConv 二 SPDConv助力YOLOv8目标检测效果 1 整体修改 ① 添加SPDConv.py文件 ② 修改ultralytics/nn/tas…

笔记95:车辆横向动力学方程转化为误差形式 -- 详细推导过程

1. 非误差型车辆横向动力学方程 注&#xff1a;关于轮胎侧偏刚度的正负 深蓝课程推导得到的车辆横向动力学返程使用的轮胎侧偏刚度是默认为正数&#xff1b;老王课程推导得到的车辆横向动力学方程使用的轮胎侧偏刚度是默认为负数&#xff1b; 1.1 深蓝课程推导得到的方程&…

【Qt知识】部分QWidget属性表格

QWidget是Qt库中所有图形用户界面组件的基类&#xff0c;它提供了大量属性以供自定义和配置控件的行为和外观。下面列出了一些主要的QWidget属性及其作用。 属性 作用 accessibleName 控件的辅助技术名称&#xff0c;用于无障碍访问。 accessibleDescription 控件的辅助技…

18 - 各赛事的用户注册率(高频 SQL 50 题基础版)

18 - 各赛事的用户注册率 -- 注册率注册用户数/所有用户数 selectr.contest_id,round(100*count(*)/(select count(*) from Users),2) percentage from Register r group by r.contest_id order bypercentage desc,r.contest_id ASC;

网鼎杯 2020 玄武组 SSRFMe

复习一下常见的redis主从复制 主要是redis伪服务器的选择和一些小坑点 <?php function check_inner_ip($url) { $match_resultpreg_match(/^(http|https|gopher|dict)?:\/\/.*(\/)?.*$/,$url); if (!$match_result) { die(url fomat error); } try { …

3D Web轻量化平台HOOPS Web Platform助力Rapid DCS迅速推出成本与碳排放估算产品

英国公司Rapid DCS利用HOOPS Web平台在短短六个月内成功开发出创新的云解决方案Sterling&#xff0c;旨在帮助建筑行业客户高效地估算成本和计算碳排放。 Rapid DCS&#xff0c;一家总部位于英国的公司&#xff0c;专注于为建筑环境领域的客户提供全面的数字化解决方案和服务。…

NextJs 实现自定义点火操作

NextJs 实现自定义点火操作 前言实现自定义点火 前言 我希望在Nextjs 启动的时候&#xff0c;能够自定义实现一些项目的初始化逻辑&#xff0c;也可以说是一些点火操作&#xff0c;比如资源的加载&#xff0c;数据的初始化等操作。 实现自定义点火 我们可以在根目录下创建一…

22 - 游戏玩法分析 IV(高频 SQL 50 题基础版)

22 - 游戏玩法分析 IV 考点&#xff1a; 聚合函数 # 日期相加 date_add(min(event_date),INTERVAL 1 DAY) select round(count(distinct player_id)/(select count(distinct player_id) from Activity),2) fraction fromActivity where-- 如果日期加一天的数据能在表中…

界面组件DevExpress Reports v23.2增强用户体验 - 轻松导航Web设计器

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 DevExpress Reports v23.2(我们最近的主要更新…

C++ 11【右值引用】

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;C修炼之路⏪   &#x1f69a;代码仓库:C高阶&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C知识   &#x1f51d;&#x1f51d; 1.C 11 简介 目录 1.C 11 简介 2. 统一的列表…

小程序自定义marker弹出框教程

需求背景 微信小程序开发&#xff0c;需要使用腾讯地图显示自定义marker&#xff0c;并且点击marker后弹出自定义的customCallout&#xff0c;并且customCallout的内容为用户点击marker的时候再从后台接口获取数据。 百度了一圈后发现居然没有一篇文章可以一次性完成&#xf…

使用opencv在图像上画带刻度线的十字线,以图像中心点为0点

使用OpenCV在图像上绘制带刻度线的十字线&#xff0c;可以通过以下步骤实现。我们将首先找到图像的中心点&#xff0c;然后绘制水平和垂直线&#xff0c;并在这些线的适当位置绘制刻度线。以下是详细的C代码示例&#xff1a; #include<opencv2\opencv.hpp> //画十字标注…