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

Posted 嵌入式基地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了毕业设计 基于STM32的语音IC卡停车管理系统相关的知识,希望对你有一定的参考价值。

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

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

以上是关于毕业设计 基于STM32的语音IC卡停车管理系统的主要内容,如果未能解决你的问题,请参考以下文章

基于STM32+RFID设计的宿舍检修管理系统

毕业设计 - 题目:基于 STM32 的自动泊车系统 -智能小车 自动停车

基于STM32设计的校园一卡通项目-详解原理

基于STM32设计的小说阅读器(翻页字体切换颜色切换语音播报)

基于STM32设计的小说阅读器(翻页字体切换颜色切换语音播报)

730毕设课设基于STM32的RFID停车场车位车库管理监测系统设计(全套资料)