• 基于红外技术的交通灯设计


    目录
    基于红外技术的交通灯设计 1
    摘 要 1
    Abstract 2
    1 引言 1
    1.1基于红外技术的交通灯的选题背景 1
    1.2基于红外技术的交通灯选题的现实意义 1
    1.3国内外研究现状及其发展 3
    1.3.1国内外交通控制技术 3
    1.3.2交通控制存在的问题 6
    1.4基于红外技术的交通灯主要研究的内容 7
    2 基于红外技术的交通灯总体设计 8
    2.1基于红外技术的交通灯的通行方案设计 8
    2.2基于红外技术的交通灯的功能要求 9
    2.3基于红外技术的交通灯的基本构成及原理 11
    3 系统硬件电路的设计 12
    3.1系统硬件总电路构成及原理 12
    3.1.1系统硬件电路构成 12
    3.1.2系统工作原理 13
    3.2 AT89S51单片机简介 13
    3.2.1单片机的概述 13
    3.2.2 AT89S51芯片内部结构简介 14
    3.2.3 主要引脚功能 16
    3.2.4 AT89S51芯片最小系统 18
    3.3其它硬件介绍及连接 19
    3.3.1车流量检测电路及模拟 19
    3.3.2违规检测电路及模拟 22
    3.3.3八段LED数码管 23
    3.3.4其它器件 25
    4 系统软件程序的设计 29
    4.1程序主体设计流程 29
    4.2理论基础知识 31
    4.2.1定时器原理 31
    4.2.2软件延时原理 31
    4.2.3中断原理 32
    4.2.4消抖动程序 32
    结 论 33
    致 谢 34
    参考文献 35
    附录 一 总电路图 36
    2 基于红外技术的交通灯总体设计
    2.1基于红外技术的交通灯的通行方案设计
    设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示:
    在这里插入图片描述
    图2.1 交通状态
    通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:
    ◆东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行。
    ◆东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
    ◆南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行。
    ◆南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。
    3 系统硬件电路的设计
    3.1系统硬件总电路构成及原理
    实现本设计要求的具体功能,可以选用AT89S51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,车流量检测传感器采集流量数据,光敏传感器捕获违规信号,若干按键组成时间设置和模式选择按钮和紧急按钮等,以及用1个蜂鸣器进行报警。
    3.1.1系统硬件电路构成
    本系统以单片机为核心,组成一个集车流量采集、处理、自动控制为一身的闭环控制系统。系统硬件电路由车流量检测电路、单片机、违规检测电路,状态灯,LED显示,按键,蜂鸣器组成。其具体的硬件电路总图如图3.1所示。
    在这里插入图片描述

    图3.1 总体设计电路图

    #include "reg52.H"
    #include "stdio.h"
    #include "intrins.h"
    unsigned char key_value = 20;//获取到的按键值
    //数码管位选定义
    sbit smg_we1 = P1^0;
    sbit smg_we2 = P1^1;
    sbit smg_we3 = P1^2;
    sbit smg_we4 = P1^3;
    //数码管段选定义
    unsigned char code smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,// 0 1 2 3 4	5 6 7 8	9
    					         0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};//A B	C D	E F	-0x10 不显示0x11
    unsigned char   dis_smg[8];
    unsigned char   curr_menu = 0;//当前运行模式(0正常运行,设置模式)
    unsigned char   i;//循环变量
    unsigned char   cnt_100ms = 0,cnt_500ms =0,cnt_1s = 0,cnt_s = 0;//100ms计数
    unsigned char   time_100ms_flag = 0;//100ms标志
    unsigned char   blank_flg;//闪烁标志
    unsigned char   blank_tim_cnt;//闪烁计数
    
    unsigned char   now_window=1;//当前运行状态
    sbit  EAS_RED = P2^0;//东西红
    sbit  EAS_GRE = P2^1;//东西绿
    sbit  EAS_YEL = P2^2;//东西黄
    sbit  EAS_TURN_GRE = P2^3;//东西右转弯绿
    sbit  NOR_RED = P2^4;//南北红
    sbit  NOR_GRE = P2^5;//南北绿
    sbit  NOR_YEL = P2^6;//南北黄
    sbit  NOR_TURN_GRE = P2^7;//南北右转弯绿
    
    unsigned char   led_dis_tim[4];//红绿灯时间
    unsigned char   tim_temp[4];//红绿灯时间临时变量
    
    unsigned char   cnt_eas_al;//东西闯红灯计数
    unsigned char   cnt_nor_al;//南北闯红灯计数
    
    bit alm_falg;//报警标志
    unsigned char alm_cnt;//报警时间
    sbit  beep = P1^7;//蜂鸣器报警
    
    unsigned char   count_a;//东西车流量检测计数器
    unsigned char   count_b;//南北车流量检测计数器
    
    void delay_ms(unsigned int cnt)//软件延时1MS
    {
    	unsigned int x;
    	for( ; cnt>0; cnt--)//通过for循环执行空指令延时
    	{
    		for(x=110; x>0; x--);
    	}
    }
    void time_init(void)//定时器初始化
    {
    	  TMOD |= 0x11;//time0 工作方式为1
    	  TH0 = 0xf8;//装载初值
    	  TL0 = 0x2f;//装载初值,为2ms(65535-63535)
          TR0 = 1;//开启定时器
    	  ET0 = 1;//打开中断
    	  EA=1;//打开总中断
    }
    void key_scan(void)//
    {
        static unsigned char key_new;
    	key_value = 20;//按键值还原
    	P3 |= 0xe0;
    	if((P3 & 0xe0) != 0xe0)//按键按下
    	{
    		delay_ms(1);//按键消抖动
    		if(((P3 & 0xe0) != 0xe0) && (key_new == 1))
    		{					//确认是按键按下
    			key_new = 0;
    			switch(P3 & 0xe0)
    			{
    				case 0xc0:  key_value = 1;  break;	 //得到按键值
    				case 0xa0:  key_value = 2;  break;	 //得到按键值
    				case 0x60:  key_value = 3;  break;	 //得到按键值
    			}
    		}
    	}
    	else
        key_new = 1;//
    }
    void display(void)//动态数码管扫描
    {
                static unsigned char Counter = 0;
                P0 = 0x00;
                switch(Counter)
            	{
            		case 0: smg_we1 = 0;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 1; break;
            		case 1: smg_we1 = 1;  smg_we2 = 0; smg_we3 = 1;  smg_we4 = 1; break;
            		case 2: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 0;  smg_we4 = 1; break;
            		case 3: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 0; break;
            	}
                P0 = dis_smg[Counter];
        	    Counter++;//计数器
        		if(4==Counter)
    	    	Counter=0;
    }
    void key_service(void)//按键设置显示函数
    {
                    if (key_value == 1)
                    {
                                   if (curr_menu!=1)
                                   {
                                           curr_menu = 1;
                                           tim_temp[3] = led_dis_tim[3];
                                	       NOR_RED = 0;
                   						   NOR_GRE = 1;
                   						   NOR_YEL = 1;
                                           NOR_TURN_GRE = 1;
    
                   						   EAS_RED = 0;
                   						   EAS_GRE = 1;
                   						   EAS_YEL = 1;
                                           EAS_TURN_GRE = 1;
                                           dis_smg[0] = smg_du[tim_temp[3]/10];
                                           dis_smg[1] = smg_du[tim_temp[3]%10];
                                           dis_smg[2] = smg_du[tim_temp[3]/10];
                                           dis_smg[3] = smg_du[tim_temp[3]%10];
                                   }
                    }
                    if (key_value==2)
                    {
                         cnt_eas_al++;
                    }
                    else if (key_value==3)
                    {
                         cnt_nor_al++;
                    }
    }
    /*******************************************************************************
    * 函 数 名       : display_service()
    * 函数功能		 : 显示服务函数
    * 输    入       : 无
    * 输    出       : 无
    *******************************************************************************/
    void display_service(void)
    {
    
                switch(now_window)
                {
                                 case 1://东西绿
                                 {
                                       IT0=1;	//INT0负跳变触发
                                       EX0=1;//开外部INTO中断
                                       IT1=1;	//INT1负跳变触发
                                       EX1=1;//开外部INT1中断
                                       EAS_RED = 1;
                                       EAS_GRE = 0;
                                       EAS_YEL = 1;
                                       EAS_TURN_GRE = 1;
                                       NOR_RED = 0;
                                       NOR_GRE = 1;
                                       NOR_YEL = 1;
                                       NOR_TURN_GRE = 1;
                                       dis_smg[0] = smg_du[tim_temp[0]/10];
                                       dis_smg[1] = smg_du[tim_temp[0]%10];
                                       dis_smg[2] = smg_du[tim_temp[0]/10];
                                       dis_smg[3] = smg_du[tim_temp[0]%10];
                                       if (cnt_eas_al>0)//闯红灯报警
                                       {
                                                if (!alm_falg)
                                                {
                                                    alm_falg = 1;
                                                    alm_cnt = 5;
                                                    beep = 0;
                                                    cnt_eas_al = 0;
                                                }
                                       }
                                       if (--tim_temp[0]!=0)
                                       {
                                            return;
                                       }
                                       now_window = 2;
                                 }
                                 break;
                                 case 2://黄灯
                                 {
                                       cnt_eas_al = 0;
                                       EAS_RED = 1;
                                       EAS_GRE = 1;
                                       EAS_YEL = !EAS_YEL;
                                       EAS_TURN_GRE = 1;
                                       NOR_RED = 0;
                                       NOR_GRE = 1;
                                       NOR_YEL = 1;
                                       NOR_TURN_GRE = 1;
                                       dis_smg[0] = smg_du[tim_temp[1] / 10];
                                       dis_smg[1] = smg_du[tim_temp[1] % 10];
                                       dis_smg[2] = smg_du[tim_temp[1] / 10];
                                       dis_smg[3] = smg_du[tim_temp[1] % 10];
                                       if (--tim_temp[1]!=0)
                                       {
                                          return;
                                       }
                                       now_window = 3;
                                 }
                                 break;
                                 case 3://转弯
                                 {
                                       EAS_RED = 0;
                                       EAS_GRE = 1;
                                       EAS_YEL = 1;
                                       EAS_TURN_GRE = 0;
                                       NOR_RED = 0;
                                       NOR_GRE = 1;
                                       NOR_YEL = 1;
                                       NOR_TURN_GRE = 1;
                                       dis_smg[0] = smg_du[tim_temp[2] / 10];
                                       dis_smg[1] = smg_du[tim_temp[2] % 10];
                                       dis_smg[2] = smg_du[tim_temp[2] / 10];
                                       dis_smg[3] = smg_du[tim_temp[2] % 10];
                                       if (--tim_temp[2]!=0)
                                       {
                                          return;
                                       }
    
                                       EX0=0;//关外部INTO中断
                                       EX1=0;//关外部INTO中断
                                       if (count_a>0&&count_b>0)
                                       {
                                               now_window = 4;
                                       }
                                       else if (count_a==0&&count_b==0)
                                       {
                                               now_window = 4;
                                       }
                                       else if (count_a==0&&count_b>0)
                                       {
                                               now_window = 4;
                                       }
                                       else if (count_a>0&&count_b==0)
                                       {
                                               now_window = 1;
                                       }
                                       tim_temp[0] = led_dis_tim[0];
                                       tim_temp[1] = led_dis_tim[1];
                                       tim_temp[2] = led_dis_tim[2];
                                       tim_temp[3] = led_dis_tim[3];
                                 }
                                 break;
                                 case 4://南北绿
                                 {
                                       IT0=1;	//INT0负跳变触发
                                       EX0=1;//开外部INTO中断
                                       IT1=1;	//INT1负跳变触发
                                       EX1=1;//开外部INT1中断
                                       EAS_RED = 0;
                                       EAS_GRE = 1;
                                       EAS_YEL = 1;
                                       EAS_TURN_GRE = 1;
                                       NOR_RED = 1;
                                       NOR_GRE = 0;
                                       NOR_YEL = 1;
                                       NOR_TURN_GRE = 1;
                                       dis_smg[0]= smg_du[tim_temp[0] / 10];
                                       dis_smg[1]= smg_du[tim_temp[0] % 10];
                                       dis_smg[2]= smg_du[tim_temp[0] / 10];
                                       dis_smg[3]= smg_du[tim_temp[0] % 10];
                                       if (cnt_nor_al>0)//闯红灯报警
                                       {
                                                if (!alm_falg)
                                                {
                                                    alm_falg = 1;
                                                    alm_cnt = 5;
                                                    beep = 0;
                                                    cnt_nor_al = 0;
                                                }
                                       }
                                       if (--tim_temp[0]!=0)
                                       {
                                          return;
                                       }
                                       now_window = 5;
                                 }
                                 break;
                                 case 5://黄灯
                                 {
                                       cnt_nor_al = 0;
                                       EAS_RED = 0;
                                       EAS_GRE = 1;
                                       EAS_YEL = 1;
                                       EAS_TURN_GRE = 1;
                                       NOR_RED = 1;
                                       NOR_GRE = 1;
                                       NOR_YEL = !NOR_YEL;
                                       NOR_TURN_GRE = 1;
                                        dis_smg[0] = smg_du[tim_temp[1] / 10];
                                        dis_smg[1] = smg_du[tim_temp[1] % 10];
                                        dis_smg[2] = smg_du[tim_temp[1] / 10];
                                        dis_smg[3] = smg_du[tim_temp[1] % 10];
                                       if (--tim_temp[1]!=0)
                                       {
                                          return;
                                       }
                                       now_window = 6;
                                 }
                                 break;
                                 case 6://转弯
                                 {
                                       EAS_RED = 0;
                                       EAS_GRE = 1;
                                       EAS_YEL = 1;
                                       EAS_TURN_GRE = 1;
                                       NOR_RED = 0;
                                       NOR_GRE = 1;
                                       NOR_YEL = 1;
                                       NOR_TURN_GRE = 0;
                                        dis_smg[0] = smg_du[tim_temp[2] / 10];
                                        dis_smg[1] = smg_du[tim_temp[2] % 10];
                                        dis_smg[2] = smg_du[tim_temp[2] / 10];
                                        dis_smg[3] = smg_du[tim_temp[2] % 10];
                                       if (--tim_temp[2]!=0)
                                       {
                                          return;
                                       }
                                       EX0=0;//关外部INTO中断
                                       EX1=0;//关外部INTO中断
                                       if (count_a>0&&count_b>0)
                                       {
                                               now_window = 1;
                                       }
                                       else if (count_a==0&&count_b==0)
                                       {
                                               now_window = 1;
                                       }
                                       else if (count_a>0&&count_b==0)
                                       {
                                               now_window = 1;
                                       }
                                       else if (count_a==0&&count_b>0)
                                       {
                                               now_window = 4;
                                       }
                                       tim_temp[0] = led_dis_tim[0];
                                       tim_temp[1] = led_dis_tim[1];
                                       tim_temp[2] = led_dis_tim[2];
                                       tim_temp[3] = led_dis_tim[3];
    
                                 }
                                 break;
               }
    }
    
    void time_service(void)//显示处理函数
    {
    		if(time_100ms_flag)//100ms时间到标志
    		{
                time_100ms_flag = 0;//100ms标志清零
                if (++blank_tim_cnt>5&&blank_flg==1)//闪烁时候高
                {
                      blank_tim_cnt = 0;
                      blank_flg = 0;
                }
                else if (++blank_tim_cnt>5&&blank_flg==0)//闪烁时候低
                {
                      blank_tim_cnt = 0;
                      blank_flg = 1;
                }
                if (alm_cnt>0)//闯红灯计时
                {
                    alm_cnt--;
                }
                if (alm_falg==1&&alm_cnt==0)//闯红灯报警结束
                {
                      alm_falg = 0;
                      beep = 1;
                }
                if (curr_menu == 0)//正常模式显示
                {
                        if (++cnt_1s>10)
                        {
                            cnt_1s = 0;
                            display_service();//数码显示处理
                        }
                }
                else if (curr_menu == 1)//紧急情况处理
                {
                        if (++cnt_1s>10)
                        {
                               cnt_1s = 0;
                               dis_smg[0] = smg_du[tim_temp[3] / 10];
                               dis_smg[1] = smg_du[tim_temp[3] % 10];
                               dis_smg[2] = smg_du[tim_temp[3] / 10];
                               dis_smg[3] = smg_du[tim_temp[3] % 10];
                               if (--tim_temp[3]!=0)
                               {
                                  return;
                               }
                               curr_menu = 0;
                               tim_temp[3] = led_dis_tim[3];
                        }
                }
    		}
    }
    void init_all_hardware(void)//开机初始化
    {
       		delay_ms(100);
            time_init();//定时器初始化
            led_dis_tim[0] = 30;//绿灯
            led_dis_tim[1] = 5;//黄灯
            led_dis_tim[2] = 15;//转弯
            led_dis_tim[3] = 5;
            tim_temp[0] = led_dis_tim[0];
            tim_temp[1] = led_dis_tim[1];
            tim_temp[2] = led_dis_tim[2];
            tim_temp[3] = led_dis_tim[3];
            NOR_RED = 1;
            NOR_GRE = 1;
            NOR_YEL = 1;
            EAS_RED = 1;
            EAS_GRE = 1;
            EAS_YEL = 1;
            EAS_TURN_GRE = 1;
            NOR_TURN_GRE = 1;
    }
    void main(void)//主函数
    {
    	 init_all_hardware();//初始化硬件,IO和定时器
    	 while(1)
    	 {
    		 key_scan();//按键扫描
    		 key_service();//按键设置显示函数
    		 time_service();//时间轮询处理函数
    	 }
    }
    void time0_interrupt() interrupt 1//定时器中断0
    {
    	   TF0 = 0;//清除标志
    	   TR0 = 0;//关闭定时器0
    	   display();//动态数码管扫描
    	   if (++cnt_100ms>50)//100ms定时
    	   {
    			cnt_100ms = 0;//计数清零
    			time_100ms_flag = 1;//置位100ms处理标志变量
    	   }
    	   TR0 = 1;//打开定时器0
    	   TH0 = 0xf8;
    	   TL0 = 0x2f;//装载初值2ms(65535-63535)
    }
    void exint0_interrupt(void)interrupt 0
     {
            EA = 0;
            delay_ms(10);
            count_a++;
            EA = 1;
     }
    void exint1_interrupt(void)interrupt 2
     {
           EA = 0;
           delay_ms(10);
           count_b++;
           EA = 1;
     }
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    • 362
    • 363
    • 364
    • 365
    • 366
    • 367
    • 368
    • 369
    • 370
    • 371
    • 372
    • 373
    • 374
    • 375
    • 376
    • 377
    • 378
    • 379
    • 380
    • 381
    • 382
    • 383
    • 384
    • 385
    • 386
    • 387
    • 388
    • 389
    • 390
    • 391
    • 392
    • 393
    • 394
    • 395
    • 396
    • 397
    • 398
    • 399
    • 400
    • 401
    • 402
    • 403
    • 404
    • 405
    • 406
    • 407
    • 408
    • 409
    • 410
    • 411
    • 412
    • 413
    • 414
    • 415
    • 416
    • 417
    • 418
    • 419
    • 420
    • 421
    • 422
    • 423
    • 424
    • 425
    • 426
    • 427
    • 428
    • 429
    • 430
    • 431
    • 432
    • 433
    • 434
    • 435
    • 436
    • 437
    • 438
    • 439
    • 440
    • 441
    • 442
    • 443
    • 444
    • 445
    • 446
    • 447
    • 448
    • 449
    • 450
    • 451
    • 452
    • 453
    • 454
    • 455
    • 456

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    固态硬盘SSD
    Scala学习笔记11: 操作符
    小迈科技 X Hologres:高可用的百亿级广告实时数仓建设
    云原生数据库极致弹性体验 - Amazon Aurora Serverless v2
    Zookeeper安装
    期末作业C#实现学生宿舍管理系统
    【Linux】文件操作
    威尔逊平滑点击率
    extern关键字
    此处不允许使用特性 setup 报错
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/127664152