【TB作品】MSP430F149,ADC采集,光强GY-30,DS18B20温度采集

2024-06-03 05:28

本文主要是介绍【TB作品】MSP430F149,ADC采集,光强GY-30,DS18B20温度采集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

功能

读取了GY-30 DS18B20 P6.0ADC P6.1ADC
显示到了LCD12864

硬件

//GY30
//SCL–P1.0
//SDA–P1.1
//VCC–3.3V
//GND–GND
//ADDR–不接

//DS18B20
//DATA–P1.6
//VCC–3.3V
//GND–GND

//ADC
//DATA–P1.6
//P6.0 P6.1 ADC输入口

在这里插入图片描述

部分程序

#include <msp430.h> 
#include "lcd12864.h"
#include "gy30.h"unsigned int temp_value = 0; /* 温度 */
unsigned int ADCresults[2];  //ADC结果
unsigned char dis[15];  //显示数组
float lx;  //光强//***********************************************************************
//                   系统时钟初始化,外部8M晶振
//***********************************************************************
void Clock_Init(void)
{unsigned char i;BCSCTL1 &= ~XT2OFF;                 //打开XT2振荡器BCSCTL2 |= SELM1 + SELS;              //MCLK为8MHZ,SMCLK为8MHZdo{IFG1 &= ~OFIFG;                   //清楚振荡器错误标志for (i = 0; i < 100; i++)_NOP();}while ((IFG1 & OFIFG) != 0);           //如果标志位1,则继续循环等待IFG1 &= ~OFIFG;
}void main(void)
{WDTCTL = WDTPW | WDTHOLD;   // stop watchdog timerClock_Init();LCD_init();initADC();_EINT();while (1){ADC12CTL0 |= ADC12SC;                     // Start conversionLPM0;temp_value = get_one_temperature(); //读取温度dis[0] = temp_value % 1000 / 100 + '0';dis[1] = temp_value % 100 / 10 + '0';dis[2] = '.';dis[3] = temp_value % 10 + '0';dis[4] = 'C';dis[5] = 0;DisplayCgrom(0x80, dis);    //第一行显示lx = get_lightpower(); //读取光强dis[0] = (int) lx % 100000 / 10000 + '0';dis[1] = (int) lx % 10000 / 1000 + '0';dis[2] = (int) lx % 1000 / 100 + '0';dis[3] = (int) lx % 100 / 10 + '0';dis[4] = (int) lx % 10 + '0';dis[5] = 'L';dis[6] = 'x';dis[7] = 0;DisplayCgrom(0x90, dis);    //第2行显示dis[0] = 'A';dis[1] = 'D';dis[2] = '0';dis[3] = ':';dis[4] = (int) ADCresults[0] % 10000 / 1000 + '0';dis[5] = (int) ADCresults[0] % 1000 / 100 + '0';dis[6] = (int) ADCresults[0] % 100 / 10 + '0';dis[7] = (int) ADCresults[0] % 10 + '0';dis[8] = 0;DisplayCgrom(0x88, dis);    //第3行显示dis[0] = 'A';dis[1] = 'D';dis[2] = '1';dis[3] = ':';dis[4] = (int) ADCresults[1] % 10000 / 1000 + '0';dis[5] = (int) ADCresults[1] % 1000 / 100 + '0';dis[6] = (int) ADCresults[1] % 100 / 10 + '0';dis[7] = (int) ADCresults[1] % 10 + '0';dis[8] = 0;DisplayCgrom(0x98, dis);    //第4行显示}
}
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR(void)
{ADCresults[0] = ADC12MEM0;             // Move A0 results, IFG is clearedADCresults[1] = ADC12MEM1;             // Move A1 results, IFG is clearedLPM0_EXIT;
}

全部程序

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

这篇关于【TB作品】MSP430F149,ADC采集,光强GY-30,DS18B20温度采集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

c++习题30-求10000以内N的阶乘

目录 一,题目  二,思路 三,代码    一,题目  描述 求10000以内n的阶乘。 输入描述 只有一行输入,整数n(0≤n≤10000)。 输出描述 一行,即n!的值。 用例输入 1  4 用例输出 1  24   二,思路 n    n!           0    1 1    1*1=1 2    1*2=2 3    2*3=6 4

嵌入式面试经典30问:二

1. 嵌入式系统中,如何选择合适的微控制器或微处理器? 在嵌入式系统中选择合适的微控制器(MCU)或微处理器(MPU)时,需要考虑多个因素以确保所选组件能够满足项目的具体需求。以下是一些关键步骤和考虑因素: 1.1 确定项目需求 性能要求:根据项目的复杂度、处理速度和数据吞吐量等要求,确定所需的处理器性能。功耗:评估系统的功耗需求,选择低功耗的MCU或MPU以延长电池寿命或减少能源消耗。成本

力扣 739. 每日温度【经典单调栈题目】

1. 题目 理解题意: 1.1. 给一个温度集合, 要返回一个对应长度的结果集合, 这个结果集合里面的元素 i 是 当前 i 位置的元素的下一个更高温度的元素的位置和当前 i 位置的距离之差, 若是当前元素不存在下一个更高温度的元素, 则这个位置用0代替; 2. 思路 本题用单调栈来求解;单调栈就适用于来求当前元素左边或者右边第一个比当前元素大或者小的元素;【单调栈:让栈中的元素保持单调

【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可视化图表等(后续会更新)

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 【全网最全】2024年数学建模国赛A题30页完整建模文档+17页成品论文+保奖matla代码+可视化图表等(后续会更新)「首先来看看目前已有的资料,还会不断更新哦~一次购买,后续不会再被收费哦,保证是全网最全资源,随着后续内容更新,价格会上涨,越早购买,价格越低,让大家再也不需要到处买断片资料啦~💰💸👋」�

Python 爬虫入门 - 基础数据采集

Python网络爬虫是一种强大且灵活的工具,用于从互联网上自动化地获取和处理数据。无论你是数据科学家、市场分析师,还是一个想要深入了解互联网数据的开发者,掌握网络爬虫技术都将为你打开一扇通向丰富数据资源的大门。 在本教程中,我们将从基本概念入手,逐步深入了解如何构建和优化网络爬虫,涵盖从发送请求、解析网页结构到保存数据的全过程,并讨论如何应对常见的反爬虫机制。通过本教程,你将能够构建有效的网络爬