【小白51单片机专用教程】protues仿真AT89C51入门

课程特点

  • 无需开发板
  • 0基础教学
  • 软件硬件双修
  • 辅助入门

        本课程面对纯小白,因此会对各个新出现的知识点在实例基础上进行详细讲解,有相关知识的可以直接跳过。课程涉及protues基本操作、原理图设计、数电模电、kell使用、C语言基本内容,所有涉及知识都将建立在实例的基础上放心食用。

食用教程

  • 详细目录,随时跳过已知部分;
  • 全小白按步骤全程跟学;
  • 有开发板的交叉理解开发板的原理图与我们设计的原理图

本次实验内容

        设计一个AT89C51控制的LED灯,实现用程序点亮或者熄灭LED灯。熟悉使用protues和keil软件的基本操作,包括工程建立,原理图设计,程序编写等。 

目录

课程特点

本次实验内容

软件准备

 protues基本操作

新建工程

绘制AT89C51最小系统的原理图

电源电路

晶振电路

晶振的基本概念

无源晶振电路的设计

晶振电路的绘制

 复位电路

复位电路的作用

按键复位电路设计

上电复位电路设计

绘制复位电路

外设电路

IO口介绍

LED灯设计思路

绘制外设电路

 keli

新建工程

工程设置

新建c语言文件

新建头文件

编程

原理图逻辑分析

程序编写

编译

protues验证


软件准备

  • protues
  • keil C51

版本说明:

        电脑版本:作者使用的是WIN10,但这并不代表WIN11不能用,具体软件版本可能会不一样,但关系不大,自己电脑能用就行,核心内容大差不差。

        protues的版本作者用的是v8.15,推荐使用近10年以内即可,功能大差不差。注意不要太老也不要太新,太老的可能系统不契合,特别是win11,太新的不稳定,bug多。

        keil的版本:keil可以直接从keil官网下载,需要注意的是一定一定选择C51这个版本。

        因为电脑的差异性和系统的差异性,这里不提供安装教程,同学们可以在CSDN上搜索适合自己的安装教程即可,这两个软件安装还是比较简单的。

安装教程推荐:

keil C51icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_41995541/article/details/107447912

protues8.15安装教程icon-default.png?t=O83Ahttps://blog.csdn.net/m0_67742803/article/details/129488383

 protues基本操作

        小白可读,其他人可跳过;

新建工程
  1. 双击打开软件:
  2. 新建工程
  3.  更改工程名,及其路径(路径选择一个自己能找到的就行,但是建议新建文件夹统一管理)
  4. 一直进行下一步即可,最后会进入到原理图界面
  5. 点击左侧第二个黄色图标(选择元件模式),然后点击P,进入库中选择元器件
  6. 搜索元器件,双击选中,选完点击确定

    常用的元器件名:
    元器件原理图库名
    AT89C51AT89C51
    电容CAP
    电阻RES
    晶振CRYSTAL
    开关SWITCH
    蓝色LEDLED-BULU
绘制AT89C51最小系统的原理图

最小系统原理图包括以下几个部分:

  • 电源电路
  • 晶振电路
  • 复位电路
电源电路

        电源电路用于电路板所有模块的供电,其设计需要依据所有元器件的具体情况设计,其涉及多个内容,在protues中拥有自带的电源供电网络系统,不需要进行设计

        如果读者需要相关设计过程,可以在评论区留言或者私信。

         每当电路板进行增减外设时都需要修改电源电路,因此在这里我就不单独设计了,如果有需要作者会单独出一期电源电路设计思路。

        电网配置

        protues自带三个电源,分别是VCC/VDD的+5V电源、GND的0V电源和VEE的-5V电源。

1.菜单栏找到设计->配置供电网

2. 在这里可以看到自带的3个电源,我们现在不需要任何操作,只要记得电网配置在这里

晶振电路
晶振的基本概念

        晶振的作用

        晶振是单片机工作的心脏,和我们的心脏一样,晶振电路会提供源源不断的周期信号,一般为正弦波。

        晶振的作用是为系统提供基本的时钟信号,通常一个系统共用一个晶振,便于各部分保持同步。简单来说就像音乐节拍一样,晶振提供这个节拍,系统的所有指令都根据节拍的律动去执行,使得系统协调统一。

        晶振工作原理

        晶振一般是石英晶体谐振器,它是利用石英晶体的压电效应制成的一种谐振器件。当在晶片两极外加电压后,晶体会产生变形;反之,如外力使晶片变形,则两极上金属片又会产生电压。这种机械振动的振幅通常比较小,但其振动频率则很稳定。当外加交变电压的频率与晶片的固有频率(由晶片的尺寸决定)相等时,机械振动的幅度将急剧增加,这种现象称为压电谐振。

        晶振的分类

        晶振可分为有源晶振无源晶振。非常好理解,区别就是加不加电压源。

        有源晶振有四个引脚,两个引脚加直流电,一个引脚输出时钟,一个引脚悬空;有源晶振内部集成震荡电路,加入电源之后可以自身震动;

        无源晶振只有两个引脚,分别为频率输入和输出引脚,没有正反之分,无源晶振不能自己起振,需要依靠时钟电路才能产生震荡信号

无源晶振电路的设计

        所有硬件设计都需要依靠相应的设计手册为基本,在此基础上进行设计。我们查看AT89C51的数据手册可以看到无源晶振的电路形式为:

因此该电路的核心为:

  1. 选择合适的晶振频率
  2. 选择合适的外部负载电容

        AT89C51的常见频率选择可以是:6MHZ 11.0582MHZ 12MHZ 24MHZ,其中晶振频率越高抗干扰性越低,但运行速度越快,在这里我们选择11.0582MHZ的晶振,这个频率特别适用于需要精确波特率的串行通信应用,因为它能够准确地划分成常见的波特率值,同时其速度和抗干扰性也居中,综合考虑其更合适

        外部负载电容一般来说22pF,需要通过外部匹配电容来调整,但在要求不高的情况下可以直接使用手册推荐值:

        我们常用石英晶体晶振,因此这里我们可以直接选用30pF的电容。

晶振电路的绘制

        我们开始在protues中进行操作,首先学会调用元器件:点击左侧元件模式->点击需要调用的元器件->在右侧原理图空白处单击

1.我们依次调出两个电容和一个晶振和一个AT89C51芯片

 2.在左侧的终端模式选择地,点击空白处调出地

3.修改元件值 ,双击元器件,进入属性修改界面

        将电容改为30pF

        将晶振改为11.0582MHZ

         连线,连连看会吧。

 【注意】如果要删除连线,需要选中该线然后点击DEL按键,切记不是backspace建,一定是DEL。要选中线,可以框选,或者在选择模式下点击线,在元件模式下直接点很容易认为你想连线

 复位电路
复位电路的作用

        复位电路目的就是为了让芯片恢复到初始状态,从初始态开始工作。简单理解是全部程序从头开始走一遍(不完全是,新手简单理解)。

        复位电路兼顾上电复位和人工按键复位两种功能。我们可以查看一下手册的描述如下:

         因此我们要在上电时按下按键时给RST引脚两个机械周期以上的高电平。不知道两个机械周期是什么意思,没关系这个时间很短,所以只需要给一点时间就行。

按键复位电路设计

        而且在其他情况下要保持RST引脚为低电平,因此RST在正常情况下应该接地,同时按下按键就为高电平

        正常新手可能就这样设计了:

        显然这是有问题的,因为按下按键电源接地了,相当于电源短路,既不能拉高RST引脚电平,而且会让这条电源电路直接废了。但是思路是没问题的,只不过这里不能让其短路,所以我们可以加个电阻去防止其短路,这里有两条分路,我们电阻加哪里呢?思考一下!

        如果我们只是在1加上电阻,则RST引脚直接接地,电压一直为0无法被拉高;

        如果只是在2加上电阻,那么相当于电源直接接到RST,引脚虽然被拉高,但电流可能会很大,而芯片的所有引脚都有输入输出电压和电流的要求.

因此我们应该选用分压限流的方法去做这个

        分压接法既能限流,又能在按下时拉高RST引脚电压

        但我们还需要解决一个问题,就是上电复位,如何实现上电复位呢?

上电复位电路设计

        上电的时候这条路有用,平时这条路相当于断路。也就是是电路出现突变是有用,这不难可以联想到储能元件,电容或者电感;但我们电感在稳定时是通路,所以不合适,电容在稳定时相当于断路。因此我们可以并一个电容上去。

        上电复位原理

        上电时电源通过,C3与R2回路给电容C3充电加给RST一个短暂的高电平信号。这个时间取决于电容C的充电时间,充电时间越长,复位时间越长。

        电容的选择

  1. 典型值:对于AT89C51单片机,常用的电容值为10uF。这个值能够确保在上电时,RST引脚能够保持足够的高电平时间,以满足单片机复位的要求。

  2. 计算依据:电容的充电时间与RC时间常数有关。根据公式t=RC×ln⁡[(V1−V0)/(V1−Vt)]t=RC×ln[(V1−V0)/(V1−Vt)],其中V0为电容上的初始电压值,V1为电容最终可充到或放到的电压值,Vt为t时刻电容上的电压值。为了确保复位信号有效,通常要求RST引脚的高电平持续时间大于两个机器周期(约24个振荡周期)。

  3. 实际应用:在实际应用中,由于电容两端电压不能突变,因此在系统上电时,电容会开始充电,导致RST引脚出现一个持续的高电平。这个高电平的持续时间由RC电路决定,因此选择合适的电容值至关重要。

        电阻的选择

  1. 典型值:对于AT89C51单片机,R1常用的电阻值为220Ω,R2常用的电阻值为1kΩ。这个值与22uF的电容配合使用,可以形成典型的RC复位电路。

  2. 计算依据:电阻R2的值需要与电容的值相匹配,以确保RC时间常数满足复位要求。根据上述公式,电阻的值会影响电容的充电速度,从而影响RST引脚高电平的持续时间。电阻R1的值需要与R2组成的分压电路,以及RST引脚输入电路限制相匹配。

  3. 实际应用:在实际应用中,电阻不仅起到限流作用,还与电容一起决定了复位电路的稳定性和可靠性。如果电阻值过小,可能会导致电容充电过快,无法满足复位时间要求;如果电阻值过大,则可能导致充电时间过长,影响系统的启动速度。

        综上所述,对于AT89C51单片机的复位电路,建议选择10uF的电容和220Ω和1kΩ的电阻作为典型值。当然,在实际应用中,可以根据具体的系统要求和工作环境进行适当的调整。

绘制复位电路

1.调用一个地 一个电源 两个电阻 一个电容,电容电阻在元件模式

2.地和电源在终端模式,地(GROUND),电源(POWER)

外设电路
IO口介绍

        外设电路一般用IO口进行控制,我们先了解一下51单片机的IO口,查看手册可以获得以下消息

        P0口

         P1口

         P2口

        P3口

        51单片机的P0~P3口分别代表8位IO口;通过手册的信息我们可以知道,P0是漏极开路型双向IO口;而P1~P3是内部上拉电阻双向IO口。双向IO口说明该IO口可以用于输入或者输出两种用途。接下来简单讲一下漏极开路和内部上拉电阻。

        如果详细将漏极开路和内部上拉的话需要耗费大量的时间,这里只针对该IO口简单讲一下在这里的实际作用。

        漏极开路:漏极开路指的是场效应管的漏极与外部电路断开,即漏极不连接任何电路元件或电源。不知道什么是场效应管和不知道什么是漏极没关系,在这里的意思就是,该IO口为1时为开路高阻态模式;IO口为0时,IO口电压拉低接地。

        内部上拉:内部上拉是指在电路内部集成了一个上拉电阻,该电阻连接到电源电压,用于将输出节点保持在高电平状态。在这里的意思就是,IO口为1时为高电平;IO口为0时为低电平。

        漏极开路一般用于更大驱动电流的场合;P3口有第二功能;因此P1和P2口可供我们选择,P2在访问外部拓展内存时有用,因此我们优先使用P1口。

LED灯设计思路

        灯我们再熟悉不过了,初高中物理就有相关内容,对于一个直流的灯,只需要两端街上合适的电源就行,这个合适往往是电压和电流合适,尽量在额定电压和额定电流的左右。

我们先将LED调出来,双击查看其属性,可以看到额定电压和额定电流

        我们可以看到我们的额定电压是2.2V,额定电流是10mA,因此我们尽可能保持其工作在额定的环境中。

        我们知道的是电网在电源有+5V,同时51单片机的引脚高电平也是+5V;另一方面LED是一个发光二极管,属于单向导通。

        P1口为内部上拉双向IO口,可作输入也可作为输出。因此我们的LED灯设计就有两个方向,外部电源供电,IO口作为开关控制;或者由IO口供电,控制LED灯的亮灭

        设计时,是否由外部电源供电主要是取决于外设所需功率,就像LED灯这种低功率电器,可以直接用单片机供电,但对于大功率电器而言IO口功率明显不足,只能依靠外部供电。

        在这里我们直接用IO口供电,既直接将LED正极接到IO口。此时IO口电压为5V,明显高于额定电压,因此需要串联一个电阻去分压,同时因为LED额定电流是10mA,所以电阻的阻值为:

R=\frac{5V-2.2 V}{0.01 A}=280

绘制外设电路

1.调出LED 地和电阻(右击元器件可以旋转哦)

2.双击电阻设置阻值为280

3.连连看,将LED正极接到P1.0

 keli

        注意,因为工作需要作者使用的软件是集合了keil C51 C251 arm三种,因此会与你们的有一点差距,但可以忽略不影响。

新建工程

1.双击打开keil

2.菜单栏点击project->new uvision project

 

3.选择工程路径(建议建立单独文件夹储存工程,并且该文件夹你要能找到,这点非常关键)输入工程名称

4.选择芯片,搜索AT89C51,选择并确定

5.如果还有弹窗,点击ok即可 

工程设置

1.点击魔法棒

2.点击output,勾选creade HEX_File,这个非常重要,hex文件是储存单片机固件16进制文本文件。

新建c语言文件

1.点击新建并点击保存

2.命名,注意后缀为.c

新建头文件

1.点击新建并点击保存

命名,注意名字与上一个C语言文件名一样,后缀为h

2.将C语言文件添加到文件夹,双击分组选择刚刚建的C语言文件

3.看一下左边添加到就行,不要一直点,左边添加到了就行

编程
原理图逻辑分析

        所有的程序都是以硬件为基础,因此我们在编写程序之前,需要通过原理图就行逻辑分析,确认编程思路。

        同学们买了板子的就知道,它们功能丰富的同时原理图也相对复杂,对初学者很不友好。初学者需要一个容易接受的过程。这也是作者做这个课程的初衷。

        我们上面已经完成了原理图的简单绘制,现在我们来分析一下:

        上述原理图中,一共三个电路,其中晶振电路复位电路是51单片机最小系统的必备电路,与编程无关。因此我们只需要分析外设LED电路这部分,这一部分也很简单,只需要P1.0输出高电平就行。

在正式编程之前,你们可以点击一下protues左下角的仿真开始按钮:

这个时候你会发现LED是亮的,因为P1.0默认是高电平

        开启仿真之后,LED已经亮了,同时有很多不同颜色的小方块,用于表示电路各个结点的逻辑电平,红色为高电平,蓝色为低电平,灰色为不确定,引脚悬空

程序编写

        现在我们通过程序控制LED灯灭,给P1.0逻辑低电平。

1.先看一下源码:

#include "reg51.h"

sbit LED=P1^0;

void main(){
    
    while(1){
        LED=0;
    }
}

这就是关闭LED灯的全部代码,是不是很简单。简单解析一下代码:

2.头文件的引用

#include "reg51.h"//51单片机的头文件引用

        这一行是引用51单片机的头文件,每个51单片机芯片编程都需要这个头文件(这里说的是51,其他芯片不一样);

        头文件(Header File)是C语言和C++编程语言中的一种文件类型,通常以 .h 作为文件扩展名。头文件的主要作用是声明函数、宏、结构体、类、变量等,以便这些元素可以在多个源文件中共享和使用        

        头文件这个概念简单理解就是里面集成了很多你需要用的东西,作者喜欢比喻成武功秘籍,头文件有很多,功能都不一样,就像藏经阁里面的功法一样,要使用对应的功能时就用相应就要拿到对应的功法秘籍。例如你要计算cos等初等函数,就需要引用数学的功法: 

#include "math.h"//数学计算头文件

         51头文件的部分内容:

        上面声明了我们要用的P0~P3口及其它寄存器

 3.引脚定义

sbit LED=P1^0;

各个符合解析: 

sbit //表示一个二进制数据类型,是keil C51专属的关键字 常用于IO口的定义

LED  //是变量名,自己取的名字,因为P1.0是控制LED的所以作者就取了这个名字

=    //赋值,将左边的值给右边

P1^0 //表示P1.0,C语言是不知道你的P1.0是什么,它是在第一行的reg51.h这个头文件中定义的

        这句话的意思是定义了一个二进制的变量叫LED,同时这个LED代表的是51单片机的P1.0引脚(注意程序中写的是P1^0,P要大写,不能写成P1.0.)

4. 主函数结构

void main(){

    程序执行区

}

 程序都是从主函数中运行的,主函数之外的程序不会运行。

5.循环语句:

while(1){

}

 while语句的格式是这样的

while(条件){
    程序
}

         判断语句为真时,就会一直循环执行{ }里面的程序,例如我们代码中的1会使其一直循环执行{ }里面的

6.控制语句

LED=0;

        表示给LED代表的P1.0赋值0,即为低电平让LED熄灭。 

编译

1.程序写完点击编译并生成文件,主要是为了生成hex文件

2.0ERROR(0错误)表示生成成功

3.出现Target not created表示生成失败

protues验证

1.双击芯片

2.选择hex文件,上面让你在建工程的时候记住,工程路径,hex文件就在工程路径下的Objects中

3.点击仿真

        你看这灯是不是灭了,同学们可以自己多画几个LED,也可以更改LED的额定电压和电流,自己设计合适的电路,多动手哦!

新人作者,欢迎同学们在积极留言或者私信!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件设计与体系结构

1.简要说明什么是软件体系结构,软件体系结构模型,为什么要建立软件体系结构模型? 答:软件体系结构指一个软件系统在高层次上的结构化组织方式,包括系统的组成部分和各个部分之间的关系,以及它们与环境之间的…

位置式PID-控制步进电机-位置环-stm32

基本原理 1、软件设计 本闭环控制例程是在步进电机编码器测速例程的基础上编写的,这里只讲解核心的部分代码,有些变量的设置,头文件的包含等并没有涉及到,完整的代码请参考本章配套的工程。 我们创建了4个文件:bsp_pid.c和bsp_pid.h文件用来存放PID控制器相关程序,bsp_s…

汽车IVI中控开发入门及进阶(47):CarPlay开发

概述: 车载信息娱乐(IVI)系统已经从仅仅播放音乐的设备发展成为现代车辆的核心部件。除了播放音乐,IVI系统还为驾驶员提供导航、通信、空调、电源配置、油耗性能、剩余行驶里程、节能建议和许多其他功能。 ​ 驾驶座逐渐变成了你家和工作场所之外的额外生活空间。2014年,…

电力通信规约-104实战

电力通信规约-104实战 概述 104规约在广泛应用于电力系统远动过程中,主要用来进行数据传输和转发,本文将结合实际开发实例来讲解104规约的真实使用情况。 实例讲解 因为个人技术栈是Java,所以本篇将采用Java实例来进行讲解。首先我们搭建一…

AWS Transfer 系列:简化文件传输与管理的云服务

在数字化转型的今天,企业对文件传输、存储和管理的需求日益增长。尤其是对于需要大量数据交换的行业,如何高效、可靠地传输数据成为了一大挑战。为了解决这一难题,AWS 提供了一系列的文件传输服务,统称为 AWS Transfer 系列。这些…

动态规划<四> 回文串问题(含对应LeetcodeOJ题)

目录 引例 其余经典OJ题 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 引例 OJ 传送门Leetcode<647>回文子串 画图分析&#xff1a; 使用动态规划解决 原理&#xff1a;能够将所有子串是否是回文的信息保存在dp表中 在使用暴力方法枚举出所有子串&#xff0c;是…

stm32定时器输出比较----驱动步进电机

定时器输出比较理论 OC(Output Compare)输出比较输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出…

Windows电脑部署SD 3.5结合内网穿透随时随地生成高质量AI图像

文章目录 前言1. 本地部署ComfyUI2. 下载 Stable Diffusion3.5 模型3. 演示文生图4. 公网使用Stable Diffusion 3.5 大模型4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 在数字化创意时代&#xff0c;AI技术的发展为我们带来了无限可能。尤其是对于那些追求高效和高…

Easysearch Java SDK 2.0.x 使用指南(二)

在 上一篇文章 中&#xff0c;我们介绍了 Easysearch Java SDK 2.0.x 的基本使用和批量操作。本文将深入探讨索引管理相关的功能&#xff0c;包括索引的创建、删除、开关、刷新、滚动等操作&#xff0c;以及新版 SDK 提供的同步和异步两种调用方式。 SDK 的对象构建有两种方式…

Scala——身份证号码查询籍贯

object Test_身份证查询籍贯 { def main(args: Array[String]): Unit { val code "42005200210030051".substring(0,2) println(code) //判断42是哪个省的 //湖北 // if(code "42"){ // println("42对应省份为&#xff1a;湖北") // }else…

分布式系统架构:限流设计模式

1.为什么要限流&#xff1f; 任何一个系统的运算、存储、网络资源都不是无限的&#xff0c;当系统资源不足以支撑外部超过预期的突发流量时&#xff0c;就应该要有取舍&#xff0c;建立面对超额流量自我保护的机制&#xff0c;而这个机制就是微服务中常说的“限流” 2.四种限流…

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题

2024年11月 蓝桥杯青少组 STEMA考试 Scratch真题&#xff08;选择题&#xff09; 题目总数&#xff1a;5 总分数&#xff1a;50 选择题 第 1 题 单选题 Scratch运行以下程宇后&#xff0c;小兔子会&#xff08; &#xff09;。 A. 变小 B. 变大 C. 变色 D. …

Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类

Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类 CIFAR10数据集ParNet架构特点优势应用 ParNet结构代码详解结构代码代码详解SSEParNetBlock 类DownsamplingBlock 类FusionBlock 类ParNet 类 训练过程和测试结果代码汇总parnet.pytrain.pytest.py 前面文章我们构…

Docker核心技术和实现原理

目录 1. Docker镜像原理介绍1.1 操作系统基础1.2 Union FS(联合文件系统)1.3 再看 Docker 镜像是什么 2. 镜像的实现原理2.1 Docker 分层存储实现原理2.2 docker 镜像加载原理 3. 镜像分层存储实战3.1 基础知识3.2 实战过程 4. overlay 文件系统工作实战5. Docker卷原理介绍5.1…

AI的进阶之路:从机器学习到深度学习的演变(二)

AI的进阶之路&#xff1a;从机器学习到深度学习的演变&#xff08;一&#xff09; 三、机器学习&#xff08;ML&#xff09;&#xff1a;AI的核心驱动力 3.1 机器学习的核心原理 机器学习&#xff08;Machine Learning, ML&#xff09;突破了传统编程的局限&#xff0c;它不再…

34.正则表达式

python正则表达式&#xff0c;使用re模块&#xff0c;模块中三个基础方法来做正则匹配。 match re.match(匹配规则&#xff0c; 被匹配的字符串) 从字符串开头进行匹配&#xff0c;匹配成功返回匹配对象&#xff08;包含匹配的信息&#xff09;&#xff0c;匹配不成功返回空。…

xpath插件安装与使用

1.背景 在使用python爬取页面数据时,经常会遇到解析页面数据,有一个非常好用的插件工具 是:xpath插件 2.安装与使用步骤 步骤1:准备xpath插件,并解压 步骤2:添加扩展程序 点击扩展程序后: 点击:加载已解压的扩展程序 安装成功后: 关闭浏览器,重新打开浏览器就可以使用了 步…

安徽医科大学卫生管理学院与和鲸科技签署“101 数智领航计划”,共拓“医学+AI”学科建设与人才培养

为进一步强化卫生健康人才培养关键方向&#xff0c;着力加强“医学AI”的复合型交叉人才培养&#xff0c;2024 年 12 月 13 日&#xff0c;安徽医科大学卫生管理学院与上海和今信息科技有限公司&#xff08;以下简称“和鲸科技”&#xff09;召开校企合作洽谈会&#xff0c;并正…

spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))

目录 一、单个字符串或对象引用的注入。 &#xff08;1&#xff09;简单案例演示。 1、项目的基本结构和类介绍。 2、接口"UserDao"代码。 3、实现类"UserDaoImpl"代码。 4、spring配置文件。 5、测试类(MainApp)。 6、查看执行结果。(对应成员变量成功注入…

三格电子——新品IE103转ModbusTCP网关

型号&#xff1a;SG-TCP-IEC103 产品概述 IE103转ModbusTCP网关型号SG-TCP-IEC103&#xff0c;是三格电子推出的工业级网关&#xff08;以下简称网关&#xff09;&#xff0c;主要用于IEC103数据采集、DLT645-1997/2007数据采集&#xff0c;IEC103支持遥测和遥信&#xff0c;可…