单片机产品设计与调试-基于STM32F1xx机型和HAL库函数 项目报告4-HAL答案_第1页
单片机产品设计与调试-基于STM32F1xx机型和HAL库函数 项目报告4-HAL答案_第2页
单片机产品设计与调试-基于STM32F1xx机型和HAL库函数 项目报告4-HAL答案_第3页
单片机产品设计与调试-基于STM32F1xx机型和HAL库函数 项目报告4-HAL答案_第4页
单片机产品设计与调试-基于STM32F1xx机型和HAL库函数 项目报告4-HAL答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

PAGE19《单片机产品设计与制作》项目报告项目4、利用外部中断实现工件计数显示姓名:学号:

一、项目目标理解中断的基本概念;会利用STM32外部中断进行电路设计和程序设计,实现相应的功能。二、具体工作任务利用STM32单片机外部中断,设计工件计数显示装置,进行方案设计、器件选型、电路和程序设计,完成软硬件调试,实现如下功能:生产线上每过一个工件,计数值加1,计数范围0~99,十进制显示。三、要点记录及成果检验任务4.1方案设计姓名学号日期分数(一)要点记录1、请画出系统方框图。2、简述常见光电传感器的分类及原理。对射式光电传感器将发射器和接收器对侧安装。没有工件时,接收器收到发射器发出的光;有工件时,光被工件阻挡,接收器收不到光。镜反射式光电传感器将发射器和接收器同侧安装。没有工件时,发送器的光被反射镜反射给接收器;有工件时,光被工件吸收,接收器收不到光。漫反射式光电传感器发射器和接收器也是同侧安装。没有工件时,发送器的光射向远处,接收器接收不到光;有工件时,光被工件表面反射回来,接收器收到光。

任务4.2电路设计与测试姓名学号日期分数1、如果用PE3接收传感器输入,数码管采用动态显示,573驱动,共阴极数码管,PD7~PD0接数码管段码,PD8和PD9作为位选信号。请画出完整电路(电源、外部高速晶振、外部低速晶振、启动、传感器、数码管)。任务4.3查询法程序设计与调试姓名学号日期分数1、用PE4接收传感器输入,传感器程序怎么改?Sensor.h#ifndef_SENSOR_H#define_SENSOR_H#include"sys.h" //位带操作头文件#include"SysTick.h" //滴答时钟头文件#defineSensor PEin(4)//为PE4起名SensorvoidSensor_Init(void); //传感器初始化函数voidSensor_Scan(void); //传感器扫描函数#endifSensor.c#include"sensor.h"staticu8Sensor_Last; //存储sensor上一次的值staticu8Workpiece; //存储工件数值(范围0~99)/#include"sensor.h"staticu8Sensor_Last; //上一次的检测值externu8Workpiece; //工件数(范围0~99)voidSensor_Init(void) //传感器初始化函数{GPIO_InitTypeDefGPIO_Initure; //定义GPIO初始化变量__HAL_RCC_GPIOE_CLK_ENABLE();//开启GPIOE时钟GPIO_Initure.Pin=GPIO_PIN_4;//Pin2GPIO_Initure.Mode=GPIO_MODE_INPUT; //输入//GPIO_Initure.Pull=GPIO_NOPULL; //浮空输入 GPIO_Initure.Pull=GPIO_PULLUP; //上拉输入HAL_GPIO_Init(GPIOE,&GPIO_Initure); //按照以上设置初始化PE2 Sensor_Last=1; //传感器上次输入=1 Workpiece=0; //传感器当前检测值=0}/***************传感器采集与处理程序***********************功能:采集Sensor输入,每来一个工件,结果+1;*输入:无*输出:工件数,u8类型***************传感器采集与处理程序***********************/u8Sensor_Scan(void){ if(Sensor!=Sensor_Last) //如果Sensor当前值和上一次不相等,说明输入状态发生改变 { if(Sensor==0) {Workpiece+=1;}//如果是下降沿,则工件数+1 Sensor_Last=Sensor; //无论是下降沿还是上升沿,将Sensor_Last刷新为当前值 delay_ms(10); //延时去抖 } if(Workpiece>99)Workpiece=0; //限制Workpiece在0~99范围 return(Workpiece); //返回Workpiece的值}2、如果用图4.2.4数码管动态显示电路,数码管程序怎么改?Seg.c#include"seg.h"u8smg_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0~9的共阳极数码管段码表//u8smg_table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的共阴极数码管段码表voidSeg_Init() //数码管初始化函数{ GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化变量 __HAL_RCC_GPIOC_CLK_ENABLE(); //开启GPIOC时钟 __HAL_RCC_GPIOD_CLK_ENABLE(); //开启GPIOD时钟 GPIO_InitStructure.Pin=SEG_Pin; //段码引脚 GPIO_InitStructure.Speed=GPIO_SPEED_FREQ_HIGH; //输出速度为高 GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出Out_PP HAL_GPIO_Init(SEG_Port,&GPIO_InitStructure); //按照以上设置初始化段码线 HAL_GPIO_WritePin(SEG_Port,SEG_Pin,GPIO_PIN_SET); //段码线全部输出1 GPIO_InitStructure.Pin=BS_Pin; //位选引脚 GPIO_InitStructure.Speed=GPIO_SPEED_FREQ_HIGH; //输出速度为高 GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出Out_PP HAL_GPIO_Init(BS_Port,&GPIO_InitStructure); //按照以上设置初始化位选线 Tens_S=0;Ones_S=0; //十位和个位都不选通 }/****************数码管显示程序*********************功能:00~99数码管显示*输入:Data——待显示数字,u8类型,范围0~99*输出:无***************************************************/voidSeg_Disp(u8Data){ u8Tens,Ones, Seg_Tens,Seg_Ones; u16Disp_Data; Tens=Data/10; //求待显示数字的十位数 Ones=Data%10; //求待显示数字的个位数 Seg_Tens=smg_table[Tens]; //求十位数的段码 Seg_Ones=smg_table[Ones]; //求个位数的段码 Disp_Data=0xfc00+Seg_Tens; //将十位段码整合成16位数据SEG_Port->ODR=Disp_Data;//将整合后的十位数段码送显示端口Tens_S=1;//选通十位,十位数码管显示delay_ms(20);//延时Tens_S=0;//禁止十位Disp_Data=0xfc00+Seg_Ones; //将个位段码整合成16位数据 SEG_Port->ODR=Disp_Data; //将整合后的个位数段码送显示端口Ones_S=1;//选通个位,个位数码管显示delay_ms(20);//延时Ones_S=0;//禁止个位}Seg.h#ifndef_SEG_H #define_SEG_H #include"sys.h" //位带操作头文件 #include"SysTick.h" //滴答时钟头文件 #defineSEG_Port GPIOC //给段码线所在端口起名(只用低8位) #defineSEG_Pin GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3\ |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7 //给段码引脚统一起名 #defineBS_Port GPIOD //给位选线所在端口起名(只用低2位) #defineBS_Pin GPIO_PIN_0|GPIO_PIN_1 //给位选引脚统一起名 #defineTens_S PDout(0) //给十位选通引脚起名 #defineOnes_S PDout(1) //给个位选通引脚起名 voidSeg_Init(void); //数码管初始化函数 voidSeg_Disp(u8data); //数码管动态显示函数#endif任务4.3中断法程序设计姓名学号日期分数英文翻译Interrupt中断NVIC(NestedVectoredInterruptController)嵌套的中断向量控制器EXTI(EXternInterruptLine)外部中断线EXTI0_IRQHandler外部中断0处理(程序)PendingBit挂起位Event事件AFIO(AlternateFunctionInputOutput)输入输出引脚复用功能EXTI_Trigger_Falling/Rising外部中断下降沿(上升沿)触发EXTI_Init外部中断初始化(库函数)NVIC_IRQChannelNVIC中断请求通道NVIC_IRQChannelPreemptionPriorityNVIC中断请求抢占优先级NVIC_IRQChannelSubPriorityNVIC中断请求副优先级(响应优先级)NVIC_InitNVIC初始化(库函数)概念明析STM32的中断电路包括处于内核的NVIC电路和内核外的中断电路两大部分。Cortex-M3最多支持256个中断源,即256种中断。但STM32F103ZET6只支持70个.上电复位后绝大多数中断都是被禁止的,但可以通过编程设置为允许。STM32为不同的中断规定了专门的入口地址,也规定了专门的中断服务程序名。EXTI0~EXTI4的中断函数名是独立的,分别为EXTI0_IRQHandler()~EXTI4_IRQHandler()。EXTI5~EXTI9共用一个中断函数名EXTI9_5_IRQHandler()EXTI10~EXTI15共用一个中断函数名EXTI15_10_IRQHandler()Cortex-M3的NVIC最大支持128层嵌套,STM32只使用到16层,即STM32最多允许16层嵌套。优先级数值越小,优先级越高STM32的优先级包含了抢占优先级、响应优先级(副优先级)和优先级排位三个概念。抢占优先级高者既可以优先响应,也可以嵌套。响应优先级高者只允许优先响应,不允许嵌套。优先级排位高者只允许优先响应,不允许嵌套。STM32F10x支持20个EXTI线中断。EXTIx中断必须从PAx或者PBx或者PCx等所有尾号为x的GPIO引脚输入STM32F10x允许的中断触发信号有三种:上升沿、下跳沿、沿EXTI线中断请求挂起位PendingBit可以硬件置1,但需要软件清除。中断模式会触发中断服务程序(软件)的运行,而事件只会触发某个硬件电路的某种动作。设计检验如果用PA0接收传感器输入,电路怎么画?程序怎么编?main.c#include"seg.h" //数码管定义头文件#include"sys.h" #include"SysTick.h"#include"exti.h" //外部中断头文件u8 Workpiece; //定义全局变量,用于存储设定值intmain(){ HAL_Init(); EXTI_Init(); //初始化EXTI Seg_Init(); //初始化数码管 Stm32_Clock_Init(RCC_PLL_MUL9); SysTick_Init(72); //初始化滴答时钟,指出系统时钟频率为72MHz while(1) { //Workpiece=Sensor_scan(); Seg_Disp(Workpiece); //将工件数送数码管进行数值显示 }}exti.h#ifndef_EXTI_H#define_EXTI_H #include"sys.h" #include"SysTick.h" voidEXTI_Init(void); //中断线初始化 #endifexti.c#include"exti.h"externu8Workpiece; //定义外部变量,用于存储工件数值(范围0~99)/****中断初始化函数*********************************************************/voidEXTI_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; //定义结构体变量,用于存放GPIO初始化参数 __HAL_RCC_GPIOA_CLK_ENABLE();//开启GPIOA时钟 /**********GPIOE_Pin_0初始化********/ GPIO_InitStructure.Pin=GPIO_PIN0;//Pin_0 GPIO_InitStructure.Mode=GPIO_MODE_IT_FALLING;//外部中断下降沿触发 GPIO_InitStructure.Pull=GPIO_PULLUP; HAL_GPIO_Init(GPIOA,&GPIO_InitStructure); //GPIOE初始化 //中断线0-PA0HAL_NVIC_SetPriority(EXTI0_IRQn,2,1);//抢占优先级为2,子优先级为1HAL_NVIC_EnableIRQ(EXTI0_IRQn);//使能中断线0Workpiece=0; //设置工件数初始值=0}/********************************************************************************函数名:EXTI0_IRQHandler*函数功能 :外部中断0函数*输入:无*******************************************************************************/voidEXTI0_IRQHandler(void){ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); //调用中断处理公用函数}voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){if(GPIO_Pin==GPIO_PIN_0) { Workpiece+=1; delay_ms(10); if(Workpiece>99)Workpiece=0; }}seg.h#ifndef_SEG_H#define_SEG_H#include"sys.h" #defineSEG_Port GPIOC voidSeg_Init(void); voidSeg_Disp(u8data);#endifseg.c#include"seg.h"u8smg_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9共阳极数码管段码表voidSeg_Init(){ GPIO_InitTypeDefGPIO_InitStructure; //定义变量,用于存储GPIO初始化参数 __HAL_RCC_GPIOC_CLK_ENABLE();//开启GPIOC时钟 /**********GPIOC_Pin_0~Pin_15初始化********/ GPIO_InitStructure.Pin=GPIO_PIN_All; GPIO_InitStructure.Speed=GPIO_SPEED_FREQ_HIGH;//输出速度 GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP;//推挽输出Out_PP HAL_GPIO_Init(GPIOC,&GPIO_InitStructure); //GPIOC初始化 //使GPIOC全部输出1(熄灭) HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);}/****************数码管显示程序*********************功能:00~99数码管显示*输入:带显示数字,u8类型,范围0~99*输出:无***************************************************/voidSeg_Disp(u8Data){ u8Tens,Ones, Seg_Tens,Seg_Ones; u16Disp_Data; Tens=Data/10; //求带显示数字的十位数 Ones=Data%10; //求带显示数字的个位数 Seg_Tens=smg_table[Tens]; //求十位数的段码 Seg_Ones=smg_table[Ones]; //求个位数的段码 Disp_Data=(Seg_Tens<<8)+Seg_Ones; //将十位数和个位数的段码整合在一起 GPIOC->ODR=Disp_Data; //将整合后的段码送16位显示端口}利用EXTI2和EXTI3中断实现按键加减1功能,电路怎么设计?程序怎么编?main.c#include"seg.h" //数码管定义头文件#include"exit.h" //传感器定义头文件u8Workpiece; //定义全局变量,用于存储工件数intmain(){ HAL_Init(); //初始化HAL Sensor_Init(); //初始化传感器 Seg_Init(); //初始化数码管 Stm32_Clock_Init(RCC_PLL_MUL9); //时钟切换到外部晶振,9倍频 SysTick_Init(72); //初始化滴答时钟,系统时钟频率72MHz while(1) { Seg_Disp(Workpiece); //将工件数送数码管进行数值显示 }}exti.h#ifndef_EXTI_H#define_EXTI_H #include"sys.h" #include"SysTick.h" voidEXTI_Init(void); //中断线初始化 #endifexti.c#include"exti.h"externu8Workpiece; //定义外部变量,用于存储工件数值(范围0~99)/****按键初始化函数*********************************************************/voidSensor_Init(){ GPIO_InitTypeDefGPIO_InitStructure; //定义结构体变量,用于存放GPIO初始化参数 __HAL_RCC_GPIOE_CLK_ENABLE();//开启GPIOE时钟 /**********GPIOE_Pin_2初始化********/ GPIO_InitStructure.Pin=GPIO_PIN_2|GPIO_PIN_3;//Pin_23 GPIO_InitStructure.Mode=GPIO_MODE_IT_FALLING;//外部中断下降沿触发 GPIO_InitStructure.Pull=GPIO_PULLUP; HAL_GPIO_Init(GPIOE,&GPIO_InitStructure); //GPIOE初始化 //中断线2-PE2HAL_NVIC_SetPriority(EXTI2_IRQn,2,1);//抢占优先级为2,子优先级为1HAL_NVIC_EnableIRQ(EXTI2_IRQn);//使能中断线2//中断线3-PE3HAL_NVIC_SetPriority(EXTI3_IRQn,2,2);//抢占优先级为2,子优先级为1HAL_NVIC_EnableIRQ(EXTI3_IRQn);//使能中断线2Workpiece=0; //设置工件数初始值=0}voidEXTI2_IRQHandler(void){ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2); //调用中断处理公用函数}voidEXTI3_IRQHandler(void){ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3); //调用中断处理公用函数}voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){if(GPIO_Pin==GPIO_PIN_2) { Workpiece+=1; delay_ms(10); if(Workpiece>99)Workpiece=0; }if(GPIO_Pin==GPIO_PIN_3) { Workpiece-=1; delay_ms(10); if(Workpiece<=0)Workpiece=0; }}Seg.h同题1Seg.c同题1利用EXTI5和EXTI6中断实现按键加减1功能,电路怎么设计?程序怎么编?main.c同题2(2)exti.h#ifndef_EXTI_H#define_EXTI_H #include"sys.h" #include"SysTick.h" voidEXTI_Init(void); //中断线初始化 #endif(3)exti.c#include"exti.h"externu8Workpiece; //定义外部变量,用于存储工件数值(范围0~99)/****按键初始化函数*********************************************************/voidSensor_Init(){ GPIO_InitTypeDefGPIO_InitStructure; //定义结构体变量,用于存放GPIO初始化参数 __HAL_RCC_GPIOE_CLK_ENABLE();//开启GPIOE时钟 /**********GPIOE_Pin_5初始化********/ GPIO_InitStructure.Pin=GPIO_PIN_5|GPIO_PIN_6;//Pin_23 GPIO_InitStructure.Mode=GPIO_MODE_IT_FALLING;//外部中断下降沿触发 GPIO_InitStructure.Pull=GPIO_PULLUP; HAL_GPIO_Init(GPIOE,&GPIO_InitStructure); //GPIOE初始化 //中断线5\6-PE5HAL_NVIC_SetPriority(EXTI9_5_IRQn,2,1);//抢占优先级为2,子优先级为1Workpiece=0; //设置工件数初始值=0}voidEXTI9_5_IRQHandler(void){ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_5); //调用中断处理公用函数 HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_6); }voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin){if(GPIO_Pin==GPIO_PIN_5) { Workpiece+=1; delay_ms(10); if(Workpiece>99)Workpiece=0; }if(GPIO_Pin==GPIO_PIN_6) { Workpiece-=1; delay_ms(10); if(Workpiece<=0)Workpiece=0; }Seg.h同题1Seg.c同题1利用EXTI5和EXTI6中断实现按键加减1功能,数码管采用动态显示电路,电路怎么画?程序怎么编?main.c同题4exti.h同题4exti.c同题4Seg.h#ifndef_SEG_H #define_SEG_H #include"sys.h" //位带操作头文件 #include"SysTick.h" //滴答时钟头文件 #defineSEG_Port GPIOC //给段码线所在端口起名(只用低8位) #defineSEG_Pin GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3\ |GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7 //给段码引脚统一起名 #defineBS_Port GPIOD //给位选线所在端口起名(只用低2位) #defineBS_Pin GPIO_PIN_0|GPIO_PIN_1 //给位选引脚统一起名 #defineTens_S PDout(0) //给十位选通引脚起名 #defineOnes_S PDout(1) //给个位选通引脚起名 voidSeg_Init(void); //数码管初始化函数 voidSeg_Disp(u8data); //数码管动态显示函数#endifSeg.c#include"seg.h"u8smg_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0~9的共阳极数码管段码表//u8smg_table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的共阴极数码管段码表voidSeg_Init() //数码管初始化函数{ GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化变量 __HAL_RCC_GPIOC_CLK_ENABLE(); //开启GPIOC时钟 __HAL_RCC_GPIOD_CLK_ENABLE(); //开启GPIOD时钟 GPIO_InitStructure.Pin=SEG_Pin; //段码引脚 GPIO_InitStructure.Speed=GPIO_SPEED_FREQ_HIGH; //输出速度为高 GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出Out_PP HAL_GPIO_Init(SEG_Port,&GPIO_InitStructure); //按照以上设置初始化段码线 HAL_GPIO_WritePin(SEG_Port,SEG_Pin,GPIO_PIN_SET); //段码线全部输出1 GPIO_InitStructure.Pin=BS_Pin; //位选引脚 GPIO_InitStructure.Speed=GPIO_SPEED_FREQ_HIGH; //输出速度为高 GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出Out_PP HAL_GPIO_Init(BS_Port,&GPIO_InitStructure); //按照以上设置初始化位选线 Tens_S=0;Ones_S=0; //十位和个位都不选通 }/****************数码管显示程序*********************功能:00~99数码管显示*输入:待显示数字,u8类型,范围0~99*输出:无***************************************************/voidSeg_Disp(u8Data){ u8Tens,Ones; //定义变量存储十位和个位数值 u8Seg_Tens,Seg_Ones; //定义变量存储十位和个位段码 u16Disp_Data; //定义变量,存储待显示的16位段码 Tens=Data/10; //求待显示数字的十位数值 Ones=Data%10; //求待显示数字的个位数值 Seg_Tens=smg_table[Tens]; //求十位数的段码 Seg_Ones=smg_table[Ones]; //求个位数的段码 //Disp_Data=0xff00+Seg_Tens; //将十位数的段码整合为16位,影响低8位,高8位全为1 //Disp_Data=0x0000+Seg_Tens; //将十位数的段码整合为16位,影响低8位,高8位全为0 Disp_Data=(SEG_Port->ODR&0xff00)+Seg_Tens;//将十位数的段码整合为16位,影响低8位,高8位保持 SEG_Port->ODR=Disp_Data; //将整合后的段码送显示端口 Tens_S=1; //选通十位数码管 delay_ms(50); //保持十位数码管显示 Tens_S=0; //断开十位数码管 //Disp_Data=0xff00+Seg_Ones; //将个位数的段码整合为16位,影响低8位,高8位全为1 //Disp_Data=0x0000+Seg_Ones; //将个位数的段码整合为16位,影响低8位,高8位全为0 Disp_Data=(SEG_Port->ODR&0xff00)+Seg_Ones;//将个位数的段码整合为16位,影响低8位,高8位保持 SEG_Port->ODR=Disp_Data; //将个位数段码送显示端口 Ones_S=1; //选通个位数码管 delay_ms(50); //保持个位数码管显示 Ones_S=0; //断开个位数码管}利用EXTI0中断实现每按一下按键,PC7~PC0连接的8个LED状态取反一次,电路怎么画?程序怎么编?Main.c#include"exti.h" //按键中断头文件#include"led.h" //LED定义头文件intmain(){ SysTick_Init(72); //初始化滴答时钟,指出系统时钟频率为72MHz exit_Init(); //初始化按键Led_Init();//初始化LED while(1);}exti.h#ifndef_EXTI_H#define_EXTI_H #include"sys.h" #include"SysTick.h" voidEXTI_Init(void); //中断线初始化 #endifexti.cU16n;#include"exti.h"/****按键初始化函数*********************************************************/voidEXTI_Init(void){ GPIO_InitTypeDefGPIO_InitStructure; //定义结构体变量,用于存放GPIO初始化参数 __HAL_RCC_GPIOA_CLK_ENABLE();//开启GPIOE时钟 /**********GPIOE_Pin_0初始化********/ GPIO_InitStructure.Pin=GPIO_PIN_0//Pin_0 GPIO_InitStructure.Mode=GP

温馨提示

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

评论

0/150

提交评论