【毕业设计】3-基于单片机的公交车智能播报到站运行位置指示系统(原理图+源码+论文)

news2025/1/14 10:12:08

【毕业设计】3-基于单片机的公交车智能播报到站运行位置指示系统(原理图+源码+论文)

文章目录

  • 【毕业设计】3-基于单片机的公交车智能播报到站运行位置指示系统(原理图+源码+论文)
    • 资料下载链接
    • 任务书
    • 设计说明书
      • 摘要
      • 设计框架架构
      • 设计说明书及设计文件
      • 源码展示

资料下载链接

资料下载链接
资料链接:https://www.cirmall.com/circuit/29512/
包含此题目毕业设计全套资料:
原理图工程文件
源码工程文件
论文低重复率,21355字
原理图截图

任务书

主要研究内容:公交车GPS定位系统(原理及实现的方法)和公交车站;站牌显示系统(单片机显示的硬件原理图、PCB图及软件流程、程序代码)。

本次公交车运行位置指示系统需要实现的要求综合如下:
可以存放较多的服务用语和广告词;
要求操作简单,每站可自动播报全部报站内容;
要求具有LCD站点信息显示;
要求语音播报具有自动和手动两种功能;
要求站牌信息及服务信息等都能通过液晶屏显示出来;
时间、日历播报、显示和调整功能。

设计说明书

摘要

本文通过使用STC89C52单片机为主控器,GPS为全球定位芯片保证公交车的实时位置定位,DS1302作为系统的时钟芯片,LCD12864作为系统的液晶显示器来显示公交车内部的时钟信息、站台信息以及提示语等,通过语音芯片实现语音播报功能。通过对系统的电路设计、软件系统设计来保证系统的功能实现并且给人们交通出行带来便利。解决了以住公交车报站系统人工操作不便、误报站多、故障时不报站等问题。

设计框架架构

前 言 1
第一章 绪论 2
第一节 研究背景 2
第二节 国内外发展趋势 2
一、国外发展趋势 2
二、国内的发展趋势 3
第三节 本文的主要研究内容 3
第四节 本章小结 4
第二章 系统方案设计 5
第一节 系统需要分析 5
第二节 系统设计功能分析 5
第三节 系统设计方案 6
第四节 本章小结 7
第三章 系统硬件电路设计 8
第一节 单片机最小系统电路设计 8
一、单片机介绍 8
二、单片机最小系统电路设计 9
第二节 电源电路设计 10
第三节 按键电路设计 10
第四节 LED电路设计 11
第五节 液晶显示电路设计 12
第六节 GPS电路设计 14
第七节 语音播报电路设计 15
第八节 时钟电路设计 16
第九节 系统总电路图 17
第十节 系统PCB设计 18
第十一节 本章小结 18
第四章 软件系统设计 20
第一节 Keil软件介绍 20
第二节 软件总设计流程 20
第三节 LCD液晶显示程序设计 22
第四节 GPS程序设计 23
第五节 时钟程序设计 26
第六节 语音播报程序设计 27
第七节 本章小结 28
总 结 30
致 谢 32
参考文献 33
附 录 35
一、英文原文 35
二、英文翻译 38
三、源代码 41

设计说明书及设计文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
论文低重复率,21355字在这里插入图片描述

源码展示

#include <reg51.H>
#include "LCD12864.h"
#include "1302.h"
#include "60S2EEPROM.h"		
//站点   GPS				  
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit key5=P1^4;
sbit key6=P1^5;
sbit key7=P1^6;
sbit key8=P1^7;		//定义按键IO
sbit led0=P3^4;
sbit led1=P3^5;
sbit led2=P3^6;
sbit led3=P3^7;	 	//定义指示灯IO
sbit Music_Busy=P3^2;	  //定义
bit key1_flag=0;
bit key2_flag=0;
bit key3_flag=0;
bit key4_flag=0;
bit key5_flag=0;
bit key6_flag=0;
bit key7_flag=0;
bit key8_flag=0;    //定义按键位变量
uchar Station_Count=1;	 
sbit Busy=P3^2;
bit position=0;
bit Display_Reversal=0;
uchar state=0;		//显示变量
bit s0=0;		    //数据闪烁变量
uchar ms=0;			//定时器用到的变量
//发现两个Bug一个是自动下,到终点站没有自动切换上行、下行
//一个是  自动下 上行站名和语音不照应
uchar sec=0;
uchar sec1=0;
bit memory_flag=0;
uchar Sound=25;			//音量大小变量
uchar Station=10;		//车站总数变量
bit Mode=0;			    //等于0代表固化    等于1代表自定义
bit A_M=0;
bit Upstream_Down=1;
uchar count=0;
uint JD_Difference=100;	 //34.800340,113.499447
uint WD_Difference=100;
//这里预存上行经纬度数据
ulong xdata shangxing_JD_dat[15]={113499052  ,113499041   ,113499048   ,113499059   ,113499064   ,113499064  ,113499096  ,113499091 ,113499080  ,113499085 ,0,0,0,0,0};
ulong xdata shangxing_WD_dat[15]={ 34807299  ,34806564    ,34805795    ,34804901    ,34804046    ,34803403   ,34802381   ,34801711   , 34800910  , 34800152  ,0,0,0,0,0};
//这里预存下行经纬度数据
ulong xdata xiaxing_JD_dat[15]={113499447  ,113499447 ,113499457,   1134994359,   113499451,   113499408,   113499418,   113499391,  113499380,  113499395,   0,0,0,0,0};
ulong xdata xiaxing_WD_dat[15]={347996375   ,34800340, 34800869,   34801600,       34802233,    34802969,    34803852,    34804724,   34805649,   34806550,    0,0,0,0,0};
bit Sound_flag=1;
uchar code xiaxing1[] ="  测试下行A站  ";
uchar code xiaxing2[] ="  测试下行B站 ";
uchar code xiaxing3[] ="  测试下行C站 ";
uchar code xiaxing4[] ="  测试下行D站 ";
uchar code xiaxing5[] ="  测试下行E站 ";
uchar code xiaxing6[] ="  测试下行F站 ";
uchar code xiaxing7[] ="  测试下行G站 ";
uchar code xiaxing8[] ="  测试下行H站 ";
uchar code xiaxing9[] ="  测试下行I站 ";
uchar code xiaxing10[]="  测试下行J站 ";
uchar code xiaxing11[]="    测试上行11  ";
uchar code xiaxing12[]="    测试上行12  ";
uchar code xiaxing13[]="    测试上行13  ";
uchar code xiaxing14[]="    测试上行14  ";
uchar code xiaxing15[]="    测试上行15  ";
uchar code shangxing1[] ="  测试下行J站 ";
uchar code shangxing2[] ="  测试下行I站 ";
uchar code shangxing3[] ="  测试下行H站 ";
uchar code shangxing4[] ="  测试下行G站 ";
uchar code shangxing5[] ="  测试下行F站 ";
uchar code shangxing6[] ="  测试下行E站 ";
uchar code shangxing7[] ="  测试下行D站 ";
uchar code shangxing8[] ="  测试下行C站 ";
uchar code shangxing9[] ="  测试下行B站 ";
uchar code shangxing10[]="  测试下行A站 ";
uchar code shangxing11[]="    测试下行11  ";
uchar code shangxing12[]="    测试下行12  ";
uchar code shangxing13[]="    测试下行13  ";
uchar code shangxing14[]="    测试下行14  ";
uchar code shangxing15[]="    测试下行15  ";
uchar xdata A_dat[20];	 //暂存从GPS提取的经纬度数据
uchar xdata B_dat[20];	 //暂存从GPS提取的经纬度数据
uchar xdata GPS_dat[100];//暂存GPS模块返回的数据
uchar subscript;		 //串口数据计数变量
uchar GPS_time=0;		    //检测GPS是否接收到有效数据变量
float latitude,longitude;   //latitude是暂存纬度, longitude是暂存经度数据,这两个数据,是上面的暂存数组计算得到
unsigned long WD_A,JD_B;  //这两个变量,是最终现实与进行比较的经纬度数据变量
bit GPS_Write=0;		    //是否开启GPS校时更新时间数据标志位
uchar xdata NowTime[7]=0;	//从GPS返回的数据里面提取出时间数据
bit memory_GPS_flag=1;
uchar Sec_set=0;
uchar Time_Calibration=0;   //校准时间标志位
void memory()
 {
   if(memory_flag) 
    {
	  memory_flag=0;
	  IapEraseSector(0x08000);
	  IapProgramByte(0x08000,Sound);		       //记录音量大小变量

	  IapProgramByte(0x08001,Station);	       //记录车站总数

	  if(GPS_Write)IapProgramByte(0x08002,1);   //记录自动校时标志  GPS_Write=1,就记录为1
      else IapProgramByte(0x08002,0);           //记录自动校时标志  GPS_Write=0,就记录为0
 	
	  if(Mode)IapProgramByte(0x08003,1);        //记录固化还是自定义  Mode=1,就记录为1
      else IapProgramByte(0x08003,0);           //记录固化还是自定义  Mode=0,就记录为0  

	  if(A_M)IapProgramByte(0x08004,1);         //记录手动自动模式  A_M=1,就记录为1
      else IapProgramByte(0x08004,0);           //记录手动自动模式  A_M=0,就记录为0  
 if(Upstream_Down) IapProgramByte(0x08005,1);  //记录上行下行  Station_Count=1,就记录为1
      else              IapProgramByte(0x08005,0);  //记录上行下行  Station_Count=0,就记录为0   
//	  IapProgramByte(0x08006,shangxing_JD_dat[0]/65536/256);
//	  IapProgramByte(0x08006,shangxing_JD_dat[0]/65536%256);
//	  IapProgramByte(0x08006,shangxing_JD_dat[0]%256);
	}
 }
void read_memory()
 {
   	Sound=IapReadByte(0x08000);	   //读取的记录音量大小变量
//	Station=IapReadByte(0x08001);   //读取的记录车站总数

	if(Sound>30||Station>15) 	   //如果读取出来的数据不对,就进行初始化
	 {
	   Sound=25;
	   Station=5;
	 }
    if(IapReadByte(0x08002)!=0&&IapReadByte(0x08002)!=1) //读取GPS校时标志位
	 {
	   	GPS_Write=1;								   //如果读取不对,默认打开
	 } else  GPS_Write=IapReadByte(0x08002);			   //如果对,进行赋值
    if(IapReadByte(0x08003)!=0&&IapReadByte(0x08003)!=1) //读取存储的
	 {
	  	Mode=0;
	 }else  Mode=IapReadByte(0x08003);
    if(IapReadByte(0x08004)!=0&&IapReadByte(0x08004)!=1) 
	 {
	  	A_M=0;
	 }else  A_M=IapReadByte(0x08004);

    if(IapReadByte(0x08005)!=0&&IapReadByte(0x08005)!=1) 
	 {
	  	Upstream_Down=0;
	 }else  Upstream_Down=IapReadByte(0x08005);
     memory_flag=1;									   //将读取的数据再次存储
 }
void memory_GPS()
 {
   	  unsigned char i=0;
	  if(memory_GPS_flag)
	   {	
	        memory_GPS_flag=0;
			IapEraseSector(0x08200);
			for(i=0;i<60;i++)		    	   
			 {
				if(i<15) 
				 {
					IapProgramByte(0x08200+i*4,shangxing_JD_dat[i]/16777216%256);
					IapProgramByte(0x08200+i*4+1,shangxing_JD_dat[i]/65536%256);
					IapProgramByte(0x08200+i*4+2,shangxing_JD_dat[i]/256%256);
					IapProgramByte(0x08200+i*4+3,shangxing_JD_dat[i]%256);
				 }
				 else if(i<30) 
				  {
					IapProgramByte(0x08200+i*4,shangxing_WD_dat[i-15]/16777216%256);
					IapProgramByte(0x08200+i*4+1,shangxing_WD_dat[i-15]/65536%256);
					IapProgramByte(0x08200+i*4+2,shangxing_WD_dat[i-15]/256%256);
					IapProgramByte(0x08200+i*4+3,shangxing_WD_dat[i-15]%256);
				  }
				 else if(i<45) 
				  {
					IapProgramByte(0x08200+i*4,xiaxing_JD_dat[i-30]/16777216%256);
					IapProgramByte(0x08200+i*4+1,xiaxing_JD_dat[i-30]/65536%256);
					IapProgramByte(0x08200+i*4+2,xiaxing_JD_dat[i-30]/256%256);
					IapProgramByte(0x08200+i*4+3,xiaxing_JD_dat[i-30]%256);
				  }
				 else if(i<60) 
				  {
					IapProgramByte(0x08200+i*4,xiaxing_WD_dat[i-45]/16777216%256);
					IapProgramByte(0x08200+i*4+1,xiaxing_WD_dat[i-45]/65536%256);
					IapProgramByte(0x08200+i*4+2,xiaxing_WD_dat[i-45]/256%256);
					IapProgramByte(0x08200+i*4+3,xiaxing_WD_dat[i-45]%256);
				  }
			 }
	   }
 }
void read_GPS()
 {
   unsigned char i=0;
   unsigned long flsh1=0,flsh2=0,flsh3=0,flsh4=0;
   for(i=0;i<60;i++)
    {
	  if(i<15) 			
	   {
		 flsh1=IapReadByte(0x08200+i*4);
		 flsh2=IapReadByte(0x08200+i*4+1);
		 flsh3=IapReadByte(0x08200+i*4+2);
    	 flsh4=IapReadByte(0x08200+i*4+3);
	   	 shangxing_JD_dat[i]=flsh1*16777216+flsh2*65536+flsh3*256+flsh4;
	   }
	   else if(i<30) 
	   {
		 flsh1=IapReadByte(0x08200+i*4);
		 flsh2=IapReadByte(0x08200+i*4+1);
		 flsh3=IapReadByte(0x08200+i*4+2);
    	 flsh4=IapReadByte(0x08200+i*4+3);
	   	 shangxing_WD_dat[i-15]=flsh1*16777216+flsh2*65536+flsh3*256+flsh4;
	   }
	   else if(i<45) 
	   {
		 flsh1=IapReadByte(0x08200+i*4);
		 flsh2=IapReadByte(0x08200+i*4+1);
		 flsh3=IapReadByte(0x08200+i*4+2);
    	 flsh4=IapReadByte(0x08200+i*4+3);
		 xiaxing_JD_dat[i-30]=flsh1*16777216+flsh2*65536+flsh3*256+flsh4;
	   } 
	   else if(i<60) 
	   {
		 flsh1=IapReadByte(0x08200+i*4);
		 flsh2=IapReadByte(0x08200+i*4+1);
		 flsh3=IapReadByte(0x08200+i*4+2);
    	 flsh4=IapReadByte(0x08200+i*4+3);
		 xiaxing_WD_dat[i-45]=flsh1*16777216+flsh2*65536+flsh3*256+flsh4;
	   } 
	}
 }
void Uart1Data(uchar dat) 	// 串口发送一个字节数据
{
	SBUF=dat;
	while(!TI);
	TI=0;	
}
void UartData_Byte(uchar *byte)	//串口发送一串数据
{
	while(*byte != '\0')
	{
	  Uart1Data(*byte++);
	}
}
void delay(uint dat) 
 {
   while(dat--);
 }
uchar verify_GPSdat(uchar *dat)//读取服务器返回的数据
{
  uchar i=0;
  while(*dat != 0){
    if(*dat != GPS_dat[i]){
      return 0;
    }
    i++;
    dat++;
  }
  GPS_dat[0]=0;
  return 1;
}
void Send_Hex(unsigned char *p,unsigned char num)
{
   	while(num--)   //剩余发送的字符数
	{
        SBUF = *p; //将要发送的数据赋给串口缓冲寄存器
		while(!TI);//等待发送结束
		TI = 0;    //软件清零
		p++;       //指针加一
	}	
}
void DoSum(unsigned char *Str,unsigned char len)//校验位计算
{
	unsigned int xorsum = 0;
	unsigned char i;
	for(i=1;i<len;i++)
	{
		xorsum = xorsum + Str[i];
	}
	xorsum = 0 - xorsum;
	*(Str+i)     = (unsigned char)(xorsum >> 8);
	*(Str+i+1)   = (unsigned char)(xorsum & 0x00ff);
}
void Send_Appoint_Music(unsigned char dat )
 {	 //7E FF 06 03 00 00 01 FE F7 EF
		unsigned char Table[10];
		Table[0] = 0x7E;
		Table[1] = 0xFF;
		Table[2] = 0x06;	
		Table[3] = 0x03; //指令
		Table[4] = 0x00;
		Table[5] = 0x00;
		Table[6] = dat; 
		DoSum(Table,7);//计算校验码	
		Table[9] = 0xEF;//结束码		
		Send_Hex(Table,10);//发送指令数据
 }
void Send_Appoint_Sound(unsigned char dat)
 {
   if(Music_Busy==0&&s0) 
    {
		unsigned char Table[10];
		Table[0] = 0x7E;
		Table[1] = 0xFF;
		Table[2] = 0x06;
	
		Table[3] = 0x06; //指令
		Table[4] = 0x00;
		Table[5] = 0x00;
		Table[6] = dat;//音量
		DoSum(Table,7);//计算校验码	
		Table[9] = 0xEF;//结束码
		
		Send_Hex(Table,10);//发送指令数据
	}
 }
void read_time1() //实时读取DS1302中的时间数据
{
 uchar i;
	
		 if(state==0)
		  {
			    time_data[0]=ds1302read(0x81);
				time_data[1]=ds1302read(0x83);
				time_data[2]=ds1302read(0x85);
				time_data[3]=ds1302read(0x87);
				time_data[4]=ds1302read(0x89);
				time_data[5]=ds1302read(0x8D);  		
			 	time_data_1[0]=time_data[0]/16*10+time_data[0]%16;
				time_data_1[1]=time_data[1]/16*10+time_data[1]%16;
				time_data_1[2]=time_data[2]/16*10+time_data[2]%16;
				time_data_1[3]=time_data[3]/16*10+time_data[3]%16;
				time_data_1[4]=time_data[4]/16*10+time_data[4]%16;
				time_data_1[5]=time_data[5]/16*10+time_data[5]%16;
				 if(time_data_1[0]>59)
				   {
				 	ds1302write(0x8e,0x00); 
					ds1302write(0x80,0x80);
					ds1302write(0x80,0);
					ds1302write(0x8e,0x80);     
				   }
			    ds1302write(0x8e,0x80);				  
		  }	
		  else 
		   {
				ds1302write(0x8e,0x00); 
				ds1302write(0x80,0x80);
				
				for(i=0;i<7;i++)
				{
					time_data_2[i]=time_data_1[i]/10;
					time_data_3[i]=time_data_1[i]%10;	  
				}
				for(i=0;i<7;i++)
				{
					time_data_4[i]=time_data_2[i]*16+time_data_3[i];
				  
				}
				ds1302write(0x80,time_data_4[0]);
				ds1302write(0x82,time_data_4[1]);
				ds1302write(0x84,time_data_4[2]);
				ds1302write(0x86,time_data_4[3]);
				ds1302write(0x88,time_data_4[4]);
				ds1302write(0x8C,time_data_4[5]);
		   }     
}
//显示函数
void Display()
 {
    uchar dat=0;
	if(state<=6) 
	 {
		   	LCD12864_pos(0,0);
			if(state==1&&s0)   LCD12864_writebyte("    ");
			 else  {
					 LCD12864_writebyte("20");	
					 LCD12864_write(1,0x30+time_data_1[5]/10);		   
					 LCD12864_write(1,0x30+time_data_1[5]%10);
			       }
			LCD12864_writebyte("-");
			if(state==2&&s0)   LCD12864_writebyte("  ");
			 else  {
					 LCD12864_write(1,0x30+time_data_1[4]/10);		   
					 LCD12864_write(1,0x30+time_data_1[4]%10);
			       }
			LCD12864_writebyte("-");
			if(state==3&&s0)   LCD12864_writebyte("  ");
			 else  {
					 LCD12864_write(1,0x30+time_data_1[3]/10);		   
					 LCD12864_write(1,0x30+time_data_1[3]%10);
			       }
//配置定时0用作常规定时,使用定时器1用作串口1波特率发生器,9600
void TimeInt(void)		 //系统定时器初始化配置
{
	TMOD=0x21;	   //定义两个定时器
	TH1=0xFD;
	TL1=0xFD;	   //定时器1用于产生波特率  晶振11.0592
	TL0 = 0x00;		//设置定时初值
	TH0 = 0x4C;		//设置定时初值	
	SCON=0x50;
	PCON=0;
	EA=1;          //开总中断
	ES=1;          //ES-串行中断允许控制位   ES = 1   允许串行中断。
	TR1=1;         //启动定时器开始工作
	ET0=1;
	TR0=1; 	
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个基于NetCore模块化、多租户CMS系统

今天给大家推荐一个基于.NetCore开发的、支持多租户的开源CMS系统。 项目简介 这是一个基于ASP.NET Core 构建的、模块化和多租户应用程序框架&#xff0c;采用文档数据库&#xff0c;非常高性能&#xff0c;跨平台的系统。 该项目可用于企业网站、个人博客、产品介绍网站等…

【计算机毕业设计】基于netty的网关推送平台

前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过…

字符流用户注册案例、字符缓冲流、字符缓冲流特有功能、字符缓冲流操作文件中的数据排序案例

文章目录字符流用户注册案例字符缓冲流字符缓冲流特有功能字符缓冲流操作文件中的数据排序案例IO流小结字符流用户注册案例 案例需求&#xff1a; 将键盘录入的用户名和密码保存到本地实现永久化存储实现步骤 获取用户输入的用户名和密码&#xff08;这里使用 scanner 键盘录…

NLP的数据增强技术总结

文章目录一、简单的数据增强技术 EDA (Easy Data Augmentation) 即Normal Augmentation Method1、同义词替换(Synonym Replacement, SR)&#xff1a;2、随机插入(Random Insertion, RI)&#xff1a;3、随机交换(Random Swap, RS)&#xff1a;4、随机删除(Random Deletion, RD)&…

JS中判断数据类型的几种方法

目录 1.typeof 2.constructor 3.instanceof 4.Object.prototype.toString.call 1.typeof &#x1f4d9; 语法 : typeof(需要判断的数据变量) &#x1f4d9; 特点: &#x1f340; 对于基本数据类型,除了null外都可以返回正确的结果;对于null,返回的是Object &#x1f34…

FL Studio21中文版本新增功能FL2023完整版

FL Studio水果简称FL&#xff0c;全称&#xff1a;Fruity Loops Studio&#xff0c;国人习惯叫它水果萝卜。FL软件现有版本是 FL Studio 21&#xff0c;已全面升级支持简体中文语言界面 。 FL Studio 21水果工具更新、新功能和插件FL Studio 21已经发布&#xff0c;并且有许多…

[附源码]java毕业设计日常饮食健康推荐系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

迭代器C11

迭代器 迭代器失效 容器使用迭代器时&#xff0c;不要改变容器的大小 /在操作迭代器的过程中&#xff08;使用了迭代器这种循环体&#xff09;&#xff0c;千万不要改变vectori容器的容量&#xff0c;也就是不要增加或者删除vectori容器中的元素 /往容器中增加或者从容器中删…

python基于百度sdk语音转文字

python基于百度sdk语音转文字 1.安装baidu-aip 这样pip install aip&#xff1b; 2.要是不行的话下载"识别、合成 RESTful API Python SDK ",解压到某个文件夹下面如&#xff1a;d:\AI 百度智能云-管理中心https://console.bce.baidu.com/ai/#/ai/speech/overview/…

【面试题】深入理解Cookie、Session、Token的区别

【面试题】深入理解Cookie、Session、Token的区别 Cookie与Session Cookie Session Cookie与Session之前的联系 Cookie与Session的在请求中的工作流程 Cookie与Session存在问题 Token 什么是Token&#xff1f; 为什么要有token&#xff1f; token认证机制 Token流…

灵界的科学丨五、心灵与意识的科学奥祕

摘自李嗣涔教授《灵界的科学》 每个人都有「自我意识」&#xff0c; 每天睡觉时「我」就不见了&#xff0c; 每天早上醒来时&#xff0c;「我」又回来了&#xff0c; 好像没有太大的改变&#xff0c; 这个「我」的物理现象是什么&#xff1f; 探索科学的最后疆界──意识 …

【感恩系列】:说点事儿 以及 我把所有的粉丝放到了中国地图上啦~

文章目录&#x1f49e;许久不见&#xff0c;甚是想念&#x1f498;初次相遇&#x1f498;为什么写博客&#xff1f;&#x1f498;写博客的收获&#x1f498;此可已无言&#x1f498;中国版图里的我们&#x1f496;设计思路&#xff1a;&#x1f496;具体实现&#x1f495;爬取粉…

【毕业设计】56-辅助驾驶系统的视觉检测\超声波\图像识别\装置研究与设计(原理图工程、仿真工程、低重复率设计文档、答辩PPT、开题报告)

【毕业设计】56-辅助驾驶系统的视觉检测\超声波\图像识别\装置研究与设计&#xff08;原理图工程、仿真工程、低重复率设计文档、答辩PPT、开题报告&#xff09; 文章目录【毕业设计】56-辅助驾驶系统的视觉检测\超声波\图像识别\装置研究与设计&#xff08;原理图工程、仿真工…

HCIP实验2-1:IS-IS 配置实验

实验 2-1 IS-IS 配置实验 实验目标 掌握IS-IS协议基本配置掌握IS-IS协议DIS优先级修改方式掌握IS-IS协议网络类型修改方式掌握IS-IS协议外部路由引入掌握IS-IS接口cost修改方式掌握IS-IS路由渗透配置方式 拓扑图 场景 使用IS-IS协议作为某网络的IGP&#xff0c;R1和R5运行在…

操作系统:操作系统概论

目录前言1. 操作系统概观1.1 操作系统与计算机系统1.1.1 操作系统1.1.2 硬件软件1.1.2.1 硬件1.1.2.2 软件1.1.2.2.1 系统软件&#xff08;操作系统层&#xff09;1.1.2.2.2 支撑软件1.1.2.2.3 应用软件1.2 操作系统资源管理技术1.2.1 资源管理1.2.1.1 资源复用1.2.1.2 资源虚化…

线性代数---第五章特征值和特征向量

1特征值的和等于a11加上a22&#xff0c;特征值的积等于行列式 2利用|λE-A|0求特征值&#xff0c;代入特征值求基础解系&#xff0c;利用基础解系求特征向量 3如果两个特征值相等&#xff0c;那么它们的特征向量也相等 当特征值是二重根时&#xff0c;有可能有一个线性无关的特…

EndNote安装与使用

一、安装 1、双击ENX9Inst.msi安装 2、进入安装目录&#xff0c;使用CHS或ENG里的文件替换安装目录文件 CHS 中文版 ENG 英文版 二、软件优化 1、EndNote Import.enf 此文件用于导入中文文献时期刊名解析错误的问题&#xff0c;右击使用EndNoteX9打开后关闭即可 2、geebin…

Navicat导入SQL文件

安装Navicat 软件下载地址 https://wwz.lanzoub.com/i3T9S0gbq2wd 参考链接接 https://www.cnblogs.com/hhaostudy/p/15898030.html 准备导入SQL文件 新建连接 点击左上角连接 -> 选择MySQL 连接名&#xff1a;任意名称都可以&#xff0c;可输入localhost 主机&#x…

[计算机毕业设计]网络流量的在线恶意应用检测系统

前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过…

【Pytorch with fastai】第 17 章 :基础神经网络

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…