K_A11_004 基于STM32等单片机采集热敏传感参数串口与OLED0.96双显示

news2025/1/18 6:50:42

K_A11_004 基于STM32等单片机采集热敏传感参数串口与OLED0.96双显示

  • 一、资源说明
  • 二、基本参数
    • 参数
    • 引脚说明
  • 三、驱动说明
    • IIC地址/采集通道选择/时序
    • 对应程序:
  • 四、部分代码说明
    • 1、接线说明
      • 1.1、STC89C52RC+热敏传感模块
      • 1.2、STM32F103C8T6+热敏传感模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

请添加图片描述

一、资源说明

单片机型号测试条件模块名称代码功能
STC89C52RC晶振11.0592M热敏传感模块STC89C52RC驱动热敏传感模块串口与OLED0.96双显示
STM32F103C8T6晶振8M/系统时钟72M热敏传感模块STM32F103C8T6驱动热敏传感模块串口与OLED0.96双显示

其他资料目录 直戳跳转

二、基本参数

参数

1 可以检测周围环境的温度
2 灵敏度可调(图中蓝色数字电位器调节)
3 工作电压 3.3V-5V
5 输出形式 :
a 模拟量电压输出
b 数字开关量输出(0 和 1)

引脚说明

热敏传感模块引脚说明
VCC正极 3.3/5V供电
GND负极 接GND
DO数字量输出
AO模拟量输出

三、驱动说明

STC89C52RC无ADC所以需要借助外部ADC模块 此处用PCF8591模块进行采集

IIC地址/采集通道选择/时序

请添加图片描述
请添加图片描述
请添加图片描述

对应程序:

以51为例

/*******************************************************************
                     起动总线函数               
函数原型: void  Start_I2c();  
功能:     启动I2C总线,即发送I2C起始条件.  
********************************************************************/
void Start_I2c()
{
  PCF8591_SDA=1;         /*发送起始条件的数据信号*/
  PCF8591_SCL=1;
  IIC_Delay();
  PCF8591_SDA=0;         /*发送起始信号*/
  IIC_Delay();      
  PCF8591_SCL=0;       /*钳住I2C总线,准备发送或接收数据 */
  IIC_Delay();
}

/*******************************************************************
                      结束总线函数               
函数原型: void  Stop_I2c();  
功能:     结束I2C总线,即发送I2C结束条件.  
********************************************************************/
void Stop_I2c()
{
  PCF8591_SDA=0;      /*发送结束条件的数据信号*/
  PCF8591_SCL=1;      /*结束条件建立时间大于4μs*/
  IIC_Delay();
  PCF8591_SDA=1;      /*发送I2C总线结束信号*/
  IIC_Delay();
}

/*******************************************************************
                 字节数据发送函数               
函数原型: void  SendByte(UCHAR c);
功能:     将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对
          此状态位进行操作.(不应答或非应答都使ack=0)     
           发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
********************************************************************/
void SendByte(uint8_t  c)
{
 uint8_t  BitCnt;
 
 for(BitCnt=0;BitCnt<8;BitCnt++)  /*要传送的数据长度为8位*/
    {
	     if((c<<BitCnt)&0x80)PCF8591_SDA=1;   /*判断发送位*/
	     else  PCF8591_SDA=0;                
	
	     PCF8591_SCL=1;               /*置时钟线为高,通知被控器开始接收数据位*/
		 IIC_Delay();       
	     PCF8591_SCL=0; 
    }
    
    IIC_Delay();
    PCF8591_SDA=1;                /*8位发送完后释放数据线,准备接收应答位*/
    IIC_Delay();  
    PCF8591_SCL=1;
    IIC_Delay();
    if(PCF8591_SDA==1)ack=0;     
       else ack=1;        /*判断是否接收到应答信号*/
    PCF8591_SCL=0;
  IIC_Delay();
}

/*******************************************************************
                 字节数据接收函数               
函数原型: UCHAR  RcvByte();
功能:        用来接收从器件传来的数据,并判断总线错误(不发应答信号),
          发完后请用应答函数应答从机。  
********************************************************************/    
uint8_t RcvByte()
{
  uint8_t  retc;
  uint8_t  BitCnt;
  
  retc=0; 
  PCF8591_SDA=1;                     /*置数据线为输入方式*/
  for(BitCnt=0;BitCnt<8;BitCnt++)
  {
      
      PCF8591_SCL=0;                  /*置时钟线为低,准备接收数据位*/
	  IIC_Delay();
      PCF8591_SCL=1;                  /*置时钟线为高使数据线上数据有效*/
	  IIC_Delay();
      retc=retc<<1;
      if(PCF8591_SDA==1)retc=retc+1;  /*读数据位,接收的数据位放入retc中 */
		IIC_Delay();
    }
  		PCF8591_SCL=0;    
  		IIC_Delay();
  		return(retc);
}

/********************************************************************
                     应答子函数
函数原型:  void Ack_I2c(bit a);
功能:      主控器进行应答信号(可以是应答或非应答信号,由位参数a决定)
********************************************************************/
void Ack_I2c(uint8_t a)
{
  
  if(a==0)PCF8591_SDA=0;              /*在此发出应答或非应答信号 */
  else PCF8591_SDA=1;
  IIC_Delay();    
  PCF8591_SCL=1;
  IIC_Delay();
  PCF8591_SCL=0;                     /*清时钟线,钳住I2C总线以便继续接收*/
  IIC_Delay();  
}

采集通道选择:
ISendByte(PCF8591,0x42);

地址:
#define  PCF8591 0x90    //PCF8591 地址

四、部分代码说明

1、接线说明

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+热敏传感模块

//热敏传感+PCF8591模块引脚定义
热敏传感模块---------------------------PCF8591
AO-------------------------------------AIN2

sbit  PCF8591_SCL=P1^0;       //I2C  时钟 
sbit  PCF8591_SDA=P1^1;       //I2C  数据 
//OLED0.96模块引脚定义
sbit SCL=P1^2; //串行时钟
sbit SDA=P1^3; //串行数据

1.2、STM32F103C8T6+热敏传感模块

//热敏传感模块引脚定义 GPIOA_0  ADC1通道0
#define    ADC_GPIO_APBxClock_FUN        RCC_APB2PeriphClockCmd
#define    ADC_GPIO_CLK                  RCC_APB2Periph_GPIOA  
#define    ADC_PORT                      GPIOA
#define    ADC_PIN                       GPIO_Pin_0
//OLED0.96模块引脚定义					
//-----------------OLED IIC端口定义----------------  					   

#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_8)//SCL
#define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_8)

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_9)//SDA
#define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_9)

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 直戳跳转

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : 热敏传感模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线
热敏传感模块---------------------------STC89C52RC
VCC------------------------------------5V
GND------------------------------------GND
热敏传感模块---------------------------PCF8591
AO-------------------------------------AIN2

PCF8591--------------------------------STC89C52RC
VCC-- ---------------------------------5V
GND- ----------------------------------GND
SCL- ----------------------------------P1.0 //SCL
SDA- ----------------------------------P1.1 //SDA

OLED0.96(IIC) -------------------------STC89C52RC
VCC------------------------------------5V
GND------------------------------------GND
SCL------------------------------------P1^2
SDA------------------------------------P1^3
*************************************************************************************/

STM32F103C8T6

/************************************************************************************
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : 热敏传感模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟 72M
接线
热敏传感模块----------------------------STM32F103C8T6
VCC-------------------------------------3.3V
GND-------------------------------------GND
AO--------------------------------------PA_0 

OLED0.96
VCC-- -----------------------------------3.3V
GND- ------------------------------------GND
SCL- ------------------------------------PB_8 //SCL
SDA- ------------------------------------PB_9 //SDA	
*****************************************************************************************/

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

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

相关文章

NCS8823替代方案|CS5260Typec转VGA可替代NCS8823|低BOM成本替代NCS8823设计

NCS8823替代方案|CS5260Typec转VGA可替代NCS8823|低BOM成本替代NCS8823设计 NCS8823是一款低功耗、DisplayPort信号至VGA转换器,通过USB Type-C连接器。它是 适用于USB Type-C至VGA转换器&#xff0c;适配器、对接设备。此设备结合了基于USB Type-C的 DisplayPort接收器和VGA…

华为私有云平台FusionCompute搭建

一、FusionCompute架构 架构CNA作为虚拟化操作系统&#xff0c;VRM作为虚拟化管理平台正常主机都安装CNA&#xff0c;单独建立VRM集群作为管理集群&#xff0c;我测试环境就一台主机&#xff0c;所以CNA和VRM装在同一台主机上&#xff0c;并且用这台主机分配虚拟机进行测试。 …

前端基础(十二)_函数高级、全局变量和局部变量、 预解析(变量提升)、函数返回值

作用域 作用域指&#xff1a;变量或函数的有效使用范围&#xff0c;有全局作用域与局部作用域两种。 全局变量和局部变量 全局变量&#xff1a;直接在 script 标签下声明的变量&#xff0c;任何地方都能访问&#xff0c;任何地方都能对其值进行改变。 局部变量&#xff1a;函…

CAN总线的个人理解

部分内容可以参考&#xff1a;https://blog.csdn.net/xwwwj/article/details/105372234? CAN概念简介 CAN是Controller Area Network 的缩写 CAN协议经过ISO标准化后有两个标准&#xff1a;ISO11898标准和ISO11519-2标准。其中ISO11898是针对通信速率为125Kbps~1Mbps的高速通…

适合制造业的ERP推荐?使用ERP系统的好处有哪些?

对于制造型企业来说&#xff0c;除了涉及到产品的生产制造和原料采购&#xff0c;还需要管理库存、销售、财务等方方面面。制造业的ERP系统的使用&#xff0c;尤为重要。一个好的制造业的ERP系统在企业管理中起到至关重要的作用&#xff0c;针对制造业的ERP系统提供贴合行业特性…

用cmd命令窗口运行第一个java程序同时分享idea写的代码用cmd编译运行【建议收藏】

在上一篇文章https://blog.csdn.net/qq_52545155/article/details/128651296?spm1001.2014.3001.5502教大家安装了jdk版本&#xff0c;那么我们来编写一个java程序&#xff0c;通过cmd命令运行起来看看效果叭&#xff01;&#xff01;&#xff01; 一、基本代码准备 1、打开记…

超全的SQL注入姿势总结

目录 常见姿势 环境搭建 信息收集 报错注入 延时注入 布尔注入 堆叠注入 绕过方法 绕过引号 or and xor not绕过 绕过注释符 内联注释绕过 类型转换绕过 绕过 WAF绕过-应用层 常见姿势 环境搭建 use mysql; create table if not exists my_table( id int PRIMA…

HC小区管理系统安装记录一次群里小伙伴梓豪方式安装问题

记录一次群里小伙伴安装&#xff0c;供大家参考 问题排查 打开梓豪地址查看 Redis MySQL Nginx 是否启动成功&#xff0c;查看日志启动成功 MySQL正常 redis 没有报错 Nginx也正常 查看hc 是否启动成功&#xff0c;点击控制台 查看docker 发现8008 端口被占用了&#xff0c…

【异常】原来提示SocketTimeoutException:connect timed out还可能是外部因素导致

一、现象截图 一大早收到ELK的邮件提醒&#xff0c;让我来看看&#xff0c;又是哪个妖怪在作孽&#xff1f; 二、问题定位 2.1 SocketTimeoutException:connect timed out 经验告诉我&#xff0c;这个问题一般是第三方平台的问题&#xff0c;大部分原因是发起Http请求&…

惠普M329打印机更换副厂硒鼓后提示墨粉不足并无法打印

买了一个惠普M329打印机,打印效果不错,速度快,大量复印比较方便。因为最近打印和复印比较多,很快原装墨粉用完了。又买了一个副厂(带芯片)的硒鼓换上。不到一个月,又用光了,这次买了同一个副厂的硒鼓(不带芯片)。将原来的芯片(副厂的)拆下来,装在新硒鼓上。装到M3…

喜讯!华秋电子荣获千峰奖“2022年度产业互联网百强”,持续为电子产业增效降本!

12月28日&#xff0c;2022全球数字贸易大会专题活动“跨境产业互联网峰会暨2022年度千峰之夜”在武汉隆重举行&#xff0c;大会聚集了全国产业互联网、跨境电商平台、数字经济、资本市场等嘉宾&#xff0c;共同探讨产业互联网公司出海的机会和路径。 亿邦动力董事长郑敏介绍&am…

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 (三)奇偶校验

数字IC设计、验证、FPGA笔试必会 - Verilog经典习题 &#xff08;三&#xff09;奇偶校验 &#x1f508;声明&#xff1a; &#x1f603;博主主页&#xff1a;王_嘻嘻的CSDN博客 &#x1f9e8;未经作者允许&#xff0c;禁止转载 &#x1f511;系列专栏&#xff1a;牛客Verilog习…

房产管理系统平台架构安全需求分析

数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。…

JavaAccessBridge(Java访问桥)详细介绍

Java Access Bridge 通过 Java 访问桥 API&#xff0c;您可以给使用Java应用程序编写的在windows系统上运行的图形化系统开发辅助技术应用程序。它包含本机方法&#xff0c;使您能够查看和操作有关 Java 应用程序中 GUI 元素的信息&#xff0c;这些信息将通过 Java 访问桥转发…

二维数组中各个三角形的关系,三角形的打印同理

给你一个n*n矩阵&#xff0c;按照顺序填入1到n*n的数&#xff0c;例如n5&#xff0c;该矩阵如下 (这是一个题目&#xff0c;但是我这个写法在牛客刷题中是不能正确的得分的&#xff0c;但是我找到了各个关系&#xff0c;然后分享给大家) 然后再对其进行求和处理&#xff0c;是…

在IntelliJ IDEA中使用.ignore插件忽略Git不必要提交的文件

第一步&#xff1a; 点击File->Settings&#xff0c;在左侧菜单找到Plugins&#xff0c;点击搜索栏搜索.ignore&#xff0c;点击Install 第二步&#xff1a; 重启idea -->在项目上右键->New ->.ignore file ->.gitignore file(Git) 第三部&#xff1a; 在项目中…

http协议的简单总结

目录 1.http协议的特性 2.http协议的请求 3.get请求和post请求的区别 4.http协议的响应 1.http协议的特性 http协议是建立在TCP/IP协议之上应用层协议&#xff0c;默认端口为80,8080 http协议的的特点是无状态&#xff0c;无连接&#xff08;短连接&#xff09; 2.http协…

【面试题】京东面试查漏补缺

目录一&#xff1a;笔试题1.如何获取URL中的参数方法一方法二2.怎么平铺多维数组方法一方法二&#xff1a;递归方法三&#xff1a; flat() 和 flatMap()二&#xff1a;面试题1.promise相关问题2.vue nextTick的作用和原理3.http状态码304缓存相关问题4.其他常规问题省略wh零售事…

在线学习(online learning)——Chapter 2 Problem Formulations and Related Theory

在线学习(online learning)——Chapter 2 Problem Formulations and Related Theory 本章中&#xff0c;我们将首先给出一个经典的在线学习问题的形式化描述&#xff0c;即在线二分类(online binary classification)&#xff0c;然后介绍统计学习理论、在线凸优化和博弈论的基…

Zabbix“专家坐诊”第179期问答汇总

欢迎大家加入乐维社区zabbix问答专栏&#xff0c;除了在论坛发帖求问外&#xff0c;还可以在QQ群里交流进步&#xff0c;并且每周三我们会进行免费的技术答疑活动。 问题一&#xff1a; Q&#xff1a;Zabbix alert syncer processes more than 75% busy&#xff0c;这个告警&…