版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2015-2016学年第一学期微机原理(单片机)课程设计总结报告项目名称:铂电阻温度测量 班级: 姓名: 学号:1 / 32文档可自由编辑打印微机原理(单片机)课程设计任务书项目名称:铂电阻温度测量内容与要求: 上位机:完成界面设计与通讯程序(1)能够显示温度值,当超出报警温度阈值上限、下限时,温度值后有HIGH或LOW提示字母,能够计算从工作开始起的平均温度。(2)能够设定报警温度阈值上限、下限(3)绘制温度变化曲线,时间轴单位为1秒,温度精度0.1度(4)可以对串口进行设置下位机:完成电路设计与控制程序(1)采用铂电阻采集温度(2)通过串口与上位机通讯,并传输温度值,接受阈值设置(3)当超
2、出报警温度阈值上限、下线时,相应指示灯长亮提示(4)将当前温度显示在LCD液晶屏上,当超出报警温度阈值上限、下限时,温度值后有HIGH或LOW提示字母。项目组任务分担评价表姓名分担任务组内评价梅鼎文LCD显示模块设计与编程、下位机串口通讯程序、下位机温度传感器(铂电阻)电路设计与焊接与单片机的设计与编程5梅鼎文上位机操作界面,温度显示与上下限温度阈值设置,温度变化曲线图,平均温度及串口设置,上位机串口通讯程序的设计与程序编写。5课程设计报告评分表内容总体方案硬件设计软件设计结果分析明细清单问题分析心得体会参考文献程序代码格式规范总分学生1得分学生2得分 目录一、总体方案.1二、硬件设计.1三、
3、软件设计.4四、结果分析或项目所实现的功能、指标5五、名单清细.12六、设计调试中的疑难问题及解决方案.12七、心得体会13参考文献.14附录A 上位机程序14附录B 下位机程序26一、总体方案铂电阻测温中体框图如图1-1所示。LCD显示51单片机控制器A/D转换测量放大电路上位机控制铂电阻测温电桥测温环境图1-1 铂电阻测温总体功能模块示意图 图中,铂电阻置于测温环境之中,通过环境温度的变化,来改变铂电阻的阻值,因为铂电阻在较小的温度变化之下,阻值变化很小,为提高精度,采用电桥测量,将微小的电压差通过高倍放大电路放大然后通过A/D转换为数字信号传送给控制器51单片机。同时控制器也可以控制温度
4、测量模块的状态。LCD模块可以显由控制器得到的温度值,并根据上位机给出的阈值上下限显示出HIGH或LOW。上位机可以通过串口改变控制器的参数。(你在加点)二、硬件设计本项目下位机控制器采用的是51系列单片机STC80C52RC型号。其内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路,属于80C51增强型单片机版本。其价格低廉,低功耗,基本符合经济、环保需求。本项目LCD显示模块采用LCD1602液晶屏,它由若干个5X7点阵字符位组成,每个点阵字符位
5、都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。其成本低廉,字符显示效果好,经济效果好。本项目温度测量传感器采用PT100热敏电阻,将温度信号转换为电压信号。0100 PT100电阻值为100138.51根据要求选择非线性较小的的第二对称电桥,单臂工作,三线制连接。铂电阻与温度之间的关系,在0630.74范围内可用下式表示:RT=R0(1+A*T+B*T2),在-2000的温度范围内为:RT=R0(1+A*T+B*T2+C*(T-100)T3),式中:R0和RT分别为在0和温度T时铂电阻的电阻值,A、B、C为温度系数,有实验确定, R0=100,A
6、=3.90802e-3-1,B=-5.80195e-7-2,C=-4.27350e-12-4。可见在常温0100摄氏度之间变化时线性度非常好。另外PT100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。本项目中采用LM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。本项目中采用TLC1549模数转换器,TLC1549是10位模数转换器。它采用C
7、MOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰,可按比例量程校准转换范围,总不可调整误差达到1LSB Max(4.8mV)等特点。下面为仿真图:图2-1 铂电阻测温电路仿真图图2-1 硬件电路连接图三、软件设计本项目下位机采用51单片机做控制器。由DS18B20得到温度数据后,传递给51单片机,然后单片机根据得到的数据,在LCD液晶屏上显示出相应的数值和符号。同时,上位机和下位机进行串口通信,上位机改变下位机参数设定,下位机的温度数据也传递到上位机。上位机要求可设置温度上下界,可采集温度并画出波形。设计思路:1.加串口接收代码:找到void CpoiDlg:OnCommMs
8、comm1(),在里面添加,里面加了一个新的Edit,变量为m_rev,显示的是从下位机接受的温度值,设置了两个全局变量tot,num计算平均值。2. 串口输出(设置)代码:只用往外传两个数。一个是温度的上限阈值,另一个是下限阈值。3.完成绘图:下载一个teechart控件,这是一个非常实用的图表控件,用于接受传过来的值然后完成相应的绘图功能。 上位机重要代码:void CpoiDlg:OnBnClickedButton1() / TODO: 在此添加控件通知处理程序代码 CByteArray sendArr; sendArr.SetSize(1); /发送上界数据 m_mscomm1.put
9、_OutBufferCount(0); int nowval = (int)m_send_upper; nowval |= 128; sendArr.SetAt(0, nowval); m_mscomm1.put_Output(COleVariant(sendArr); /发送下界数据 m_mscomm1.put_OutBufferCount(0); nowval = (int)m_send_lower; sendArr.SetAt(0, nowval); m_mscomm1.put_Output(COleVariant(sendArr);串口输出(设置)代码void CpoiDlg:OnBn
10、ClickedOk() / TODO: 在此添加控件通知处理程序代码 CDialogEx:OnOK(); byte inst8; CByteArray sendArr; sendArr.SetSize(8); /发送上界数据 int nowval = (int)m_send_upper; for (int j = 8; j 0 ; j-) instj = (nowval & 1); nowval = 1; sendArr.SetAt(j, instj); m_mscomm1.put_Output(COleVariant(sendArr); /发送下界数据 nowval = (int)m_sen
11、d_lower; for (int j = 8; j 0; j-) instj = (nowval & 1); nowval = 1; sendArr.SetAt(j, instj); m_mscomm1.put_Output(COleVariant(sendArr);下位机读取温度显示流程图:开始TLC1549AD初始化初始化显示屏初始化串口采集数据计算数据输出温度值(HIGH)大于上限阈值?是输出温度值(LOW)否小于下限阈值?是否输出中间温度值采集温度时部分程序:calD=ReadTLC1549();calV=(uint)(4.88*calD); /5V 1024个刻度 每个4.88mV
12、 Tar= calV*0.001*14.556-15 因为经粗略测量23摄氏度时,LM324的输出电压为2.6V,在34.5摄氏度时,LM324的输出电压为3.4V,近视认为其为线性关系,得到T=14.556V15,通过上述程序即可实现AD转换。四、结果分析或项目所实现的功能、指标本项目可实现温度测量功能,可以在LCD液晶屏和上位机上同时显示温度值。同时还具有远程阈值上下限设置功能,可以在上位机设置温度阈值上下限,超过上限上下位机同时会有HIGH的显示,低于下限上下位机也同时又LOW的显示。 如图4-1和图4-2图4-3和图4-4所示,上位机设置温度上限为29,温度下限为28,当测量温度为为3
13、1.9时,下位机LCD显示31.9HIG,指示灯长亮;当测量温度为28.7时,下位机LCD显示28.7;当测量温度为27.6时,下位机LCD显示27.6LOW。 图4-1 上位机显示结果(1)图4-2 下位机显示结果(1)图4-3 下位机显示结果(2) 图4-4 下位机显示结果(3) 在图4-5中,为上位机功能界面,温度精度为0.1度,该上位机记录从开始到现在的温度,因为拍摄延时的问题,时间轴自动变为2秒,当记录时间过长如图4-1,时间轴变为5秒。可以设置温度上下限,能够计算从开始起的平均温度。 图4-5 上位机功能界面由图可知当前温度:26状态:low串口设置: 波特率9600 串口选择co
14、m3 奇偶校验位1上阈值:29下阈值:28平均温度:26.3818181温度显示精度:0.1 图4-6 实验电路板五、明细清单明细及价格清单如表5-1所示序号名称型号/规格数量价格(元)1单片机最小系统板STC89C52RC1702PT100表面测温铂电阻YY-PT100-B1603液晶显示屏LCD160213表5-1 明细及价格清单价格总计70+60+3+1=134(元)。(LM324,TLC1549,电阻等单价均不到一元,总价按一元计算)六、设计调试中遇到的疑难问题及解决方法史明新:1、在设计铂电阻测温电路时,因为对电路板的结构不了解,没有发现自己手里的电路板行、列孔之间有的是默认焊接在一
15、起的,导致焊接结束后,使用时,发生短路,烧毁了芯片。2、对PT100的工作环境不是很了解,在搭建测温电桥时,电桥四个电阻均选择110左右的电阻,发现效果很差,通过询问老师,得知流经铂电阻的电流不能超过几毫伏,否则铂电阻自身发热会影响测量。后将电桥中一对电阻的阻值换为2k,重新设计电路得到明显的改善。3、因为铂电阻测温电路比较精密,当铂电阻阻值发生变化时,电桥的压差很小,需经过高被放大才能有较明显的电压变化。仿真的结果是理想的,但实验室并没有与仿真电路图中严格匹配的电阻,所以在替换阻值相近的电阻时,很可能会对输出结果产生很大的影响。一开始并没有发现这个问题,导致输出效果很差。后来替换电阻时,在电
16、脑上严格仿真,确保替换之后电路仍能工作,最后焊接出比较满意的电路板。4、编写下位机程序时,电压与温度的换算关系式是关键,因为条件的限制,无法得到铂电阻的准确温度,只能测量铂电阻在某一时刻的阻值,查表得知对应的温度,然后测量输出电压,得到温度和电压的一个粗略对应关系,而且因为测量电路的关系,温度和电压也不是严格的线性关系,最后计算出的关系式存在比较大的误差,只能在一个粗略的范围内测温。 梅鼎文:1、由于用的是MFC编译,需要借助到编译软件,因为使用的是vs2015,无法直接创建MFC窗口,需要添加相应的控件,老师提供的控件版本与电脑中的版本不匹配,因此需要重新去官网上下一个控件以配合使用。2、上
17、位记保存数据的时候无法按0.1的精度来绘图,精度根据温度的变化浮动巨大,无法自动调节。后来通过更改teechart控件,设置具体参数,更改图标的纵轴和横轴和其他显示形式,改为自动的形式,之后便可以达到目的。3、一开始用USB对单片机的外部存储器供电,但是发现供电不足,部分功能无法成功运行,通过仔细排查发现了存储器只能用5V的电源充电,因此更换了电源之后就可以使用。4、上位记和下位机通讯时,默认串口和使用串口不匹配,忘了检查电脑的每个com口不一定都一样,因此当位置改变之后忘了更改代码设置对应的串口,后来也在界面中加了选择串口的部分,这样就能智能地选择相对应的串口。七、心得体会与建议史明新:我们
18、抽到的题目是铂电阻温度测量,这个题目不仅考验与单片机有关的知识,还涉及到很多模电和传感器的知识。其中铂电阻温度测量电路的焊接就是一个很难的问题。我们通过查阅资料,询问老师,用了两天半的时间才自己焊接出一个可以使用的电路。而且前几个班好像最后都没有焊接出来。虽然这个过程让我们将模电,传感器,单片机的知识很好地结合在了一起,在实践中作出一个可以使用的粗胚。但这样设计焊接电路花费了大量的时间,留给我们做单片机内容的时间就很少了。我们小组的实力并不强,这个课题对于我们来说难度很大。希望老师可以在加入几个题目,当个别小组题目过难时,可以适当更换。梅鼎文:面对这样一个比较难的任务,我们一开始也很措手无策,
19、网上可查的资料甚少,并且设计到的科目比较繁多,查阅资料非常困难,据悉,前几个班也没有人做出来完整的设计,但是面对这个困难我们也没有轻易萎靡放弃,通过学习老师邮箱里的邮件,复习使用单片机、mfc等软件,我们渐渐对课程有了一些收获,我们分工合作,最终作出了个大概的样子。接下来就是调试阶段,调试阶段自然是出了各种问题,比如上位机传值传不出去,电路板的焊接不能传输出来等等,都让我们焦头烂额,很多疑难杂症不知道如何解决。希望下次老师能够在实验室让几个学长学姐提供一些帮助,而不是完全让没有大创等经验的学生去完全独立地去做,并且课设任务有分难易,有些任务对于我们而言实在是不容易做出来,这一点也希望老师下次设
20、计题目的时候提供一些方便查阅资料的题目,毕竟在一周之内完全做出这些设计还是非常大的挑战性。此外,通过这次课程设计,我对单片机、传感器、模电的知识都有了进一步的深化理解和拓展,这些知识与实际应用紧密相接,因此还是非常有益的。我还知道了做事情不能急躁,要一步一步来,先想好设计框架,再顺着流程一步步往下走,一点点往里填充,没有一步登天的事,要踏踏实实把设计的每一个环节做好才能做好整个设计。参考文献1汪定国.一种高精度铂电阻温度测量方法J.电子测量技术 2012-11-15 2郑泽祥,王剑. 铂电阻高精度温度测量系统设 J.机电工程 2013-12-20 3陈杰 黄鸿.传感器与检测技术北京.高等教育出
21、版社 2002-8参考网站附录附录A:上位机程序:/ poiDlg.cpp : 实现文件/#include stdafx.h#include poi.h#include poiDlg.h#include afxdialogex.h#include CTChart.h#include CAxis.h#include CAxes.h#include CScroll.h#include CSeries.h#include tchart1.h#ifdef _DEBUG#define new DEBUG_NEW#endifconst int N = 100005;double tot = 0;int n
22、um = 0;double recN;/ CpoiDlg 对话框CpoiDlg:CpoiDlg(CWnd* pParent /*=NULL*/) : CDialogEx(IDD_POI_DIALOG, pParent) , m_rev(0) , m_ave(0) , m_stat(_T() ,m_send_upper(5) , m_comnum(0) , m_boderate(0) m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CpoiDlg:DoDataExchange(CDataExchange* pDX) CDialogEx:DoD
23、ataExchange(pDX); DDX_Control(pDX, IDC_MSCOMM1, m_mscomm1); DDX_Text(pDX, IDC_EDIT3, m_rev); DDX_Text(pDX, IDC_EDIT_AVER, m_ave); DDX_Text(pDX, IDC_EDIT7, m_stat); DDX_Text(pDX, IDC_EDIT_UPPER, m_send_upper); DDX_Text(pDX, IDC_EDIT_LOWER, m_send_lower); DDX_Control(pDX, IDC_Chart1, m_chart); DDX_CBI
24、ndex(pDX, IDC_COMBO1, m_comnum); DDX_CBIndex(pDX, IDC_COMBO2, m_boderate); DDX_Control(pDX, IDC_BUTTON2, m_open);BEGIN_MESSAGE_MAP(CpoiDlg, CDialogEx) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDOK, &CpoiDlg:OnBnClickedOk) ON_BN_CLICKED(IDC_BUTTON1, &CpoiDlg:OnBnClickedButton1) ON_BN_CLICKED
25、(IDC_BUTTON2, &CpoiDlg:OnBnClickedButton2) ON_EN_CHANGE(IDC_EDIT_UPPER, &CpoiDlg:OnEnChangeEditUpper) ON_EN_CHANGE(IDC_EDIT_LOWER, &CpoiDlg:OnEnChangeEditLower) ON_CBN_SELCHANGE(IDC_COMBO1, &CpoiDlg:OnCbnSelchangeCombo1) ON_CBN_SELCHANGE(IDC_COMBO2, &CpoiDlg:OnCbnSelchangeCombo2)END_MESSAGE_MAP()/ C
26、poiDlg 消息处理程序BOOL CpoiDlg:OnInitDialog() CDialogEx:OnInitDialog(); / 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 / 执行此操作 SetIcon(m_hIcon, TRUE); / 设置大图标 SetIcon(m_hIcon, FALSE); / 设置小图标 / TODO: 在此添加额外的初始化代码 m_mscomm1.put_CommPort(6); /端口号为6 m_mscomm1.put_InBufferSize(1024); /设置输入缓冲区的大小,Bytes m_mscomm1.put_OutBu
27、fferSize(512); /设置输出缓冲区的大小,Bytes if (!m_mscomm1.get_PortOpen() /打开串口 m_mscomm1.put_PortOpen(true); m_mscomm1.put_InputMode(1); /设置输入方式为二进制方式 m_mscomm1.put_Settings(L9600,n,8,1); /设置波特率等参数 m_mscomm1.put_RThreshold(1); /为1表示有一个字符即引发事件 m_mscomm1.put_InputLen(0); return TRUE; / 除非将焦点设置到控件,否则返回 TRUE/ 如果向
28、对话框添加最小化按钮,则需要下面的代码/ 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,/ 这将由框架自动完成。void CpoiDlg:OnPaint() if (IsIconic() CPaintDC dc(this); / 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0); / 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON);
29、 CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; / 绘制图标 dc.DrawIcon(x, y, m_hIcon); else CDialogEx:OnPaint(); /当用户拖动最小化窗口时系统调用此函数取得光标/显示。HCURSOR CpoiDlg:OnQueryDragIcon() return static_cast(m_hIcon);BEGIN_EVENTSINK_MAP(CpoiDlg, CDi
30、alogEx) ON_EVENT(CpoiDlg, IDC_MSCOMM1, 1, CpoiDlg:OnCommMscomm1, VTS_NONE)END_EVENTSINK_MAP()void CpoiDlg:OnCommMscomm1() / TODO: 在此处添加消息处理程序代码 VARIANT variant_inp; COleSafeArray safearray_inp; long i = 0; int len; char rxdata1000; switch (m_mscomm1.get_CommEvent() case 2: /表示接缓冲区内有字符 variant_inp =
31、m_mscomm1.get_Input();/接收数据 safearray_inp = variant_inp; len = safearray_inp.GetOneDimSize(); m_rev = 0; for (i = 0; i m_send_upper) m_stat = High; else if (m_rev m_send_lower) m_stat = Low; else m_stat = OK; for (int i = 1; i = num; i+) CSeries serDemo1 = (CSeries)m_chart.Series(0); serDemo1.AddNul
32、lXY(i, reci, NULL); UpdateData(false); / 将接收数据进行显示 break; default: break; void CpoiDlg:OnBnClickedOk() / TODO: 在此添加控件通知处理程序代码 CDialogEx:OnOK();void CpoiDlg:OnEnChangeEdit8() / TODO: 如果该控件是 RICHEDIT 控件,它将不 / 发送此通知,除非重写 CDialogEx:OnInitDialog() / 函数并调用 CRichEditCtrl().SetEventMask(), / 同时将 ENM_CHANGE
33、标志“或”运算到掩码中。 / TODO: 在此添加控件通知处理程序代码void CpoiDlg:OnBnClickedButton1() / TODO: 在此添加控件通知处理程序代码 CByteArray sendArr; sendArr.SetSize(1); /发送上界数据 m_mscomm1.put_OutBufferCount(0); int nowval = (int)m_send_upper; nowval |= 128; sendArr.SetAt(0, nowval); m_mscomm1.put_Output(COleVariant(sendArr); /发送下界数据 m_m
34、scomm1.put_OutBufferCount(0); nowval = (int)m_send_lower; sendArr.SetAt(0, nowval); m_mscomm1.put_Output(COleVariant(sendArr);void CpoiDlg:OnBnClickedButton2() / TODO: 在此添加控件通知处理程序代码 UpdateData(true); m_mscomm1.put_CommPort(m_comnum + 1); /设置端口 m_mscomm1.put_InBufferSize(1024); /设置输入缓冲区的大小,Bytes m_m
35、scomm1.put_OutBufferSize(512); /设置输出缓冲区的大小,Bytes if (!m_mscomm1.get_PortOpen() /打开串口 m_mscomm1.put_PortOpen(true); m_mscomm1.put_InputMode(1); /设置输入方式为二进制方式 int boderate = (2 m_boderate) * 4800; CString str; str.Format(_T(%d), boderate); str += ,n,8,1; m_mscomm1.put_Settings(str); /设置波特率等参数 m_mscomm
36、1.put_RThreshold(1); /为1表示有一个字符即引发事件 m_mscomm1.put_InputLen(0);void CpoiDlg:OnEnChangeEditUpper() / TODO: 如果该控件是 RICHEDIT 控件,它将不 / 发送此通知,除非重写 CDialogEx:OnInitDialog() / 函数并调用 CRichEditCtrl().SetEventMask(), / 同时将 ENM_CHANGE 标志“或”运算到掩码中。 / TODO: 在此添加控件通知处理程序代码 UpdateData(true);void CpoiDlg:OnEnChange
37、EditLower() / TODO: 如果该控件是 RICHEDIT 控件,它将不 / 发送此通知,除非重写 CDialogEx:OnInitDialog() / 函数并调用 CRichEditCtrl().SetEventMask(), / 同时将 ENM_CHANGE 标志“或”运算到掩码中。 / TODO: 在此添加控件通知处理程序代码 UpdateData(true);void CpoiDlg:OnCbnSelchangeCombo1() / TODO: 在此添加控件通知处理程序代码 UpdateData(true);void CpoiDlg:OnCbnSelchangeCombo2
38、() / TODO: 在此添加控件通知处理程序代码 UpdateData(true);附录B:下位机程序:#include #define uchar unsigned char #define uint unsigned int #define Disdata P0 /液晶数据端口sbit CS = P00;sbit SO = P01; sbit SI = P02; sbit LED_H = P20;sbit LED_L = P21;uchar upper = 5;uchar lower = 0;uchar cnt = 0;sbit lcden=P12;sbit lcdrs=P10;sbit
39、 rw=P11; /液晶sbit led=P03;sbit ALE=P23; /锁存控制位sbit TLC1549_CLK =P25;sbit TLC1549_CS =P27;sbit TLC1549_DO =P26; /DEF TLC uint s;uchar num,num1,num2,num3,num4,num5;uint senddata;void InitUART (void) /串口初始化 SCON = 0x50; TMOD |= 0x20; /定时器1工作方式2 TH1 = 0xFD; /寄存器装入初值/TL1 = 0xFD; /寄存器装入初值 TR1 = 1; / 定时器1打开
40、 EA = 1; /总中断打开 ES = 1; /串口中断打开LED_H = 1;LED_L = 1; void SendByte(unsigned char dat) /发送一个字节 SBUF = dat; while(!TI); TI = 0;void delay30(void) /延时30us unsigned char a; for(a=13;a0;a-);void delay(uint z) /延时zms uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com) /写液晶屏命令 lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_data(uchar date) /写液晶屏数据 lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0; void init() /初始化液晶屏 rw=0; lcden=0; write_com(0x38); wr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务网站安全防护检测方法
- 2026年AI手机安全与伦理规范亟需完善重点问题解析
- 2026年玉湖冷链“数智护年味”经验:5万吨冻品自动化立体库运营复盘
- 2026年改善型住房宽厅设计得房率提升至93%技术解析
- 2025年前台服务规范模拟训练卷
- 2026年未来能源产业:绿色氢能核聚变能技术突破与产业化路径解析
- 2026年智能家电数据管理与人机交互关键能力要求
- 2026年省级财政支持城市片区更新项目申报书模板
- 2026年电离层杂波对低空雷达影响分析
- 2026年节能门窗在住宅与商业建筑领域应用需求潜力对比
- 2026年安徽城市管理职业学院单招职业适应性测试题库带答案详解(满分必刷)
- 2026年课件-冀人版二年级下册科学全册新质教学课件(2026年春改版教材)-新版
- 2025年宜昌五峰土家族自治县“招才兴业”事业单位人才引进41人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- (部编版2025新教材)道德与法治一年级下册-第1课《有个新目标》课件
- 退役军人事务员(五级)职业资格考试题及答案
- DB34T∕ 2270-2014 铜阳极泥铜、金、银、硒、铋、铅含量的测定波长色散X射线荧光光谱法
- 徐志摩简介专题知识
- 预防医学教学课件:职业卫生服务与职业病管理
- 品牌管理北京大学版本课件
- 表达方式(抒情手法)优秀课件
- GJB9001B-2009《质量管理体系要求》
评论
0/150
提交评论