毕业设计 基于STM32的语音RFID卡停车管理系统

简介: 毕业设计 基于STM32的语音RFID卡停车管理系统

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

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

2、项目资料

2.1 系统框架

本设计采用STM32单片机作为主控芯片,由RFID刷卡模块、OLED显示模块、按键电路、语音电路构成。

2.2 系统功能

  • 1.在welcome界面,放置IC卡,此时会开始记录停车时间
  • 2.按下KEY1按键,会提示放置IC卡,放置IC卡后,会进入扣费界面(系统会根据程序中设置的单价与停车时间进行计算,之后扣费)
  • 2.1 扣费成功:记录时间清零
  • 2.2 扣费失败:语音提示余额不足,此时停车时间继续记录
  • 3.按下KEY0按键,会提示放置IC卡,放置IC卡后,会显示当前余额。
  • 3.1 在此界面按下KEY0,余额每次增加10
  • 3.2 在此界面按下KEY1,余额每次减10
  • 4.KEY2按键时退出按键

3、部分电路设计

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

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

单片机最小系统原理图如下图所示:

实物图:

实物图:

3.2 按键电路设计

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

  • 实物图

3.3 RFID电路设计

RC522是一款NXP 公司的支持ISO14443A协议的高频(13.56MHz)RFID射频芯片。RFID有ID和IC两种卡应用类型,RC522属于IC卡的应用类型。NFC则属于增强的IC卡类型,支持双向通信和更多类型的协议。

ID卡在制卡时写入一次后,以后只能读取不能写入,常见的Mango卡工作频率为125KHz,所以也叫低频卡,支持ISO 18000-2协议。

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

实物图如下:

4、部分代码展示

4.1 OLED IIC引脚初始化

void I2C_Configuration(void)
{
  I2C_InitTypeDef  I2C_InitStructure;
  GPIO_InitTypeDef  GPIO_InitStructure; 
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  /*STM32F103C8T6芯片的硬件I2C: PB6 -- SCL; PB7 -- SDA */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;//I2C必须开漏输出
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  I2C_DeInit(I2C1);//使用I2C1
  I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
  I2C_InitStructure.I2C_OwnAddress1 = 0x30;//主机的I2C地址,随便写的
  I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
  I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  I2C_InitStructure.I2C_ClockSpeed = 400000;//400K
  I2C_Cmd(I2C1, ENABLE);
  I2C_Init(I2C1, &I2C_InitStructure);
}

4.2 OLED屏幕初始化

void OLED_Init(void)
{
  delay_ms(100);
  WriteCmd(0xAE); //display off
  WriteCmd(0x20); //Set Memory Addressing Mode  
  WriteCmd(0x10); //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
  WriteCmd(0xb0); //Set Page Start Address for Page Addressing Mode,0-7
  WriteCmd(0xc8); //Set COM Output Scan Direction
  WriteCmd(0x00); //---set low column address
  WriteCmd(0x10); //---set high column address
  WriteCmd(0x40); //--set start line address
  WriteCmd(0x81); //--set contrast control register
  WriteCmd(0xff); //亮度调节 0x00~0xff
  WriteCmd(0xa1); //--set segment re-map 0 to 127
  WriteCmd(0xa6); //--set normal display
  WriteCmd(0xa8); //--set multiplex ratio(1 to 64)
  WriteCmd(0x3F); //
  WriteCmd(0xa4); //0xa4,Output follows RAM content;0xa5,Output ignores RAM content
  WriteCmd(0xd3); //-set display offset
  WriteCmd(0x00); //-not offset
  WriteCmd(0xd5); //--set display clock divide ratio/oscillator frequency
  WriteCmd(0xf0); //--set divide ratio
  WriteCmd(0xd9); //--set pre-charge period
  WriteCmd(0x22); //
  WriteCmd(0xda); //--set com pins hardware configuration
  WriteCmd(0x12);
  WriteCmd(0xdb); //--set vcomh
  WriteCmd(0x20); //0x20,0.77xVcc
  WriteCmd(0x8d); //--set DC-DC enable
  WriteCmd(0x14); //
  WriteCmd(0xaf); //--turn on oled panel
}

4.3 RC522初始化

void Rc522IoInit(void)
{
//  P4DIR |= BIT7+BIT6+BIT5+BIT3;     //读卡接口
//  P4DIR &=~BIT4;
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //使能PA,PD端口时钟
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;         // 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //IO口速度为50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);           //根据设定参数初始化
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PORTA,PORTC时钟
  GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_1;//PA1
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA15
}

5. 项目编号

011

相关文章
|
7月前
|
物联网 开发者 智能硬件
STM32:引领嵌入式系统新时代的微控制器
STM32:引领嵌入式系统新时代的微控制器
|
7月前
STM32F103标准外设库——SysTick系统定时器(八)
STM32F103标准外设库——SysTick系统定时器(八)
567 0
STM32F103标准外设库——SysTick系统定时器(八)
|
7月前
|
传感器 编解码 数据处理
毕业设计|基于STM32单片机的水位浑浊度检测设计
毕业设计|基于STM32单片机的水位浑浊度检测设计
877 0
|
2月前
|
传感器 监控 物联网
基于STM32+微波雷达设计的非接触式睡眠监控系统
本项目开发一种非接触式的睡眠监控系统,该系统利用先进的60GHz毫米波雷达技术和STM32微控制器,实现了对人体在睡眠过程中的存在感知、运动感知以及生理指标如呼吸频率、心率的实时监测。系统能够自动评估睡眠质量,并在用户睡眠周期结束时提供睡眠评分。为了确保用户能够在任何地点了解自己的睡眠状况,系统集成了Wi-Fi模块,可以将收集到的数据上传至华为云物联网平台,并通过专门设计的移动应用程序供用户远程访问。此外,系统还具备超阈值报警功能,当检测到异常的生理指标时会发出警报提醒。本地1.44寸TFT LCD显示屏用于实时显示监测到的信息,包括生理指标和环境数据。为了全面监测用户的健康状况,系统还加入了
302 0
基于STM32+微波雷达设计的非接触式睡眠监控系统
|
2月前
|
存储 机器学习/深度学习 编解码
基于STM32的车牌识别系统
基于STM32的车牌识别系统
118 0
|
2月前
|
传感器 网络协议 物联网
基于STM32的环境监测系统 (esp8267)(下)
基于STM32的环境监测系统 (esp8267)(下)
123 0
|
2月前
|
传感器 测试技术 芯片
基于STM32的环境监测系统 (esp8266)(上)
基于STM32的环境监测系统 (esp8266)(上)
395 0
|
7月前
|
传感器 监控 安全
基于STM32的智能公交车辆管理系统设计与实现
基于STM32的智能公交车辆管理系统设计与实现
104 1
|
3月前
|
存储 传感器 Linux
STM32微控制器为何不适合运行Linux系统的分析
总的来说,虽然技术上可能存在某些特殊情况下将Linux移植到高端STM32微控制器上的可能性,但从资源、性能、成本和应用场景等多个方面考虑,STM32微控制器不适合运行Linux系统。对于需要运行Linux的应用,更适合选择ARM Cortex-A系列处理器的开发平台。
283 0
|
7月前
|
内存技术 存储 Android开发
MCU最小系统电路设计(以STM32F103C8T6为例)-3
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-3