基于单片机的恒流开关电源 BUCK电路设计

前言

1.1课题研究意义

开关电源顾名思义,开关电源便是使用半导体开关器件(如晶体管、场效应管、可控硅闸流管等),经过控制电路,使半导体开关器件不停地“导通”和“关闭”,让半导体开关器件对输入的电压进行脉冲调制,从而完成直流到交流、直流到直流电压变换,和输出电压可调和自动稳压。

开关电源一般有三种工作模式:频率、脉冲宽度固定模式,频率固定、脉冲宽度可变模式,频率、脉冲宽度可变模式。前一种工作模式多用于直流交流逆变电源,或直流/直流电压变换;后面两种工作模式一般用在开关稳压电源。另外,开关电源输出电压也有三种工作式样:直接输出电压的方式、平均值输出电压的方式、幅值输出电压的方式。同样的,前一种工作方式经常用在直流/交流逆变电源,或直流/直流电压变换;后两种工作模式经常用于开关稳压电源[1]。

1.2研究现状及存在问题

近半个世纪以来,国内外学者对开关电源进行了很多的研究,取得了很多的成果。

1.2.1国外研究现状

上个世纪的50年代初,美国宇航局为了搭载火箭,开关电源诞生了,这便是开关电源诞生的起源,此开关电源以小型化、轻巧化为目标。在历史进程中进行了近半个多世纪后,开关电源技术越来越成熟,更因具备了性能稳定、小、发热较低、轻、转换效率高等优点慢慢的在取代了传统电源技术下所制造的不间断工作电源,并在电子设备等各领域有了广泛的应用。最终在80年代,率先完成了大部分电子产品的电源换代,同时也完成了全面开关电源普及化。在到来的20世纪90年代,开关电源更是进入了快速发展的黄金时间,家电、电子设备都得到更广泛的应用。又经历了几十年的努力下,现在的开关电源技术都有了技术性的重大突破与发展。更多新技术的发现与开发将当代开关电源又带上了另一个全新的时期,在高新技术领域的应用更是推动了高新技术产品的发展,其中以其小型化、简便化的特征尤为突出。

1.2.2国内研究现状

国内学者有关开关电源的研究,有以下研究状况:

伴跟着开关电源的诞生,1960年代初期,我国开始对开关稳压电源进行的设计,研制并加以生产。直到60年代中期才开始慢慢地进入了实用的阶段。在对开关电源有了一定认识后,我国在70年代初期便试着开始对无工频降压变换器进行深入研究应用在开关稳压电源上,继而对其进行设计、研制和生产。最终在1974年,我国第一台工频降压变压器式的开关电源被研发出来了,输出电流是5v,工作频率是10KHz。跟着我国开关电源的向前发展,我国许多研究所、工厂等在近十年发展中也纷纷研制出来了无工频降压变换器的开关稳压电源,这种开关电源的工作频率大概在20K左右,输出的功率在1000W以下,但是其型号与用途众多,都投入电子设备、电视机、通信等领域进行广泛的使用。跟着时期的发展,因为我国半导体与工艺跟不上时期的潮流,导致了自己生产与研制的开关稳压电源的关键元器件大部分仍要经过国外进口,导致当代开关电源技术与一些先进国家相比仍存有巨大的差距。

1.2.3目前存在的问题

综上所述,目前国内外学者研究的开关电源普遍存在以下四大方面的问题:

1)多数使用模拟IC控制,控制式样不够智能化;

2)不能显示输入和输出的电流电压状况;

3)多数开关电源为固定输出;

4)可调的开关电源只能通过电位器模拟调整,不能直接得到准确的预设电压。

1.3研究内容和方式

为了设计一种更加智能化的开关电源,必须进行更深入的开关电源机理研究,下文字阐述了具体的研究内容以及研究方法。

1.3.1研究方案

设计出一种基于STC系列51单片机的BUCK型直流降压开关电源是本课题所要研究的主要内容。本系统需要达到的预期目标是:在系统完成后,系统能预置电压,其步进的电压为1V,输出的电压的限度为0V~10V,输出电流为0~1A。同时液晶显示屏上可以显示出所预置的电压,另有实时的输入输出电压,实时的电流,来使得本系统可以让调整速度加快、提升精准度,同时也能使得电压和负载的调整率降低,提升系统的效率,不在附加额外的电源板,最后还可以让输出的纹波变小等。

1.3.2内容安排

1.              首先了解课题研究的意义,和国内国外相关发展动态。

2.              大致的概述设计的开关电源的系统方案。

3.              系统的硬件设计,包括输出电路,直流斩波电路,PWM发生电路,显示电路设计等。

4.              系统的软件设计,对应用的编程软件进行流程图讲解,对所用方式进行概述所。

5.              系统调试与测试,对做好的机开关电源进行调试与数据测试并对结果进行分析。

6.              最后简要的总结本系统设计的工作要点和所得收获。


2系统分析

2.1 系统论述

直流/直流变换是将固有的直流电压转换成可调整的电压,又叫做直流斩波。它有多种拓扑结构,本系统应用的是BUCK(降压式变换电路)型直流/直流,其特征是输出的电压比输出电压低。如图2-1所示。

图2-1 BUCK电路拓扑

2.2 Buck工作原理

当Mos管或者三级管导通很长很长时间后,所有的元器件均处在一种理想状态的情况下,此时电容的电压会等于输入的电压。在这样的条件下,我们使用BUCK变换器的充电和放电这两个阶段来对这个电路进行说明:

2.2.1在电感充电的情况下

当BUCK变压器处于充电的过程时,将开关闭合,此时三级管处于导通的状态,可以用一条导线来替代,替代后的等效图如下。当输入的电压经过电感这时刻,二级管因为反接,所以没起到作用,这里删去。再加上输入的是直流,因此电感发生的电感电流是成比率上升的,具体上升多少与电感的大小有关系,电感相当于一个恒定电流源,起传递能量作用,电容等于恒定电压源,在电路里起到滤波的作用。BUCK变换器充电阶段等效图如图2-2所示。

图2-2  BUCK变换器充电阶段等效图

2.2.2在电感放电的情况下

当BUCK变压器处于放电的过程中,开关管子已经断开,此时的三级管处于截止状态,这里把它拿掉,等效电路图如下。在开关断开的时间里,因为电感的保持电流不变特征,电感上的电感电流不会一下子下降到零,而是把充电完成后所累积的电流值慢慢下降到0。在这个过程中,因为原来的电路已经断开了,因此电感沿着之前的方向,经过二极管D形成一个新的回路的,即流过电容对电容进行充电,从而保证了负载端获得连续的不间断的电流。BUCK变换器放电阶段等效图如图2-3所示。

图2-3  BUCK变换器放电阶段等效图

综上所述,BUCK变换器的升压过程便是电感能量储存和释放的过程。在充电的过程时。电感通过流过它自身的电流不断储存能量,在放电的过程时,假如电容容量足够大,那电容的两端就可以在放电的过程中保持一个持续不间断的电流放电,假如这个通断的过程不断的被重复,那么就可以够让电容两端的电压低输出的电压,从而完成降压的目的。

2.3 Buck波形分析

波形如下所示。

 导通时Q电流

闭合时C电流

L的电流和输出电流的关系:

 


 

输出电压与输入电压的关系 

 :

 2.4 Buck稳压分析

本设计采用串连型开关电源,其稳压原理框图如图2-4所示。在MOS管导通的时刻,电感L将流过的电流转换成磁能进行能量储存,电容C将流过电感L的部分电流转换成电荷储存。在MOS管关断的时刻,电感L发生反向电动势,输送给负载R并与续流二极管D组成回路,同时电容C将电荷转换成电流向负载供电。

经过不断导通与关断MOS管,使uo发生脉动电压,经过LC滤波电路使脉动电压转变成较稳定的直流电压Uo输送给负载,输出电压Uo的电压值与MOS管在一个周期内导通的时间成正比。当外部因素使输出电压或电流发生变化时,经过单片机自带的10位ADC实时采集输出的电压和电流,实时调整开关K导通的占空比,从而组成闭环电压控制电路,使输出电压能达到稳定。

图2-4开关电源模块稳压原理

2.4.1  LC滤波电路参数推导

采用输入电压25V,输出电压最大为10V,根据推导公式如式(2-1)所示:此中Ton为PWM一个周期内导通时间、Ui为输入电压、Uo为输出电压、Ud为肖特基二极管的电压降(约等于0.6V)、Io为一个直流/直流模块的输出电流。

                    (2-1)
PWM的占空比为D:

                                    (2-2)
代入数据后得到

                                        (2-3)
              一般而言,开关电源的频率越高,电感的感量可以越小,效率也可以越高。此单片机能输出的PWM最高频率为47KHZ,所以本设计选择让单片机输出47KHZ的PWM。那么f=47Khz导通时间Ton为

                (2-4)
电感量L为:

                                 (2-5)
因此将各参数代入式(2-5)得式(2-6):

           (2-6)
              计算得到32uH电感,这里采用5倍以上余量,采用150uH的电感,可降低电感温度。另外本设计采用铜线和磁芯做成的电感以增大电感的储能能量提升供电的效率。
              按照串连型开关电源的电容推导公式如式(2-7)所示,此中C为电容容量、Io为一个模块个输出电压、△Up-p为输出纹波电压,T为PWM一个周期的时间。

                              (2-7)
              输出电压最大为10V,我们设定纹波电压为0.1V,将各参数代入式(2-7)得式(2-8)结果:

                        (2-8)
              本设计采用2个1000 

 的电容,达到降低纹波电压的目的。

2.5小结

综合以上的分析论证,本单片机的开关电源设计采用BCUK拓扑,经过原理分析和认证,最终推导选择了合适的电容和电感。


3硬件设计3.1总统框架

基于单片机的开关电源设计,由STC单片机、变压器,整流滤波电路,BUCK主回路、降压稳压电路、按键电路、液晶电路、电压检测电路、电流检测电路等组成。总体设计框图如3-1图所示。下面分别论证这些方面的详细方案选择。

图3-1总体设计构架图

3.2各部分电路的选择3.2.1  单片机

STC12C5A60S2单片机,在指令代码的方面可以完全兼容传统8051,同时它的速度比传统的8051单片机要快8-12倍,体现了其高速度的一面。这系列单片机其里面有专用的集成复位电路,另有8路高速的10位ADC转换,同时还兼有2路的PWM等,它的功能之强大远超传统的8051系列。

图3-2 STC12C5A60S2单片机实物图

3.2.2  IR2104半桥驱动电路


IR2104是一种高性能的半桥驱动芯片,该芯片内部是采用被动式泵荷升压原理。上电时,电源流过快恢复二极管D向电容C充电,C上的端电压很快升至接近Vcc,这时假如下管导通,C负级被拉低,形成充电回路,会很快充电至接近Vcc,当PWM波形翻转时,芯片输出反向电平,下管截止,上管导通,C负极电位被抬高到接近电源电压,水涨船高,C正极电位这时已超过Vcc电源电压。因有D的存在,该电压不会向电源倒流,C此时开始向芯片里面的高压侧悬浮驱动电路供电,C上的端电压被充至高于电源高压的Vcc,只要上下管一直轮流导通和截止,C就会不断向高压侧悬浮驱动电路供电,使上管打开的时刻,高压侧悬浮驱动电路电压一直大于上管的S极。采用该芯片降低了整体电路的设计难道,只要电容C选择恰当,该电路运行稳定。IR2104应用电路图如3-3所示。

图3-3 IR2104应用电路图

3.2.3  电路供电电源的选择

线性降压芯片7805。这个稳压IC需要的外围元件很少,IC内部还有过流、过热及调整管的保护措施,不但价廉且输出电压很稳定。78系列的稳压集成块要考虑输出与输入压差带来的功率损耗,所以一般输入输出之间压差要大于2V。其应用电路图如图3-4所示。

图3-4  7805应用电路

3.2.4  电流检测电路

方案一:霍尔电流传感器。电流流过霍尔传感器的线圈发生磁场,磁场随电流的大小变化而变化,磁场汇集在磁环内,霍尔元件输出跟着磁场变化的电压信号。经过检测电压值,能得到电流的大小。

方案二:电阻分压检测电路。经过在输出回路中串连采样电阻,将经过电阻的电流转换成两端的电压,经过检测电压值从而获得电流值。该检测方式电路和程序控制都比较简洁。

要完成对输出电压和电流的闭环控制,务必对输出电流和电压进行采样反馈。本设计采用如下图所示的电流电压检测电路。为了便于MCU采集,分压电阻发生的电压经过由LM358组成的同相比例放大器放大后,输入到MCU的ADC端口。

LM358内部集成的是双运放,单电源和双电源都能使其工作。

图3-5 Lm358引脚图及引脚功能
要完成对输出电压和电流的闭环控制,务必对输出电流经过运放放大后进行采样反馈。本设计采用如图3-6所示的电流检测电路。

图3-6 电流检测电路

输出最大电流为2A。本设计采用电阻分压的式样对输出的电压进行实时检测,因为采样电压直接输送给单片机10位ADC进行检测,单片机供电电源为5V,所以其内部自带的检测的最高电压也为5V, 这个电路中,LM358由5V电压供电,最大输出电压和供电电源电压之前有1.2V压差,所以能输出最大电压为:

                     (3-1)
2A电流经过0.02Ω电阻得到的电压为

                     (3-2)
该电压要经过放大后才能更容易被单片机检测到,在这个应用中运放的放大倍数应该小于

                        (3-3)
这里选择R12和R10为33K和1K,放大倍数为

                        (3-4)
因为 

 > 

 , 符合设计要求。
即当电流为2A时,运放输出电压为:

                     (3-5)

3.2.5  电压检测电路

输入电压最大为10V,而单片机的采样电压最高位5V,故电压采样电阻比例应该小于

                            (3-6)
这里取R1和R5是47K 和10K,

                        (3-7)
因为 

 1< 

 2,所以满足条件。
当10V输出时,单片机检测到的电压是,

                     (3-8)
电压分压检测电路如图3-7所示。

图3-7 电压检测电路

3.2.6  按键电路

目前单按键这种模式的键盘使用方便,响应的快并且接口还简洁。综合以上本系统采用的是非编码式键盘。本系统设计应用了3 个按键,按照软件来定义它的功能,键盘与单片机的P2.3、P2.2、P2.1键盘是若干按键的集合,是向系统提供操作人员干预命令的接口设备。

S1为开关按键,按一下即有输出,按第二下即输出停止,如此循环

S2为输出电流增加。

S3为输出电压减少。

如图3-8所示

                        

图3-8 按键电路

3.2.7  液晶显示模块

系统采样1602液晶显示。液晶驱动电流较小,能显示较大信息量,无需增外设电路。

能显示多行数据,方便用户进行更多的操作。

能显示输入输出的实时电压,输出的实时电流,预设的输出电压。如图3-9所示

图3-9 1602液晶显示

3.3小结

综上所述,本开关电源设计采用STC12C5A60S2单片机发生47KHZ的PWM脉冲信号,经过IR2104控制MOS,从而控制整个BUCK(降压式变换)电路。单片机内部自带的10位ADC能通过电压电流检测电流实时反馈电流和电压数值,并由此调整输出的PWM的占空比,形成电流电压闭环控制系统。按键能设置输出电流从0.2A到2A,以0.01A递增,输出最大10V,液晶能显示实时输出电流与电压。总体电路图如3-10所示。

图3-10 总体电路图


4软件设计

51的语言主要有汇编和C两种。汇编虽然运行快,但是编程繁琐,移植性差;C具备良好的可读性和移植性。本系统采用C语言编写程序,Keil C51作为集成开发环境。

4.1电压电流双闭环控制算法设计

              由于题目要求输出电压在10V以内,输出电流应该在0.2~2A以内,所以应该具有如下C-V曲线特性,在电流和电压的双闭环控制中。

使得输出电流在2A范围内,电压在10V范围内;
控制模式如下:
电流
电压
PWM
条件
>2A
>10V
++
<=10V
--
<=2A
>10V
--
<=10V
--

软件设计包括:主程序设计,按键子程序设计,ADC中断程序设计

4.2主程序程序设计

主程序主要处理对时间要求不敏感的数据,例如按键检测,和显示电压电流状况,

此中显示这些数据时刻采用数字平均滤波算法,采集50个数据,继而取平均值,使得到的数据更加接近真实状况,使得显示出来的电压和电流不会乱跳,抗干扰能量得很大的提升。

4.3按键子程序设计

按键子程序中,按加键的话,增加输出电压预设;按减键的话,降低输出电压预设;按开关键的话,能控制IR2104的工作与否,从而控制整个BUCK的工作与否。

4.4  ADC中断程序

ADC中断程序中,因为有输入电压,输出电压,输出电流这3个数据要监测,所以采用通道轮流询问的办法完成。

于此同时,要完成电流电压检测的双闭环的话,要在ADC程序中加入PWM处理程序,使得当输出负载变动,引起检测到的输出电压ADC值变动,PWM需要实时响应这个变化,所以在ADC程序中,要加入PWM的重装数据的语句。

4.5  关键程序

void ADC_interrupt()interrupt 5                            //ADC转换完后ADC_FLAG由硬件自动置位,

{                                                      

              uint ADC_value;                                                        //ADC转换结果              10位

              ADC_CONTR&=!ADC_FLAG;                                             //clear ADCflag

              ADC_value=(ADC_RES<<2)+ADC_RESL;                                                           //              ADC_value=(ADC_RES<<2)+ADC_RESL;

              switch(channel)

              {

                            case 0:              Battery_voltage=ADC_value;            

                                                        channel=1;                                                                     

                                                        break;

                            case 1:              Boost_Buck_current=ADC_value;

                                                        if(!lock)

                                                        {                                                      

              if((Boost_voltage<370)&&(Boost_Buck_current<(OUT_Current<<1))) //((Boost_voltage<boost_temp)&&[ size][="" p][p="20," null,="" left][size="12pt]" {[="" pwm_temp--;[="" if(pwm_temp250)  PWM_temp=250;            

                                                                      }

                                                                      CCAP1H = CCAP1L =PWM_temp;

                                                        }

                                                        channel=2;                           

                                                        break;                                                      

                            case 2:Boost_voltage=ADC_value;

                                                        channel=0;

                                                        break;            

                            default:break;

              }

              ADC_CONTR=0xE8|channel;

              ADC_ready=1;                           

}

STC12C5A60S2单片机内部自带的10位ADC能通过电压电流检测电流实时反馈电流和电压数值,并由此调整输出的PWM的占空比,形成电流电压双闭环控制系统。按键能设置输出电流从0.2A到2A,以0.01A递增,输出最大10V,液晶能显示实时输出电流与电压。

5系统测试5.1实物图片

实物由万用板手工焊接,板子的正面(a)和背面(b)如图5-1所示。

 

  (a)板子正面                         (b)板子背面
图5-1 总体电路图

 5.2电压调整率测试

电压调整率,来源于电源在满载时,其输出电压因该电源的供电电压波动引起的变化,是稳压性能优劣的重要指标。

5.2.1  测试仪器

需要测试电源的电压调整率,需要直流可调压供电电源,要万用表和负载。
可调压电源:本实验采用兆信30/5A数显线性电源。如图5-1所示。
万用表:深圳胜利VC980+数字万用表,数量为4个。
负载:负载为100W 50Ω的环形滑动变阻器。
                           图5-2  可调压电源

5.2.2  测试方式

测试示意图

测量电路点如图5-3所示(3、4、5、6、7为测量点):

图5-3测量电路

测试步骤

第一步:在3、4点间用电压表测输出电压,在3、4点串入电流表在5、6点间用电压表测输出电压,在5、7点串入电流表;

第二步:在1、2点源接入市电;

第三步:调整可调变压器电阻,使电源满载输出;

第四步:调整稳压电源电压,使电压为12V,记录输入与输出电压;

第五步:逐步增大电源电压,每隔一段做一次的记录,直到输出电压的上限19V。

5.2.3  测试结果

输出输入电压测试结果如下表所示:

表5-1 输出输入电压记录表

U2(V)

12.96

13.01

14.04

15.05

16.04

17.01

18.01

19.01

Uo(V)

10.01

9.98

10.06

9.94

10.02
10.06
10.03
10.07

(测试条件为输出电压10V,输出电流为1.00A)

电压调整率推导:

               (5-1)

5.3  负载调整率测试

负载调整率:电源负载的变化会引起电源输出的变化,负载增加,输出降低,相反负载减少,输出升高。好的电源负载变化引起的输出变化较小,通常指标为3%--5%。
负载调整率是衡量电源好坏的指标。好的电源输出接负载时电压降较小。

5.3.1  测试仪器

需要测试电源的负载调整率,需要带隔离低压电源、

 万用表、负载和示波器。
可调压电源:本实验采用兆信30/5A数显线性电源。
万用表:深圳胜利VC980+数字万用表,数量为4个。
负载:负载为100W 50Ω的环形滑动变阻器。
示波器:单片机输出的载波频率为40KHZ,实
验采用Siglent双通道200M示波器,如图5-4所示。         图5-4 Siglent双通示波器

5.3.2  测试方式

测试示意图

测量电路如图5-3所示。

测试步骤

第一步:在3、4点间用电压表测输出电压,在3、4点串入电流表在5、6点间用电压表测输出电压,在5、7点串入电流表;

第二步:在1、2点间接上市电;

第三步:测试单片机输出的PWM波形、mos管脚的驱动波形。

第四步:输入电压为额定值10V,输出电流取最小值,记录最小负载量的输出电压;

第五步:调整负载为50%满载,记录对应的输出电压;

第六步:调整负载为满载,记录对应的输出电压;

测试数据记录如表5-2。

表5-2 不同负载下输出电压记录表

输出电流(A)

1.00

0.53

0.04

输出电压(V)

9.995

10.001

9.959

负载调整率推导:

     

5.3.3  测试结果

把示波器的其中一个探针接到单片机的PWM输出口,地接到另外一个端口,得到的测试波形如5-5、 把探针放在上下mos管脚G极的驱动波形波形如图5-6所示。

       

图5-5 单片机输出的PWM波形            图5-6 上下mos管脚G极的驱动波形

5.4  电路效率测试5.4.1  测试仪器

需要测试电源的带载性能及效率,需要万用表和负载。
可调压电源:本实验采用兆信30/5A数显线性电源。
万用表:数字万用表。
负载:负载为30W 50Ω的环形滑动变阻器。
示波器:单片机输出的载波频率为47KHZ。

5.4.2  测试方式:

测试示意图

测量电路如图5-3所示。

测试步骤

第一步:在3、4点间用电压表测输出电压,在3、4点串入电流表在5、6点间用电压表测输出电压,在5、7点串入电流表;

第二步:在1、2点间接入市电;

第三步:输入电压为额定值18V,

第四步:调整负载由大至小记录对应的输出电压、输入电流、输出电压、输出电流;

第五步:返回第四步,直到输出电流达到自保护的状态。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】详解二叉树

文章目录 1.树的结构及概念1.1树的概念1.2树的相关结构概念1.3树的表示1.4树在实际中的应用 2.二叉树的结构及概念2.1二叉树的概念2.2特殊的二叉树2.2.1满二叉树2.2.2完全二叉树 2.3 二叉树的性质2.4二叉树的存储结构2.4.1顺序结构2.4.2链表结构 1.树的结构及概念 1.1树的概念…

if语句知识点

作用 让顺序执行的代码产生分歧。 if 语句 作用&#xff1a;满足条件时&#xff0c;多执行一些代码。 语法&#xff1a; if(bool类型值)//bool类型相关&#xff1a;bool变量&#xff0c;条件运算符表达式&#xff0c;逻辑运算符表达式 {满足条件要执行的代码&#xff0c;写在…

c++ QT 实现QMediaPlayer播放音频显示音频级别指示器

文章目录 效果图概述代码总结 效果图 概述 QMediaPlayer就不介绍了&#xff0c;就提供了一个用于播放音频和视频的媒体播放器 QAudioProbe 它提供了一个探针&#xff0c;用于监控音频流。当音频流被捕获或播放时&#xff0c;QAudioProbe 可以接收到音频数据。这个类在需要访问…

【Java面试】六、Spring框架相关

文章目录 1、单例Bean不是线程安全的2、AOP3、Spring中事务的实现4、Spring事务失效的场景4.1 情况一&#xff1a;异常被捕获4.2 情况二&#xff1a;抛出检查异常4.3 注解加在非public方法上 5、Bean的生命周期6、Bean的循环引用7、Bean循环引用的解决&#xff1a;Spring三级缓…

结构体相关习题的补充

结构体相关习题的补充 题目1&#xff1a; 如有以下代码&#xff1a; struct student {int num;char name[32];float score; }stu;则下面的叙述不正确的是&#xff1a;( ) A.struct 是结构体类型的关键字 B.struct student 是用户定义的结构体类型 C.num, score 都是结构体…

Python中Web开发-Django框架

大家好&#xff0c;本文将带领大家进入 Django 的世界&#xff0c;探索其强大的功能和灵活的开发模式。我们将从基础概念开始&#xff0c;逐步深入&#xff0c;了解 Django 如何帮助开发人员快速构建现代化的 Web 应用&#xff0c;并探讨一些最佳实践和高级技术。无论是初学者还…

身份认证与口令攻击

身份认证与口令攻击 身份认证身份认证的五种方式口令认证静态口令动态口令(一次性口令)动态口令分类 密码学认证一次性口令认证S/KEY协议改进的S/KEY协议 其于共享密钥的认证 口令行为规律和口令猜测口令规律口令猜测 口令破解操作系统口令破解Windows密码存储机制Windows密码破…

数据结构-堆排序问题

需要在数组里面进行排序&#xff0c;我们可以采取堆排序对其解决问题 版本1&#xff1a; 创建一个数组等大的堆&#xff0c;把数组里面的数值输入到堆里面进行堆排序&#xff0c;但是这样的弊端就是&#xff0c;不是顺序排序 版本2&#xff1a; 每次我们取堆顶然后打印&#xf…

举个栗子!Tableau 技巧(275):散点图的数值重合怎么办?抖动图来咯

散点图是大家经常使用的分析图表&#xff0c;但是如果出现多个数据点具有完全相同的 X 和 Y 值&#xff0c;多个散点重叠并隐藏后&#xff0c;查看数据就很不方便了。 遇到这种情况&#xff0c;该怎么办&#xff1f;其实可以尝试将数据点稍微抖动一下&#xff01;如下图&#…

MT3045 松鼠接松果

思路&#xff1a; 求x的一个区间&#xff0c;使区间中的松果的最大y坐标和最小y坐标的差至少为D。若有多个区间&#xff0c;则取最小的那个。 即使用单调队列不断维护最大值和最小值。 首先L固定不动&#xff0c;R不断右移&#xff1a; 即若函数f(R)max[L,R]-min[L,R] >…

探秘Flask中的表单数据处理

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、Flask中的表单处理机制 三、Flask表单处理实战 四、处理表单数据的注意事项…

万字解析线控底盘技术

文章出处&#xff1a;汽车学堂Automooc 引言 在当今这个由科技驱动的时代&#xff0c;汽车电动化、智能化已成为汽车行业的热门话题。特斯拉的自动驾驶功能、蔚来的换电模式、以及比亚迪的刀片电池技术&#xff0c;这些创新不仅引领着市场趋势&#xff0c;也推动着消费者对智…

Java常用API(三)

一、Arrays类 1.定义 Arrays是一个用于操作数组的工具类。 2.常用方法 1.toString方法 public class Demo {public static void main(String[] args) {//toString 将数组变成字符串int[] arr {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};System.out.println(Arrays.toString(arr));…

DNS 解析过程

文章目录 简介特点查询方式⚡️1. 浏览器缓存2. 系统缓存&#xff08;hosts文件&#xff09;3. 路由器缓存4. 本地域名服务器5. 根域名服务器6. 顶级域名服务器7. 权限域名服务器8. 本地域名服务器缓存并返回9. 操作系统缓存并返回10. 浏览器缓存并访问流程图 总结 简介 DNS&a…

springboot2+mybatis-plus+vue3创建入门小项目[学生管理系统]02[实战篇]

01学习篇 创建一个 vue 项目 创建这个新的文件夹 创建前端项目 eggbox 数据库 SQL CREATE DATABASE IF NOT EXISTS egg DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; USE egg;CREATE TABLE stu (id INT AUTO_INCREMENT, -- 自增主键name VARCHAR(64) NOT NULL, -- 非空…

如何使用前端表格控件实现多数据源整合?

前言 作为表格产品的典型应用场景之一&#xff0c;几乎所有的行业都会存在类 Excel 报表开发这样的应用场景&#xff0c;而在这些应用场景中&#xff0c;经常会遇见下面的这些痛点&#xff1a; 报表数据往往来自多个不同的数据源&#xff0c;需要报表系统能够同时连接多个数据源…

反VC情绪:加密市场需要新的分布式代币发行方式

GME事件 GME事件反应了社交媒体在金融决策中的影响力&#xff0c;散户投资者群体通过集体行动&#xff0c;改变了很多人对股市的看法和参与方式。 GME事件中&#xff0c;meme扮演了核心角色。散户投资者使用各种meme来沟通策略、激励持股行为&#xff0c;创造了一种反对华尔街…

5. MySQL运算符和函数

文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 &&)2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 <>3.3 不等于运算符 (<> 或者 !)3.4 小于等于运算符…

AdroitFisherman模块安装日志(2024/5/31)

安装指令 pip install AdroitFisherman-0.0.29.tar.gz -v 安装条件 1:Microsoft Visual Studio Build Tools 2:python 3.10.x 显示输出 Using pip 24.0 from C:\Users\12952\AppData\Local\Programs\Python\Python310\lib\site-packages\pip (python 3.10) Processing c:\u…

QT加载CAD文件(二)LibreCAD源码编译

一、LibreCAD LibreCAD是一个开源软件&#xff0c;不用破解激活&#xff0c;可以打开编辑DXF格式的文档&#xff0c;软件大小只有二十多M&#xff0c;对于一些比较简单的图纸还是可以胜任的。本文主要讲该软件源码编译。如果了解软件的基本使用可以参考https://blog.csdn.net/…