【TB作品】msp430g2553单片机,流速,流量,检测与显示

功能

采用P1.4作为ADC输入通道,采集流量,显示到oled,并串口发送。

硬件

//OLED
// SCL接P2^0
// SDA接P2^1
//vcc接VCC
//GND接GND

//串口
//P1.1 = RXD, P1.2=TXD
//P1.1接模块的TX P1.2接模块的RX 反着接

//ADC通道
//采用P1.4作为ADC输入通道
//可以接3.3V以下的电平

部分程序


int main(void) {WDTCTL = WDTPW + WDTHOLD; /* Stop WDT *///16Mhzif (CALBC1_16MHZ==0xFF)					// If calibration constant erased{while(1);                               // do not load, trap CPU!!}DCOCTL = 0;                               // Select lowest DCOx and MODx settingsBCSCTL1 = CALBC1_16MHZ;                   // Set rangeDCOCTL = CALDCO_16MHZ;                    // Set DCO step + modulation*/OLED_Init(); /* OLED初始化 */ADC10CTL0 = ADC10SHT_0 + ADC10ON + ADC10IE; // 采样速率:4 x ADC10CLKs  打开讷河  打开中断/* 定时器0 检测按键的 */CCTL0 = CCIE;TACCR0 = 32768; /* 1000 MS */TACTL = TASSEL_1 + MC_1;//(1) 设置为输入P1DIR &= ~BIT3;                            // P1.5引脚为输入//(2)使能上下拉P1REN |= BIT3;							// 打开使能上拉或者下拉//(2)设置为上拉P1OUT |= BIT3;                            // 上拉//(3)选中断边沿P1IES &= ~BIT3;                            // 触发中断为 上升//(4)启动中断使能P1IE |= BIT3;                            // 中断使能//(5)清零中断标志P1IFG &= ~BIT3;                           // 中断标志清零//串口设置P1DIR |= BIT2;P1SEL = BIT1 + BIT2;                     // P1.1 = RXD, P1.2=TXDP1SEL2 = BIT1 + BIT2;                     // P1.1 = RXD, P1.2=TXDUCA0CTL1 |= UCSSEL_1;                     // CLK = ACLKUCA0BR0 = 0x03;                           // 32kHz/9600 = 3.41UCA0BR1 = 0x00;                           //send_string("manle  huidao 0 \r\n");_EINT();while (1) {LPM0;dis_num_6();			//刷新显示}
}// 中断服务函数
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void) {if (xianshi_choose == 0) {xianshi_choose = 1;} else {xianshi_choose = 0;}P1IFG &= ~BIT3;                           // 手动软件清除中断标志才能退出中断函数//这里可以编写按键后想要执行的程序LPM0_EXIT;
}/* 1S钟执行一次这个函数 */
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void) {ADC10CTL0 |= ENC + ADC10SC;             // 软件打开转换  转换开始
}// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void) {bufa = (float) ADC10MEM;	//读取采样结果 放在bu变量中liusu = (u32) ((bufa * 1.0 / 1024 * 4) * 10);//bufa值是0到1023   对应到4L/S   因为要保留1位小数  乘以10 显示到LED后有小数leijiliang += liusu;			//每一秒的流速单位就是 L/S  一秒算多少升 加到累积量上if (leijiliang > 100000) {leijiliang = 0;send_string("manle  huidao 0 \r\n");}send_liuliang_andleiji();LPM0_EXIT;
}

全部代码

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

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

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

相关文章

LoRA低秩自适应微调技术原理及实践

大型语言模型的低秩自适应 (LoRA) 用于解决微调大型语言模型 (LLM) 的挑战。GPT 和 Llama 等模型拥有数十亿个参数,通常对于特定任务或领域进行微调的成本过高。LoRA 保留了预训练的模型权重,并在每个模型块中加入了可训练层。这显著减少了需要微调的参数…

k8s学习--ConfigMap详细解释与应用

文章目录 一 什么是configmapConfigMap 的好处ConfigMap 的限制 二.创建ConfigMap的4种方式1.在命令行指定参数创建2.在命令行通过多个文件创建3.在命令行通过文件提供多个键值对创建4.YAML资源清单文件创建 三 configmap的两种使用方法1.通过环境变量的方式传递给pod2.通过vol…

提高LabVIEW程序员分析需求、写代码、测试能力的方法

分析需求 深入了解项目背景:在开始任何项目之前,程序员应该深入了解项目的背景和目标。这包括与客户或项目干系人进行详细讨论,理解他们的期望和需求。参加相关的行业研讨会和阅读技术文档也有助于更好地了解项目背景。 使用需求管理工具&am…

MySQL学习——影响选项文件处理的命令行选项和程序选项修改器

大多数支持选项文件的MySQL程序都处理以下选项。因为这些选项会影响选项文件的处理,所以必须在命令行上给出,而不是在选项文件中给出。为了正常工作,这些选项中的每一个都必须先于其他选项给出,但以下情况除外: -prin…

WLAN组网模型探究

目录 一、WLAN基本概念二、WLAN组网方式三、WLAN转发模型 随着信息技术的飞速发展,无线局域网(WLAN)已逐渐成为企业网络架构中不可或缺的一部分。不同的企业组织因其业务特性、规模大小及安全需求的不同,对WLAN的要求也各有侧重。…

物联网面试准备

volatile的作用 volatile关键字用于告诉编译器,该变量可能会在程序的执行过程中被意外更改,因此编译器不应该对该变量进行优化或者缓存。 这样可以确保每次访问该变量时都会从内存中读取最新的值,而不是使用缓存中的旧值。 在多线程编程中&…

C语言习题~day28

关于文本文件和二进制文件描述错误的是? A.文本文件是可以读懂的,二进制文件没办法直接读懂 B.数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件 C.将内存中的数据转化成ASCII码值的形式,并…

Arduino IDE 2.3.2找不到端口解决方法

Arduino IDE 2.3.2找不到端口解决方法 问题描述 Arduino IDE 2.3.2 软件找不到端口(端口显示灰色),Arduino开发板连接电脑后,设备管理器能够看到端口信息,Arduino IDE软件中看不到端口。 设备管理器中能够看到端口信息 Arduino IDE中端口显…

力扣5 最长回文子串

给你一个字符串 s,找到 s 中最长的 回文子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示例 2: 输入:s "cbbd" 输…

植物大战僵尸杂交版(最新版)

杂交版1.0文件链接 链接:https://pan.baidu.com/s/1Ew6iTg0_d_Ut8N9_18KGLw 提取码:yspa 杂交版2.0文件链接 链接:https://pan.baidu.com/s/1tuchowb4C_oNT6EpqSvr_w?pwdy2fz 提取码:y2fz

HTML静态网页成品作业(HTML+CSS)—— 香奈儿香水介绍网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…

上位机图像处理和嵌入式模块部署(f407 mcu中tf卡模拟u盘)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在f407开发板上面,本身是有一个usb接口的。这个usb接口也不仅仅是作为电源使用的,它还可以用来做很多的事情。一方面&#…

pymupdf提取pdf表格及表格数据合并

pymupdf提取pdf表格非常快速,相比其他库是个更好的选择. 一个行列多的表格打印成pdf后会由于页宽分页原因变成多个表格,提取的多个表格需要合并为一个表格,再来处理数据. 下面代码中merge函数用于合并表格&#xff0…

label标签

01、label标签 概述 label标签页属于:form元素的成员之一,它有啥意义呢?它主要用来修饰文本和form元素的指向和体验问题。我们只需要把文本和form元素使用label标签包裹,就可以产生一个奇妙的化学反应。就是:我们点击…

在Spring中如何实现条件化Bean的创建?

在Spring中,实现条件化Bean的创建主要依靠Conditional注解,这个注解允许基于一定的条件来注册Bean。如果条件不满足,那么对应的Bean将不会被创建和注册到Spring的应用上下文中。 以下是如何使用Conditional注解来实现条件化Bean创建的步骤&a…

计算机网络错题答案汇总

王道学习 第1章 计算机网络体系结构 1.1 1.2

vue配置代理服务器解决跨域方法

一.vue配置代理服务器解决跨域方法一 过程如图: 1.在配置文件中设置代理服务器的地址 //vue.config.js module.exports{pages:{index:{// 入口entry:src/main.js,},},lintOnSave:false, //关闭语法检测// 开启代理服务器devServer:{proxy:http://localhost:8000//…

Java基础教程:算术运算符快速掌握

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

SD-WAN简介

一、SD-WAN 定义概念 SD-WAN(Software-Defined Wide Area Network),即软件定义广域网,代表了一种具有深远变革意义的网络技术架构和理念。 在传统广域网基础上的创新性演进,融合了软件定义网络(SDN&#…

操作系统之银行家算法

目录 前言 银行家算法 定义 举例 策略 思路 结束语 前言 今天是坚持写博客的第16天,已经超过半个月了,希望可以继续坚持,不断积累与回顾,夯实基础知识体系的基础。我们今天来讲讲操作系统当中的另一个重要知识点——银行家…