毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计

基于STM32的语音IC卡停车管理系统

  • 1、毕业设计选题原则说明(重点)
  • 2、项目资料
    • 2.1 系统框架
    • 2.2 系统功能
  • 3、部分电路设计
    • 3.1 STM32F103C8T6单片机最小系统电路设计
    • 3.2 光敏检测电路设计
    • 3.3 人体检测HC-SR505热释红外感应电路设计
    • 3.4 LCD1602液晶显示电路设计
  • 4、部分代码展示
    • 4.1 LCD1602液晶显示屏引脚初始化程序设计
    • 4.2 LCD1602显示字符串程序设计
    • 4.3 LED初始化程序设计
  • 5. 项目编号

1、毕业设计选题原则说明(重点)

  • 选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的!
  • 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。
  • 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业证而已!!!
  • 当你明白这一点后,作毕业设计的要求就是在满足老师的要求后,越简单越好,这样不但容易去做,而且你自己也容易去理解,掌握,同样也能花最少的钱!!!
  • 满足老师的要求,这个没办法,毕竟他是决定你是否能通过答辩的人。
  • 每年都有很多同学找到我的时候,后悔当初为什么要把功能写的那么复杂,后悔没有提前找我咨询一下!所以在这里提醒同学们,提交开题报告之前一定要多想想,咨询下以往的学长学姐,不要自己随便写一堆提交上去!!!
  • 大家找不到学长学姐的话,也可以找我免费咨询,我可以给大家一些建议
  • 点击此处即可咨询

2、项目资料

  • 点击查看详细资料

2.1 系统框架

本设计由STM32F103C8T6单片机核心电路、拨动开关电路、按键电路、LED灯电路、LCD1602液晶显示电路、蜂鸣器报警电路、光敏电阻检测光照强度电路、HC-SR505热释红外感应模块电路、电源电路组成。

2.2 系统功能

  • 1、通过热释红外传感器检测是否有人,如果有人靠近门时,液晶屏提示亮并显示欢迎词:Welcome to home!,夜间探测到有人时开灯,灯用9个高亮LED灯设计,无人时,关灯。
  • 2、主人可设定门禁系统工作状态,家里有人和无人两种状态。通过一个拨动开关设置,拨上去,液晶显示有人:Somebody!,拨下来液晶显示没人:Nobody!有人时,客人按下门铃,蜂鸣器鸣叫提示,无人时,客人按下门铃,无任何反应。
  • 3、门外人员逗留时间超过一定时间则发出报警信息。
  • 4、检测到有人或者没有人,有状态指示灯指示。

3、部分电路设计

3.1 STM32F103C8T6单片机最小系统电路设计

STM32F103C8T6单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:
毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计_第1张图片

实物图:
实物图:
毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计_第2张图片

3.2 光敏检测电路设计

本系统选择光敏电阻传感器模块对光照进行检测,该模块可以实现对周围环境的亮度和光强进行检测。
光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,其工作原理是基于内光电效应。光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,亮电阻值可小至1KΩ以下。光敏电阻对光线十分敏感,其在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ。光敏电阻的特殊性能,随着科技的发展将得到极其广泛应用。
光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。设计光控电路时,都用白炽灯泡(小电珠)光线或自然光线作控制光源,使设计大为简化。

其具体电路原理图如下图所示:

毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计_第3张图片

  • 实物图
    毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计_第4张图片

3.3 人体检测HC-SR505热释红外感应电路设计

HC-SR505小型人体感应模块是基于红外线技术的自动控制产品,灵敏度高,可靠性强,超小体积,超低电压工作模式。广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。

其具体电路原理图如下图所示:
毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计_第5张图片

实物图如下:
毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计_第6张图片

毕业设计 基于STM32的单片机智能门禁热释人体感应报警设计_第7张图片

3.4 LCD1602液晶显示电路设计

LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。

其具体电路原理图如下图所示:

实物图如下:

4、部分代码展示

4.1 LCD1602液晶显示屏引脚初始化程序设计

void LCD1602Init(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~DB15
	GPIO_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);
}

4.2 LCD1602显示字符串程序设计


void Lcd_Puts(unsigned char x,unsigned char y, unsigned char *string) //向1602写一个字符串 
{ 
	Lcd_SetXY(x,y); 
	while(*string) 
	{ 
		Lcd_Write_Data(*string); 
		string++; 
	} 
}

4.3 LED初始化程序设计

void LED_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC, ENABLE);	 //使能端口时钟
	
 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_4|GPIO_Pin_5;				 //端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOA, &GPIO_InitStructure);					 //根据设定参数初始化
	
 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_15;				 //端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOC, &GPIO_InitStructure);					 //根据设定参数初始化	
}

5. 项目编号

013

你可能感兴趣的:(单片机,stm32,课程设计,毕业设计,智能门禁)