stm32主控的ds18b20温度计

stm32主控的ds18b20温度计

任务要求

最近在做课设作业,具体功能要求如下:
基本功能要求:(须全部完成) 能实现测温范围-5~125 度,误差±0.1 度; 能实现信号实时数据与历史曲线显示; 能用按键设置控制的期望值范围,超出声光报警。 扩展功能:(加分项) ①具有与计算机数据通讯和传送功能; ②能设置 PI 控制,并计算输出控制; ③能进行位式或连续温度调节; ④能进行温度无线传输显示。

引脚配置

在这里插入图片描述
OLED.h

#ifndef __OLED_H
#define __OLED_H 

#include "sys.h"
#include "stdlib.h"	

//-----------------²âÊÔLED¶Ë¿Ú¶¨Òå---------------- 

#define LED_ON GPIO_ResetBits(GPIOB,GPIO_Pin_8)
#define LED_OFF GPIO_SetBits(GPIOB,GPIO_Pin_8)

//-----------------OLED¶Ë¿Ú¶¨Òå---------------- 

#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_4)
#define OLED_SCLK_Set() GPIO_SetBits(GPIOA,GPIO_Pin_4)//SCL

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_5)//DIN
#define OLED_SDIN_Set() GPIO_SetBits(GPIOA,GPIO_Pin_5)

#define OLED_RST_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_0)//RES
#define OLED_RST_Set() GPIO_SetBits(GPIOB,GPIO_Pin_0)

#define OLED_DC_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_1)//RES


#define OLED_CMD  0	//дÃüÁî
#define OLED_DATA 1	//дÊý¾Ý
#define u8 unsigned char
#define u32 unsigned int

void OLED_ClearPoint(u8 x,u8 y);
void OLED_ColorTurn(u8 i);
void OLED_DisplayTurn(u8 i);
void I2C_Start(void);
void I2C_Stop(void);
void I2C_WaitAck(void);
void Send_Byte(u8 dat);
void OLED_WR_Byte(u8 dat,u8 mode);
void OLED_DisPlay_On(void);
void OLED_DisPlay_Off(void);
void OLED_Refresh(void);
void OLED_Clear(void);
void OLED_DrawPoint(u8 x,u8 y);
void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2);
void OLED_DrawCircle(u8 x,u8 y,u8 r);
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size1);
void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 size1);
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size1);
void OLED_ShowChinese(u8 x,u8 y,u8 num,u8 size1);
void OLED_ScrollDisplay(u8 num,u8 space);
void OLED_WR_BP(u8 x,u8 y);
void OLED_ShowPicture(u8 x0,u8 y0,u8 x1,u8 y1,u8 BMP[]);
void OLED_Init(void);

u32 oled_pow(u8 m,u8 n);
//void OLED_Showdecimal(u8 x,u8 y,float num,u8 len,u8 size2);

void OLED_ShowBNum(u8 x,u8 y,float num,u8 len,u8 size2);//ÏÔʾÕý¸ºÐ¡Êý
#endif



DS18B20.h

#ifndef __DS18B20_H
#define __DS18B20_H 
#include "sys.h"   
//	 
//±¾³ÌÐòÖ»¹©Ñ§Ï°Ê¹Óã¬Î´¾­×÷ÕßÐí¿É£¬²»µÃÓÃÓÚÆäËüÈκÎÓÃ;
//ALIENTEK MiniSTM32¿ª·¢°å
//DS18B20Çý¶¯´úÂë	   
//ÕýµãÔ­×Ó@ALIENTEK
//¼¼ÊõÂÛ̳:www.openedv.com
//ÐÞ¸ÄÈÕÆÚ:2014/3/12
//°æ±¾£ºV1.0
//°æȨËùÓУ¬µÁ°æ±Ø¾¿¡£
//Copyright(C) ¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾ 2009-2019
//All rights reserved									  
//

//IO·½ÏòÉèÖÃ
#define DS18B20_IO_IN()  {GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8<<0;}
#define DS18B20_IO_OUT() {GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=3<<0;}
IO²Ù×÷º¯Êý											   
#define	DS18B20_DQ_OUT PAout(0) //Êý¾Ý¶Ë¿Ú	PA0
#define	DS18B20_DQ_IN  PAin(0)  //Êý¾Ý¶Ë¿Ú	PA0 
   	
u8 DS18B20_Init(void);			//³õʼ»¯DS18B20
short DS18B20_Get_Temp(void);	//»ñȡζÈ
void DS18B20_Start(void);		//¿ªÊ¼Î¶Èת»»
void DS18B20_Write_Byte(u8 dat);//дÈëÒ»¸ö×Ö½Ú
u8 DS18B20_Read_Byte(void);		//¶Á³öÒ»¸ö×Ö½Ú
u8 DS18B20_Read_Bit(void);		//¶Á³öÒ»¸öλ
u8 DS18B20_Check(void);			//¼ì²âÊÇ·ñ´æÔÚDS18B20
void DS18B20_Rst(void);			//¸´Î»DS18B20    
#endif

PWM.h

#ifndef __PWM_H
#define __PWM_H
#include "stm32f10x.h"

void TIM3_PWM_Init(void);
void TIM3_PWM_Config(u16 pwm1,u16 pwm2,u16 pwm3,u16 pwm4);
									//      PA6      PA7     PB0      PB1	
#endif

USART2.h

#ifndef __USART2_H
#define __USART2_H
#include "stdio.h"    
#include "sys.h" 
 
#define USART2_REC_LEN              200      //????????? 200
#define EN_USART2_RX             1        //??(1)/??(0)??1??
          
extern u8  USART2_RX_BUF[USART2_REC_LEN]; //????,??USART_REC_LEN???.??????? 
extern u16 USART2_RX_STA;                 //??????    
//?????????,??????????
void uart2_init(u32 bound);

#endif

BEEP.h

#ifndef __BEEP_h
#define __BEEP_h
 
 
#include "stm32f10x.h"
#include "delay.h"
 
#define  BEEP  PCout(15)
 
 
 
void BEEP_Config(void);    			//³õʼ»¯
 
void Passive_BEEP_Run(void);		//ÎÞÔ´·äÃùÆ÷
 
void Active_BEEP_Run(void);		    //ÓÐÔ´·äÃùÆ÷ÔËÐÐ
 
#endif

KEY.h

#ifndef __KEY_H
#define __KEY_H	 
#include "sys.h"
//	 
//±¾³ÌÐòÖ»¹©Ñ§Ï°Ê¹Óã¬Î´¾­×÷ÕßÐí¿É£¬²»µÃÓÃÓÚÆäËüÈκÎÓÃ;
//ALIENTEK miniSTM32¿ª·¢°å
//°´¼üÇý¶¯´úÂë	   
//ÕýµãÔ­×Ó@ALIENTEK
//¼¼ÊõÂÛ̳:www.openedv.com
//ÐÞ¸ÄÈÕÆÚ:2012/9/3
//°æ±¾£ºV1.0
//°æȨËùÓУ¬µÁ°æ±Ø¾¿¡£
//Copyright(C) ¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾ 2009-2019
//All rights reserved									  
//   	 


//#define KEY0 PCin(5)   	
//#define KEY1 PAin(15)	 
//#define WK_UP  PAin(0)	 
 

#define KEY0  GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)//¶ÁÈ¡°´¼ü0
#define KEY1  GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)//¶ÁÈ¡°´¼ü1
#define WK_UP   GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)//¶ÁÈ¡°´¼ü2 
 

#define KEY0_PRES	1		//KEY0  
#define KEY1_PRES	2		//KEY1 
#define WKUP_PRES	3		//WK_UP  

void KEY_Init(void);//IO³õʼ»¯
u8 KEY_Scan(u8 mode);  	//°´¼üɨÃ躯Êý					    
#endif

LED.h

#ifndef __LED_H
#define __LED_H	 
#include "sys.h"
//	 
//±¾³ÌÐòÖ»¹©Ñ§Ï°Ê¹Óã¬Î´¾­×÷ÕßÐí¿É£¬²»µÃÓÃÓÚÆäËüÈκÎÓÃ;
//ALIENTEKÕ½½¢STM32¿ª·¢°å
//LEDÇý¶¯´úÂë	   
//ÕýµãÔ­×Ó@ALIENTEK
//¼¼ÊõÂÛ̳:www.openedv.com
//ÐÞ¸ÄÈÕÆÚ:2012/9/2
//°æ±¾£ºV1.0
//°æȨËùÓУ¬µÁ°æ±Ø¾¿¡£
//Copyright(C) ¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾ 2009-2019
//All rights reserved									  
// 
#define LED0 PAout(8)	// PA8
#define LED1 PDout(2)	// PD2	

void LED_Init(void);//³õʼ»¯

		 				    
#endif

具体的所有代码可以到主页找资源下,或者评论留个邮箱给你发

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致冻画

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值