实验四 万年历时钟实验_第1页
实验四 万年历时钟实验_第2页
实验四 万年历时钟实验_第3页
实验四 万年历时钟实验_第4页
实验四 万年历时钟实验_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四万年历时钟实验

一、实验目的

进行一次实际开发的实验,提高用户实际开发能力。

二、实验设备及器件

IBMPC机一台

DP-51PR0C单片机综合仿真实验仪一台

三、实验内容

结合12c总线控制的实时时钟、ZLG7290犍盘LED控制器进行万年历时钟的设

计。

四、实验要求

熟练掌握12c总线控制,灵活运用12c主控器软件包,深刻理解实时时钟、

ZLG7290键盘LED控制的各种功能,并能把它们相结合,组成具有实际功能的

万年历时钟。

五、实验步骤

1、用导线连接D5区的SCL、SDA至!JA2区的P16、P17,连接D5区的RST_L、

INT_KEYA2区的PIO、INTO,短接D5区JP1跳线。

2、用串口通信电缆连接TKSMonitor51仿真器的RS-232串行通信口,另一端连

接PC机的串行口,把TKSMonitor51仿真器上的开关拨到LOAD模式,即下载

状态下,用户应将TKSMonitor51仿真器的仿真头插入DP-51PROC单片机综合

仿真实验仪的U13锁紧座上;然后ISP跳线JP14跳开(即不短接),按下复位

按键“RESET"。此时,DP-51PROC单片机综合仿真实验仪即进入下载状态。对

DP-51PROC实验仪上电,然后,使用软件DPFLASH把M0N51监控程序下载

到TKSMonitor5仿真器。

3、关闭DPFLASH软件。把TKSMonitor5仿真器的工作模式选择开关切换到RUN

处,然后按一下复位键(RST),M0N51程序就开始运行了。此时,TKSMonitor5

仿真器进入调试状态。

4、新建工程文件和文件的编译、链接

(一)新建工程文件

1)打开"keiluvision2”软件,点击工具栏Project选项,在下拉菜单中选择New

Project命令,弹出项目文件保存对话框,输入项目名后,点击保存按钮。

2)在工程建立完毕以后,uVision会弹出器件选择窗口,选择相应的器件型号。

例如:philips公司的p80/p87c52x2型单片机。

3)点击工具栏File选项,选中New命令,新建文件,输入实时时钟程序,源程

序见附录1(实时时钟参考程序),把文件保存到磁盘中,保存文件名为:timer.c

4)再点击工具栏File选项,选中New命令,新建文件,输入12c软件包

“VnC_C5LC”文件,源程序见附录2,把文件保存到磁盘中,保存文件名为:

VIIC_C51.C;

5)再点击工具栏File选项,选中New命令,新建文件,输入ZLG7290软件包

“ZLG7290.C”文件,源程序见附录3,把文件保存到磁盘中,保存文件名为:

ZLG7290.C;

6)再点击工具栏File选项,选中New命令,新建文件,输入VIIC_C51.H头文

件,源程序见附录4,把文件保存到磁盘中,保存文件名为:VIIC_C51.H;

7)再点击工具栏File选项,选中New命令,新建文件,输入ZLG7290.H头文

件,源程序见附录5,把文件保存到磁盘中,保存文件名为:ZLG7290.H;

8)再点击工具栏File选项,选中New命令,新建文件,输入系统配置文件

"STARTUP.A51"文件(其主要功能是:定义数据段、程序段和堆栈的大小及

其起始地址、RAM的初始化、程序重新定位、初始化启动代码等),源程序见附

录6,把文件保存到磁盘中,保存文件名为:STARTUP.A51;

9)添加该文件到工程中,在Projectwindos窗口内,选中SourceGroup1然后点

击鼠标右键,选择AddfilestoGroup"SourceGroupr\选择timer.c>VIIC_C51.C、

ZLG7290.C和STARTUP.A51,单击Add按钮。

(-)程序文件的编译、链接

1)编译连接环境设置

A、点击菜单栏上的Project项,选择Optionfortarget,targets将出现调试环境设

置界面。

B、Target属性的设置,设置Off-ChipCodeMemory栏内的Eprom选项,start下

输入0x8000,size下输入0x4000;Off-ChipXdatamemory栏内的Eprom选项,

start下输入OxCOOO,size下输入0x4000。

C、点击Output选项卡在出现的窗口中选中CreateHEXfile选项。

D、点击C51选项卡,勾上“Interruptvectorsata”并把0x000改为"0x8000”

E、Debug环境的设置,选择Use选项,勾上"loadapplicationatsta"和"gotill

main”,然后单击Settings项,弹出TargetSetup对话框,Port中选择与电脑连接

的串口,然后确定。

2)程序的编译、连接

点击工具栏Project选项,选中BuildTarget命令,选中RebuildAllTargetFile命

令对所有的工程文件进行重新编译,此时“OutputWindows”信息输出窗口输出

一些相关信息,直至编译链接成功。

5、工程文件的仿真调试

1)点击菜单栏的"debug”选项,在弹出的下拉菜单中执行"start/stopdebug

session”;

2)点击菜单栏的“debug”选项,在弹出的下拉菜单中执行“go”;

3)点击菜单栏的“debug”选项,在弹出的下拉菜单中执行“go”。

六、实验思考题

1、如果断电还能不丢失时间应该做哪些措施;

2、如果要降低功耗,软件设计时应做哪些措施。

(做完实验后,资料要还给指导老师)

附录1实时时钟参考程序:timer.c

#include,'reg52.hM

include痴IiC_C51H7/包含VI2C软件包

includenzlg7290.hu

#definePCF85630xA2〃定义器件地址

#defineWRADDR0x00〃定义写单元首地址

#defineRDADDR0x02〃定义读单元首地址

sbitKEYJNT=P3A2;

sbitRST=P1AO;

unsignedchardisp_buff8]={0,0,0,0,0,0,0,0};//^^^;S

unsignedcharKEY;〃保存键值

bitswich_date=0;

unsignedchardisplay_time(unsignedchar*sd)

sd[0]=sd[0]&0x7f;〃秒屏蔽保留位

sd[l]=sd[l]&0x7f;〃分屏蔽保留位

sd[2]=sd[2]&0x3f;〃时屏蔽保留位

disp_buf[0]=(sd[0]%16);

disp_buf[l]=(sd[0]/16);

disp_buf[2]=31;

disp_buf[3]=(sd[l]%16);

disp_buf[4]=(sd[l]/16);

disp_buf[5]=31;

disp_buf⑹=(sM2]%16);

disp_buf[7]=(sd[2]/16);

ZLG7290_SendBuf(disp_buf,8);

return0;

)

unsignedchardisplay_date(unsignedchar*sd)

(

sd[0]=sd[0]&0x3f;〃日屏蔽保留位

sd[2]=sd[2]&0x1f;〃月屏蔽保留位

disp_buf[0]=(sd[0]%16);

disp_buf[1]=(sd[0J/16);

disp_buf⑵=(sd0%16)+Ox8O;〃后面加小数点

disp_buf[3]=(sd[2]/16);

disp_buf[4]=(sd[3]%16)+0x80;〃后面力U小数点

disp_buf[5]=(sd[3]/16);

disp_buf[6]=0;

disp_buf[7]=2;

ZLG7290_SendBuf(disp_buf,8);

return0;

)

unsignedcharDelayNS(unsignedcharno)

(

unsignedcharij;〃延时参数

for(;no>0;no-)

for(i=0;i<100;i++)

for(j=0;j<100;j++);

return0;

)

voidmain()

(

unsignedcharcodetd[9]={0x00,0x12,0x00,0x30,Ox12,0x06,0x05,0x02,0x04};〃定义初始

化字

unsignedcharrd[7];〃定义接收缓冲区

RST=0;

DelayNS(l);

RST=1;

ISendStr(PCF8563,WRADDR,td,0x5);〃初始化PCF8563,如果需要的话可以不去掉

DelayNS(l);

ISendStr(PCF8563,WRADDR+5,&td[5],0x4);〃初始化PCF8563,如果需要的话可以不去掉

while(l)

(

DelayNS(l);

IRcvStr(PCF8563,RDADDR,rd,0x7);〃读现在的时、分、秒

DelayNS(l);

if(swich_date)

display_date(rd+3);〃调显示日期子程序

else

display_time(rd);〃调显示时间子程序

if(KEYJNT==0)

(

KEY=ZLG7290_GetKey();

if(KEY==l)

swich_date=-swich_date;

)

timer.c完毕*/

附录2I2C软件包“VHC_C51.C”文件参考程序:

VIIC_C51.C

此程序是12c操作平台(主方式的软件平台)的底层的C子程序,如发送数据

及接收数据,应答位发送,并提供了几个直接面对器件的操作函数,它很方便的

与用户程序连接并扩展..…

注意:函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作

一定的修改.…(本例是lus机器周期,即晶振频率要小于12MHZ)

#include<reg52.h>/*头文件的包含*/

#include<intrins.h>

#defineucharunsignedchar/*宏定义*/

#defineuintunsignedint

#define_Nop()_nop_()/*定义空指令*/

/*常,变量定义区*/

/*端口位定义*/

sbitSDA=P”7;/*模拟I2C数据传送位*/

sbitSCL=P1A6;/*模拟I2C时钟控制位*/

/*状态标志*/

bitack;/*应答标志位*/

起动总线函数

函数原型:voidStart_I2c();

功能:启动12c总线,即发送I2C起始条件.

voidStart_I2c()

SDA=1;/*发送起始条件的数据信号*/

_Nop();

SCL=1;

_Nop();/*起始条件建立时间大于4.7us,延时*/

_Nop();

_Nop();

_Nop();

_Nop();

SDA=O;/*发送起始信号*/

_Nop();/*起始条件锁定时间大于4口s*/

_Nop();

_Nop();

_Nop();

_Nop();

SCL=O;/*钳住12c总线,准备发送或接收数据*/

_Nop();

_Nop();

)

结束总线函数

函数原型:voidStop」2c();

功能:结束I2C总线,即发送I2C结束条件.

voidStop_I2c()

SDA=O;/*发送结束条件的数据信号*/

_Nop();/*发送结束条件的时钟信号*/

SCL=1;/*结束条件建立时间大于4us*/

_Nop();

_Nop();

_Nop();

_Nop();

_Nop();

SDA=1;/*发送12c总线结束信号*/

_Nop();

_Nop();

_Nop();

_Nop();

字节数据传送函数

函数原型:voidSendByte(ucharc);

功能:将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对

此状态位进行操作.(不应答或非应答都使ack=0假)

发送数据正常,ack=l;ack=0表示被控器无应答或损坏。

voidSendByte(ucharc)

ucharBitCnt;

for(BitCnt=0;BitCnt<8;BitCnt++)/*要传送的数据长度为8位*/

{

if((c«BitCnt)&0x80)SDA=1;/*判断发送位*/

elseSDA=O;

_Nop();

SCL=1;/*置时钟线为高,通知被控器开始接收数据位*/

_Nop();

_Nop();/*保证时钟高电平周期大于4us*Z

_Nop();

_Nop();

_Nop();

SCL=O;

)

_Nop();

_Nop();

SDA=1;/*8位发送完后释放数据线,准备接收应答位*/

_Nop();

_Nop();

SCL=1;

_Nop();

_Nop();

_Nop();

if(SDA==l)ack=O;

elseack=l;/*判断是否接收到应答信号*/

SCL=O;

_Nop();

_Nop();

)

字节数据传送函数

函数原型:ucharRcvByte();

功能:用来接收从器件传来的数据,并判断总线错误(不发应答信号),

发完后请用应答函数。

ucharRcvByte()

ucharretc;

ucharBitCnt;

retc=O;

SDA=1;/*置数据线为输入方式*/

for(BitCnt=0;BitCnt<8;BitCnt++)

_Nop();

SCL=O;/*置时钟线为低,准备接收数据位*/

_Nop();

_Nop();/*时钟低电平周期大于4.7us*/

_Nop();

_Nop();

_Nop();

SCL=1;/*置时钟线为高使数据线上数据有效*/

_Nop();

_Nop();

retc=retc«l;

if(SDA==l)retc=retc+l;/*读数据位,接收的数据位放入relc中*/

_Nop();

_Nop();

)

SCL=O;

_Nop();

_Nop();

return(retc);

应答子函数

原型:voidAck_I2c(bita);

功能:主控器进行应答信号,(可以是应答或非应答信号)

voidAck_I2c(bita)

if(a==0)SDA=0;/*在此发出应答或非应答信号*/

elseSDA=1;

_Nop();

_Nop();

_Nop();

SCL=1;

_Nop();

_Nop();/*时钟低电平周期大于4us*/

_Nop();

_Nop();

_Nop();

SCL=0;/*清时钟线,钳住12c总线以便继续接收*/

_Nop();

_Nop();

向无子地址器件发送字节数据函数

函数原型:bitISendByte(ucharsla,ucahrc);

功能:从启动总线到发送地址,数据,结束总线的全过程,从器件地址sla.

如果返回1表示操作成功,否则操作有误。

注意:使用前必须已结束总线。

bitISendByte(ucharsla,ucharc)

Start」2c();/*启动总线*/

SendByte(sla);/*发送器件地址*/

if(ack==O)return(O);

SendByte(c);/*发送数据*/

if(ack==0)retum(0);

Stop_I2c();/*结束总线*/

relurn(l);

向有子地址器件发送多字节数据函数

函数原型:bitISendStr(ucharsla,ucharsuba,ucahr*s,ucharno);

功能:从启动总线到发送地址,子地址,数据,结束总线的全过程,从器件

地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。

如果返回1表示操作成功,否则操作有误。

注意:使用前必须已结束总线。

bitISendStr(ucharsla,ucharsuba,uchar*s,ucharno)

uchari;

Start_I2c();/*启动总线*/

SendByte(sla);/*发送器件地址*/

if(ack==O)return(O);

SendByte(suba);/*发送器件子地址*/

if(ack==O)return(O);

for(i=0;i<no;i++)

SendByte(*s);/*发送数据*/

if(ack==O)return(O);

s++;

)

Stop_I2c();/*结束总线*/

relum(l);

向无子地址器件读字节数据函数

函数原型:bitIRcvByte(ucharsla,ucahr*c);

功能:从启动总线到发送地址,读数据,结束总线的全过程,从器件地

址sla,返回值在c.

如果返回1表示操作成功,否则操作有误。

注意:使用前必须已结束总线。

bitIRcvByte(ucharsla,uchar*c)

Start_I2c();/*启动总线*/

SendByte(sla+l);/*发送器件地址*/

if(ack==O)return(O);

*c=RcvByte();/*读取数据*/

Ack_I2c(l);/*发送非就答位*/

Stop_I2c();/*结束总线*/

return(l);

向有子地址器件读取多字节数据函数

函数原型:bitISendStr(ucharsla,ucharsuba,ucahr*s,ucharno);

功能:从启动总线到发送地址,子地址,读数据,结束总线的全过程,从器件

地址sla,子地址suba,读出的内容放入s指向的存储区,读no个字节。

如果返回1表示操作成功,否则操作有误。

注意:使用前必须已结束总线。

bitIRcvStr(ucharsla,ucharsuba,uchar*s,ucharno)

uchari;

Start_I2c();/*启动总线*/

SendByte(sla);/*发送器件地址*/

if(ack==O)return(O);

SendByte(suba);/*发送器件子地址*/

if(ack—O)return(O);

Starl_I2c();

SendByte(sla+l);

if(ack==O)return(O);

for(i=0;i<no-1;i++)

(

*s=RcvByte();/*发送数据*/

Ack_I2c(0);/*发送就答位*/

s++;

)

*s=RcvByte();

Ack_I2c(l);/*发送非应位*/

Stop_I2c();/*结束总线*/

return(l);

)

/*完毕*/

/*12c软件包“VIIC_C51.C”文件完毕*/

附录3:ZLG7290软件包“ZLG7290.C”文件参考程序:

广州周立功单片机发展有限公司

研究所

产品一部

**文件信息-

**文件名:ZLG7290.C

**创建人:叶皓贲

**最后修改日期:2003-3-4

**描述:ZLG7290库函数程序

**

**历史版本信息——

**创建人:叶皓贲

**版本:0.01

**日期:2003-3-4

**描述:ZLG7290库函数程序

**修改人:

**版本:

**日期:

**描述:

**

**当前版本修订

**修改人:

**日期:

**描述:

**_________________________________________________

include”REG52.h”

#includenviic_c51.hn

#definezlg72900x70//ZLG7290的IIC地址

#defineSubKey0x01

#defineSubCmdBuf0x07

#defineSubDpRam0x10

**函数名称:DelayNS

**功能描述:长软件延时

**输入:i:延时参数,值越大时延时越久

**

**输出:无

**全局变量:无

**调用模块:无

**

**作者:叶皓贲

**日期:200334

**_______________________________________________________________________

**修改人:

**日期:

**_______________________________________________________________________

voiddelayMS(unsignedchari)

(

unsignedcharj,k;

for(k=0;k<i;k++)

for(j=0;j<60;j++);

)

**函数名称:ZLG7290_SendData

**功能描述:发送数据

**输入:SubAdd:输入数据

**DATA:输入值

**

**输出:0:Fail

**1:OK

**全局变量:无

**调用模块:delayMS

**

**作者:叶皓贲

**日期:200334

**_______________________________________________________________________

**修改人:

**日期:

**_______________________________________________________________________

unsignedcharZLG7290_SendData(unsignedcharSubAdd,unsignedcharData)

(

if(SubAdd>0xl7)

return0;

ISendStr(zlg7290,SubAdd,&Data,1);

delayMS(10);

return1;

)

**函数名称:ZLG7290_SendCmd

**功能描述:发送命令(对子地址7、8)

**输入:DATA1:命令1

**DATA2:命令2

**输出:0:Fail

**1:OK

**全局变量:无

**调用模块:ISendStr、delayMS

**

**作者:叶皓贲

**日期:200334

**_______________________________________________________________________

**修改人:

**日期:

**_______________________________________________________________________

unsignedcharZLG7290_SendCmd(unsignedcharData1,unsignedcharData2)

(

unsignedcharData⑵;

Data[0]=Datal;

Data[l]=Data2;

ISendStr(zlg7290,0x07,Data,2);

delayMS(lO);

return1;

)

**函数名称:ZLG7290_SendBuf

**功能描述:向显示缓冲区发送数据

**输入:*disp_buf:要发送数据的起始地址

**num:发送个数

**

**输出:无

**全局变量:无

**调用模块:ZLG7290_SendCmd

**

**作者:叶皓贲

**日期:2003-3-4

**修改人:

**日期:

**_______________________________________________________________________

voidZLG7290_SendBuf(unsignedchar*disp_buf,unsignedcharnum)

(

unsignedchari;

for(i=0;i<num;i++)

|

ZLG7290_SendCmd(0x60+i,*disp_buf);

disp_buf++;

}

)

**函数名称:ZLG7290_GetKey

**功能描述:读取键值

**输入:无

**

**输出:>0键值

**=0无键按下

**全局变量:无

**调用模块:IRcvStr、delayMS

**作者:叶皓贲

**日期:2003-3-4

**_______________________________________________________________________

**修改人:

**日期:

**_______________________________________________________________________

unsignedcharZLG7290_GetKey()

(

unsignedcharrece;

rece=O;

IRcvStr(zlg7290,1,&rece,1);

delayMS(lO);

returnrece;

)

/*“ZLG7290.C”文件完毕*/

附录4VIIC_C51.H头文件参考程序:

头文件名VHC_C51.H

这个头文件对应的库是VIIC_C51.LIB,库中有几个模拟I2C的函数,加入此文件

即可使用12c平台(主方式的软件平台),函数是对LPC764的12c的I/O口实

现,即其Pl.3(SDA),P1.2(SCL),51系列机型可以通用.

注意:函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作

一定的修改(本例是lus机器周期,即晶振频率要小于12MHZ).

(函数的使用可参考给出的事例程序.)

#ifdefuchar

#defineREADYDEF1/*宏uchar已定义*/

#else

#defineucharunsignedchar

#endif

无子地址发送字节数据函数

功能:从启动总线到发送地址,数据,结束总线的全过程,从器件地址sla.

如果返回1表示操作成功,否则操作有误。

externbitISendByte(ucharsla,ucharc);

有子地址发送多字节数据函数

功能:从启动总线到发送地址,子地址,数据,结束总线的全过程,从器件

地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。

如果返回1表示操作成功,否则操作有误。

externbitISendStr(ucharsla,ucharsuba,uchar*s,ucharno);

无子地址读字节数据函数

功能:从启动总线到发送地址,读数据,结束总线的全过程,从器件地

址sla,返回值在c.

如果返回1表示操作成功,否则操作有误。

externbitIRcvByte(ucharsla,uchar*c);

有子地址读取多字节数据函数

功能:从启动总线到发送地址,子地址,读数据,结束总线的全过程,从器件

地址sla,子地址suba,读出的内容放入s指向的存储区,读no个字节。

如果返回1表示操作成功,否则操作有误。

externbitIRcvStr(ucharsla,ucharsuba,uchar*s,ucharno);

#ifndefREADYDEF

#undefuchar

#endif

/**********************-①仍,夕VIIC_C51.H结束*********/

附录5ZLG7290.H头文件参考程序:

头文件名ZLG7290.H

externunsignedcharZLG7290_SendData(unsignedcharSubAdd,unsignedcharData);

externvoidZLG7290_SendBuf(unsignedchar*disp_buf,unsignedcharnum);

externunsignedcharZLG7290_SendCmd(unsignedcharData1,unsignedcharData2);

externunsignedcharZLG7290_GetKey();

/************木*********头文件名ZLG7290H结束********去/

附录6系统配置文件“STARTUP.A51”文件参考程序

SNOMOD51

;ThisfileispartoftheC51Compilerpackage

;Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.

;STARTUP.A51:Thiscodeisexecutedafterprocessorreset.

;TotranslatethisfileuseA51withthefollowinginvocation:

;A51STARTUP.A51

;TolinkthemodifiedSTARTUP.OBJfiletoyourapplicationusethefollowing

;BL51invocation:

;BL51<yourobjectfilelist>,STARTUP.OBJ<controls>

;User-definedPower-OnInitializationofMemory

;WiththefollowingEQUstatementstheinitializationofmemory

;atprocessorresetcanbedefined:

;;theabsolutestart-addressofIDATAmemoryisalways0

IDATALENEQU80H;thelengthofIDATAmemoryinbytes.

XDATASTARTEQUOH;theabsolutestart-addressofXDATAmemory

XDATALENEQUOH;thelengthofXDATAmemoryinbytes.

PDATASTARTEQUOH;theabsolutestart-addressofPDATAmemory

PDATALENEQUOH;thelengthofPDATAmemoryinbytes.

;Notes:TheIDATAspaceoverlapsphysicallytheDATAandBITareasofthe

;8051CPU.AtminimumthememoryspaceoccupiedfromtheC51

;run-timeroutinesmustbesettozero.

;ReentrantStackInitilization

;ThefollowingEQUstatementsdefinethestackpointerforreentrant

;functionsandinitializedit:

;StackSpaceforreentrantfunctionsintheSMALLmodel.

IBPSTACKEQU0;setto1ifsmallreentrantisused.

IBPSTACKTOPEQUOFFH+1;settopofstacktohighestlocation+1.

;StackSpaceforreentrantfunctionsintheLARGEmodel.

XBPSTACKEQU0;setto1iflargereentrantisused.

XBPSTACKTOPEQU0FFFFH+1;settopofstacktohighestlocation+1.

;StackSpaceforreentrantfunctionsintheCOMPACTmodel.

PBPSTACKEQU0;setto1ifcompactreentrantisused.

PBPSTACKTOPEQUOFFFFH+1;settopofstacktohighestlocation+1.

;PageDefinitionforUsingtheCompactModelwith64KBytexdataR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论