当前位置: 首页 > wzjs >正文

河南联通 网站备案色盲图

河南联通 网站备案,色盲图,5条国内最新新闻,jsp网站开发实例教程基于STM32温度空调控制 (程序+原理图+设计报告) 功能介绍 具体功能: 本控制系统主要以数字控制器MCU为控制中枢,采用STM32为控制芯片,外围电路有DS18B20温度采集电路,风扇控制电路…

基于STM32温度空调控制

(程序+原理图+设计报告)

功能介绍

具体功能:

本控制系统主要以数字控制器MCU为控制中枢,采用STM32为控制芯片,外围电路有DS18B20温度采集电路,风扇控制电路,1602液晶显示电路和电源电路等组成。

1.通过DS18B20检测温度,实时显示在液晶上。

2.通过按键设置温度阈值,将阈值显示在1602液晶上,当温度超过阈值时,风扇启动降温,温度低于阈值,则风扇不转动。

添加图片注释,不超过 140 字(可选)

程序

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "adc.h"
#include <stdio.h>
#include "timer.h"
#include "lcd1602.h"
#include "ds18b20.h"  
#include <string.h>
#include "key.h"unsigned char relayFlag=1;unsigned char BufTab[maxBuf]; //wifi数据暂存
unsigned char Count;	   //串口数据计数
unsigned char UartBusy=0;  //盘忙
unsigned char ReadFlag=0;//读取标志char dis0[16];
char dis1[16];
float temperature; 
unsigned char i,rekey ;
unsigned int SetNum= 35;
int main(void){ delay_init();	    	 //延时函数初始化	  uart_init(9600);	 	//串口初始化为115200TIM3_Int_Init(499,7199);//50ms  	 LED_Init();		  		//初始化与LED连接的硬件接口KEY_Init(); 
// 	Adc_Init();		  		//ADC初始化	    Lcd_GPIO_init();  Lcd_Init();		 delay_ms(20);//	while(DS18B20_Init());	//DS18B20初始化	Lcd_Puts(0,0,"My Designer!");//显示while(1){if((key1==0)||(key2==0))//按键按下{if(rekey == 0){delay_ms(10);}		}else{rekey =0;}if(disFlag==1)//定时读取温度{temperature=(float)DS18B20_Get_Temp()/10;	//缩小10倍为实际值	   disFlag = 0;}}											    
}	
#include "lcd1602.h"/************************端口初始化*******************************/
void Lcd_GPIO_init(void)
{GPIO_InitTypeDef GPIO_InitStructure;   //声明结构体/********Data端口设置*************/RCC_APB2PeriphClockCmd(RCC_GPIO_DATA, ENABLE);  //打开端口B时钟 GPIO_InitStructure.GPIO_Pin  = GPIO_DATA_0_PIN|GPIO_DATA_1_PIN|GPIO_DATA_2_PIN|GPIO_DATA_3_PIN|GPIO_DATA_4_PIN|GPIO_DATA_5_PIN|GPIO_DATA_6_PIN|GPIO_DATA_7_PIN; //  DB8~DB15GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //标准输出模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_Init(GPIO_DATA_0, &GPIO_InitStructure);      //初始化端口/********使能端口设置**********/RCC_APB2PeriphClockCmd(RCC_GPIO_EN, ENABLE);    	//打开端口时钟 GPIO_InitStructure.GPIO_Pin =  GPIO_EN_PIN;     	// 使能端口GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //标准输出模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_Init(GPIO_EN, &GPIO_InitStructure);/********读/写端口设置**********/RCC_APB2PeriphClockCmd(RCC_GPIO_RW, ENABLE);    //打开端口时钟 GPIO_InitStructure.GPIO_Pin =  GPIO_RW_PIN;     // 使能端口GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //标准输出模式GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_Init(GPIO_RW, &GPIO_InitStructure);/********指令/数据端口设置**********/RCC_APB2PeriphClockCmd(RCC_GPIO_RS, ENABLE);    //打开端口时钟 GPIO_InitStructure.GPIO_Pin =  GPIO_RS_PIN;     // 使能端口GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽复用输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_Init(GPIO_RS, &GPIO_InitStructure);}
/******************************************************************/void Lcd_Init( void )  //初始化
{  Lcd_GPIO_init();delay_us(1500);                     //延时15msLcd_Write_Command( 0x38,0);       // 写指令38H 不检测忙信号delay_us(500);				      //延时5msLcd_Write_Command( 0x38,0);       // 写指令38H 不检测忙信号delay_us(500);					  //延时5msLcd_Write_Command( 0x38,0);       // 写指令38H 不检测忙信号//以后每次写指令、读/写数据操作之前需检测忙信号Lcd_Write_Command( 0x38,1);       //显示模式设置 Lcd_Write_Command( 0x08,1);		  //显示关闭Lcd_Write_Command( 0x01,1);       //显示清屏Lcd_Write_Command( 0x06,1);       //显示光标移动设置 Lcd_Write_Command( 0x0C,1); 	  //显示开、光标不显示
} 
/******************************************************/void Lcd_En_Toggle(void) //发使能脉冲
{SET_EN;        //使能1delay_us(5);   //延时160usCLE_EN;
}
#include "key.h"
//	 
*****//完整资料
****//***微信公众号:木子单片机****/
//All rights reserved									   
//	 //按键初始化函数 
//PA15和PC5 设置成输入
void KEY_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能PORTA,PORTC时钟GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;//PA5GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA15} void Lcd_Busy(void)//判断忙
{unsigned int later0=0;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_GPIO_DATA, ENABLE);    //打开DATA端口时钟 GPIO_InitStructure.GPIO_Pin  = GPIO_DATA_0_PIN|GPIO_DATA_1_PIN|GPIO_DATA_2_PIN|GPIO_DATA_3_PIN|GPIO_DATA_4_PIN|GPIO_DATA_5_PIN|GPIO_DATA_6_PIN|GPIO_DATA_7_PIN; //  DB8~DB15GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //输入模式 = 上拉输入GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_Init(GPIO_DATA_7, &GPIO_InitStructure);      //打开忙检测端口CLE_RS; //RS = 0//delay_us(1);   //延时10usSET_RW; //RW = 1//delay_us(1);   //延时10usSET_EN; //EN = 1//delay_us(2);   //延时20uswhile ((GPIO_ReadInputDataBit(GPIO_DATA_7,GPIO_DATA_7_PIN))&&(later0<20000)) //循环等待忙检测端口 = 0{delay_us(5);later0++;	}CLE_EN; //EN = 0//恢复端口为输出状态 RCC_APB2PeriphClockCmd(RCC_GPIO_DATA, ENABLE);    //打开DATA端口时钟 GPIO_InitStructure.GPIO_Pin  = GPIO_DATA_0_PIN|GPIO_DATA_1_PIN|GPIO_DATA_2_PIN|GPIO_DATA_3_PIN|GPIO_DATA_4_PIN|GPIO_DATA_5_PIN|GPIO_DATA_6_PIN|GPIO_DATA_7_PIN; //  DB8~DB15GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_Init(GPIO_DATA_7, &GPIO_InitStructure);} void Gpio_data(unsigned char x)  //端口置入数据
{  
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_0_PIN);  //DB0
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_1_PIN);  //DB1
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_2_PIN);  //DB2
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_3_PIN);  //DB3
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_4_PIN);  //DB4
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_5_PIN);  //DB5
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_6_PIN);  //DB6
GPIO_ResetBits(GPIO_DATA_0, GPIO_DATA_7_PIN);  //DB7
if(x&0X01)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_0_PIN);//DB0
if(x&0X02)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_1_PIN);//DB1
if(x&0X04)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_2_PIN);//DB2
if(x&0X08)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_3_PIN);//DB3
if(x&0X10)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_4_PIN);//DB4
if(x&0X20)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_5_PIN);//DB5
if(x&0X40)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_6_PIN);//DB6
if(x&0X80)GPIO_SetBits(GPIO_DATA_0, GPIO_DATA_7_PIN);//DB7
}//向液晶里面写入指令  时序:RS=L,RW=L,Data0-Data7=指令码,E=高脉冲
void Lcd_Write_Command(unsigned char x,char Busy) 
{ if(Busy) Lcd_Busy();//delay_us(1);   //延时10usCLE_RS;  //RS = 0 //delay_us(1);   //延时10usCLE_RW;  //RW = 0 //delay_us(4);   //延时40usGpio_data(x);  //端口置入数据//delay_us(4);   //延时40usLcd_En_Toggle();  //发使能脉冲//delay_us(1);   //延时100usLcd_Busy(); //测忙}
//向液晶里面写入数据  时序:RS=H,RW=L,Data0-Data7=指令码,E=高脉冲
void Lcd_Write_Data( unsigned char x) //向液晶里面写入数据 
{ Lcd_Busy(); //测忙//delay_us(1);   //延时10usSET_RS;   //RS = 1 //delay_us(1);   //延时10usCLE_RW;   //RW = 0//delay_us(4);   //延时40usGpio_data(x);//delay_us(4);   //延时40usLcd_En_Toggle();  //发使能脉冲//delay_us(1);   //延时100usLcd_Busy(); //测忙} void Lcd_SetXY(unsigned char x,unsigned char y)   //字符初始位置设定,x表示列,y表示行 
{ unsigned char addr; if(y==0) addr=0x80+x; else if(y==1)addr=0xC0+x; Lcd_Write_Command(addr,1) ; 
} 
/******************************************************/void Lcd_Puts(unsigned char x,unsigned char y, unsigned char *string) //向1602写一个字符串 
{ //unsigned char i=0;Lcd_SetXY(x,y); while(*string) { Lcd_Write_Data(*string); string++; } 
}void Lcd_1Put(unsigned char x,unsigned char y, unsigned char Data0)
{Lcd_SetXY(x,y); Lcd_Write_Data(Data0); 
}

硬件设计

使用元器件:

单片机:STM32F103;

添加图片注释,不超过 140 字(可选)

流程图:

添加图片注释,不超过 140 字(可选)

设计资料

01原理图

本系统原理图采用Altium Designer19设计,具体如图!

添加图片注释,不超过 140 字(可选)

02程序

本设计使用软件Keil5 MDK版本编程设计!具体如图!

添加图片注释,不超过 140 字(可选)

03设计报告

一万四千字设计报告,具体如下!

添加图片注释,不超过 140 字(可选)

04设计资料

全部资料包括程序(含注释)、AD原理图、结构框图、设计报告、流程图、实物图等。具体内容如下,全网最全! !

添加图片注释,不超过 140 字(可选)

点赞分享一起学习成长。

http://www.dtcms.com/wzjs/12260.html

相关文章:

  • 二七网站建设企业网站推广方案
  • 用php做网站的方法软文代写文案
  • 多少网站域名采用中文关键词有哪些
  • 新龙华网站建设百度快照优化培训班
  • 开发平台指的是什么怎么快速优化网站
  • 要想学做网站国外免费网站域名服务器
  • 风铃网站代做seo关键词优化软件手机
  • 立方米网站建设域名停靠
  • 四川网站建设 lkcms百度快速查询
  • 外贸网站做开关的哪个好百度浏览器网址大全
  • 72建站网如何建设一个药材网站域名权重查询
  • 个人电脑做网站服务器唐山百度搜索排名优化
  • 树莓派做网站西点培训学校
  • 自己怎么做淘宝网站女生做sem还是seo
  • 邢台做wap网站的地方seosem是指什么意思
  • 用jsp做的网站sem是什么检测分析
  • 竞价在什么网站上做如何优化企业网站
  • 网站建设网站建设营销渠道的三个类型
  • 昆明做网站建设的公司排名58同城如何发广告
  • 湖南建设监理官方网站百度识图软件
  • 做寻亲网站的理由武汉网站建设推广公司
  • 网站建设诚信服务百度推广的优化软件
  • 魏县网站建设推广做抖音seo排名软件是否合法
  • flask做视频网站网络销售培训学校
  • 网站更新日期推广软件一键发送
  • 网站写作赚钱网络营销是指
  • 做百度还是阿里网站好黑河seo
  • 网站建设在windos的设置友情链接是什么意思
  • 网页制作与网站设计代码seo如何优化关键词
  • 网站建设怎么收费代写文章多少钱