版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、贵州师范大学 物理与电子科学学院 电子信息科学与技术 电子系统设计与实践课程设计报告 课程设计题目:多点温度测量系统设计专业班级 :2012级电子信息科学与技术学生姓名 :罗滨志(120802010051)张倩(120802010020) 冯礼哲(120802010001)吴道林(120802010006)朱栖安(120802010039)指导老师:刘万松老师成 绩 : 2015 年6 月 27日目 录TOC o 1-3 h u HYPERLINK l _Toc19057 摘 要4 HYPERLINK l _Toc1033 1 总体设计4 HYPERLINK l _Toc27335 1.1 功
2、能要求5 HYPERLINK l _Toc7788 1.2 总体方案及工作原理5 HYPERLINK l _Toc25813 2 系统硬件设计6 HYPERLINK l _Toc18979 21 器件选择6 HYPERLINK l _Toc3417 2.1.1主要器件的型号6 HYPERLINK l _Toc31239 2.1.2 AT89C516 HYPERLINK l _Toc8703 2.1.3智能温度传感器DS18B208 HYPERLINK l _Toc27968 2.1.4晶振电路方案9 HYPERLINK l _Toc23147 2.1.5 LED液晶显示器9 HYPERLINK
3、 l _Toc7378 2.1.6复位电路方案10 HYPERLINK l _Toc5082 2.2 硬件原理图10 HYPERLINK l _Toc8249 3 系统软件设计10 HYPERLINK l _Toc25124 3.1基本原理11 HYPERLINK l _Toc29948 3.1.1主程序11 HYPERLINK l _Toc18841 3.1.2读ROM地址程序11 HYPERLINK l _Toc8067 3.1.3显示ROM地址程序12 HYPERLINK l _Toc28914 3.1.4读选中DS18B20温度的程序12 HYPERLINK l _Toc22477 3
4、.1.5显示温度程序13 HYPERLINK l _Toc22477 3.2软件清单144实验步骤224.1实验程序调试224.2实验仿真23 HYPERLINK l _Toc21428 5设计总结24 HYPERLINK l _Toc24384 6参考文献:25摘 要温度是我们生活中非常重要的物理量。随着科学技术的不断进步与发展,温度测量在工业控制、电子测温计、医疗仪器,家用电器等各种控制系统中广泛应用。温度测量通常可以使用两种方式来实现:一种是用热敏电阻之类的器件,由于感温效应,热敏电阻的阻值能够随温度发生变化,当热敏电阻接入电路时,则流过它的电流或其两端的电压就会随温度发生相应的变化,再
5、将随温度变化的电压或者电流采集过来,进行A/D转换后,发送到单片机进行数据处理,通过显示电路,就可以将被测温度显示出来。这种设计需要用到A/D转换电路,其测温电路比较麻烦。第二种方法是用温度传感器芯片,温度传感器芯片能把温度信号转换成数字信号,直接发送给单片机,转换后通过显示电路显示即可。这种方法电路比较简单,设计方便,现在使用非常广泛。关键词:多点温度测量 单片机 温度传感器 1 总体设计多路温度测量系统的总体结构如图1所示,根据要求,整个系统包含以下几个部分:51单片机、时钟电路、复位电路组成的51单片机小系统;多块测温模块;显示温度值的显示模块和按键模块。测温模块由温度传感器组成,温度传
6、感器采用美国Dallas半导体公司推出的智能温度传感器DS18B20,温度测量范围为-55 - +125,可编程为9到12位的A/D转换精度,测温分辨率可达0.0625C,完全能够满足系统要求。DS18B20采用单总线结构,只需要一根数据线DQ即可与单片机通信,多个DS18B20可同时连接在一根数据线上与单片机通信。显示器可采用LCD液晶显示器,显示信息量大、效果好、使用方便。图1 多路温度测量系统的总体结构系统处理时,由51单片机控制从各个测温模块测量出温度数字量,存入缓冲区;然后通过按键控制,从缓冲区取出,根据数字量和温度的关系计算出温度值,依次送LCD显示器显示。1.1 功能要求多点温度
7、测量系统的功能要求如下:(1) 能够测量多点温度;(2) 精度0.1C;(3) 能够通过显示器显示测量点编号和温度值;(4)可轮流显示各测量点或指定显示某个测量点。1.2 总体方案及工作原理单片机系统由AT89C51单片机,复位电路和时钟电路组成,时钟采用12MHZ的晶振,温度模块由4块温度传感器DS18B20组成,单总线结构,所有的DS18B20的DQ连接在一起与单片机的P3.0相连,通过上拉电阻连接电源,每一个DS18B20都有一个唯一的64位ROM地址,只要发送相应的ROM地址,就能够访问该器件,要访问某个DS18B20,就必须知道它的64位ROM地址,可以通过程序读出它的ROM地址,由
8、于读ROM地址时,一次只能接入一个DS18B20,因此,4个DS18B20的数据线DQ通过开关连接到AT89C51的P3.0.另外,所有DS18B20的VDD引脚接+5V电源,GND接地;显示器采用LCD1602(LM016L),其数据线与AT89C51的P2口相连,RS与P1.7相连,R/W与P1,6相连,E端与P1.5相连。设定了两个按键,K0为功能键,与AT89C51的P1.0相连,当K0输入低电平时,读入DS18B20的ROM地址,当K0键输入高电平时,显示选中DS18B20的温度值;K1为测量点选中键,与AT89C51的P1.1相连,用于测量点选择,每按一次,测量点号加1,读入下一个
9、DS18B20的ROM地址或显示下一个DS18B20的相应温度值。2 系统硬件设计21 器件选择2.1.1主要器件的型号元件名称数量AT89C51芯片1温度传感器(DS18B20) 433PF晶振(CRYSTAL)110uF电解电容(CAP-ELEC)133pF普通电容(CAP)2LCD液晶显示器(LM016L)1300R电阻(RES)15K电阻(RES)1开关(SW-SPST)1按钮(BUTTON)5BUS22.1.2 AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-FALSH PROGRAMMABLE AND ERASABLE READ ONLY ME
10、ORY)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的单片机,单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。其基本结构如图2 图 2 AT89C51单片机的基本结构AT89C51 是一个低电压,高性能CMOS 8 位单片机,片内含8kB 的可反复擦写的Flash 只读程序存
11、储器和256B 的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51 指令系统及8052 产品引脚兼容,片内置有通用8 位中央处理器(CPU)和Flash 存储单元。 图3 AT89C51单片机的引脚VCC/GND:供电电源。 P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:标准输入输出I/O口,P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:既可
12、用于标准输入输出I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:既可以作标准输入输出I/O,也可作为AT89C51的一些特殊功能口, 管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间
13、。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,
14、此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。2.1.3智能温度传感器DS18B20电路四个DS18B20分别接一个按钮开关,便于分别控制温度,DS18B20的VCC接口接入同一总线且与显示器VDD接口相连,DQ接口与AT89C51的P3.0接口相连,GND接地,如图4;图4 智能温度传感器原理图2.1.4晶振电路方案晶振电路的功能在于给单片机提供振荡时钟信号,使单片机正常工作。本设计中采用了常用的晶振电路组成方案,具体如图5所示。图5 晶振电路2.1.5 LED液晶显示器图6 液晶显示器2.1.6复位电
15、路方案复位电路的功能在于对单片机进行复位从而达到对整个电路复位的功能。要达到目的则要求在复位按键按下后在RST引脚上要出现一个维持2个机器周期高电平4。考虑到可以利用电容的电压不能突变(需要一定的充放电时间),于是采用如下复位电路。图7 复位电路2.2 硬件原理图图8 硬件原理图3 系统软件设计3.1基本原理多路温度测量系统的软件程序主要由主程序、读DS18B20模块ROM地址程序、显示DS18B20模块ROM地址、读DS18B20模块温度值程序、显示DS18B20模块温度值程序和LCD、DS18B20模块驱动程序等组成。3.1.1主程序主程序的流程图如图9所示。图9 主程序流程图在主程序中,
16、首先对LCD初始化,其次通过检测按键,判断是读DS18B20模块的ROM地址还是读DS18B20模块的温度值,如果是读ROM地址,则依次调用读ROM程序和显示ROM程序;如果是读温度,则调用测量温度程序和显示温度程序,注意测量某个DS18B20模块之前,一定要读出该模块的ROM并保存到相应的存储单元。3.1.2读ROM地址程序读ROM地址程序的流程如图10所示。读ROM地址时,一次只能把一片DS18B20模块连接到单总线上,读ROM程序实现把当前连接到总线上的DS18B20的ROM地址读出。读ROM地址程序处理过程如下,先计算存放当前DS18B20模块ROM地址的存储单元的偏移地址,然后依次是
17、DS18B20初始化、发读ROM命令和读ROM地址到存储单元。如图10 读ROM地址程序的流程3.1.3显示ROM地址程序显示ROM地址程序实现依次从当前存放ROM地址的缓冲区中取出地址显示,显示ROM地址程序的流程图如图11所示。如图11 显示ROM地址程序的流程图3.1.4读选中DS18B20温度的程序读选中DS18B20温度的程序的流程图如图12所示。读选中DS18B20模块温度值的处理过程分3个步骤,第一是向总线放启动温度转换命令,启动连接总线上的DS18B20模块温度转换,由于12位DS18B20温度转换时间比较长,所以启动转换后一定要调用延时程序等待转换完成后才能去读温度值;第二根
18、据当前器件号取当前DS18B20器件的64位ROM地址,发送到总线匹配对应的DS18B20模块;第三向总线发读暂存器命令读匹配的DS18B20模块转换的温度值。如图12读选中DS18B20温度的程序的流程图3.1.5显示温度程序显示温度程序的流程如图13所示。显示温度程序显示读出的温度值及相应的提示信息。DS18B20的温度值是2位,存放在两个字节中,其中高字节的高5位为符号位,如果温度值是正数,则符号位为0,如果温度值是负数,则符号位为1。显示温度处理程序时,先根据高字节的高5位判断是正数还是负数,如果是正数,则提取其中的百位、十位、个位及小数位,转换成字符编码放入相应的显示缓冲区;如果是负
19、数,则提取其中的负号、十位、个位及小数位,转换成字符编码,放入相应的显示缓冲区;最后把显示缓冲区的内容显示到LCD显示器。如图13 显示温度程序的流程3.2软件清单汇编语言程序如下:;系统时钟频率12MHZ;第一片18B20的ROM地址放在20H-27H;第二片18B20的ROM地址放在30H-37H;第三片18B20的ROM地址放在40H-47H;第二片18B20的ROM地址放在50H-57HDQ BIT P3.0 ;定义单总线端口E BIT P1.5 ;定义LCD端口RW BIT P1.6RS BIT P1.7K0 BIT P1.0 ;定义功能开关,K0断开,显示温度;K0接通,读ROMK
20、1 BIT P1.1 ;定义通道选择键NUM1 EQU 3EH ;定义存放读ROM的编号NUM2 EQU 3FH ;定义存放显示通道的编号LCD_3 EQU 3DH ;存放通道温度的百、十、个、小数位LCD_2 EQU 3CHLCD_1 EQU 3BHLCD_0 EQU 3AHTEMP_DATA_L EQU 4EH ;存放读出的18B20的12为编码 TEMP_DATA_H EQU 4FH ORG 0000H LJMP MAINORG 0030HMAIN: MOV SP, #60H MOV NUM1, #0 ;编号初始化为0MOV NUM2, #0CALL LCD_INIT ;LCD初始化AG
21、AIN: JB K0, DISPTEMP ;判读ROM,还是显示温度READ: JB K1, NEXT1 ;读ROM,默认读0号,按一次K1编号加1 JNB K1, $INC NUM1MOV A, NUM1CJNE A, #4, NEXT1 ;如果加到4,则回到0MOV NUM1, #0NEXT1: LCALL READ_ROM ;读当前ROM保存 LCALL DISP_ROM ;显示当前ROMSJMP AGAINDISPTEMP: JB K1, NEXT2 ;显示温度,默认显示0号,按一次K1编号加1 JNB K1, $INC NUM2MOV A, NUM2CJNE A, #4, NEXT2
22、 ;如果加到4,则回到0MOV NUM2, #0NEXT2: LCALL READ_TEMP ;读当前匹配18B20的温度,保存 LCALL DISP_TEMP ;显示当前匹配18B20的温度SJMP AGAIN;*;匹配ds18b20,读模块温度值到缓冲区;*READ_TEMP: MOV R0, #20H MOV A, NUM2 MOV B, #10H ;由编号取得缓冲区地址 MUL AB ADD A, R0 MOV R0, A LCALL DS18B20_INIT ;18B20初始化 MOV A, #0CCH ;跳过ROM命令 LCALL WRITE_BYTE MOV A, #44H ;启
23、动温度转换 LCALL WRITE_BYTE LCALL DELAY LCALL DELAY LCALL DS18B20_INIT ;18B20初始化 MOV A,# 55H LCALL WRITE_BYTE ;发匹配命令 MOV R5, #08HLOOPREAD: MOV A, R0 ;送入匹配的64位ROM地址 LCALL WRITE_BYTE INC R0 DJNZ R5, LOOPREAD MOV A, #0BEH LCALL WRITE_BYTE ;发读暂存器 LCALL READ_BYTE ;读出温度低字节 MOV TEMP_DATA_L, A LCALL READ_BYTE ;读
24、出温度高字节 MOV TEMP_DATA_H, A RET;*;显示匹配模块温度程序;*DISP_TEMP: MOV A, #80H ;写入显示缓冲区起始地址为第1行第1列 ACALL WC51R MOV A, #A ;第1行第1列显示字母A ACALL WC51DDR MOV A, #D ;第1行第2列显示字母D ACALL WC51DDR MOV A, #D ;第1行第3列显示字母D ACALL WC51DDR MOV A, #R ;第1行第4列显示字母R ACALL WC51DDR MOV A, #: ;第1行第5列显示字母: ACALL WC51DDR MOV A, # ;第1行第6列
25、显示空格 ACALL WC51DDR MOV A, NUM2 ;第1行第7列显示编号 ADD A, #30H ACALL WC51DDR MOV A, #0C0H ;写入显示缓冲区起始地址为第2行第1列 ACALL WC51R MOV A, #T ;第2行第1列显示字母T ACALL WC51DDR MOV A, #E ;第2行第2列显示字母E ACALL WC51DDR MOV A, #M ;第2行第3列显示字母M ACALL WC51DDR MOV A, #P ;第2行第4列显示字母P ACALL WC51DDR MOV A, #: ;第2行第5列显示字母: ACALL WC51DDRCO
26、NVERT_T: MOV A, TEMP_DATA_H ANL A, #80H JZ TEMPC1 ;如果温度寄存器里的高位为1,则温度为负 CLR C MOV A, TEMP_DATA_L CPL A ;负温度将补码转成二进制,取反再加1 ADD A, #01H MOV TEMP_DATA_L,A MOV A, TEMP_DATA_H CPL A ADDC A, #00H MOV TEMP_DATA_H,A MOV A, TEMP_DATA_L ANL A, #0FH MOV DPTR, #TABLE2 MOVC A, A+DPTR ;查表得小数位的值 MOV LCD_0, A MOV A,
27、 TEMP_DATA_L ANL A, #0F0H SWAP A MOV TEMP_DATA_L,A MOV A, TEMP_DATA_H ANL A, #0FH SWAP A ORL A, TEMP_DATA_L MOV B, #100 DIV AB MOV LCD_3, #- ;负温度最高位显示“-”号 SJMP TEMPC2TEMPC1: MOV A, TEMP_DATA_L ANL A, #0FH MOV DPTR, #TABLE2 MOVC A, A+DPTR MOV LCD_0, A ;查表得小数位的值 MOV A, TEMP_DATA_L ANL A, #0F0H SWAP A
28、MOV TEMP_DATA_L, A MOV A, TEMP_DATA_H ANL A, #0FH SWAP A ORL A, TEMP_DATA_L MOV B, #100 DIV AB MOV DPTR, #TABLE1 MOVC A, A+DPTR MOV LCD_3, A ;正温度的百位TEMPC2: MOV A, #10 XCH A, B DIV AB MOV DPTR, #TABLE1 MOVC A, A+DPTR MOV LCD_2, A ;温度值的十位 MOV A, B MOV DPTR, #TABLE1 MOVC A, A+DPTR MOV LCD_1, A ;温度值的个位
29、MOV A, LCD_3 ACALL WC51DDR ;第2行第6列显示温度的百位或“-” MOV A, LCD_2 ACALL WC51DDR ;第2行第7列显示温度的十位 MOV A, LCD_1ACALL WC51DDR ;第2行第8列显示温度的个位 MOV A, #. ACALL WC51DDR ;第2行第9列显示小数点. MOV A, LCD_0 ACALL WC51DDR ;第2行第10列显示温度的小数位 MOV A, # ACALL WC51DDR ;第2行后面的显示空格 MOV A, # ACALL WC51DDR MOV A, # ACALL WC51DDR MOV A, #
30、 ACALL WC51DDR MOV A, # ACALL WC51DDR MOV A, # ACALL WC51DDR RET;*;从ds18b20中读出64位序列号;*READ_ROM: MOV R5, #8 MOV A, NUM1 ;由编号取得缓冲区地址 MOV B, #10H MUL AB MOV R1, #20H ADD A, R1 MOV R1, A LCALL DS18B20_INIT ;18B20初始化 MOV A, #33H LCALL WRITE_BYTE ;发读ROM命令D1: LCALL READ_BYTE ;读64位ROM,存入缓冲区 MOV R1,A INC R1
31、DJNZ R5, D1 RET;*;将读出的64位序列号显示在LCD上;*DISP_ROM: MOV A, #80H ;写入显示缓冲区起始地址为第1行第1列 ACALL WC51R MOV A, #A ;第1行第2列显示字母A ACALL WC51DDR MOV A, #D ;第1行第3列显示字母D ACALL WC51DDR MOV A, #D ;第1行第4列显示字母D ACALL WC51DDR MOV A, #R ;第1行第5列显示字母R ACALL WC51DDR MOV A, #: ;第2行第6列显示: ACALL WC51DDR MOV A, # ;第2行第7列显示空格 ACALL
32、 WC51DDR MOV A, NUM1 ADD A, #30H ;第2行第8列显示编号 ACALL WC51DDR MOV A, #0C0H ;写入显示缓冲区起始地址为第2行第1列 ACALL WC51R MOV A, NUM1 ;由编号取得缓冲区地址 MOV B, #10H MUL AB MOV R1, #20H ADD A, R1 MOV R1, A MOV R5, #8D2: MOV A, R1 ;64位ROM地址转换成16位十六进制数显示 MOV B, #16 DIV AB MOV R3, A CLR C SUBB A, #10MOV A, R3JC D3ADD A, #07HD3:
33、 ADD A, #30H ACALL WC51DDRMOV A, BSUBB A, #10HMOV A, BJC D4ADD A, #07HD4: ADD A, #30H ACALL WC51DDRINC R1DJNZ R5, D2RET;*;初始化DS18B20;*DS18B20_INIT: SETB DQNOPNOPCLR DQMOV R6, #0A0HDJNZ R6, $MOV R6, #0A0HDJNZ R6, $ SETB DQMOV R6, #32HDJNZ R6, $MOV C,DQJC ERRORMOV R6,#064HDJNZ R6,$RETERROR: CLR DQ SJM
34、P DS18B20_INITRET;*;读DS18B20一个字节程序;*READ_BYTE: MOV R7,#08H SETB DQNOPNOPLOOP: CLR DQ NOPNOPNOPSETB DQMOV R6,#07HDJNZ R6,$MOV C,DQMOV R6,#3CHDJNZ R6,$RRC ASETB DQDJNZ R7,LOOPMOV R6,#3CHDJNZ R6,$RET;*;写DS10B20程序;*WRITE_BYTE: MOV R7,#08H SETB DQNOPNOPLOOP1: CLR DQ MOV R6,#07HDJNZ R6,$RRC AMOV DQ,CMOV R6,#34HDJNZ R6,$SETB DQDJNZ R7,LOOP1RET;LCD初始化程序LCD_INIT: MOV A,#00000001H ;清屏 ACALL WC51RMOV A,#00111000B ;使用8位数据,显示两行,使用5-7的字型 ACALL WC51RMOV A,#00001100B ;显示器开,光标关,字符不闪烁 ACALL WC51RMOV A,#00000110B ;字符不动,光标自动右移一格 ACALL WC51RRET;检查忙子程序F_BUSY: PUSH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息与信息技术深度解析
- 资本配置与绩效优化精要
- 第5章建筑结构与工程习题 浙教版八年级科学上册
- 护理中的生命伦理与临终关怀
- 高考物理一轮复习实验专题课件实验测量玻璃的折射率
- 燃气设施巡检计划
- 桥梁施工项目成本控制方案
- 高空作业安全保障方案
- 铁矿石开采项目技术方案
- 建筑物通风与采光设计方案
- 教练员劳务合同范本
- 2025巴彦淖尔市农垦(集团)有限公司招聘37人备考题库含答案解析(夺冠)
- 贵港市利恒投资集团有限公司关于公开招聘工作人员参考题库附答案
- 腰椎OLIF手术课件
- 北京海淀中关村中学2026届高二上数学期末调研试题含解析
- 2025西藏林芝市消防救援支队政府专职消防员招录8人备考题库附答案解析
- 2025年农业投资入股协议(生态)
- 2025贵州铜仁市“千名英才·智汇铜仁”本地引才413人备考考试题库及答案解析
- 漫画委托创作协议书
- (2025年)功能性消化不良中西医结合诊疗专家共识解读课件
- 2026春外研社版英语八下单词表(先鸟版)
评论
0/150
提交评论