版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9单片机串行扩展技术本章讲述的串行I/O总线扩展技术,特指在同一块印制板上,单片机和外围的串行IC芯片之间的数据交换技术,是单片机串行I/O数据交换接口和功能的扩展。本章串行I/O总线扩展技术是该技术共包含三种总线方式:SPI(SerialPeripheralInterface)总线、I2C(ICTOICBUS)总线和One-Wire总线。9.1SPI串行总线技术
串行外设总线SPI(SerialPeripheralInterface)是Motorola公司推出的串行外设总线,是一种高速的,全双工,同步的通信总线,由于其在芯片的管脚上只占用四根线,既节约了芯片的管脚又为PCB的布局节省了空间
带SPI接口的外围器件都有片选端,其特点是数据传送速度较高(可达1.05Mbps),硬件扩展比较简单,软件实现方便。一、SPI总线概述
图9-1中,Master为主器件,Slave为从器件。SCLK为同步时钟信号,由主器件产生,也简称SK;MOSI为主器件输出,从器件输入线,简称SI;MISO为主器件输入,从器件输出线,简称SO;/SS为从器件使能信号,由主器件控制,用来选择和主机通信的外围芯片。SPI系统数据交换的时序信号定义见图9-2。在
信号有效后,SPI芯片被选中,数据传送在MOSI/MISO总线上进行,在SCK的控制下,从高位至低位逐位传送。8位送完,
信号复位,传送结束。需要注意的是,对应不同的芯片,SCK信号的触发方式不同,图9-2中列出了4种形式,选用时需查阅具体SPI芯片的使用说明。另外,若使用的SPI芯片只需单向的数据传送,可省去不用的SI或SO;若只有单个芯片,可将引脚接地,此时SPI和单片机的连接只需2条线。
MCS-51系列单片机中,多数单片机内部没有SPI接口,我们可以用软件控制单片机I/O引脚的电平时序,来模拟3条总线。
TLC549是美国TI推出的一种低价位、高性能的8位A/D转换器,它以8位开关电容逐次逼近方法实现A/D转换,其转换速度小于17µs,最大转换速率为40kHz,内部系统时钟的典型值为4MHz,电源为3~6V。
1、TLC549的引脚及功能二、应用实例REF+:正基准电压输入,2.5V≤VREF+≤Vcc+0.1V。
REF-:负基准电压输入端,-0.1V≤VREF-≤2.5V。
且:(VREF+)-(VREF-)≥1V。VCC:电源,3V≤VCC≤6V。GND:地。:片选端。
DATAOUT:转换结果数据串行输出端,与TTL电平兼容,输出时高位在前,低位在后。
ANALOGIN:模拟信号输入端,0≤VANALOGIN≤Vcc,当VANALOGIN≥VREF+时,转换结果为全“1”(0xff),当VANALOGIN≤VREF-电压时,转换结果为全“0”(0x00)。
I/OCLOCK:外接输入/输出时钟输入端,用于同步芯片的输入输出操作,无需与芯片内部系统时钟同步。
2、TLC549的工作时序(1)串行数据中高位A7先输出,最后输出低位A0;
(2)在
变为低电平后,前一次转换结果的最高有效位(A7)自动置于DATAOUT总线。其余7位(A6~A0)在前7个I/OCLOCK下降沿由时钟同步输出。(5)当
变为低电平后,TLC549芯片被选中,同时前次转换结果的最高有效位MSB(A7)自DATAOUT端输出,接着要求从I/OCLOCK端输入8个外部时钟信号
第8个I/OCLOCK下降沿后,CS必须为高,或I/OCLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待转换工作的完成。
由此可见,在TLC549的I/OCLOCK端输入8个外部时钟信号期间需要完成以下工作:读入前次A/D转换结果;对本次转换的输入模拟信号采样并保持;启动本次转换开始。
【例9-1】单片机控制串行8位A/D转换器TLC549进行A/D转换,原理电路与仿真结果见图9-5。由电位计RV1提供给TLC549模拟量输入,通过调节RV1上的“+”、“−”端,改变输入电压值。编写程序将模拟电压量转换成二进制数字量,本例用P0口输出控制8个发光二极管的亮与灭显示转换结果的二进制码。参考程序如下:#include<reg51.h>#include<intrins.h> //包含_nop_()函数头文件#defineucharunsignedchar#defineuintunsignedint#defineledP0sbitsdo=P1^0; //定义P1.0与TLC549的SDO脚(即5脚DATAOUT)连接sbitcs=P1^1; //定义P1.1与TLC549的脚连接sbitsclk=P1^2;//定义P1.2与TLC549的SCLK脚(即7脚I/OCLOCK)连接voiddelayms(uintj) //延时函数{ uchari=250; for(;j>0;j--) {while(--i); i=249; while(--i); i=250; }}voiddelay18us(void) 延时约18µs函数{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();nop_();_nop_();}ucharconvert(void){ uchari,temp; cs=0;delay18us();for(i=0;i<8;i++) { if(sdo==1)temp=temp|0x01; if(i<7)temp=temp<<1; sclk=1; _nop_();_nop_();_nop_();_nop_(); sclk=0; _nop_();_nop_();} cs=1; return(temp);}voidmain(){ucharresult;led=0;cs=1;sclk=0;sdo=1;while(1) { result=convert(); led=result; //转换结果从P0口输出驱动LED delayms(1000); }}9.2串行I2C总线接口技术I2C总线(InterIntegrateCircuitBUS,或ICTOICBUS),又叫IIC总线,是Philips公司设计的一种IC芯片之间的全双工同步串行总线技术。和SPI总线相比,它用的通信连线更少,采用2条线实现数据通信。一、I2C串行总线接口基本结构
1.I2C串行总线的特点1)使用2条通信总线交换数据。一条是时钟线SCL,另一条是数据线SDA。数据线SDA上传送数据,数据传送以帧为单位,每帧含一个字节数据和一位应答信号位,数据字节的传送次序为先高位后低位;时钟线SCL提供数据传送的位同步信号。2)2条总线的数据传送都是双向的,挂接在总线上的I2C器件,接口为开漏极形式,须接上拉电阻。3)I2C芯片的寻址方式采用引脚设置、软件寻址,和MSC-51的地址总线无关。“引脚电平”是芯片有3个地址引脚,可接固定的“0”“1”电平而设置成不同的引脚地址。软件寻址指令的编码内容包括“器件标识”、“引脚电平”和“方向位”三部分,如表9-1所示。
2.I2C总线的数据传输协议及方式1.数据位的有效性规定I2C总线数据传送时,每一数据位传送都与时钟脉冲相对应。时钟脉冲为高电平期间,数据线上数据须保持稳定,在I2C总线上,只有在时钟线为低电平期间,数据线上电平状态才允许变化。2.起停控制和应答信号的规定
①“起始”信号(S)——在SCL为高期间,SDA线由高到低的变化表明数据传送开始。②“停止”信号(P)——在SCL为高期间,SDA线由低到高的变化表明数据传送停止。需要说明的是,I2C总线的启动(S)和停止(P)信号,都是由主机发出的。在启动信号出现后,总线就处于“忙”状态;在停止信号发出后,表示该主机放弃总线,总线处于空闲状态。3.数据传送形式
数据传送以数据帧为单位,每帧含1个字节8位数据和1个应答信号位,共9位。帧内字节的传送顺序是先最高位(MSB),依次到最低位(LSB)1)应答信号(A)。应答信号是接收方接收到一个字节数据后,给予发送方的回应,表示接收正常。I2C总线上传送一个字节的数据后,发送方在第9个SCL脉冲高电平期间,释放SDA线(高电平),接收方使该线变为低电平,作为应答信号。发送方在收到应答信号后,才能继续进行后续的数据发送。2)非应答信号(
)。如果接收方未能收到数据字节,在第9个SCL脉冲高电平期间,它将在数据线SDA上发出“非应答”信号,即高电平。发送方在收到该信号后,发出停止信号或新的起始信号。当主机接收来自从机的数据时,在接收最后一个数据帧后,须发出非应答信号,使从机释放SDA线,以便随后主机发出停止信号。(1)总线初始化函数
初始化函数的功能是将SCL和SDA总线拉高以释放总线。参考程序:#include<reg51.h>#include<intrins.h> //包含函数_nop_()的头文件sbitsda=P1^0; //定义I2C模拟数据传送位sbitscl=P1^1; //定义I2C模拟时钟控制位voidinit() //总线初始化函数{ scl=1; //scl为高电平_nop_(); //延时约1µssda=1; //sda为高电平delay5us(); //延时约5µs}
二、I2C总线的信号时序及模拟(2)起始信号S函数。要求一个新的起始信号前总线的空闲时间大于4.7µs,而对于一个重复的起始信号,要求建立时间也须大于4.7µs。图9-12(a)为起始信号的时序波形在SCL高电平期间SDA发生负跳变。起始信号到第1个时钟脉冲负跳沿的时间间隔应大于4µs。起始信号S的函数:voidstart(void) //起始信号函数{scl=1; sda=1;delay5us();sda=0;delay4us();scl=0;}(3)终止信号P函数。图9-12(b)为终止信号P的时序波形。在SCL高电平期间SDA的一个上升沿产生终止信号。终止信号函数:voidstop(void) //终止信号函数{scl=0;sda=0;delay4us();scl=1;delay4us();sda=1;delay5us();sda=0;}(4)应答位函数。发送接收应答位与发送数据“0”相同,即在SDA低电平期间SCL发生一个正脉冲。发送接收应答位的函数:voidAck(void){ uchari;sda=0;scl=1;delay4us();while((sda==1)&&(i<255))i++;scl=0;delay4us();}
(5)非应答位/数据“1”函数。发送非应答位与发送数据“1”相同,即在SDA高电平期间SCL发生一个正脉冲。发送非接收应答位/数据“1”的函数:voidNoAck(void) { sda=1;scl=1;delay4us();scl=0;sda=0;}三、应用实例许多公司都推出带有I2C接口的单片机及各种外围扩展器件,常见的有ATMEL的AT24C××系列存储器、PHILIPS的PCF8553(时钟/日历且带有256×8RAM)和PCF8570(256×8RAM)、MAXIM的MAX117/118(A/D转换器)和MAX517/518/519(D/A转换器)等。AT240XX系列芯片是ATMEL公司的产品,是一种采用I2C总线接口技术的EEPROM器件,该系列常见的型号有AT2401A/02/04/08/16等5种,其存储容量分别为1024/2048/4096/8192/16384位,也就是128/256/512/1024/2048字节。1.AT24C02芯片简介(1)封装与引脚
AT24C02的封装形式有双列直插(DIP)8脚式和贴片8脚式两种,无论何种封装,其引脚功能都是一样的。(2)存储结构与寻址
AT24C02存储容量为256B,分为32页,每页8B。有两种寻址方式:芯片寻址和片内子地址寻址。
①芯片寻址。AT24C02芯片地址固定为1010,它是I2C总线器件的特征编码,其地址控制字的格式为1010A2A1A0R/W*。A2A1A0引脚接高、低电平后得到确定的3位编码,与1010形成7位编码,即为该器件的地址码。由于A2A1A0共有8种组合,故系统最多可外接8片AT24C02,R/W*是对芯片的读/写控制位。②片内子地址寻址。在确定了AT24C02芯片的7位地址码后,片内的存储空间可用1字节的地址码进行寻址,寻址范围为00H~FFH,即可对片内的256个单元进行读/写操作。(3)写操作
AT24C02有两种写入方式,字节写入与页写入。
①字节写入方式。单片机(主器件)先发送启动信号和1字节的控制字,从器件发出应答信号后,单片机再发送1字节的存储单元子地址(AT24C02内部单元的地址码),单片机收到AT24C02应答后,再发送8位数据和1位终止信号。②页写入方式。单片机先发送启动信号和1字节控制字,再发送1字节存储器起始单元地址,上述几个字节都得到AT24C02应答后,就可发送最多1页的数据,并顺序存放在已指定的起始地址开始的相继单元,最后以终止信号结束。(4)读操作
AT24C02读操作也有两种方式,即指定地址读和指定地址连续读。①指定地址读方式。单片机发送启动信号后,先发送含有芯片地址的写操作控制字,AT24C02应答后,单片机再发送1字节的指定单元地址,AT24C02应答后再发送1个含有芯片地址读操作控制字,此时如AT24C02应答,被访问单元的数据就会按SCL信号同步出现在SDA线上,供单片机读取。②指定地址连续读方式。指定地址连续读方式是单片机收到每个字节数据后要做出应答,只有AT24C02检测到应答信号后,其内部的地址寄存器就自动加1指向下一个单元,并顺序将指向单元的数据送到SDA线上。【例9-2】单片机通过I2C串行总线扩展1片AT24C02,实现单片机对存储器AT24C02的读、写。由于Proteus元件库中没有AT24C02,可用FM24C02芯片代替。AT89S51与FM24C02的接口原理电路见9-14。KEY1作为外部中断0的中断源,当按下KEY1,单片机通过I2C总线发送数据0x55给AT24C02,等发送数据完毕后,将0x55送P2口通过LED显示。KEY2作为外部中断1的中断源,当按下KEY2时,单片机通过I2C总线读AT24C02,等读数据完毕后,将读出的最后数据0xaa送P2口的LED显示出来。本例参考程序:#include"reg51.h"#include"intrins.h" //包含有函数_nop_()的头文件#defineucharunsignedchar#defineuintunsignedint#defineoutP2 //发送缓冲区的首地址sbitscl=P1^1; sbitsda=P1^0;sbitkey1=P3^2;sbitkey2=P3^3;uchardatamem[4]_at_0x55; //发送缓冲区的首地址ucharmem[4]={0x41,0x42,0x43,0xaa};//欲发送的数据数组uchardatarec_mem[4]_at_0x60; //接收缓冲区的首地址voidstart(void); //起始信号函数voidstop(void); //终止信号函数voidsack(void); //发送应答信号函数bitrack(void); //接收应答信号函数voidackn(void); //发送无应答信号函数voidsend_byte(uchar); //发送一个字节函数ucharrec_byte(void); //接收一个字节函数voidwrite(void); //写一组数据函数voidread(void); //读一组数据函数voiddelay4us(void); //延时4µsvoidmain(void) //主函数{EA=1;EX0=1;EX1=1; //总中断开,外中断0与外中断0允许中断while(1);}voidext0()interrupt0 //外中断0中断函数{write(); //调用写数据函数}voidext1()interrupt2 //外中断1中断函数{read(); //调用读数据函数}voidread(void) //读数据函数{uchari;bitf;start(); //起始函数send_byte(0xa0); //发从机的地址f=rack(); //接收应答if(!f){start(); //起始信号send_byte(0xa0);f=rack();send_byte(0x00); //设置要读取从器件的片内地址f=rack();if(!f){ or(i=0;i<3;i++) { rec_mem[i]=rec_byte(); sack(); } rec_mem[3]=rec_byte();ackn(); } } }stop();out=rec_mem[3];while(!key2);}voidwrite(void) //写数据函数{uchari;bitf;start();send_byte(0xa0);f=rack();-if(!f){ send_byte(0x00); f=rack();if(!f){ for(i=0;i<4;i++) { send_byte(mem[i]); f=rack(); if(f)break; }}}stop();out=0xc3;while(!key1);}voidstart(void) //起始信号{scl=1;sda=1;delay4us();sda=0;delay4us();scl=0;}voidstop(void) //终止信号{scl=0;sda=0;delay4us();scl=1;delay4us();sda=1;delay5us();sda=0;}bitrack(void) //接收一个应答位{bitflag;scl=1;delay4us();flag=sda;scl=0;return(flag);}voidsack(void) //发送接收应答位{sda=0;delay4us();scl=1;delay4us();scl=0;delay4us();sda=1;delay4us();}voidackn(void) //发送非接收应答位{sda=1;delay4us();scl=1;delay4us();scl=0;delay4us();sda=0;}ucharrec_byte(void) //接收一个字节{uchari,temp;for(i=0;i<8;i++){ temp<<=1; scl=1;delay4us(); temp|=sda; scl=0; delay4us();}return(temp);}voidsend_byte(uchartemp) //发送一个字节{uchari;scl=0;for(i=0;i<8;i++){ sda=(bit)(temp&0x80); scl=1; delay4us(); scl=0; temp<<=1;}sda=1;}voiddelay4us(void) //延时4µs{_nop_();_nop_();_nop_();_nop_();}9.3串行单总线(1-Wire)技术
单总线(也称1-Wirebus)由美国DALLAS公司推出的外围串行扩展总线。只有一条数据输入/输出线DQ,总线上所有器件都挂在DQ上,电源也通过这条信号线供给。单总线系统中配置的各种器件,由DALLAS公司提供的专用芯片实现。每个芯片都有64位ROM,厂家对每一芯片都用激光烧写编码,其中存有16位十进制编码序列号,它是器件的地址编号,确保它挂在总线上后,可以唯一被确定。
单片机和单总线芯片交换数据过程,一般分为三个步骤:一是主机对总线的初始化,包括呼叫从机芯片和从机芯片回答;二是单片机发出芯片寻址指令,通过和每个芯片固有的64位ROM地址代码相比较,使指定的芯片成为数据交换的对象,而其余的芯片则处于等待状态;三是单片机发送具体操作指令进行读写操作。在只有一个从机芯片的情况下,步骤二可以省略其中的寻址的过程,仅执行一条“跳跃”命令,然后进入步骤三。一、单总线的工作原理单总线工作时序:1)初始化序列时序。该时序由主机发出,对单总线系统进行复位,并由从机发出应答信号。
初始化时序包括主机发出的复位脉冲和从机的应答脉冲,该过程至少需要960us。如图9-16,主机在总线上输出“0”电平并保持至少480us作为复位脉冲,表示主机对系统复位并呼叫从机,然后主机释放总线,总线在上拉电阻的作用下变为“1”电平,至此复位脉冲完成;从机在接到主机的复位脉冲后,先对自己内部复位,然后对总线输出“0”电平,并保持60us~240us,作为对主机呼叫的应答信号,主机检测到该信号,即可确认总线上有从机存在。
2)写时序。如图9-17。在“写时序”中,主机对从机写1位数据。一个写时序至少60us,在两个写时序之间要有1us的恢复时间。
(1)写“0”。主机向总线输出“0”,并保持60us后释放总线。从机在写时序开始15us后开始对总线采样,读入总线数据。
(2)写“1”。主机向总线输出“0”,1us后输出“1”并保持60us。从机在写时序开始15us后开始对总线采样,读入总线数据。3)读时序。如图9-18。单总线器件仅在主机发出读时序时,才向主机送出数据,所以在主机发出读数据命令后,必须立即产生读时序,以便从机开始传送数据。每个读时序也至少需要60us时间。且两个读时序的间隔也至少为1us。读时序由主机发起,拉低总线至少15us,然后从机接管总线,开始发送“0”或“1”数据,主机在1us后采样总线接收数据。二、应用实例数字温度传感器DS18B20是采用单总线方式的温度传感器。(1)DS18B20芯片的主要特点●工作电压3.0V~5.5V●温度测量范围-55°C~125°C●在-10°C~+85°C范围内,测量精度为±0.5°C。●待机状态下无功率消耗。●可编程分辨率9~12位,每位分别代表0.5°C、0.25°C、0.125°C和0.0625°C。●温度测量时间200ms。
(
2)DS18B20芯片内部结构DS18B20芯片内部中主要部件是64位光刻ROM和温度传感器。64位的光刻ROM,其中存放着64位的序列号代码,在出厂前被厂家制作固化在芯片中,是该芯片的地址序列代码。64位代码的排序是:开始8位(28H)是产品类型标号,接下来的48位是该芯片自身的序列号,最后8位是前面56位数字的循环冗余校验码(CRC=X8+X5+X4+X+1)。该序列代码在主机发出读ROM指令后可被读出,主机可由此确定芯片的身份。
温度传感器是芯片的核心部分,它连续地对物体温度进行测量,并连续地将新测量结果存放在高速暂存器RAM中,存放形式如下:
测量温度值被放在两个字节中,高字节的高5位是符号位,代表一位符号。若这5位均为“0”,表示符号为正,测量温度为正值;若这5位均为“1”,则表示符号为负,测量的温度为负值。高字节的低3位和低字节的8位,共11位,是测量的数值部分。测量值为正时,将数值乘以0.0625即可得到实际测量温度数;测量值为负时,将数值其变补再乘以0.0625即可得到实际测量温度的绝对值。温度转换的计算方法。当DS18B20采集的温度为+125℃时,输出为0x07d0,则:实际温度=(0x07d0)/16=(0×163+7×162+13×161+0×160)/16=125℃当DS18B20采集的温度为-55℃时,输出为0xfc90,由于是补码,则先11位数据取反加1得0x0370,注意符号位不变,也不参加运算,则
实际温度=(0x0370)/16=(0×163+3×162+7×161+0×160)/16=55℃
注意,负号则需对采集的温度进行判断后,再予以显示。
非易失性温度报警触发器TH、TL以及配置寄存器由9字节的E2PROM高速暂存器组成。
当单片机发给DS18B20温度转换命令后,经转换所得温度值以两字节补码形式存放在高速暂存器的第1字节和第2字节。单片机通过单总线接口读得该数据,读取时低位在前,高位在后,第3、4、5字节分别是TH、TL以及配置寄存器的临时副本,每一次上电复位时被刷新。第6、7、8字节未用,为全1。读出的第9字节是前面所有8个字节的CRC码,用来保证正确通信。一般情况下,用户只使用第1字节和第2字节。DS18B20片内非易失性温度报警触发器TH和TL可由软件写入用户报警的上下限值。高速暂存器中第5个字节为配置寄存器,可对其更改DS18B20的测温分辨率。
其中,TM位出厂时已被写入0,用户不能改变;低5位都为1;R1和R0用来设置分辨率。单片机对DS18B20的读写过程的三个步骤是:
(1)发出初始化时序。单片机将总线拉低480us,DS18B20收到复位信号后即开始自身复位,并发出应答信号(输出一持续60~240µs的低电平),然后进入测温状态,并将测得温度随时装入高速暂存器RAM中,等待读出;
(2)写时序。单片机将数据线电平从高拉到低时,产生写时序,有写“0”和写“1”两种时序。
(3)读时序,当单片机从DS18B20读取数据时,产生读时序。此时单片机将数据线电平从高拉到低使读时序被初始化。如果在此后15µs内,单片机在数据线上采样到低电平,则从DS18B20读的是“0”;如果在此后的15µs内,单片机在数据线上采样到高电平,则从DS18B20读的是“1”。DS18B20所有命令均为8位长,常用的命令代码见表9-6。【例9-3】利用DS18B20和LED数码管组成单总线温度测量系统,原理电路见图9-20。DS18B20测量范围是−55~128℃。本例只显示00~99。
电路中74LS47是BCD-7段译码器/驱动器,用于将单片机P0口输出欲显示的BCD码转化成相应的数字显示的段码,并直接驱动LED数码管显示。参考程序:#include"reg51.h"#include"intrins.h"#defineucharunsi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海工商职业技术学院《安装工程计量计价》2025-2026学年第一学期期末试卷(A卷)
- 上海工商职业技术学院《安全生产事故案例分析技术》2025-2026学年第一学期期末试卷(B卷)
- 2026年茶字体设计数字创意教学
- 初中2025年青春期主题班会说课稿
- 初中责任意识主题班会2025说课稿
- 上饶卫生健康职业学院《AutoCAD》2025-2026学年第一学期期末试卷(A卷)
- 2025年动力电池回收产业园区运营管理案例分析
- 上海音乐学院《安全工程信息技术与管理》2025-2026学年第一学期期末试卷(B卷)
- 上海音乐学院《Android 开发技术课程设计》2025-2026学年第一学期期末试卷(B卷)
- 上海震旦职业学院《安全系统工程学》2025-2026学年第一学期期末试卷(A卷)
- 离心泵的结构和工作原理
- 2023年广州市黄埔区中医院护士招聘考试历年高频考点试题含答案解析
- 第四章基层疾病预防控制与妇幼保健职能演示文稿
- D500-D505 2016年合订本防雷与接地图集
- 高考乡土散文的阅读技巧
- 电力建设施工质量验收及评价规程强制性条文部分
- 第六章光化学制氢转换技术
- JJG 1105-2015氨气检测仪
- GB/T 4295-2019碳化钨粉
- 西部钻探套管开窗侧钻工艺技术课件
- 徐汇滨江规划和出让情况专题培训课件
评论
0/150
提交评论