简单的基于STM32C8T6的温度显示控制的实现方法

程序下载链接 可以看看

https://download.csdn.net/download/id_l_j_j_/11271843

 

先说一下本设计中采用的控制芯片,是STM32F103C8T6单片机,我采用的是淘宝上买的最小系统板,大概10块钱不到(便宜的7块钱不到),显示部分使用LCD1602显示温度的实时值以及设定值,并且用于显示输入的温度,温度的采集使用的是DS18B20模块。

在我的程序中定义了以下的那些变量:

	u8 t=0;//读取温度用到的指针	    
	u8 H=0;//温度整数位
	u8 L=0;//温度小数位
	u8 i=0;//lcd1602指针
	u16 limit= 250;//设定初始温度为30.0度 
	u8 H_limit;//温度限制整数位
	u8 L_limit;//温度限制小数位 
	u8 a,b,c;//温度设定的十位 个位 小数位 
	u8 key_num = 0;//按键扫描到的按键 
	u8 sheding = 3;
	short temperature;   
	unsigned char temp_T[30] = {0};
	unsigned char limit_T[30] ={0};	 

这段代码的实现过程着实简陋,我的DS18B20库中读取的温度精确到小数点后一位,由于测试的环境的限制,温度都在100度以下和0度以上,所以我就默认温度为0~100度之间,将读取到的温度值存入中间变量中,由于读取到的实际数据是三位数,所以通过整除与取余的操作就可以得到温度的整数位以及小数位。

                        temperature=DS18B20_Get_Temp();	
			H = temperature/10;	//取十位和个位 
			L = temperature %10;    //取小数位

设定的时候通过设定abc的值,然后分别比较温度的整数部分以及小数部分就可以知道温度是否超出阈值,如果超出阈值则开始报警,报警使用无源蜂鸣器模块,低电平触发。如果需要控制继电器,这个输出也可以控制继电器模块,如果需要自己焊接继电器,个人感觉使用三极管和PC817光耦模块驱动比较好。

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于STM32C8T6的DQ锁相环是一种将外部参考信号与内部时钟同步的控制系统。首先,我们需要了解DQ锁相环的基本原理。 DQ锁相环是一种数字控制系统,由比例积分器(PID)和数字频率锁定环(FLL)组成。它的工作原理是通过不断调整输出的相位和频率,使得输入的参考信号与输出的时钟信号趋于同步。 在STM32C8T6上实现DQ锁相环可以通过以下步骤完成: 1. 设置引脚配置:将外部的参考信号连接到STM32C8T6的GPIO引脚,同时将输出的时钟信号连接到需要同步的模块。 2. 配置定时器:使用STM32C8T6的定时器模块来生成时钟信号。设置定时器的工作模式和时钟频率,确保与要同步的模块一致。 3. 初始化PID控制器:使用STM32C8T6的PID库初始化PID控制器,设置合适的参数(比例系数、积分时间和微分时间)。 4. 读取参考信号:使用STM32C8T6的GPIO库读取外部参考信号的状态,判断参考信号的相位和频率。 5. 调整时钟信号:根据PID控制器的输出,调整定时器的参数,逐渐将时钟信号与参考信号趋于同步。可以使用定时器的PWM功能来实现频率的调整。 6. 循环控制:通过不断重复上述步骤,实时监测参考信号和时钟信号之间的差异,并进行调整,直到达到所需的同步效果。 通过以上步骤,我们可以在STM32C8T6上实现DQ锁相环,将外部参考信号与内部时钟同步。这样可以确保模块间的数据传输更加可靠和准确。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值