版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章概述1.1课题目的与意义随着人们生活水平的提高,人们对生活质量的要求也越来越高。对电子产品的要求也越来越苛刻。特别是对便携式电子产品,不仅要求功能全,性能好,还必须具有超低的功耗。“又要让马儿跑,又不让马儿吃草”,这条理念在电子产品中体现得淋漓尽致。处理器必须在不怎么增加主频和功耗的条件下干更多的活儿,这就要求我们在设计电子产品中必须抛弃那些传统的、功耗大的单片机及其它设备,选择当前先进的、超低功耗的单片机及IC,以满足人们的需要。这也符合我国正在提出的低碳生活要求。1.2课题现状随着经济的复苏和市场的进一步改革开放,人民的生活水平在不断的奔向小康,促进着电子显示的快速发展,同时许多电子类产品商家也敏锐地嗅到了这一产业的商机,注定着这个行业的竞争越来越激烈。因此,要在这个竞争激烈的市场中获胜并且稳步前进就要降低的成本,提高效益。虽然不同的电子类产品所要显示的内容和格式的标准不同,但是每个显示方向都可以使用管理信息工具来提高本企业的核心竞争力。综上所述,LCD显示运用嵌入式系统设计的思想,采用目前最先进的嵌入式技术,从而实现实时显示的要求。第2章总体设计方案2.1设计任务对于各种便携式的电子产品,最重要的莫过于界面的显示。一个信息量丰富的显示界面绝对是吸引人们注意力的一大因素。但在现实的生活当中,特别是在一些中低档的便携式电子产品中,信息的显示都是一些显示信息量非常小的液晶模块或单调的LED数码管显示。这完全不能满足人们的信息需求。特别是对中高端的电子产品,三、四级的菜单随处可以。菜单的界面可以给予人们丰富的信息,便于人们进行各种操作。低功耗加上信息丰富的液晶显示是未来电子产品发展的主流。本文主要介绍基于STM32低功耗单片机和液晶模块组成的多级菜单显示系统。符合现代电子产品发展的主流,通过简单的修改就可以在各种平台上进行移植,具有很强的实用性。2.2系统组成与工作原理方案以STM32单片机系统为核心,通过按键控制LCD液晶显示模块进行各种信息的显示,包括实时的时钟显示、实时的波形显示、存储的波形显示以及各种菜单的显示。如图1.1所示,该方案通过按键对各种菜单进行操作以执行相应的功能。本系统结构简单,但程序却并不简单,需要大量的编程操作才能完成。液晶显示模块单片机按键控制液晶显示模块单片机按键控制电源电源图2.1系统设计第3章硬件设计3.1嵌入式系统介绍Cortex-M3是一个32位处理器内核。内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性,CM3内部含有好几条总线接口,每条都为自己的应用场合优化过,并且它们可以并行工作。比较复杂的应用可能需要更多的存储系统功能,为此CM3提供-一个可选的MPU,而且在需要的情况下也可以使用外部的cache。另外在CM3中,Both小端模式和大端模式都是支持的。CM3内部还附赠了好多调试组件,用于在硬件水平上支持调试操作,如指令断点,数据观察点等。另外,为支持更高级的调试,还有其它可选组件,包括指令跟踪和多种类型的调试接口。它的内部结构图如图3.1所示:图3.1STM-32内核结构STM32特征如下:1.内核(1)ARM32位的CortexM-M3CPU;(2)72MHz,1.25DMips/MHz,零等待周期的存储器;(3)单周期乘法和硬件除法。2.存储器(1)从32K字节至128K字节的闪存程序存储器;(2)从6K字节至64K字节的SRAM。3.时钟、复位和电源管理(1)2.0至3.6伏供电和I/0管脚;(2).上电/断电复位(POR/PDR)、可编程电压监测器(PVD):(3)内嵌4至16MHz高速晶体振荡器;(4)内嵌经出厂调校的8MHz的RC振荡器;(5)内嵌40kHz的RC振荡器:(6)PLL供应CPU时钟;(7)带校准功能的32kHzRTC振荡器。4.低功耗为了使功耗更低,以及能源利用效率更高,Cortex-M3在设计时加入了很多针对性的功能。首先,在节能模式上,它提供了睡眠模式和深度睡眠模式。芯片以及整个系统在设计时通过与内核的节能模式相呼应,就可以根据应用的要求,在空闲时降低功耗。第二,它精练的设计使得门数很低,并且在工作状态下电路的活动更少,所以CM3自己也是“身先士卒”地以身作则了。而且,由于CM3的程序代码密度高,程序容量也可以变得更少:同时,再加上它强大的性能减少了程序执行时间,使得系统能以最快的速度回到睡眠中,以削低对能源的用量。它可以工作在这三种模式:睡眠、停机和待机模式,并且可以在这三种模式下动态切换。睡眠模式:在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断事件时唤醒CPU.停机模式:在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式下,停止所有内部1.8V部分的供电,PLL、HSI和HSE的RC振荡器被关闭,调压器可以被置于普通模式或低功耗模式。可以通过任--配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部I/0口之一、PVD的输出、RTC闹钟或USB的唤醒信号。待机模式:在待机模式下可以达到最低的电能消耗。内部的电压调压器被关闭,因此所有内部1.8V部分的供电被切断;PLL、HSI和HSE的RC振荡器也被关闭;进入待机模式后,SRAM和寄存器的内容将消失,但后备寄存器的内容仍然保留,待机电路仍工作。从待机模式退出的条件是:NRST上的外部复位信号、IWDG复位、WKUP管脚上的一个,上升边沿或RTC的闹钟到时。综上所述,Cortex-M3的能效要高于大多的8位或16位单片机。3.2主要单元电路设计3.3.1电源模块该模块主要由USB下载线提供5V的电源供电。然后通过LM117降压到3.3V供单片机工作如图3.1所示图3.1电源模块3.3.2电源滤波模块滤波电路设计如图3.2所示。由于采用STM32单片机内部的AD进行数据的采集,因此良好的滤波电路是必要的。同时也为单片机的稳定工作奠定了基础。图3.2电源滤波模块3.3.3液晶显示模块该模块主要采用内部升压的模式给LCD供电。据此电路图我们可知:如果内部升压成功,则根据如表1-3所示的寄存器配置,测得C51两端电压应该是6.154V-17.986V。根据寄存器的配置不同,VLCD脚对应不同的电压。这可以作为我们初始化液晶是否成功的一个判据。如图3.3所示图3.3液晶显示模块第4章软件设计4.1软件总体设计开始,初始化时间日期,采集温度,诀以时问,任册布工显示温度和时间,判断KEY是否为低电平,如果是就对时间日期进行设定,否就回到初始化状态。如果设定了时间,再判定是否按下清除键,如果按下,则清除LCD屏时间日期,回到温度没按下清除键,则直接回到采集温度。如图4.1所示图4.1主程序流程图4.2各功能模块的软件设计4.2.1STM单片机初始化在STM32的时钟配置方面,ST公司已经为我们提供了例程,我们只需要在例程中修改相应的数据达到我们想要的时钟速率即可,不必要我们自己再去编写程序配置时钟,这样大大减少了我们的开发周期,提高了我们的开发效率。例如:voidRead_18B20(void)unsignedchartempl=0,temp2=0;int16temperature=0;if(Reset_18B200){DelayNS__us(7200);Writebyte_18B20(0xcc);DelayNS__us(7200);Writebyte_18B20(0x44);DelayNS__us(8000);if(Reset_18B200)DelayNS__us(8000);Writebyte_,18B20(0xcc);DelayNS__us(8000);Writebyte_,18B20(0xbe);templ=Readbyte_18B200;DelayNS__us(720);temp2=Readbyte_18B200);Reset_18B200;if(temp2&0xf8){temperature=((temp2<<8)Itemp1);temperature=((~temperature)+1);ftemperature=temperature*(-0.0625);else{temperature=((temp2<<8)|temp1);ftemperature=(fp64)(temperature*0.0625);}}else{;}}4.2.2STM32启动方式前面介绍过,STM32单片机有三种不同的启动模式,根据不同的启动模式我们需要写不同的代码以及在编译环境上进行不同的设置。ST公司提供了这样的一个例程:voidNVIC_Configuration(void){#ifdefVECT_TAB_RAM/*SettheVectorTablebaselocationat0x20000000*/NVIC_SetVectorTable(NVIC_VectTab__RAM,0x0);#else/*VECT_TAB_FLASH*//*SettheVectorTablebaselocationat0x08000000*/NVIC__SetVectorTable(NVIC_VectTab_FLASH,0x0);#endif这个例程就是针对不同的启动模式而进行编写的。如果我们要在内部RAM中进行程序的调试,首先我们需要根据下表4.2所示的表进行STM32单片机外部引脚的配置,然后我们需要在Kei13的IDE中进行设置。启动模式选择管脚启动模式说明B00T1B00T0X0用户闪存存储器用户闪存存储器被选为启动01系统存储器系统存储器被选为启动区域11内嵌SRAM内嵌SRAM被选为启动区域表4.2系统启动方式4.2.3字模的提取由于该屏在列方向_上一次要写六点,即三个字节。所以我们在用字模软件取字模时,一定要注意这样的问题,以保证程序编写的方便。比如说,如果我们用横向取模的方式,每次得判断一个字节,即八个点,但是列方向上我们只能六个点六个点的去写。所以,横向取模的方式是不可取的。在纵向取模的方式中,我们应该取字模列方向是六的倍数。比如12、18、24等。在行方向上,我们尽量取八的倍数。这样在编写程序时,极大的降低了程序编写的难度。比如我们取“中国”这两个汉字的字模,我们取24*24的。在字模软件中,我们设置这样的取模方式:纵向取模、字节正序。可以编写这样的程序来达到在液晶.上显示的目的。for(k=0;k<3;k++){for(j=0;j<8;j++){for(i=m;i<m+24;i++)//先取前24个字节24*24if(reverse==1){temp=~(p[i]);//取第一个字节else{temp=p[i];//取第-一个字节if((temp&value)=value)//如果最高位是1buffer._msb=0xf0;//buffer高四位为1,显示黑点buffer=buffer._msb|buffer_lsb;WriteDat(buffer);value=value》1;}m=m+24;value=0x80;首先定义一个缓冲区,该缓冲区有两部分组成:buffer._msb,buffer_lsb.该程序有三个循环:最内的循环是先取这24个字节的最高位,然后判断这24个字节的第-一个字节的最高位是0或者是1.如果是0,则buffer._msb=0xf0,否则buffer.msb=0x00;然后再判断这24个字节的第二个字节的最高位是0还是1。如果是0,则buffer.1sb=0xOf,否则buffer_1sb=0x00;然后buffer=buffer._msb|buffer_.1sb;这样就组成了-个新的值buffer.然后就把这个新值送给液晶。相当于一次送了两个点。次循环是把这24个字节从高位依次显示到最低位。外边的大循环是显示几行,对于这个函数来说,就是24行。这样就可以把这个字模完整的显示到液晶中去了。4.2.4菜单框架的设计由于该系统涉及到的菜单级数比较多,多达四级的菜单。所以我们在设计菜单的整体框架时要考虑到这些因素。不能一一个屏-一个框架,这样我们的单片机可能没有那么多的空间让我们去建立那么多的框架字模库。当然这个屏提供的各种扫描方式也为我们在设计框架时提供了方便。例如我们在画--条线时,我们只需要设置行的起始地址和结束地址是一个值,然后改变列的地址我们就可以得到一-条想要的直线。例如:在0xlc行画一条直线,该屏的起始列地址是0x18,列地址从0x18到0x67共80大列,因为每次写是以三个点为单位的,所以这一条直线是从第一列到最到一列。//配置窗口WriteCmd(0xf5);//setrowstartaddressWriteCmd(0x1c);//startaddress=0x00WriteCmd(0xf7);//setrowendaddressWriteCmd(0x1c);//rowendaddress0xlc=28WriteCmd(0xf4);//setoolumnstartaddressWriteCmd(0x18);//startaddress=0WriteCmd(0xf6);//setcolumnendaddressWriteCmd(0x67);//窗口内部编程WriteCmd(0xf8);//insidemodefor(i=0;i<120;i++){WriteDat(0xff);}如果要画一条竖线,则可以通过如下的配置:WriteCmd(0x75);//setrowMSBaddressWriteCmd(0x64);//setrowLSBaddressWriteCmd(0x14);//setcolumnMSBaddress列的起始地址WriteCmd(0x0b);//setcolumnLSBaddress//配置窗口WriteCmd(0xf5);//setrowstartaddressWriteCmd(0x54);//startaddress=0x00WriteCmd(0xf7);//setrowendaddressWriteCmd(0x54);//rowendaddressWriteCmd(0xf4);//setoolumnstartaddressWriteCmd(0x4b);//startaddress=0WriteCmd(0xf6);//setcolumnendaddressWriteCmd(0x67);
第5章系统调试本设计仿真软件采用keiluvision3软件。KeilSoftware公司推出的Uision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,Uvision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。Uvision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。Uvision3提供对多种最新的8051类微处理器的支持,包括AnalogDevices的ADUC83x和ADUC84x,以及Infineon的XC866等。系统调试如下:5.1调试方法如图5.1所示:图5.1原理调试图5.2调试结果与分析加断点运行,运行到断点,暂停等待调试员下一步调试。如图5.2所示。图5.2单步运行调试图加断点运行,运行到断点,暂停等待调试员下一步调试。如图5.3所示。图5.3加点运行调试图
总结本系统主要是为便携式产品的界面进行的设计。电子产品的界面设计的工作量相对来说是比较大的,我们在设计程序架构时应考虑到这一一点。在编写液晶的各种显示函数时尽量编写成子函数的形式,而且尽可能的提高函数的可伸缩性,这样就可以大大的减少程序的代码量,也为整个程序的结构设计提供了方便。在界面框架设计方面,尽可能的提前画好框图,在整个程序设计中,不要随意的更改这个框架,否则给人以混乱的感觉。对自己各级的菜单框架设计也会带来不便,在器件的选取方面,低功耗是便携式产品的一个硬指标。没有超低的功耗,产品在销售市场便没有竞争力。在单片机的选取方面,尽量选择低功耗的、内部存储容量大,内部RAM空间大的单片机。因为在界面的显示过程中,需要建立大量的字库存放在单片机的FLASH或内部RAM中,涉及到的菜单级数比较多,列表选项较多,数据量比较大,一般8位或16位的单片机没有这么大的存储空间供我们使用。在这方面,STM32系列的单片机是首选。对于液晶的选取,低功耗仍然是不可缺少的,但液晶操作的灵活性也是-大因素。在这方面,信利的这款液晶模块做的很好,它的窗口模式为我们局部进行界面的更新、画线等功能提供了极大的便利,不需要我们整屏的去刷屏显示,这样也降低了整个液晶模块的功耗。在系统的调试方面,液晶初始化时需要我们注意,如果液晶初始化成功,那么它的内部升压将工作。VLCD端的电压将高达十几伏。如果没有初始化成功则VLCD端是测不到高电压的。我们需要结合STM32单片机工作的频率与液晶内部控制器的操作时序来写这个初始化函数。特别是要注意STM32单片机的主频可以达到72MHZ,在编写写命令或写数据的函数时,要加入适当的延时。
参考文献[1]高锋单片机应用系统设计及实用技术.北京:机械工业出版社,2004.4[2]郭强液晶显示器的驱动和控制.北京:北京清华蓬远科贸公司,1999.4[3]李朝青单片机原理及接口技术.北京:北京航空航天大学出版社,2003.4[4]徐惠民,安德宁单片微型计算机原理、接口及应用.北京:北京邮电大学出版社,2000.8[5]童诗白,华成英著.模拟电子技术[M].北京:高等教育出版社2005.1[6]王占广基于C51的液晶显示模块的研究与应用.甘肃科技报,2005.1[7]张鹏飞单片机技术应用的发展状况研究.浙江工商职业技术学院学报,2005.1[8]高志华,沈小丽液晶驱动芯片及其硬件软件设计中国计量学院,1997.1[9]严义,包键单片机实现多路LCD直接驱动杭州电子工业学院,1998.2[10]杜忠良,高旭光液晶显示控制器SED的特性与应用电测与仪表,1999.4[11]陈忠波,胡鹏程液晶显示控制原理及应用.沈阳:铁路计算机应用,1999.6[12]程加力,司玉娟用液晶驱动芯片驱动有机发光显示屏的设计发光学报,2004.10
附录#include"config.h"#include"string.h"#include"DS18B20.h"#include"LCD12864_Driver.h"#include"key.h"uint32uiDatas;.uint32uiTimes;voidDelayNS(uint32uiDly){uint32i;for(;uiDly>0;uiDly--){for(i=0;i<50000;i++);}voidRTCInit(void){PREINT=Fpclk/32768-1;PREFRAC=Fpclk-(Fpclk/32768)*32768;CCR=0x00;YEAR=2008;MONTH=04;DOM.=07;DOW=4;HOUR=15;MIN=52;SEC=59;.CIIR.=0x01;CCR=0x01;voidDisp__Time(voiduint32bak;uiTimes=CTIME0;uiDatas=CTIME1;LCD_Disp_Strs(2,1,"日期:");.bak=(uiDatas>>16)&0oxfff;LCD_Disp_NUM(2,4,bak);LCD_Disp_Ascii(2,5,'-);bak=(uiDatas>>8)&0xOf;LCD_Disp_NUM(2,6,bak);LCD_Disp_Ascii(2,7,');.bak=uiDatas&0x1f;LCD_Disp_NUM(2,8,bak);LCD_Disp_Strs(3,1,"时间:");.bak=(uiTimes>>24)&0x07;LCD_Disp_Strs(3,1,"星期:);LCD_Disp_NUM(3,5,bak);bak=(uiTimes>>16)&0x1f;LCD_Disp_NUM(3,6,bak);LCD_Disp__Ascii(3,7,:);bak=(uiTimes>>8)&0x3f;LCD_Disp_NUM(3,5,bak);LCD_Disp_Ascii(3,7,':);bak=uiTimes&0x3f;LCD_Disp_NUM(3,7,bak);intmain(void)charstr[20];.uint32bak;PINSEL0=PINSEL0&(~0x0F);PINSEL0=PINSEL0|0x05;Temp_init();.LCD_Initial();RTCInit();while(1)Read_18B200;sprintf(str,"\nTEMP=%of",ftemperature);LCD_Disp__Strs(1,1,str);.while(0==(ILR&0x01));LR=0x01;Disp__Time(;while(IO0PIN&KEY))Set__Time();if(checkKEYCLR))LCD_Erase();RTCInit();}DelayNS(10);return0;#include"config.h"#include"DS18B20.h"volatilefp64ftemperature=0.0;voidDelayNS__us(uint32uiDly)uint32i;for(;uiDly>0;uiDly--)for(i=0;i<8;i++);voidTemp_init(void){PINSEL1=PINSEL1&(~(0x03<<2));.}intReset_18B20(void)IO0DIR=IO0DIRIDS18B20;IO0SET=IO0SETIDS18B20;DelayNS__us(50);IO0CLR=IO0CLRIDS18B20;DelayNS__us(700);IO0SET=IO0SET|DS18B20;DelayNS__us(20);IO0DIR=IO0DIR&(~DS18B20);.DelayNS_us(30);if(IO0PIN&DS18B20)return0;elsereturn1;unsignedcharReadbyte_18B20(void){unsignedchari,temp=0;for(i=0;i<8;i++)temp>>>=1;IO0DIR=IO0DIRIDS18B20;IO0SET=IO0SETIDS18B20;DelayNS__us(20);IO0CLR=IO0CLRIDS18B20;DelayNS__us(10);IO0DIR=IO0DIR&(~DS18B20);DelayNS__us(5);if(IO0PIN&DS18B20)temp|=0x80;IO0DIR=IO0DIR|DS18B20;IO0SET=IO0SETIDS18B20;DelayNS(45);returntemp;voidWritebyte_.18B20(unsignedchardata)unsignedchari;for(i=0;i<8;i++)IO0DIR=IO0DIRIDS18B20;IO0SET|=DS18B20;DelayNS_us(10);if(data&0x01)IO0CLR|=DS18B20;DelayNS__us(12);IO0SET|=DSI8B20;DelayNS__us(60);}elseIO0CLR|=DS18B20;DelayNS__us(72);IO0SET|=DS18B20;DelayNS__us(62);data>>=1;}voidRead_18B20(void)unsignedchartemp1=0,temp2=0;int16temperature=0;if(Reset_18B200)DelayNS__us(7200);Writebyte_18B20(0xcc);DelayNS__us(7200);Writebyte_18B20(0x44);DelayNS__us(8000);if(Reset_18B200)DelayNS_us(8000);Writebyte_.18B20(0xcc);DelayNS__us(8000);Writebyte_,18B20(0xbe);templ=Readbyte_18B200);DelayNS__us(720);temp2=Readbyte_18B200);Reset_18B200);if(temp2&0xf8){temperature=((temp2<<8)|temp1);temperature=((~temperature)+1);ftemperature=temperature*(-0.0625);else{temperature=((temp2<<8)|templ);.ftemperature=(fp64)(temperature*0.0625);}else}#include"config.h"#defineSCK0(1<<8)#defineMOSI0(1<<12)#defineCPHA(1<<3)#defineCPOL(1<<4)#defineMSTR(1<<5)#defineLSBF(1<<6)#defineSPIMODEMSTRuint8uiDisp__Addr=0x00;voiddelay(uint32uiDly)uint32i;for(;uiDly>0;uiDly-)for(i=0;i<5000;i++);voidLCD_SPLInitial()PINSELOI=(SCKOIMOSI0);SPI_SPCCR=8;SPI_SPCR=SPI_MODE;voidLCD_Serial_Send(uint8uidata,uint8uimark)uint8uiComorData;switch(uimark)case0:uiComorData=0xfa;break;case1:uiComorData=0xf8;break;}SPISPDR=uiComorData;while((SPI_SPSR&0x80)==0);delay(1);SPISPDR=(uidata&0xf0);while((SPLSPSR&0x80)==0);delay(1);SPISPDR=((uidata&0x0f)<<4);while((SPI_SPSR&0x80)===0);delay(1);voidLCD_Initial()LCD_SerialSend(0x30,1);LCD_Serial_Send(0x04,1);LCD_Serial_Send(0x0c,1);LCD_Serial_Send(0x01,1);LCD_Serial_Send(0x02,1);LCD_Serial_Send(0x80,1);voidLCD_Erase()LCD_SerialSend(0x01,1);voidLCD_Position_Select(uint8uiline,uint8uirow)if(uiline==1)uiDisp__Addr=0x80+uirow-1;elseif(uiline==:=2)uiDisp_Addr=0x90+uirow-1;elseif(uiline====3)uiDisp__Addr=0x88+uirow-1;.elseuiDisp_Addr=0x98+uirow-1;voidLCD_Disp__Char(uint8uiline,uint8uirow,uint8uichar)LCD__Position_Select(uiline,uirow);LCD_SerialSend(uiDisp_Addr,1);LCD_SerialSend(uichar,0);voidLCD__Disp_Strs(uint8uiline,uint8uirow,char*pchstrs)uint8uiNum;.LCD__Position_Select(uiline,uirow);LCD_SerialSend(uiDisp_Addr,1);for(uiNum=0;*(pchstrs+uiNum)!=^\0';uiNum++)LCD_SerialSend(*(pchstrs+uiNum),0);voidLCD_Disp__Ascii(uint8uiline,uint8uirow,uint8uisignal)LCD__Position_Select(uiline,uirow);LCD_SerialSend(uiDisp_Addr,1);LCD_SerialSend(uisignal,0);voidLCD_Disp_NUM(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蔬菜扶贫协议书
- 袜业销售协议书
- 认养家禽协议书
- 认购点位协议书
- 设备划转协议书
- 设计托管协议书
- 设计终止协议书
- 请人护理协议书
- 工程分期合同范本
- 山岭承包合同范本
- 2024年青海省中考生物地理合卷试题(含答案解析)
- 大学美育-美育赏湖南智慧树知到期末考试答案章节答案2024年湖南高速铁路职业技术学院
- JT-T-915-2014机动车驾驶员安全驾驶技能培训要求
- JJG 393-2018便携式X、γ辐射周围剂量当量(率)仪和监测仪
- 黄金期货基础知识培训资料
- FANUC数控系统连接与调试实训 课件全套 1.0i –F系统规格 -10.机床动作设计与调试
- 宇电温控器ai 500 501用户手册s 6中文说明书
- 成立易制爆危险化学品治安保卫机构
- 轨道交通PIS系统介绍
- 二次结构钢筋工程施工方案
- 地产设计总结(优选14篇)
评论
0/150
提交评论