**单片机设计介绍,1651【毕设课设】基于STM32景区人流检测控制系统设计
文章目录
- 一 概要
- 二、功能设计
- 设计思路
- 三、 软件设计
- 原理图
- 五、 程序
- 程序
- 文档
- 六、 文章目录
一 概要
基于STM32的景区人流检测控制系统设计是一种利用STM32微控制器开发的系统,用于监测和控制景区内人流量的系统。
该系统的设计目的是通过实时监测景区的人流量,从而进行有效的人流管控,确保景区的安全和秩序。下面是该系统的一般设计介绍:
-
STM32微控制器:STM32是一系列高性能、低功耗的32位微控制器,具有丰富的外设资源和强大的处理能力,非常适合用于开发嵌入式系统。在该系统中,STM32被用作主控芯片,负责整个系统的数据处理和控制逻辑。
-
人流检测传感器:系统使用各种传感器来获取景区内的人流信息。常见的人流检测传感器包括红外传感器、超声波传感器和摄像头等。这些传感器被安置在景区的入口和出口等关键位置,用于实时检测人员进出情况。
-
数据采集与处理:人流检测传感器获取到的数据会被传输到STM32微控制器,然后由STM32进行数据采集和处理。STM32可以通过串口、I2C或者SPI等通信方式与传感器进行数据交互。在数据处理过程中,STM32可以对原始数据进行滤波、分析和计算,以获取人流量等相关信息。
-
控制与反馈:根据人流数据的分析结果,STM32可以控制相关设备和装置,如景区的入口闸机、指示牌等。当人流量超过一定阈值时,STM32会触发相应的控制命令,对景区的人流进行限制或引导。同时,系统也可以通过LED显示屏或者语音提示等方式向游客提供相关信息和引导。
总之,基于STM32的景区人流检测控制系统设计是一种高效、智能的系统,能够实时监测和控制景区的人流量,提高景区的管理效率和服务质量。
二、功能设计
本系统基于stm32f10x为核心,数码管显示计数值和目标数量,在软件中设置目标人数量可设置的最大值。通过矩阵按键设置目标数量。按键计数设置传送带计数值,按键按下计数值数量加一,计数值与目标数量比较数量相等。计数值数量重置蜂鸣器报警,计数值和目标值不相等继续计数。
设计思路
设计思路
文献研究法:搜集整理相关单片机智能手环系统相关研究资料,认真阅读文献,为研究做准备;
调查研究法:通过调查、分析、具体试用等方法,发现单片机智能手环系统的现状、存在问题和解决办法;
比较分析法:比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景;
软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。
三、 软件设计
本系统原理图设计采用Altium Designer19,具体如图。在本科单片机设计中,设计电路使用的软件一般是Altium Designer或proteus,由于Altium Designer功能强大,可以设计硬件电路的原理图、PCB图,且界面简单,易操作,上手快。Altium Designer19是一款专业的整的端到端电子印刷电路板设计环境,用于电子印刷电路板设计。它结合了原理图设计、PCB设计、多种管理及仿真技术,能够很好的满足本次设计需求。
————————————————
仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。
Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。
————————————————
原理图
五、 程序
本设计利用KEIL5软件实现程序设计,具体如图。作为本科期间学习的第一门编程语言,C语言是我们最熟悉的编程语言之一。当然,由于其功能强大,C语言是当前世界上使用最广泛、最受欢迎的编程语言。在单片机设计中,C语言已经逐步完全取代汇编语言,因为相比于汇编语言,C语言编译与运行、调试十分方便,且可移植性高,可读性好,便于烧录与写入硬件系统,因此C语言被广泛应用在单片机设计中。keil软件由于其兼容单片机的设计,能够实现快速调试,并生成烧录文件,被广泛应用于C语言的编写和单片机的设计。
————————————————
程序
#include"stm32f1ox.h"
void GPIo_Config(void);
void delay(uint32 t d)4
uint32_t i=0;
uint32_tn=o;
for(i=o:i<d:i++)
for(n=0;n<800;n++);
uint8 t conveyor scan()
if(GPIo ReadInputDataBit(GPIOC,GPIPin9)==o)
return 1;
子
return o;
7
voidkeymatline_set(uint8_tc)
uint8tbb[]=Bit SET,BitSET,Bit SET,BitSET]:
bb[c]=BitRESET;
GPIoWriteBit(GPIoC,GPIoPin4,bb[o]);
GPIoWriteBit(GPIoC,GPIoPin5,bb[1]);
文档
六、 文章目录
目 录
摘 要 I
Abstract II
引 言 1
1 控制系统设计 2
1.1 主控系统方案设计 2
1.2 传感器方案设计 3
1.3 系统工作原理 5
2 硬件设计 6
2.1 主电路 6
2.1.1 单片机的选择 6
2.2 驱动电路 8
2.2.1 比较器的介绍 8
2.3放大电路 8
2.4最小系统 11
3 软件设计 13
3.1编程语言的选择 13
4 系统调试 16
4.1 系统硬件调试 16
4.2 系统软件调试 16
结 论 17
参考文献 18
附录1 总体原理图设计 20
附录2 源程序清单 21
致 谢 25