【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

相关文章

篆刻作品欣赏孙溟㠭凿刻山东临清“独占鳌头”

孙溟㠭凿刻山东临清“獨占鳌头”  我的家乡山东临清城区,史称“中洲”,西有卫河,其北侧为元代运河,由问津桥入卫河,南侧为明代运河由头闸入卫,一南一北,形成纵贯市区的“人”字形,中洲四面环水,两运河交汇处地势突出,明正德年砌石为坝,以防水患,其状如鳌头,运河四处河闸如鳌四足,鳌后广济桥如尾,时任知州马伦提名“鳌头矶”,明代临清文人方元焕为鳌头矶题“獨占”,寓“魁星点斗,獨占鳌头”之意,今在高考

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

WordPress网创自动采集并发布插件

网创教程:WordPress插件网创自动采集并发布 阅读更新:随机添加文章的阅读数量,购买数量,喜欢数量。 使用插件注意事项 如果遇到404错误,请先检查并调整网站的伪静态设置,这是最常见的问题。需要定制化服务,请随时联系我。 本次更新内容 我们进行了多项更新和优化,主要包括: 界面设置:用户现在可以更便捷地设置文章分类和发布金额。代码优化:改进了采集和发布代码,提高了插件的稳定

小红书商家电话采集软件使用指南

使用小红书商家电话采集软件可以提高商家电话的采集效率,以下是使用指南及附带代码。 步骤一:安装Python和相关库 首先,确保你的电脑已经安装了Python运行环境(建议安装Python3版本)。安装完成后,同样需要安装一些相关的库,如requests、beautifulsoup4等。在命令行窗口中输入以下命令进行安装: pip install requestspip install bea

温湿度采集及OLED显示

目录 软件I2C和硬件I2C每隔2秒钟采集一次温湿度数据,显示到OLED上,同时通过串口发送到上位机的“串口助手”软件 软件I2C和硬件I2C "I2C"代表Inter-Integrated Circuit,是一种用于在数字电路之间进行通信的串行通信协议。软件I2C和硬件I2C是两种实现这种协议的方式。 软件I2C是通过软件来模拟I2C通信协议的实现方式。在这种情况下,微控制

2024年6月24日-6月30日(ue独立游戏为核心)

试过重点放在独立游戏上,有个indienova独立游戏团队是全职的,由于他们干了几个月,节奏暂时跟不上,紧张焦虑了。五一时也有点自暴自弃了,实在没必要,按照自己的节奏走即可。精力和时间也有限,放在周末进行即可。除非哪天失业了,再也找不到工作了,再把重心放在独立游戏上。 另外,找到一个同样业余的美术,从头做肉鸽游戏,两周一次正式交流即可。节奏一定要放慢,不能影响正常工作生活。如果影响到了,还不如自

韩顺平0基础学java——第30天

p600-611 坦克大战! 艰难推进中 坦克大战-子弹 发射子弹 1.当发射一颗子弹后,就相当于启动一个线程 2.玩家拥有子弹对象,当按下J时,就启动发射行为(线程),让子弹不停移动,形成射击的过程。 3.面板mypanel需要不停重绘,才能出现这个效果 4.当子弹移动到面板边界时,就销毁子弹线程。   增加功能:让敌人发射子弹,且可以有多颗子弹。 1.在敌人坦克类中增加V

【STM32c8t6】AHT20温湿度采集

【STM32c8t6】AHT20温湿度采集 一、探究目的二、探究原理2.1 I2C2.1. 硬件I2C2.1. 软件I2C 2.2 AHT20数据手册 三、实验过程3.1 CubeMX配置3.2 实物接线图3.3 完整代码3.4 效果展示 四、探究总结 一、探究目的 学习I2C总线通信协议,使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温

STM32G030F6使用CubeMx配置DMA读取多通道ADC实验

1. 使用 CubeMx 创建 ADC 工程 打开 CubeMx 软件,选中我们此次使用的单片机型号 STM32G030F6P6 ,点击 StartProject. 先配置一下串口,用来打印相关信息 再来配置 ADC 配置DMA PS:DMA 需要要配置成循环模式,否则只填满一次缓存数组后就停止工作,需要重调用启动 DMA 的函数. 配置时钟 ps:本实验使用内部高速时钟

CC2652RB读取温度传感器DS18B20

DS18B20温度传感器 1. 简介 DS18B20数字温度传感器提供9-12位摄氏度温度测量数据,可编程非易失存储器设置温度监测的上限和下限,提供温度报警。DS18B20通过1-Wire®总线通信,只需要一条数据线 (和地线) 即可与处理器进行数据传输。器件可以工作在-55°C至+125°C范围,在-10°C至+85°C范围内测量精度为±0.5°C。此外,DS18B20还可以直接利用数据线供