![基于MSP430单片机的电机调速系统_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/424cf8b3-3394-4fba-83dc-f48f9c157a0a/424cf8b3-3394-4fba-83dc-f48f9c157a0a1.gif)
![基于MSP430单片机的电机调速系统_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/424cf8b3-3394-4fba-83dc-f48f9c157a0a/424cf8b3-3394-4fba-83dc-f48f9c157a0a2.gif)
![基于MSP430单片机的电机调速系统_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/424cf8b3-3394-4fba-83dc-f48f9c157a0a/424cf8b3-3394-4fba-83dc-f48f9c157a0a3.gif)
![基于MSP430单片机的电机调速系统_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/424cf8b3-3394-4fba-83dc-f48f9c157a0a/424cf8b3-3394-4fba-83dc-f48f9c157a0a4.gif)
![基于MSP430单片机的电机调速系统_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/17/424cf8b3-3394-4fba-83dc-f48f9c157a0a/424cf8b3-3394-4fba-83dc-f48f9c157a0a5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、四川理工学院挑战杯论文目录摘 要21 前言32 系统框图33 方案选择与比较43.1 LCD显示模块43.1.1 方案一:43.1.2 方案二:43.2 测速模块43.2.1 方案一:43.2.2 方案二:43.3 电机驱动模块53.3.1 方案一:53.3.2 方案二:53.3.2 方案三:64 系统的具体设计与实现64.1 LCD显示64.2 测速64.3 驱动64.4 控速方案设计64.5 键盘输入75 原理图与PCB图85.1 msp430最小系统原理图85.2其他模块原理图86 程序框图和系统程序106.1 程序流程图106.2 系统程序137 附录318 评价329总结3210 参
2、考文献33摘 要本文主要研究了基于MSP430单片机的电机调速系统,通过键盘输入电机需达到的速度,并提供两种可选的输出模式即波形的静、动态显示,然后通过PID算法调节单片机输出的波,从而使电机达到之前输入的预设速度,并将波形及预设速度和当前速度在LCD12864上显示出来,在测速方面采用市场上比价常见的霍尔传感器A44E,由单片机记录电机动时由小磁铁靠进传感器时产生的脉冲数,从而达到测速的目的,由于在PID算法中采用遇限削弱积分法,系统稳定性较好,具有较强的实用性。关键词:msp430、PID、霍尔元件、LCD12864AbstractThis article mainly studied t
3、he motor speed systems based on MSP430, Through the keyboard input the speed which it takes to reach, And provide two optional output modes of static and dynamic waveform to display.In order to reach the speed which has been inputed ,we take the PID algorithm to control the PWM,then display the wave
4、、input and output on the LCD12864. On the speed measurement,we take the A44E which is very common in the market.then in order to measurement the speed,we count the pulse which is produce when Small magnets depend into sensor. Because in the PID algorithm we use the encounter limit weaken integral me
5、thod, the system stability is good, has the stronger practicability Keywords: msp430、PID、Hall Sensor、LCD128641 前言MSP430系列超低功耗单片机是I公司于1996年开始推出的超低功耗16位单片机,凭借其自身优良的性能、方便灵活的开发方式、丰富的技术资料和应用案例,使得MSP430在国内得到非常广泛的应用。PID调节是连续系统中技术最成熟、应用最为广泛的一个调节方式。其实质就是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,其运算结果用以输出控制。实际应用中,根据被控对象的特性
6、和控制要求,可灵活的改变PID结构,以充分发挥计算机的作用。2 系统框图设计之前先画出系统的整个结构框架,以便于后面设计电路板和写程序。图一 系统结构图3 方案选择与比较3.1 LCD显示模块3.1.1 方案一:采用LCD1602显示,由单片机的总线模式连接。1602可以显示两行,每行可以显示16个字符,操作简单,控制容易。3.1.2 方案二:采用LCD12864显示,12864具有四行显示,每行可以显示8个汉字16个字符,操作相对1602复杂一些,指令较多,但是基本原理是一致的。通过对方案一和方案二的分析,以及结合本设计的要求,我们要求显示汉字和动态曲线图,所以我们选用12864液晶。3.2
7、 测速模块3.2.1 方案一:利用红外线对射方式和反射方式,在电机的转轴上安装一个塑料圆盘,再在圆盘上开一些小孔,通过记录脉冲数来记录圆盘转过的圈数,从而测出电机的转速。但无论是反射式红外传感器还是对射式红外传感器,他们对都对外围环境要求较高,易受外部环境的影响,稳定性不高,且价格较为昂贵。3.2.2 方案二:霍尔元件具有体积小,频率响应宽度大,动态特性好,对外围电路要求简单,使用寿命长,价格低廉等特点,电源要求不高,安装也较为方便。利用霍尔元件来对转过的塑料圆盘圈数来计数,在塑料圆盘边上贴两个磁铁,通过记录脉冲数来记录圆盘转过的圈数,从而测出电机的转速。试验期间发现用红外对管较之霍尔检测电路
8、实现同一功能,电路复杂,调试不稳定,不如霍尔元件使用灵活,只要调整好磁钢和霍尔开关的距离就能完成检测任务,故选用了霍尔元件测速。综合多方面因素决定选用方案2,其原理图接线如图二所示:图二 霍尔传感器3.3 电机驱动模块3.3.1 方案一: 采用传统的功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强。其原理图连接如图三所示。图三 电机驱动3.3.2 方案二:采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,
9、稳定性好,性能优良。且由L298N结合单片机可实现对小车速度的精确控制。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。3.3.2 方案三:采用由双极性管组成的H桥电路。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术。本系统电机是空转,不要求严格的负载驱动,在加上成本的高低和经济承受能力,我们选择方案一。4 系统的具体设计与实现4.1
10、LCD显示在液晶界面上显示设定转速和电机的当前速度,并绘制PID调速过程中的速度波动曲线图。4.2 测速 在电机的转轴上安装一个塑料圆盘,在圆盘的边上对称的贴两个磁铁,霍尔元件安装在电路板上,当磁铁垂直接触霍尔元件时产生低电平,通过msp430的P1口某一引脚中断计数,用定时器A计时间。这样在规定的时间内记录脉冲数从而计算出电机一定时间的转速。4.3 驱动 通过msp430的P4.1引脚输出pwm波形,控制三极管的导通,从而达到控制电机的转速的目的。4.4 控速方案设计在模拟系统中,PID算法的表达式为:式中,调节器的输出信号调节器的偏差信号,它等于测量值与给定值之差调节器的比例系数调节器的积
11、分时间调节器的微分时间在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象“一阶滞后纯滞后”与“二阶滞后纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、)。PID调节器个校正环节的作用:(1) 比例环节:即时成比例的反应控制系统的偏差信号e(t),偏差一旦产生, 调节器立即产生控制作用以减少偏差。
12、(2) 积分环节:主要用于消除误差,以提高系统无差度。积分作用的强弱取决于积分时间,积分作用越弱,反之越强。(3) 微分环节:能反映偏差的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个早期的有效修正信号,从而加快系统的动作速度,减少调节时间。将模拟信号、在第n次采样的数据分别用、表示,于是有从而可以推导出数字PID算法:将此式代入程序中调节好、这三个参数,从而调节PWM使电机转速达到设定值。在实际应用中数字PID算法的积分项可能会引起饱和现象,导致带幅度的超调,是系统那个不稳定。为了消除饱和积分的影响,我们采用遇限削弱积分法:一旦控制量进入饱和区,则停止进行增大积分的运
13、算。4.5 键盘输入采用4×4矩阵键盘。用msp430单片的P2口中断来扫描键盘,当有键按下时产生中断,在中断内处理键值,每按一次记录一个数,将设定的 转速记录下来,传给PID函数进行计算和控制。5 原理图与PCB图5.1 msp430最小系统原理图图四 MSP430F149最小系统图5.2其他模块原理图图五 电源接口及稳压电路图六 IO扩展电路及外部设备电源供给6 程序框图和系统程序6.1 程序流程图图七 PID算法流程图图八 键盘输入流程图图八 系统流程图6.2 系统程序将各个模块程序整理如下。程序一:键盘输入检测文件#include<msp430x14x.h>#in
14、clude"subfuncs.h"#define uint unsigned int#define uchar unsigned char#define SCAN_OUT P2OUT /4×4键盘扫描端口,低4位是列线,高4位是行线#define SCAN_IN P2IN/采用逐列扫描的方法,无按键时,低4位输出1,高4位输出0/当有按键时,高4位输出扫描电位,低4位输入扫描结果const uchar uca_RowScan4=0x7F,0xBF,0xDF,0xEF;/列线扫描电压,分为第1,2,3,4根列线uchar k;void clear_row(uchar
15、 row) uchar i=0; Write_Cmd(row); /显示地址 for(i=0;i<8;i+) Write_Data(0x20); /写入十六个空格 Write_Cmd(row);/显示地址void Init_Keypad(void) P2DIR |= 0xF0; /P2.0P2.3设置为输入状态, P2.4P2.7设置为输出状态 P2OUT = 0x00; / P2.4P2.7输出低电平/*Scankey 键盘扫描函数返回值09代表数值0910代表删除光标左边一位11代表确定键12表示输入错误*/ uint ucKeyScan(void) uchar ucTemp=0;/
16、扫描状态暂存 uchar ucRow=0,ucLine=0;/行号,列号 uchar key=0; /返回键值 uint speed1=0; uchar i=0; Init_Keypad(); while(1) while(P2IN&0x0F)= 0x0f)/等待按键按下 s P2OUT = 0x00; / Delay_Nms(5); for(ucRow=0;ucRow<4;ucRow+)/列扫描 P2OUT = uca_RowScanucRow; /输出扫描电位 ucTemp = P2IN&0x0F; Delay_Nms(20); if(ucTemp != 0x0F)
17、/判断该列是否有按键按下 Delay_Nms(15); if(ucTemp=(P2IN&0x0F) switch(ucTemp)/如果有,则判断行号 case 0x0E: ucLine=1;break; case 0x0D: ucLine=2;break; case 0x0B: ucLine=3;break; case 0x07: ucLine=4;break; default: ucLine=5;break; while(P2IN&0x0F) != 0x0f)/等待按键放开 Delay_Nms(25); while(P2IN&0x0F) != 0x0f)/等待按键放开
18、 Delay_Nms(5); /* 判断键值*/ switch(ucLine+(ucRow+1)*10) case 11: key=1;break; case 12: key=2;break; case 13: key=3;break; case 14: key=12;break; case 21: key=4;break; case 22: key=5;break; case 23: key=6;break; case 24: key=12;break; case 31: key=7;break; case 32: key=8;break; case 33: key=9;break; cas
19、e 34: key=12;break; case 41: key=12;break; case 42: key=0;break; case 43: key=11;break; case 44: key=10;break; if(key=12) else if(key = 10) i=0; return speed1; else if(key=11) clear_row(0x84); i=0; else if(i=0) clear_row(0x84); i=1; Write_Data(0x30+key); speed1 = speed1*10+key; uchar selc_mode()/模式选
20、择函数 uchar ucTemp=0;/扫描状态暂存 uchar ucRow=0,ucLine=0;/行号,列号 uchar key=0;/返回键值 Init_Keypad(); while(1) while(P2IN&0x0F)= 0x0f)/等待按键按下 s P2OUT = 0x00; / Delay_Nms(5); for(ucRow=0;ucRow<4;ucRow+)/列扫描 P2OUT = uca_RowScanucRow; /输出扫描电位 ucTemp = P2IN&0x0F; Delay_Nms(20); if(ucTemp != 0x0F) /判断该列是否
21、有按键按下 Delay_Nms(15); if(ucTemp=(P2IN&0x0F) switch(ucTemp)/如果有,则判断行号 case 0x0E: ucLine=1;break; case 0x0D: ucLine=2;break; case 0x0B: ucLine=3;break; case 0x07: ucLine=4;break; default: ucLine=5;break; while(P2IN&0x0F) != 0x0f)/等待按键放开 Delay_Nms(25); while(P2IN&0x0F) != 0x0f)/等待按键放开 Delay_
22、Nms(5); /* 判断键值*/ switch(ucLine+(ucRow+1)*10) case 11: key=1;break; case 12: key=2;break; case 13: key=3;break; case 14: key=3;break; case 21: key=3;break; case 22: key=3;break; case 23: key=3;break; case 24: key=3;break; case 31: key=3;break; case 32: key=3;break; case 33: key=3;break; case 34: key
23、=3;break; case 41: key=3;break; case 42: key=3;break; case 43: key=11;break; case 44: key=10;break; if(key=1) clear_row(0x94); Write_Data(0x30+key); k = key; else if(key=2) clear_row(0x94); Write_Data(0x30+key); k=key; else if(key=11) clear_row(0x94); else return k; 程序二:LCD12864显示文件#define uchar uns
24、igned char#define uint unsigned intvoid Delay_1ms(void);void Delay_Nms(uint n);void Write_Cmd(uchar cod);void Write_Data(uchar dat);void Ini_Lcd(void);void Disp_HZ(uchar addr,const uchar * pt,uchar num);void Disp_ND(uchar addr,uint thickness);void Draw_TX(uchar Yaddr,uchar Xaddr);void Draw_PM(const
25、uchar *ptr);void display(uchar add,uint cont);void display_str(uchar *str);void Clear_GDRAM(void);uchar Read_Data();void dis_line(uchar yaddr);void dis_lin(uchar ystar,uchar xstar,uchar yend,uchar xend);#include <msp430x14x.h>typedef unsigned char uchar;typedef unsigned int uint;#define LCD_Da
26、taIn P5DIR=0x00/数据口方向设置为输入#define LCD_DataOut P5DIR=0xff/数据口方向设置为输出#define LCD2MCU_Data P5IN#define MCU2LCD_Data P5OUT#define LCD_CMDOut P3DIR|=0x07/P3口的低三位设置为输出#define LCD_RS_H P3OUT|=BIT0/P3.0#define LCD_RS_L P3OUT&=BIT0/P3.0#define LCD_RW_H P3OUT|=BIT1/P3.1#define LCD_RW_L P3OUT&=BIT1/P3.
27、1#define LCD_EN_H P3OUT|=BIT2 /P3.2#define LCD_EN_L P3OUT&=BIT2 /P3.2void Delay_1ms(void)uchar i; for(i = 150;i > 0;i-) _NOP(); void Delay_Nms(uint n) uint i; for(i = n;i > 0;i-) Delay_1ms();void Write_Cmd(uchar cmd) uchar lcdtemp = 0; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(
28、); lcdtemp = LCD2MCU_Data; LCD_EN_L; while(lcdtemp & 0x80); LCD_DataOut; LCD_RW_L; MCU2LCD_Data = cmd; LCD_EN_H; _NOP(); LCD_EN_L;void Write_Data(uchar dat) uchar lcdtemp = 0; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(); lcdtemp = LCD2MCU_Data; LCD_EN_L; while(lcdtemp & 0x80); LC
29、D_DataOut; LCD_RS_H; LCD_RW_L; MCU2LCD_Data = dat; LCD_EN_H; _NOP(); LCD_EN_L; void Ini_Lcd(void) LCD_CMDOut; /液晶控制端口设置为输出 Delay_Nms(500); Write_Cmd(0x30); /基本指令集 Delay_1ms(); Write_Cmd(0x02); / 地址归位 Delay_1ms();Write_Cmd(0x0c); /整体显示打开,游标关闭 Delay_1ms();Write_Cmd(0x01); /清除显示 Delay_1ms();Write_Cmd(0
30、x06); /游标右移 Delay_1ms();Write_Cmd(0x80); /设定显示的起始地址void Disp_HZ(uchar addr,const uchar * pt,uchar num) uchar i; Write_Cmd(addr); for(i = 0;i < (num*2);i+) Write_Data(*(pt+); uchar Read_Data() uchar lcdtemp = 0; uchar data=0; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(); lcdtemp = LCD2M
31、CU_Data; LCD_EN_L; while(lcdtemp & 0x80); LCD_DataIn; LCD_RS_H; LCD_RW_H; LCD_EN_H; _NOP(); data = LCD2MCU_Data; _NOP(); LCD_EN_L; return data; void Clear_GDRAM(void) uchar i,j,k; Write_Cmd(0x34); /打开扩展指令集i = 0x80; for(j = 0;j < 32;j+) Write_Cmd(i+); Write_Cmd(0x80); for(k = 0;k < 16;k+) W
32、rite_Data(0x00); i = 0x80; for(j = 0;j < 32;j+) Write_Cmd(i+); Write_Cmd(0x88); for(k = 0;k < 16;k+) Write_Data(0x00); Write_Cmd(0x30); /回到基本指令集/*在指定位置画点*/void Draw_TX(uchar Yaddr,uchar Xaddr) uchar row,tier,tier_y; uchar data2; Write_Cmd(0x34); /打开扩展指令集 Write_Cmd(0x01); /清屏,只能清除DDRAM tier = X
33、addr/16; tier_y = Xaddr%16; if(Yaddr<32) row = Yaddr; else row = Yaddr - 32; tier += 8; Write_Cmd(row+0x80); /Y地址 Write_Cmd(tier+0x80); /X地址 data0 = Read_Data(); /无效位 data0 = Read_Data(); data1 = Read_Data(); Write_Cmd(row+0x80); /Y地址 Write_Cmd(tier+0x80); /X地址 if(tier_y<8) Write_Data(data0|(0
34、x01<<(7 - tier_y); Write_Data(data1); else Write_Data(data0); Write_Data(data1|(0x01<<(15 - tier_y); Write_Cmd(0x36); /打开绘图显示 Write_Cmd(0x30); /回到基本指令集模式/*在指定点画线*/void dis_lin(uchar ystar,uchar xstar,uchar yend,uchar xend) int xdist,ydist,xabs,yabs,dist; int m,n; do xdist = xend - xstar;
35、 if(xdist<0) m=-1; else if(xdist=0) m=0; else m=1; xabs = m*xdist; ydist = yend - ystar; if(ydist<0) n=-1; else if(ydist=0) n=0; else n=1; yabs = n*ydist; if(xabs > yabs) dist = xabs; xstar+=m; ystar+=n; else dist = yabs; xstar+=m; ystar+=n; Draw_TX(ystar,xstar); while(dist!=0); void dis_li
36、ne(uchar yaddr) uint i; for(i=0;i<128;i+) Draw_TX(yaddr,i);/*将计数器的值每一位拆开函数*/void display(uchar add,uint cont) uchar i=0,n=1; uint temp=1; uchar p5=0; while(1)/cont 为n位 if(cont>=temp)&(cont<(temp*10) break; temp=temp*10; n+; Write_Cmd(add); for(i=0;i<n;i+) pi=cont/temp; Write_Data(48+
37、pi); cont=cont%temp; temp=temp/10; void display_str(uchar *str) uchar i; for(i=0;stri!='0'i+) Write_Data(stri);#define uchar unsigned char #define uint unsigned int void display_dot(uchar code,uchar time);void display_dot1(uchar code,uchar time);void display_line(uchar code);void mov_screen(
38、uchar *sp);#include <msp430x14x.h>#include "subfuncs.h"#define uchar unsigned char #define uint unsigned int void display_dot(uchar code,uchar time) uchar addx,addy; if(code>=31) addx = 0x80 + time/8; code = code - 31; else addx = 0x88 + time/8; addy = 0x80 + 31-code; Draw_TX(addy
39、,addx, tabtime%8);void display_dot1(uchar code,uchar time) uchar addx,addy; if(code>=31) addx = 0x80 + time/8; code = code - 31; else addx = 0x88 + time/8; addy = 0x80 + 31-code; if(time%8=0)&(time!=0)|(time=63) Write_Cmd(0x01); /清屏,只能清除DDRAM Write_Cmd(0x34); /使用扩展指令集,关闭绘图显示 Write_Cmd(addy);
40、/Y地址 if(time=63) Write_Cmd(addx); /X地址 else Write_Cmd(addx-1); /X地址 Write_Data(0x00); Write_Data(0x00); Write_Cmd(0x36); /打开绘图显示 Write_Cmd(0x30); /回到基本指令集模式 void display_line(uchar code) uchar i,cod; uchar addx,addy; for(i=0;i<64;i+) if(code>=31) addx = 0x80 + i/8; cod = code - 31; else addx =
41、 0x88 + i/8; addy = 0x80 + 31-cod; Draw_TX(addy,addx, tab1i%8); void mov_screen(uchar *sp) uchar i,j,code; int n; for(n=63;n>=0;n-) j=4-n%4; code=spn; for(i=1;i<j;i+) if(spn=spn+i) code = code|spn+i; display_dot1(code,n); 程序三:主函数程序#include <msp430x14x.h>#include "subfuncs.h"#in
42、clude "key.h"#include "math.h"#define uint unsigned int #define uchar unsigned charuchar code32 = 0; uint time=0;uchar key = 0;/*PID参数设置区*/int e3=0;float a0 = 0.2; / 调节器的放大系数float a1 = 2.2; / 积分时间float a2 = 2; / 微分时间float u = 9000;float Du=0;float Dup=0,Dui=0,Dud=0;/*提示字符*/const uchar hang1 = "输入速度"const uchar hang2 = "选择模式"const uchar hang3 = "1.模式一"const uchar hang4 = "2.模式二"uchar tishi22= "I:","O:"uchar string="r/s"/*参数定义*/uchar i=0;uint PWM=8000;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车行业零部件采购供应合同
- 2025年锂亚电池项目申请报告模稿
- 2025年个人借条合同样本
- 2025年设备租赁与物流协调合同范本
- 2025年个人消费贷款合同简化版
- 2025年医疗物联网平台运营策划协议
- 2025年临时停车楼建设施工合同
- 2025年云计算服务协议样本(电子版)
- 2025年全球企业家保密协议指南
- 2025年供货与采购合作合同
- 贵州省贵阳市2023-2024学年五年级上学期语文期末试卷(含答案)
- 规划课题申报范例:俄罗斯教育改革研究(附可修改技术路线图)
- 运输企业安全事故报告调查处理制度(简单版5篇)
- SAP导出科目余额表和凭证表操作说明及截图可编辑范本
- 仓库货物安全管理
- 服务质量、保证措施
- 端午做香囊课件
- 2024年部编版九年级语文上册电子课本(高清版)
- 墨香里的年味儿(2023年辽宁沈阳中考语文试卷记叙文阅读题及答案)
- 外研版小学五年级上册英语阅读理解专项习题
- 2024-2030年市政工程行业发展分析及投资战略研究报告
评论
0/150
提交评论