简单的基于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光耦模块驱动比较好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值