毕设分享 STM32的FRID高速收费系统(源码+硬件+论文)

这篇具有很好参考价值的文章主要介绍了毕设分享 STM32的FRID高速收费系统(源码+硬件+论文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


0 前言

🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 STM32的FRID高速收费系统(源码+硬件+论文))

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:3分

🧿 项目分享:见文末!

毕设分享 STM32的FRID高速收费系统(源码+硬件+论文),单片机

1 主要功能

主要功能: 一款基于STM32的FRID高速收费系统,可以实现小车和货车两种车型收费,当车辆超过了规定的重量后,出现声光报警提示,并且启动杆不会抬起,只有当车辆重量低于设置值时,启动杆才会自动抬起,当启动杆抬起后,开始计费,直到车辆驶离高速。

  • 1、车辆称重,2个分区(小车:1kg以内、货车:2kg以内,利用按键选择),超重无法上高速,并声光报警。

  • 2、刷卡之后杆子自动抬起落下(四相步进机),防追杆。功能,前车过去,闸门才自动落下(分离式红外对管)

  • 3、刷卡后,开始时间计费(小车1元/分钟,货车2元/分钟)。

  • 4、如果车辆长时间不出高速,会报警提示值班人员,对高速进行排查。

  • 5、通过按键设置各阈值(超载值、计费单价、时长)

  • 6、通过显示屏显示数据

2 系统架构

本设计以单片机为核心控制器,加上其他模块一起组成此次设计的整个系统,其中包括中控部分、输入部分和输出部分。

中控部分采用了单片机控制器,其主要作用是获取输入部分的数据,经过内部处理,逻辑判断,最终控制输出部分。

输入由五部分组成

第一部分是称重模块,通过该模块检测当前车辆的总重量;

第二部分是RFID刷卡,通过该模块进行计费;

第三部分是红外对射管模块,通过该模块监测当前是否有车辆;

第四部分是按键模块,通过该模块可以切换界面,进行选择通行的车辆,及其车辆所能承载的最大值,及其该车运行时间对应的价格等;第五部分是供电模块,通过该模块可给整个系统进行供电。

输出由三部分组成

第一部分是显示模块,通过该模块可以显示重量、车辆类型、计时价格和价格及其不同车辆设置的最值和计时时间;

第二部分是步进电机模块,通过该模块可以车杆的开关;

第三部分是声光报警模块,监测到当前的车重大于设置的最大值进行声光报警提醒。

毕设分享 STM32的FRID高速收费系统(源码+硬件+论文),单片机

3 硬件设计原理图

毕设分享 STM32的FRID高速收费系统(源码+硬件+论文),单片机

4 软件设计流程

系统的主流程图如图所示。在主程序中:首先对各个模块进行初始化,随后进入while主循环,在主循环中,首先进入第一个函数按键函数,该函数主要分为两部分,第一部分为调用按键扫描函数获取按键键值,第二部分通过键值进行相应的处理操作,包括切换界面、设置阈值等;紧接着进入第二个函数监测函数,该函数主要通过调用相应的驱动函数获取测量值;紧接着进入第三个函数显示函数,该函数显示监测值及阈值;最后进入第四个函数处理函数,监测到当前的车辆重量大于设置的最大值进行声光报警提醒,进行卡号比对,监测到没有超重,开始计费,车辆通过后,控制车杆关闭,监测到车辆超速进行声光报警提醒。

毕设分享 STM32的FRID高速收费系统(源码+硬件+论文),单片机

称重模块HX711模块子流程

首先初始化引脚,然后数据引脚拉高,延时一段时间后,将时钟引脚拉低,等待AD转换结束,然后开始读取数据。接下来循环24次数据接收,在第25个脉冲将数据异或转换,并拉低时钟引脚结束AD转换。通过采集第一次数据为毛皮重量,采集第二次数据减去第一次数据即为最终称重重量,称重模块子流程如图

毕设分享 STM32的FRID高速收费系统(源码+硬件+论文),单片机

步进电机子流程

首先初始化引脚,然后初始化定时器,在定时器中断函数中进行步进电机八步解析,然后根据正转或反转标志位决定正反转。另外,通过比较时间计数值决定步进电机转速,比较节拍数决定步进电机转动角度,步进电机子流程如图

毕设分享 STM32的FRID高速收费系统(源码+硬件+论文),单片机

5 关键代码


#include "sys.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "delay.h"
#include "gpio.h"
#include "key.h"
#include "oled.h"
#include "usart.h"
#include "hx711.h"
#include "motor_timer.h"
#include "rfid.h"
#include "timer.h"


/**********************************
��������
**********************************/
uint8_t key_num = 0;									//����ɨ���־λ	
uint8_t flag_display = 0;							//��ʾ�����־λ
uint32_t time_num = 0;								//10ms��ʱ
char display_buf[48] = {0};						//��ʾ������

u8 alarm_count = 0;										//������־����

_Bool car_type = 0;										//����������
_Bool flag_maopi = 0;									//��һ��ëƤ������־λ
u32 weight_maopi = 0;									//ëƤ����
u32 weight_value = 0;									//����ֵ
u16 weight_smax = 1;									//�γ��������ֵ
u16 weight_tmax = 2;									//�����������ֵ
_Bool alarm_weight = 0;								//���ر�����־λ

u8 RF_ID[5] = {0};								 	  //�洢����
u8 RF_TP[4] = {0};									  //��Ƭ����

_Bool flag_billing = 0;								//��ʼ�Ʒѱ�־λ
u32 total_price = 0;									//�ܼ�Ǯ
u16 unit_sprice = 1;									//�γ�nԪ/����
u16 unit_tprice = 2;									//����nԪ/����

short time_hour = 0;									//��ʱʱ��ʱ
short time_minute = 0;								//��ʱʱ���
short time_seconds = 0;								//��ʱʱ����
short time_hour_max = 3;							//��ʱʱ�����ʱ
short time_minute_max = 0;						//��ʱʱ������
short time_seconds_max = 0;						//��ʱʱ�������
_Bool alarm_time = 0;									//��ʱ������־λ

extern uint8_t flag_timer_begin_1s;		//��ʱ��ʼ��־λ
extern uint8_t flag_1s;								//��ʱ1s��ɱ�־λ

_Bool flag_pass = 0;									//����ͨ�����˱�־
extern _Bool flag_step2_o;						//��������򿪱�־λ
extern _Bool flag_step2_c;						//��������رձ�־λ
extern _Bool flag_Step2;							//�������״̬��־λ


/**********************************
��������
**********************************/
void Key_function(void);							//��������
void Monitor_function(void);					//��⺯��
void Display_function(void);					//��ʾ����
void Manage_function(void);						//��������


/****
*******	������ 
*****/
int main(void)
{
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //�����ж����ȷ���
	Delay_Init();	    	 								//��ʱ��ʼ��	  
	Gpio_Init();		  									//IO��ʼ��
	Key_Init();		  										//������ʼ��
	Oled_Init();		  									//OLED��ʼ��
	Oled_Clear_All();										//����
	Usart1_Init(9600);    							//����1��ʼ��
	Hx711_Init();												//HX711��ʼ��
	Step_Motor_Init();                  //���������ʼ��
	TIM2_Init(999,7199);								//��ʱ����ʼ��
	RFID_Init();                        //RFID��ʼ��
	RC522_Reset();										  //��λRC522
	RC522_Antenna_On();								  //�������߷���
	
	
	while(1)
	{
		Key_function();										//��������
		Monitor_function();								//��⺯��
		Display_function();								//��ʾ����
		Manage_function();								//��������

		time_num++;												//��ʱ����+1
		Delay_ms(10);
		if(time_num %10 == 0)
			LED_SYS = ~LED_SYS;
		if(time_num >= 5000)
		{
			time_num = 0;
		}
	}
}

/****
*******��������
*****/
void Key_function(void)
{
	key_num = Chiclet_Keyboard_Scan(0);		//����ɨ��
	if(key_num != 0)											//�������
	{
		switch(key_num)
		{
			case 1:								            //����1���л����ý���
				flag_display++;
				if(flag_display >= 8)
					flag_display = 0;
				
				Oled_Clear_All();					      //����
			break;

			case 2:											      //����2
				switch(flag_display)
				{
					case 0:									      //����0��ѡ����ΪС��
						if(flag_billing == 0)
						{
							car_type = 0;
						}
					break;
					
					case 1:												//����1��С���������ֵ+1
						if(weight_smax < 5)
							weight_smax++;
					break;
					
					case 2:												//����2�������������ֵ+1
						if(weight_tmax < 5)
							weight_tmax++;
					break;
					
					case 3:												//����3��С��ÿ���ӵ���+1
						if(unit_sprice < 9999)
							unit_sprice++;
					break;
          
					case 4:												//����4������ÿ���ӵ���+1
						if(unit_tprice < 9999)
							unit_tprice++;
					break;

					case 5:												//����4����ʱʱ�����ʱ+1
						time_hour_max++;
						if(time_hour_max > 999)
							time_hour_max = 0;
					break;

					case 6:												//����6����ʱʱ������+1
						time_minute_max++;
						if(time_minute_max > 59)
							time_minute_max = 0;
					break;

					case 7:												//����7����ʱʱ�������+1
						time_seconds_max++;
						if(time_seconds_max > 59)
							time_seconds_max = 0;
					break;
					
					default:
					break;
				}
			break;

			case 3:														//����3
				switch(flag_display)
				{
					case 0:									      //����0��ѡ����Ϊ����
						if(flag_billing == 0)
						{
							car_type = 1;
						}
					break;
					
					case 1:												//����1��С���������ֵ-1
						if(weight_smax > 0)
							weight_smax--;
					break;
					
					case 2:												//����2�������������ֵ-1
						if(weight_tmax > 0)
							weight_tmax--;
					break;
					
					case 3:												//����3��С��ÿ���ӵ���-1
						if(unit_sprice > 0)
							unit_sprice--;
					break;
          
					case 4:												//����4������ÿ���ӵ���-1
						if(unit_tprice > 0)
							unit_tprice--;
					break;

					case 5:												//����4����ʱʱ�����ʱ-1
						time_hour_max--;
						if(time_hour_max < 0)
							time_hour_max = 999;
					break;

					case 6:												//����6����ʱʱ������-1
						time_minute_max--;
						if(time_minute_max < 0)
							time_minute_max = 59;
					break;

					case 7:												//����7����ʱʱ�������-1
						time_seconds_max--;
						if(time_seconds_max < 0)
							time_seconds_max = 59;
					break;

					default:
					break;
				}
			break;

			default:
			break;
		}
	}
}

/****
*******��⺯��
*****/
void Monitor_function(void)
{
	u16 weight_test = 0;

	if(flag_display == 0)									//��������
	{
		if(time_num % 10 == 0)							//��ȡ����
		{
			if(flag_maopi == 0)
			{
				weight_maopi = Hx711_Get_Maopi();                 //��ȡëƤ����
				flag_maopi = 1;
			}
			else
			{
				weight_test = Hx711_Get_Weight(weight_maopi);     //��ȡ����ֵ
				if(weight_test < 5000)
					weight_value = weight_test;
			}

			if(flag_billing == 1)																//�����ʼ�Ʒѣ������ܼ�
			{
				if(car_type == 0)
				{
					total_price = (((time_hour*60)+time_minute)*unit_sprice)*100+(time_seconds*unit_sprice)/0.6;
				}
				else
				{
					total_price = (((time_hour*60)+time_minute)*unit_tprice)*100+(time_seconds*unit_tprice)/0.6;
				}
			}
		}
	}
}

/****
*******��ʾ����
*****/
void Display_function(void)
{
	switch(flag_display)									//���ݲ�ͬ����ʾģʽ��־λ����ʾ��ͬ�Ľ���
	{
		case 0:									      			//����0����ʾ�������������͡���ʱʱ�䡢��Ǯ
			Oled_ShowCHinese(1,0,"������");
			sprintf(display_buf,"%d.%03dkg ",weight_value/1000,weight_value%1000);
			Oled_ShowString(1,6,display_buf);

			if(car_type == 0)
				Oled_ShowCHinese(2,0,"���ࣺС��");
			else
				Oled_ShowCHinese(2,0,"���ࣺ����");

			Oled_ShowCHinese(3,0,"��ʱ��");
			sprintf(display_buf,"%03d:%02d:%02d",time_hour,(int)time_minute,(int)time_seconds);
			Oled_ShowString(3,6,display_buf);

			Oled_ShowCHinese(4,0,"�ܼۣ�");
			sprintf(display_buf,"%d.%02dRMB  ",total_price/100,total_price%100);
			Oled_ShowString(4,6,display_buf);
		break;
		
		case 1:															//����1����ʾ����С������ֵ
			Oled_ShowCHinese(1,0,"����С������ֵ");
			if(time_num % 5 == 0)
			{
				sprintf(display_buf,"%d   ",weight_smax);
				Oled_ShowString(2, 7, display_buf);
			}
			if(time_num % 10 == 0)
			{
				Oled_ShowString(2, 7, "    ");
			}
		break;
		
		case 2:															//����2����ʾ���û�������ֵ
			Oled_ShowCHinese(1,0,"���û�������ֵ");
			if(time_num % 5 == 0)
			{
				sprintf(display_buf,"%d   ",weight_tmax);
				Oled_ShowString(2, 7, display_buf);
			}
			if(time_num % 10 == 0)
			{
				Oled_ShowString(2, 7, "    ");
			}
		break;
		
		case 3:															//����3����ʾ����С������
			Oled_ShowCHinese(1,1,"����������");
			if(time_num % 5 == 0)
			{
				sprintf(display_buf,"%d   ",unit_sprice);
				Oled_ShowString(2, 7, display_buf);
			}
			if(time_num % 10 == 0)
			{
				Oled_ShowString(2, 7, "    ");
			}
		break;

		case 4:															//����4����ʾ���û�������
			Oled_ShowCHinese(1,1,"���û�������");
			if(time_num % 5 == 0)
			{
				sprintf(display_buf,"%d   ",unit_tprice);
				Oled_ShowString(2, 7, display_buf);
			}
			if(time_num % 10 == 0)
			{
				Oled_ShowString(2, 7, "    ");
			}
		break;

		case 5:															//����5����ʾ���ü�ʱ���ʱ
			Oled_ShowCHinese(1,0,"���ü�ʱ���ʱ");
			if(time_num % 5 == 0)
			{
				sprintf(display_buf,"%03d:%02d:%02d",time_hour_max,(int)time_minute_max,(int)time_seconds_max);
				Oled_ShowString(2,3,display_buf);
			}
			if(time_num % 10 == 0)
			{
				Oled_ShowString(2,3,"   ");
			}
		break;

		case 6:															//����6����ʾ���ü�ʱ����
			Oled_ShowCHinese(1,0,"���ü�ʱ����");
			if(time_num % 5 == 0)
			{
				sprintf(display_buf,"%03d:%02d:%02d",time_hour_max,(int)time_minute_max,(int)time_seconds_max);
				Oled_ShowString(2,3,display_buf);
			}
			if(time_num % 10 == 0)
			{
				Oled_ShowString(2,7,"  ");
			}
		break;

		case 7:															//����7����ʾ���ü�ʱ�����
			Oled_ShowCHinese(1,0,"���ü�ʱ�����");
			if(time_num % 5 == 0)
			{
				sprintf(display_buf,"%03d:%02d:%02d",time_hour_max,(int)time_minute_max,(int)time_seconds_max);
				Oled_ShowString(2,3,display_buf);
			}
			if(time_num % 10 == 0)
			{
				Oled_ShowString(2,10,"  ");
			}
		break;
		
		default:
		break;
	}
}

/****
*******��������
*****/
void Manage_function(void)
{
	if(flag_display == 0)                  	//��������
	{
		if(car_type == 0)													//�������
		{
			if(weight_value > weight_smax*1000)			//������أ����ⱨ��
			{
				if(alarm_weight == 0)
				{
					alarm_weight = 1;
					alarm_count = 6;
				}
			}
			else
			{
				alarm_weight = 0;
			}
		}
		else																			//����ǻ���
		{
			if(weight_value > weight_tmax*1000)			//������أ����ⱨ��
			{
				if(alarm_weight == 0)
				{
					alarm_weight = 1;
					alarm_count = 6;
				}
			}
			else
			{
				alarm_weight = 0;
			}
		}
		if(RC522_Request(0x52,RF_TP) == MI_OK)	   			//ʵʱ��⿨
		{
			if(RC522_Anticoll(RF_ID) == MI_OK)						//����ײ
			{
				BEEP = 1;
				Delay_ms(100);
				BEEP = 0;
//				if((RF_ID[0]==0x20) && (RF_ID[1]==0xbf) && (RF_ID[2]==0x89) && (RF_ID[3]==0x20))  //�Աȿ���
//				{
					if(flag_billing == 0)											//���û��ʼ�Ʒ�
					{
						if(alarm_weight == 0)										//���û���أ���ʱ�Ʒ�
						{
							if(flag_Step2 == 0)
							{
								flag_billing = 1;
								flag_step2_o = 1;
								flag_step2_c = 0;
							}
						}
					}
					else																			//����Ѿ���ʼ�Ʒѣ���ôֹͣ�Ʒ�
					{
						if(flag_Step2 == 0)
						{
							flag_billing = 0;
							flag_timer_begin_1s = 0;
							time_hour = 0;time_minute = 0;time_seconds = 0;
							total_price = 0;
							Delay_ms(1500);Delay_ms(1500);Delay_ms(1000);
							flag_step2_o = 1;
							flag_step2_c = 0;
						}
					}
//				}
			}
		}
		if(flag_Step2 == 1)															//��������ǿ��ģ���ͨ����رգ�����ǽ�����٣���ʼ��ʱ
		{
			if(CHECK_IR == 1)
			{
				flag_pass = 1;
			}
			else
			{
				if(flag_pass == 1)
				{
					flag_pass = 0;
					flag_step2_o = 0;
					flag_step2_c = 1;
					if(flag_billing == 1)
					{
						flag_timer_begin_1s = 1;
					}
				}
			}
		}
		if(flag_1s == 1)																//���һ�뵽�����ʱ�����
		{
			flag_1s = 0;
			time_seconds++;
			if(time_seconds >= 60)
			{
				time_seconds = 0;
				time_minute++;
				if(time_minute >= 60)
				{
					time_minute = 0;
					time_hour++;
				}
			}																							//���������ٳ�ʱ�����ⱨ��
			if(time_hour == time_hour_max && time_minute == time_minute_max && time_seconds == time_seconds_max)
			{
				if(alarm_time == 0)
				{
					alarm_time = 1;
					alarm_count = 6;
				}
			}
			else
			{
				alarm_time = 0;
			}
		}

		if(alarm_count > 0)															//������ⱨ���м������������ⱨ��
		{
			if(time_num %3 == 0)
			{
				alarm_count--;
				LED = ~LED;
				BEEP = ~BEEP;
			}
		}
		else
		{
			LED = 1;
			BEEP = 0;
		}
	}
	else													         //���ý��棬��������ݡ��رճ��ˡ��ر����ⱨ��
	{
		flag_billing = 0;
		flag_timer_begin_1s = 0;
		time_hour = 0;time_minute = 0;time_seconds = 0;
		total_price = 0;
		if(flag_Step2 == 1)
		{
			flag_step2_o = 0;
			flag_step2_c = 1;
		}
		alarm_count = 0;
		LED = 1;
		BEEP = 0;
	}
}


6 最后

🧿 项目分享:见文末!文章来源地址https://www.toymoban.com/news/detail-839081.html

到了这里,关于毕设分享 STM32的FRID高速收费系统(源码+硬件+论文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【开源】基于JAVA的停车场收费系统

    基于JAVA+Vue+SpringBoot+MySQL的停车场收费系统,包含了车辆管理模块、停车场模块、停车记录模块、IC卡档案模块和IC卡挂失模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,停车场收费系统基于角

    2024年01月22日
    浏览(46)
  • 【开源】SpringBoot框架开发停车场收费系统

    基于JAVA+Vue+SpringBoot+MySQL的停车场收费系统,包含了车辆管理模块、停车场模块、停车记录模块、IC卡档案模块和IC卡挂失模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,停车场收费系统基于角

    2024年03月15日
    浏览(62)
  • stm32毕设分享 STM32智能饮水机控制系统(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月05日
    浏览(40)
  • 基于单片机的自动停车收费系统的设计

    欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式   本课题对自动停车收费系统进行研究,介绍了基于STM32F103C6T6单片机的一种停车场的自动停车收费系统的设计。该基于STM32F103C6T6单片机完成的自动

    2024年01月17日
    浏览(38)
  • 记一次 .NET某道闸收费系统 内存溢出分析

    前些天有位朋友找到我,说他的程序几天内存就要爆一次,不知道咋回事,找不出原因,让我帮忙看一下,这种问题分析dump是最简单粗暴了,拿到dump后接下来就是一顿分析。 程序既然会爆,可能是虚拟地址受限,也可能是系统内存不足,可以用 !address -summary 观察下。 从卦

    2024年01月18日
    浏览(46)
  • 毕设分享 stm32与openmv的目标跟踪系统

    文章目录 0 前言 课题简介 设计框架 3 硬件设计 4 软件设计 判断被测物体所在区域 5 最后 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师

    2024年02月12日
    浏览(38)
  • stm32毕设分享 火灾报警系统设计与实现

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 基于单片机的火灾报警系统设计与实现 大家可用于 课程设计 或 毕业设计 🧿 项目分享: https://gitee.com/sinonfin/sharing 火灾是指在时间或空间上失去控制的燃烧所造成的灾害。在各种灾害中,火灾是最经常、最普

    2024年02月04日
    浏览(55)
  • BSB网络验证 易语言网络验证系统 autojs 网络验证系统 免费的卡密收费系统 账号注册系统

    BSB网络验证系统 特色功能 继承式权限管理 可以给代理分配权限 权限都会经过后台服务严格把关 解决抓包提交参数导致越权行为。 动态sgin 签名认证 并且不同api 接口 认证算法 都会有偏差 想通过客户端代码逆向破解 难度极大. 拥有丰富的代理管理功能 对账号冻结 修改等

    2024年02月05日
    浏览(39)
  • 【开源】基于Vue.js的停车场收费系统

    文末获取源码,项目编号: S 076 。 color{red}{文末获取源码,项目编号:S076。} 文末获取源码,项目编号: S 076 。 基于JAVA+Vue+SpringBoot+MySQL的停车场收费系统,包含了车辆管理模块、停车场模块、停车记录模块、IC卡档案模块和IC卡挂失模块,还包含系统自带的用户管理、部门

    2024年02月05日
    浏览(38)
  • 【开源】基于Vue+SpringBoot的停车场收费系统

    基于JAVA+Vue+SpringBoot+MySQL的停车场收费系统,包含了车辆管理模块、停车场模块、停车记录模块、IC卡档案模块和IC卡挂失模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,停车场收费系统基于角

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包