版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、太原科技大学电子课程设计字符发生器学院:专业班级: 姓名: 学号: 指导教师: 时间:2014-12-23 目录图目录3表目录3程序目录3一、设计任务与要求4二、原理介绍4三、总体设计41.方案制定5方案1.单个字符移动显示5方案2.以字符串的形式进行移动显示62.方案选择6四、字符设计7五、选择器件81.FPGA器件82.74HC1388a)器件图及内部图8b)真值表9c)2个138译码器组成4-16译码器93.74HC59510a)器件图及内部图10b)真值表10c)电路图11六、功能模块111.分频器112.字符数组读取123.译码器底层程序134.74HC595底层程序135.上下移动
2、函数146.左右移动函数15七、总体设计电路图15附录一17附录二26附录三0图目录图 1内部原理图及外观图4图 2上下滚动显示5图 3系统框图7图 4字模生成器生成的字模7图 5 74HC1388图 6 4-16译码器9图 7波形仿真图10图 8 74HC59510图 9 74HC595级联电路图11图 10总体设计电路图15图 11 波形仿真图16图 12 左右滚动27图 13 上下滚动27表目录表 1 EP4CE6器件特性8表 2 74HC138真值表9表 3 74HC595真值表10程序目录程序 1分频程序12程序 2调用例化程序以及RAM底层驱动函数13程序 374HC138底层驱动
3、函数13程序 474HC595底层驱动函数14程序 5上下移动函数14程序 6左右移动函数15程序 7左右滚动显示19程序 8上下滚动显示22程序 9字库函数25一、 设计任务与要求在16X16点阵上输出显示:身体健康、心理健康、社会健康。十二个字。输出:长短相形高下相倾前后相随音声相和。十六个字。扩展要求:让十二个字上或下或左或右滚动输出。其它。二、 原理介绍单个8X8点阵内部原理图及外观图如图1所示,以共阴点阵为例。当点阵的第n行置高电平,同时第m列置低电平,则对应的第n行,第m列的数码管被点亮。根据点阵的原理,用4块8X8点阵即可组成16X16点阵,此时点阵数量满足显示汉字的要求。字符发
4、生器采用动态扫描工作方式。逐行给LED置高电平的同时,对应列置低电平。如此每循环16次,即可显示相应字符。当行扫描足够快时(扫描速度大于2ms/行),由于人眼的视觉暂留效果,字符就能固定的显示出来。附录二中给出了显示原理。图 1内部原理图及外观图三、 总体设计选题确定后,便开始着手设计本课题的方案,以及制作步骤。1. 方案制定方案1. 单个字符移动显示对于单个的字符发生器而言,根据点阵的原理,需要将单个字符设计为1*16的数组。显示单个字符时,需要译码器和595芯片在时序上进行配合显示输出。在能对单个字符进行显示后仅需要将单个字符的移动显示变换到字符串上进行移动显示即可。本设计前期首先有目标的
5、点亮自定义的数组。而后,通过数组点亮一个汉字。一个汉字可以由1组含16个元素,每元素宽为16位的数组构成。对于点亮一个汉字,由于38译码器使用3个IO口即可控制输出8路状态,595传入并出器件同样使用3个IO口即可控制8路输出不同的信息,从而大大降低了FPGA的IO端口的使用,进而也简化了设计的难度。使用138译码器进行点阵行扫描控制,使用595传入并出显示对应行的对应数据。本设计在处理一个字符进行上下滚动显示时,通过改变138译码器的扫描顺序即可实现字符的上下移动。图2为字符上下滚动显示示意图。以“北”字为例。第32*N+0*2ms显示完整的“北”字。此时,38译码器输出:1、215、16对
6、应595输出Data数组信息如下:Data15、Data14Data1、Data0第32*N+1*2ms显示“北”字上移1格。此时,38译码器输出:2、316、1对应595输出Data数组信息如下:Data15、Data14Data1、Data0第32*N+11*2ms显示“北”字上移11格。此时,38译码器输出:12、1310、11对应595输出Data数组信息如下:Data15、Data14Data1、Data0第32*N+14*2ms显示“北”字上移14格。此时,38译码器输出:15、1613、14对应595输出Data数组信息如下:Data15、Data14Data1、Data0图 2
7、上下滚动显示本设计在处理单个字符左右滚动显示时使用简单的字符以为处理即可。对应算法如下:DATA = (Data15-A>>shift_ii)|Data15-A<<shift_ii (1)式(1)中,DATA为显示数据的寄存器型变量,Data为存放字符的数组,shift_ii为向左或右移动的位数,A为38译码器的输出。将方案1的设计思路转化为Verilog语言后实现单个字符的上下和左右移动。于是,接下来进行的任务便是将单个字符转换为字符串的形式进行移动显示。方案2. 以字符串的形式进行移动显示在实现字符串的移动显示的过程中,发现字符串的移动显示并不像单个字符移动那样简单
8、。原因有以下几点:(1) 字符串中包含的数据比单个字符包含的数据多。其中数据以字符的个数的倍数增加;(2) 字符数据的增加导致在字符串在上下移动显示的过程中不能像单个字符那样通过改变译码器的输出顺序进行移动;(3) 字符数据的增加导致字符串在左右移动过程中必须考虑到字符与字符之间的切换问题。针对上述的几点问题,在解决处理字符串的移动输出显示过程中,决定重新设计新的算法,以适应新的改变。方案2中的改变主要有以下几点:(1) 上下移动显示过程中选择译码器的固定输出,而改变字符的数组内容进而改变字符串的上下移动。此时,字符数组的改变是通过FIFO(First In First Out)方式进行的;(
9、2) 字符串的左右移动显示选择采用两个字符数组的方式进行。一个数组显示下一帧字符,列一个数组用于存放下一帧字符,通过这两个字符的组合搭配输出显示本一帧字符。2. 方案选择本设计采用方案2处理字符串的移动显示效果。本设计中对十二个、十六个字符进行显示。对于字符串的显示方式与单个字符串显示的方式既有联系,又有区别。联系在于处理单个字符的思想在左右滚动显示时同样适用于字符串滚动显示,区别在于处理单个字符上下滚动时是对38译码器的输出进行控制,而对于字符串的显示而言并不适用。因此采用FIFO的数组处理方式对数组信息进行处理,而38译码器的输出顺序不变。此外,在处理字符串左右滚动时采用双数组显示,数组D
10、ata用于存储上一帧数据,数组Data1用于存储下一帧数据,然后通过移位,按位于运算得出本一帧显示的数据,处理方式如下:DATA = (Data15-A>>shift_ii)|Data115-A<<shift_ii (2)式(2)中,DATA为显示数据的寄存器型变量,Data为存放上一帧字符的数组,Data1位存放下一帧数组,shift_ii为向左或右移动的位数,A为38译码器的输出。图3为字符串系统框图。图 3系统框图四、 字符设计本设计采用16X16的点阵宋体字库,即在16×16的区域内显示一个汉字所对应的二进制码。系统采用取字模软件直接进行取模。本设计采
11、用FPGA自带的RAM生成器,可以直接生成 .mif文件。因此若想改变字符,只需对RAM中的数据进行改变即可。本设计以“身体健康”为例给予说明。0200 0400 1FF0 1010 1FF0 1010 1FF2 1014 1018 7FF0 0050 0090 0310 1C10 E050 0020 /*"身" 0*/ 0840 0840 0840 1040 17FC 3040 30E0 50E0 9150 1150 1248 15F4 1842 1040 1040 1040 /*"体" 1*/ 1020 1020 10FC 2E24 23FE 622
12、4 64FC A420 2EFC 2220 2220 2BFE 2420 2620 29FE 3000 /*"健" 2*/ 0100 0080 3FFE 2080 2FF8 2088 3FFE 2088 2FF8 2880 24C4 22A8 4490 4888 9286 0100 /*"康" 3*/图 4字模生成器生成的字模五、 选择器件选用器件:Altera®的Cyclone®FPGA型号为:EP4CE6。2个74HC138译码器组成4-16译码器。2个74HC595作为点阵列输出。1. FPGA器件器件EP4CE6逻辑单元6,2
13、72M9K 存储器模块30存储器总容量 (Kbits)27018 x 18 乘法器15PLL2最大 I/O179最大差分通道66表 1 EP4CE6器件特性2. 74HC138a) 器件图及内部图器件图内部图图 5 74HC138b) 真值表表 2 74HC138真值表c) 2个138译码器组成4-16译码器图 6 4-16译码器图 7波形仿真图3. 74HC595a) 器件图及内部图器件图内部图图 8 74HC595b) 真值表表 3 74HC595真值表c) 电路图图 9 74HC595级联电路图六、 功能模块 本设计所用到的外围电路在实验箱中已经包含,因此只需要运用FPGA对底层器件进行
14、编程即可。1. 分频器本设计中用到了两个分频器。分别是给译码器提供移位时钟和给字符的显示及移动提供时钟。程序见下程序1:always(posedge CLK)beginshift_j = shift_j+1;if(shift_j=160000000)beginshift_i = 1;shift_j = 0;endif(shift_j%10000000=0)beginshift_ii = shift_ii+1;if(shift_ii=16)beginshift_ii=0;endendif(shift_i=1)beginif(Time<=64)beginRAM_clk = RAM_clk;T
15、ime=Time+1;endif(Time=64)beginshift_i=0;Time=0;endendif(cnt=2)begincnt <= 1;moni_clk <= moni_clk;endelse cnt <= cnt+1;end程序 1分频程序程序中moni_clk为译码器提供移位时钟。而字符时钟相对繁琐,分为3部分:(1)通过shift_j将clk外部时钟分频,每当shift_j计数到160000000时,对shift_i进行置1处理;(2)当shift_i置1后开始读取FPGA内部的RAM,并对数组进行改变;(3)当shift_j%10000000=0时,对
16、shift_ii增1,shift_ii是字符移动时钟。2. 字符数组读取字符的读取是通过FPGA内部自带的RAM进行实现的。通过Quartus II 生成 .mif 文件,再将该文件生成Verilog HDL File,随后在主程序中调用例化语句即可。程序见程序2:ziku U1(ziku_i, RAM_clk, ram1_data_out);always(posedge RAM_clk)beginif(ziku_i > 79)beginziku_i = 0;endziku_i <= ziku_i+1;Time1= Time1+1;if(Time1>16)beginDataT
17、ime1%16=ram1_data_out;endelse beginData1Time1=ram1_data_out;endif(Time1=32)beginTime1=0;endend程序 2调用例化程序以及RAM底层驱动函数3. 译码器底层程序根据74HC138芯片的真值表知,在使能芯片后,输出端的信号随输入端进行变化。因此,只要将译码器的输入端按照一定的时序进行变化即可。always(posedge moni_clk)beginif(j=16)beginj <= 0;i <= 1;if(A >= 16)beginA = 0;endelse beginA = A+1;e
18、ndDATA = (Data15-A>>shift_ii)|(Data115-A<<shift_ii);endelse beginj <= j+1;i <= 0;endend程序 3 74HC138底层驱动函数程序中,在moni_clk时钟的上升沿触发译码器的输入端进行变化。每16个上升沿为1个周期,这样即可满足译码器对点阵的扫描。同时程序中出现的数据移位代码是为了实现字符的左移目的,详细信息见后文,在此不再赘述。4. 74HC595底层程序根据74HC595芯片的真值表知,在移位时钟的上升沿会将输入端的数据采集,并且对之前的数据进行移位。当ST(RCK)产
19、生上升沿时,输出端会将移位寄存器中的数据并行输出。always(negedge moni_clk)begincase (j)0 : begin DS <= 1'b1&(DATA>>7); end1 : begin DS <= 1'b1&(DATA>>6); end2 : begin DS <= 1'b1&(DATA>>5); end3 : begin DS <= 1'b1&(DATA>>4); end4 : begin DS <= 1'b1&am
20、p;(DATA>>3); end5 : begin DS <= 1'b1&(DATA>>2); end6 : begin DS <= 1'b1&(DATA>>1); end7 : begin DS <= 1'b1&(DATA>>0); end8 : begin DS <= 1'b1&(DATA>>15); end9 : begin DS <= 1'b1&(DATA>>14); end10: begin DS <
21、;= 1'b1&(DATA>>13); end11: begin DS <= 1'b1&(DATA>>12); end12: begin DS <= 1'b1&(DATA>>11); end13: begin DS <= 1'b1&(DATA>>10); end14: begin DS <= 1'b1&(DATA>>9); end15: begin DS <= 1'b1&(DATA>>8); end
22、default: DS <= 1'b0;endcaseendassign SH = moni_clk;assign ST = i;程序 4 74HC595底层驱动函数此时,直接将移位时钟moni_clk的值赋给移位时钟SH即可。而输出显示的跳边沿则在移位时钟产生16次后触发1次即可。变量i在程序3中有提及。5. 上下移动函数RAM_clk <= RAM_clk;if(RAM_clk=1) beginziku_i <= ziku_i+1;if(ziku_i>=48)beginziku_i <= 0;endfor(FIFO=0;FIFO<15;FIFO=
23、FIFO+1)beginDataFIFO=DataFIFO+1;endData15=ram1_data_out;end程序 5上下移动函数上下移动函数采用对数组进行FIFO赋值的方法,再配合译码器以及74HC595的显示方法即可实现字符的上下移动显示。6. 左右移动函数DATA = (Data15-A>>shift_ii)|(Data115-A<<shift_ii);程序 6左右移动函数七、 总体设计电路图图 10总体设计电路图图 11 波形仿真图附录一程序,左右滚动显示:module EDA1(CLK, SH, ST, DS, A);input CLK;output
24、SH, ST, DS;output reg 3:0A;reg 15:0Data15:0;reg 15:0Data115:0;reg 3:0FIFO;reg 7:0Time;reg 7:0Time1;reg DS;reg i;reg 4:0j;integer cnt;reg moni_clk;reg RAM_clk;reg 15:0DATA;reg shift_i;reg shift_ii;integer shift_j;reg 7:0ziku_i;wire 15:0ram1_data_out;ziku U1(ziku_i, RAM_clk, ram1_data_out);always(pose
25、dge CLK)beginshift_j = shift_j+1;if(shift_j=160000000)beginshift_i = 1;shift_j = 0;endif(shift_j%10000000=0)beginshift_ii = shift_ii+1;if(shift_ii=16)beginshift_ii=0;endendif(shift_i=1)beginif(Time<=64)beginRAM_clk = RAM_clk;Time=Time+1;endif(Time=64)beginshift_i=0;Time=0;endendif(cnt=2)begincnt
26、<= 1;moni_clk <= moni_clk;endelse cnt <= cnt+1;endalways(posedge RAM_clk)beginif(ziku_i > 79)beginziku_i = 0;endziku_i <= ziku_i+1;Time1= Time1+1;if(Time1>16)beginDataTime1%16=ram1_data_out;endelse beginData1Time1=ram1_data_out;endif(Time1=32)beginTime1=0;endendalways(posedge moni_
27、clk)beginif(j=16)beginj <= 0;i <= 1;if(A >= 16)beginA = 0;endelse beginA = A+1;endDATA = (Data15-A>>shift_ii)|(Data115-A<<shift_ii);endelse beginj <= j+1;i <= 0;endendalways(negedge moni_clk)begincase (j)0 : begin DS <= 1'b1&(DATA>>7); end1 : begin DS <
28、= 1'b1&(DATA>>6); end2 : begin DS <= 1'b1&(DATA>>5); end3 : begin DS <= 1'b1&(DATA>>4); end4 : begin DS <= 1'b1&(DATA>>3); end5 : begin DS <= 1'b1&(DATA>>2); end6 : begin DS <= 1'b1&(DATA>>1); end7 : b
29、egin DS <= 1'b1&(DATA>>0); end8 : begin DS <= 1'b1&(DATA>>15); end9 : begin DS <= 1'b1&(DATA>>14); end10: begin DS <= 1'b1&(DATA>>13); end11: begin DS <= 1'b1&(DATA>>12); end12: begin DS <= 1'b1&(DATA>
30、>11); end13: begin DS <= 1'b1&(DATA>>10); end14: begin DS <= 1'b1&(DATA>>9); end15: begin DS <= 1'b1&(DATA>>8); enddefault: DS <= 1'b0;endcaseendassign SH = moni_clk;assign ST = i;endmodule程序 7左右滚动显示程序,上下滚动显示module EDA1(CLK, SH, ST, DS, A)
31、;input CLK;output SH, ST, DS;output reg 3:0A;reg 4:0B;reg 15:0Data15:0;reg 3:0FIFO;reg DS;reg i;reg 4:0j;integer cnt;reg moni_clk;reg RAM_clk;reg 15:0DATA;reg 3:0shift_i;integer shift_j;reg 7:0ziku_i;wire 15:0ram1_data_out;ziku U1(ziku_i, RAM_clk, ram1_data_out);always(posedge CLK)beginif(shift_j=50
32、00000)beginshift_j <= 1;shift_i <= shift_i-4'b0001;RAM_clk <= RAM_clk;if(RAM_clk=1) beginziku_i <= ziku_i+1;if(ziku_i>=48)beginziku_i <= 0;endfor(FIFO=0;FIFO<15;FIFO=FIFO+1)beginDataFIFO=DataFIFO+1;endData15=ram1_data_out;endif(shift_i<0)beginshift_i <= 15;endendelse b
33、eginshift_j <= shift_j+1;endif(cnt=2)begincnt <= 1;moni_clk <= moni_clk;endelse cnt <= cnt+1;endalways(posedge moni_clk)beginif(j=16)beginj <= 0;i <= 1;if(A < 0)beginA = 15;endelse beginA = A-1;endB=A-shift_i;if(B<0)beginB = 16-B;endDATA = DataA;endelse beginj <= j+1;i <
34、;= 0;endendalways(negedge moni_clk)begincase (j)0 : begin DS <= 1'b1&(DATA>>7); end1 : begin DS <= 1'b1&(DATA>>6); end2 : begin DS <= 1'b1&(DATA>>5); end3 : begin DS <= 1'b1&(DATA>>4); end4 : begin DS <= 1'b1&(DATA>>
35、;3); end5 : begin DS <= 1'b1&(DATA>>2); end6 : begin DS <= 1'b1&(DATA>>1); end7 : begin DS <= 1'b1&(DATA>>0); end8 : begin DS <= 1'b1&(DATA>>15); end9 : begin DS <= 1'b1&(DATA>>14); end10: begin DS <= 1'b1&am
36、p;(DATA>>13); end11: begin DS <= 1'b1&(DATA>>12); end12: begin DS <= 1'b1&(DATA>>11); end13: begin DS <= 1'b1&(DATA>>10); end14: begin DS <= 1'b1&(DATA>>9); end15: begin DS <= 1'b1&(DATA>>8); enddefault: DS &l
37、t;= 1'b0;endcaseendassign SH = moni_clk;assign ST = i;endmodule程序 8上下滚动显示程序,字库函数:/ megafunction wizard: %ROM: 1-PORT%/ GENERATION: STANDARD/ VERSION: WM1.0/ MODULE: altsyncram / =/ File Name: ziku.v/ Megafunction Name(s):/ altsyncram/ Simulation Library Files(s):/ altera_mf/ =/ */ THIS IS A WIZA
38、RD-GENERATED FILE. DO NOT EDIT THIS FILE!/ 9.1 Build 350 03/24/2010 SP 2 SJ Full Version/ */Copyright (C) 1991-2010 Altera Corporation/Your use of Altera Corporation's design tools, logic functions /and other software and tools, and its AMPP partner logic /functions, and any output files from an
39、y of the foregoing /(including device programming or simulation files), and any /associated documentation or information are expressly subject /to the terms and conditions of the Altera Program License /Subscription Agreement, Altera MegaCore Function License /Agreement, or other applicable license
40、agreement, including, /without limitation, that your use is for the sole purpose of /programming logic devices manufactured by Altera and sold by /Altera or its authorized distributors. Please refer to the /applicable agreement for further details./ synopsys translate_offtimescale 1 ps / 1 ps/ synop
41、sys translate_onmodule ziku (address,clock,q);input7:0 address;input clock;output15:0 q;ifndef ALTERA_RESERVED_QIS/ synopsys translate_offendiftri1 clock;ifndef ALTERA_RESERVED_QIS/ synopsys translate_onendifwire 15:0 sub_wire0;wire 15:0 q = sub_wire015:0;altsyncramaltsyncram_component (.clock0 (clo
42、ck),.address_a (address),.q_a (sub_wire0),.aclr0 (1'b0),.aclr1 (1'b0),.address_b (1'b1),.addressstall_a (1'b0),.addressstall_b (1'b0),.byteena_a (1'b1),.byteena_b (1'b1),.clock1 (1'b1),.clocken0 (1'b1),.clocken1 (1'b1),.clocken2 (1'b1),.clocken3 (1'b1)
43、,.data_a (161'b1),.data_b (1'b1),.eccstatus (),.q_b (),.rden_a (1'b1),.rden_b (1'b1),.wren_a (1'b0),.wren_b (1'b0);defparamaltsyncram_component.address_aclr_a = "NONE",altsyncram_component.clock_enable_input_a = "BYPASS",altsyncram_component.clock_enable_o
44、utput_a = "BYPASS",altsyncram_component.init_file = "ziku.mif",altsyncram_ended_device_family = "Cyclone IV E",altsyncram_component.lpm_hint = "ENABLE_RUNTIME_MOD=NO",altsyncram_component.lpm_type = "altsyncram",altsyncram_component.numw
45、ords_a = 256,altsyncram_component.operation_mode = "ROM",altsyncram_component.outdata_aclr_a = "NONE",altsyncram_component.outdata_reg_a = "UNREGISTERED",altsyncram_component.widthad_a = 8,altsyncram_component.width_a = 16,altsyncram_component.width_byteena_a = 1;endmod
46、ule/ =/ CNX file retrieval info/ =/ Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0"/ Retrieval info: PRIVATE: AclrAddr NUMERIC "0"/ Retrieval info: PRIVATE: AclrByte NUMERIC "0"/ Retrieval info: PRIVATE: AclrOutput NUMERIC "0"/ Retrieval info: PRIVATE: BYT
47、E_ENABLE NUMERIC "0"/ Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8"/ Retrieval info: PRIVATE: BlankMemory NUMERIC "0"/ Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0"/ Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0"/ Retrieval i
48、nfo: PRIVATE: Clken NUMERIC "0"/ Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0"/ Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A"/ Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0"/ Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "
49、Cyclone IV E"/ Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0"/ Retrieval info: PRIVATE: JTAG_ID STRING "NONE"/ Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0"/ Retrieval info: PRIVATE: MIFfilename STRING "ziku.mif"/ Retrieval info: PRIVATE: NUMWORDS
50、_A NUMERIC "256"/ Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"/ Retrieval info: PRIVATE: RegAddr NUMERIC "1"/ Retrieval info: PRIVATE: RegOutput NUMERIC "0"/ Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"/ Retrieval info: PRIVAT
51、E: SingleClock NUMERIC "1"/ Retrieval info: PRIVATE: UseDQRAM NUMERIC "0"/ Retrieval info: PRIVATE: WidthAddr NUMERIC "8"/ Retrieval info: PRIVATE: WidthData NUMERIC "16"/ Retrieval info: PRIVATE: rden NUMERIC "0"/ Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING "NONE"/ Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS"/ Retrieval info: CONSTANT: CLOCK_ENABLE_OU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年商圈广告与线上转化联动策略:全链路营销价值提升方案
- 化妆品受托生产企业遴选审核管理制度
- 2026年跨境食品选品新赛道:健康零食与功能性饮品市场洞察
- CSF1R-IN-1-Standard-生命科学试剂-MCE
- 小学信息科技人教版(新教材)六年级全一册第3单元 有了反馈更优化 每课教学设计
- 工厂之间保密协议书
- 工地病死赔偿协议书
- 工程类保密协议书
- 工资结算清的协议书
- 帮工协议与劳动合同
- 2026年甘肃省平凉工业园区管委会选聘15人笔试备考试题及答案解析
- 供应商付款管理制度及流程
- 2026药物临床试验质量管理规范(GCP)培训结业考核试题附答案
- 2026南非餐饮业市场现状供需分析及投资评估规划分析研究报告
- GB/T 21001.2-2026制冷陈列柜第2部分:分类、要求和试验条件
- 护理礼仪与人文关怀
- 消防供水应急预案(3篇)
- 《融合新闻学》第二版 课件05 网络图文报道
- 上海上海市农业科学院2025年“尚农英才”全职人才引进(第一批)笔试历年参考题库附带答案详解
- 磨机负荷的磨音多频带检测研究-毕业论文
- 茶餐厅工作手册模板
评论
0/150
提交评论