




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、實 驗 報 告 實驗名稱: 電子陶笛的設(shè)計與實現(xiàn) 題目編號: 題目6 學(xué) 院: 電子工程學(xué)院 姓 名: 班內(nèi)序號: 學(xué) 號: 班 級: 2014211212 實 驗 報 告- 1 -一 設(shè)計課題的任務(wù)要求- 1 -基本要求- 1 -提高要求- 1 -二 系統(tǒng)設(shè)計- 1 -設(shè)計思路- 1 -總體框圖- 2 -Ø 邏輯流程圖- 2 -Ø 邏輯劃分方框圖- 2 -Ø 總體框圖- 3 -分塊設(shè)計- 4 -(一) 鍵盤模塊- 4 -(二) 數(shù)碼管模塊- 4 -(三) 點陣模塊- 4 -(四) 音樂模塊- 4 -三 仿真波形及波形分析- 4 -1. 鍵盤模塊- 4 -2. 數(shù)
2、碼管模塊- 6 -3. 點陣模塊- 7 -4. 音樂模塊- 8 -四 源程序- 9 -1. 鍵盤模塊源程序- 9 -(一) 鍵盤分頻器- 9 -(二) 鍵盤掃描- 9 -(三) 鍵盤編碼- 10 -(四) 鍵盤防抖- 12 -(五) 鍵盤頂層- 13 -2. 數(shù)碼管模塊源程序- 14 -3. 點陣模塊源程序- 15 -(一) 點陣分頻器- 15 -(二) 點陣譯碼- 16 -4. 音樂播放模塊源程序- 30 -(一) 產(chǎn)生音符模塊- 30 -(二) 預(yù)置分頻系數(shù)- 36 -(三) 數(shù)控分頻發(fā)聲- 37 -(四) 音樂播放模塊頂層- 38 -5. 頂層設(shè)計- 40 -五 功能說明及資源利用情況-
3、 42 -六 故障及問題分析- 43 -七 總結(jié)和結(jié)論- 44 -1 設(shè)計課題的任務(wù)要求 基本要求 1.用4×4鍵盤的第一行和第二行各兩個按鍵模擬四孔陶笛的指孔,當(dāng)按鍵按下代表“按孔”,按鍵彈開代表“放孔”,本題目的電子陶笛要求能夠演奏中音1至中音7共7個音符; 2.根據(jù)四孔陶笛的演奏指法,每演奏一個音符,數(shù)碼管顯示相應(yīng)的音符,同時蜂鳴器演奏相應(yīng)的聲音; 3.用8×8雙色點陣顯示電子陶笛四個指控的演奏界面,紅色表示“按孔”,綠色表示“放孔”,音符“2”對應(yīng)下圖所示。 4.設(shè)置開關(guān)鍵。開機時有不小于5s的開機音樂,并在點陣上顯示開機界面。關(guān)機狀態(tài)為點陣全滅,關(guān)閉蜂鳴器。 提高
4、要求 1.可通過一個撥碼開關(guān)進行手動/自動演奏的切換,并與點陣顯示配合增加自動演奏樂曲的功能。 2.增加手動演奏音符的存儲、播放功能。 3.自擬其他功能。2 系統(tǒng)設(shè)計 設(shè)計思路根據(jù)系統(tǒng)設(shè)計要求,電子陶笛設(shè)計采用自頂向下的設(shè)計方法。整體的功能通過不同的底層模塊配合來完成電子陶笛的功能。設(shè)計主要分為四個主要的模塊:鍵盤模塊、數(shù)碼管模塊、點陣模塊以及音樂播放模塊。其中鍵盤模塊包含鍵盤掃描與鍵盤編碼,鍵盤掃描頻率為1kHz左右較為合適,鍵盤編碼是通過給鍵盤列掃描信號,讀取鍵盤行值來判斷是哪個鍵按下,進而編碼輸出控制其他模塊的音符信號;數(shù)碼管模塊是通過讀取音符信號靜態(tài)顯示7個對應(yīng)的音符;點陣模塊是通過讀
5、取音符信號來顯示相應(yīng)的四孔指法,掃描時鐘為10kHz左右;音樂播放模塊包含預(yù)置頻率值、產(chǎn)生音符信號、數(shù)控分頻發(fā)聲三個主要部分,預(yù)置頻率是給每個音符分配對應(yīng)的頻率,產(chǎn)生音符信號是通過一個手動自動開關(guān)信號來控制輸出的音符,數(shù)控分頻發(fā)聲是通過讀取音符信號的預(yù)置頻率作為分頻系數(shù)來分頻輸出給蜂鳴器的,該模塊是在系統(tǒng)總時鐘50MHz下工作的。最后通過頂層設(shè)計將各模塊整合連接起來。 總體框圖Ø 邏輯流程圖 Ø 邏輯劃分方框圖 Ø 總體框圖 分塊設(shè)計(1) 鍵盤模塊 本次陶笛實驗所要求使用的是4×4鍵盤,并且每個指法對應(yīng)的鍵數(shù)不一,有一鍵,兩鍵,三鍵,四鍵,這比一次只判
6、別一個鍵的情況要略微復(fù)雜一點,我使用的是四行錯開的四個鍵key2,key5,key12,key15,并設(shè)置了四個信號count1-count4,當(dāng)代表陶笛左列第一孔的key2被按下時,此時keydrv&keyin為11010111,然后將count2編碼為1,當(dāng)key5被按下時count1為1,其它鍵同理,最后輸出count2&count1&count4&count3,能表示四個鍵排列組合的所有情況,取我們需要的7種代表音符指法信號,輸出給其它模塊。(2) 數(shù)碼管模塊 數(shù)碼管模塊為靜態(tài)顯示,不需要掃描時鐘,開機信號為1時令cat為00000000,八個數(shù)碼管同時
7、靜態(tài)顯示音符,開機信號為0時令cat為11111111,所有數(shù)碼管熄滅;輸入的音符指孔信號譯碼為1-7的數(shù)字顯示,代表七個音符。(3) 點陣模塊 點陣模塊需要顯示開機動畫以及陶笛按孔放孔的情況,將50MHz時鐘分頻為10kHz作為點陣模塊的行掃描時鐘,然后將10kHz分頻為2Hz的時鐘,作為開機動畫的時鐘,及OCARINA幾個字母每隔0.5s顯示一次,每次顯示是快速行掃描每列亮不同的led利用視覺暫留效應(yīng)來顯示完整的圖案的;輸入的note作為音符指法信號譯碼為需要顯示的指孔圖案,紅點代表按孔,綠點代表放孔,最后通過快速的行掃描顯示出來。(4) 音樂模塊 音樂模塊包括三個主要部分:手動自動整合產(chǎn)
8、生總音符信號、預(yù)置分頻系數(shù)、分頻驅(qū)動蜂鳴器發(fā)聲。其中產(chǎn)生音符信號模塊是通過auto信號來控制是否為自動播放,如果是則按照已儲存的音樂信息輸出音符信號,如果否則輸出鍵盤鍵入的音符信號,該模塊還包括通過pswich來控制開機音樂的音符信號輸出;預(yù)置分頻系數(shù)是將音符指控信號譯碼為每個音符對應(yīng)的頻率值(題目中的表格已給出),分頻驅(qū)動蜂鳴器發(fā)聲是通過讀取輸入的特定音符的頻率值tune計算出分頻系數(shù),然后將總時鐘clk_in分頻為該音符頻率的時鐘clk_out,然后輸出給蜂鳴器驅(qū)動其發(fā)聲的。3 仿真波形及波形分析1. 鍵盤模塊仿真波形:(此圖接上圖尾)clk:時鐘輸入;keyin:鍵盤行信號;keydrv
9、:鍵盤列信號;keyvalue:編碼輸出指法信號波形分析: 圖中的clk為時鐘信號,keydrv為輸出的列掃描信號,實際掃描速度為1kHz;keyin為鍵盤的行信號,不按鍵時為1,按下鍵之后為0,根據(jù)鍵盤的列掃描信號以及讀取對應(yīng)的行信號來判斷是哪個鍵被按下;圖中的keyvalue為編碼輸出的陶笛指孔信號;為便于分析我設(shè)置keyin的值為1011和1111來模擬一次按孔和放孔,當(dāng)快速掃描鍵盤每一列時,只有keydrv&keyin為11101011時是我們有用的編碼信號,即第一列第二行的按鍵key5被按下,代表陶笛四孔左列第二孔被按下,編碼為0100,對應(yīng)的音符為6,而1111代表放孔,編
10、碼為0000。(我所使用的四個按鍵為key2,key5,key12,key15,分別代表陶笛左列一二孔和右列一二孔)2. 數(shù)碼管模塊仿真波形:(此圖接上圖尾)digi_swich:數(shù)碼管開關(guān);fingnote:輸入指法信號;seg:數(shù)碼管的每一段;cat:數(shù)碼管的控制信號波形分析: 圖中第一個為數(shù)碼管開關(guān)digi_swich,第二個為指孔信號,由圖可知,當(dāng)開關(guān)信號為1時,輸入指孔信號1111,1101,1110時輸出分別為0110000,1101101,1111001,代表數(shù)字1、2、3,即數(shù)碼管顯示指孔信號對應(yīng)的音符;當(dāng)開關(guān)信號為0時,輸出的seg為0110011,cat為11111111,
11、數(shù)碼管全滅。3. 點陣模塊仿真波形:(此圖接上圖尾)Clk_in:時鐘輸入;led_swich:點陣開關(guān);note:對應(yīng)音符的指孔信號;row:點陣行信號;col_g:點陣列信號綠燈;col_r點陣列信號紅燈波形分析: 上圖所示波形為顯示開機動畫OCARINA中的字母O的波形,由圖可見,當(dāng)時鐘信號到來時,點陣開始逐行掃描,同時點陣的列亮不同的紅燈,通過視覺暫留效應(yīng)顯示一副完整的圖形,即字母O,從而構(gòu)成動畫的第一幀。由于仿真的局限性,此處不列舉出動畫的完整顯示以及音符指控的顯示。4. 音樂模塊仿真波形:(此圖接上圖尾)Clk:時鐘輸入;mswich:音樂播放開關(guān);mclear:自動播放復(fù)位;ma
12、uto:曲目1自動播放;mauto1:曲目2自動播放;hang:指孔信號輸入;clkout:對應(yīng)音符頻率;yinfu:音符指孔信號輸出波形分析: 為了方便分析,將復(fù)位信號以及自動播放曲目2信號設(shè)為0,而開機信號以及自動播放曲目1設(shè)為1,即該仿真為曲目1播放時的仿真;因為總時鐘為50MHz,分頻后的時鐘頻率均為幾百赫茲,故分頻系數(shù)很大難以顯示完全,我將end time設(shè)置為50ms,所顯示的是分頻后的其中一個周期,該分頻后的時鐘輸出給蜂鳴器驅(qū)動其發(fā)聲。4 源程序1. 鍵盤模塊源程序(1) 鍵盤分頻器 library ieee;use ieee.std_logic_1164.all;use iee
13、e.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity div_100 isport(clkin:in std_logic;-輸入總時鐘clkout:out std_logic-輸出分頻后的時鐘);end div_100;architecture a of div_100 issignal tmp:integer range 0 to 50000;signal clktmp:std_logic;beginprocess(clkin)beginif (clkin'event and clkin='1')th
14、en if tmp=49999 then tmp<=0; clktmp<=not clktmp; else tmp<=tmp+1; end if;end if;end process;clkout<=clktmp;end a;(2) 鍵盤掃描library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity keyscan is port(clk_in:in std_logic; -掃描時鐘keydrv:out std_l
15、ogic_vector(3 downto 0)-輸出掃描信號);end keyscan;architecture a of keyscan issignal count:std_logic_vector(1 downto 0);-計數(shù)器信號signal drtmp:std_logic_vector(3 downto 0);beginp0:process(clk_in) begin if rising_edge(clk_in) then if count="11"then count<="00" else count<=count+1; end
16、 if; end if; end process p0;p1:process(count)begin case count iswhen "00"=>drtmp<="1110" -掃第一列when "01"=>drtmp<="1101" -掃第二列when "10"=>drtmp<="1011" -掃第三列when "11"=>drtmp<="0111" -掃第四列when others
17、=>drtmp<="0000"end case;end process p1; keydrv<=drtmp;end a;(3) 鍵盤編碼 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity key_code isPort( clkin: in std_logic; -時鐘輸入 keyin : in STD_LOGIC_VECTOR (3 downto 0); -鍵盤行信號 keydrv : i
18、n STD_LOGIC_VECTOR (3 downto 0);-列掃描信號 finger:out std_logic_vector(3 downto 0) -編碼輸出對應(yīng)陶笛的指法 ); end key_code;architecture rtl of key_code issignal count1,count2,count3,count4:std_logic;-輸出指法向量的低位到高位signal fingering:std_logic_vector(3 downto 0):="0000"-彈奏指法,按孔為1,放孔為0signal s1,s2,s3,s4,s5,s6,
19、s7,s8:std_logic_vector(3 downto 0);-存儲指法編碼signal tmp:std_logic_vector(3 downto 0);-最終得到的指法編碼begin-temp<=keydrv&keyin;process(keydrv,keyin) begin s1<="1111" s2<="1101" s3<="1110" s4<="1100" s5<="0101" s6<="0100" s7&l
20、t;="0010" s8<="0000"if keydrv="1110" then case keyin is when"1011"=>count1<='1' when others=>count1<='0' end case;elsif keydrv="1101"then case keyin is when"0111"=>count2<='1' when others=>cou
21、nt2<='0' end case; elsif keydrv="1011"then case keyin is when"1110"=>count3<='1' when others=>count3<='0' end case; elsif keydrv="0111"then case keyin is when"1101"=>count4<='1' when others=>count4<=
22、39;0' end case; end if; tmp<=count2&count1&count4&count3; case tmp iswhen"0000"=>fingering<=s8;when"1111"=>fingering<=s1;when"1101"=>fingering<=s2;when"1110"=>fingering<=s3;when"1100"=>fingering<=s4;wh
23、en"0101"=>fingering<=s5;when"0100"=>fingering<=s6;when"0010"=>fingering<=s7;when others=>fingering<=s8; end case;end process; finger<=fingering;end rtl; (4) 鍵盤防抖 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.st
24、d_logic_unsigned.all;entity Antiwitter is Port ( clkin : in STD_LOGIC; fingerin : in STD_LOGIC_VECTOR (3 downto 0); fingerout : out STD_LOGIC_VECTOR (3 downto 0);end Antiwitter;architecture Behavioral of Antiwitter issignal TempNum:std_logic_vector(3 downto 0);signal Counter:std_logic_vector(4 downt
25、o 0);signal Start:std_logic;beginprocess(clkin)beginif rising_edge(clkin) then if Start='0' thenTempNum<="0000"fingerout<="0000"Start<='1'elseif fingerin/=TempNum thenTempNum<=fingerin;Counter<="00000"elseif Counter="11111" thenf
26、ingerout<=fingerin;Counter<="00000"elseCounter<=Counter+1;end if;end if;end if;end if;end process;end Behavioral;(5) 鍵盤頂層library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity keyboard isPort ( clk : in STD_LOGIC;-掃描時鐘,周期10ms k
27、eyint : in STD_LOGIC_VECTOR (3 downto 0);-鍵盤行信號 keydrvt : out STD_LOGIC_VECTOR(3 downto 0);-輸出掃描信號 keyvalue : out STD_LOGIC_VECTOR(3 downto 0);-編碼輸出音符信號end keyboard;architecture RTL of keyboard iscomponent keyscanPort ( clk_in : in STD_LOGIC;-掃描時鐘 keydrv : out STD_LOGIC_VECTOR(3 downto 0);-輸出掃描信號end
28、 component;component key_codePort ( clkin: in std_logic; -時鐘輸入 keyin : in STD_LOGIC_VECTOR (3 downto 0); -鍵盤行信號 keydrv : in STD_LOGIC_VECTOR (3 downto 0);-列掃描信號 finger:out std_logic_vector(3 downto 0) -編碼輸出對應(yīng)陶笛的指法 );end component;component Antiwitter Port ( clkin : in STD_LOGIC; -時鐘輸入 fingerin : in
29、STD_LOGIC_VECTOR (3 downto 0);-音符指法信號輸入 fingerout : out STD_LOGIC_VECTOR (3 downto 0);-音符指法信號輸出end component;signal keydrv1:STD_LOGIC_VECTOR (3 downto 0);-列掃描信號signal key:std_logic_vector(3 downto 0);-音符信號beginU1:keyscanport map(clk_in=>clk,keydrv=>keydrv1);U2:key_codeport map(clkin=>clk,ke
30、yin=>keyint,keydrv=>keydrv1,finger=>key);U3:Antiwitterport map(clkin=>clk,fingerin=>key,fingerout=>keyvalue);keydrvt<=keydrv1;end RTL;2. 數(shù)碼管模塊源程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity digital_tube isport( dig
31、i_swich:in std_logic; -數(shù)碼管開關(guān) fingnote : in std_logic_vector(3 downto 0); -輸入指法表示音符 seg : out std_logic_vector(6 downto 0); -數(shù)碼管段 cat : out std_logic_vector(7 downto 0) -數(shù)碼管掃描信號 );end;architecture b of digital_tube isbeginp0: process(fingnote) variable segt : std_logic_vector(6 downto 0); begin if di
32、gi_swich='1'thencase fingnote iswhen "1111" => segt:="0110000"-顯示“1”when "1101" => segt:="1101101"-顯示“2”when "1110" => segt:="1111001"-顯示“3”when "1100" => segt:="0110011"-顯示“4”when "0101" =&
33、gt; segt:="1011011"-顯示“5”when "0100" => segt:="1011111"-顯示“6”when "0010" => segt:="1110000"-顯示“7”when others=> segt:="1111110"-顯示“0”end case; cat<="00000000" else cat<="11111111"end if;seg<=segt; end pr
34、ocess p0; end b;3. 點陣模塊源程序(1) 點陣分頻器 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity div_led isport(clk_in : in std_logic; -輸入時鐘50MHzclk_out : out std_logic); -輸出時鐘10kHzend div_led;architecture b of div_led is signal clktmp : std_logic;begi
35、np0:process(clk_in) variable cnt : integer range 0 to 2499;beginif (clk_in'event and clk_in='1') thenif cnt=2499 then -分頻系數(shù)為2499cnt:=0;clktmp<= not clktmp;elsecnt:=cnt+1; -每個輸入時鐘上升沿到來時cnt加1end if;end if;end process p0;clk_out<=clktmp;end b;(2) 點陣譯碼 library ieee;use ieee.std_logic_1
36、164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity led_array isport( clk_in : in std_logic; -時鐘輸入 note: in std_logic_vector(3 downto 0); -輸入音符 led_swich:in std_logic; -開關(guān) row : out std_logic_vector(7 downto 0); -點陣行向量 col_r :out std_logic_vector(7 downto 0); -點陣列向量,放孔顯示紅色 co
37、l_g :out std_logic_vector(7 downto 0) -點陣列向量,按孔顯示綠色 );end led_array;architecture a of led_array issignal cnt:integer range 0 to 7; -慢計數(shù)器,控制開機動畫的每一幀signal tmp:integer range 0 to 2500;-分頻系數(shù)signal clk_tmp:std_logic; -動畫分頻時鐘 signal count: integer range 0 to 7;-快計數(shù)器,控制點陣行掃描signal rowt: std_logic_vector(7
38、 downto 0);-點陣行向量signal colt_r: std_logic_vector(7 downto 0);-點陣列向量,放孔顯示紅色signal colt_g: std_logic_vector(7 downto 0); -點陣列向量,按孔顯示綠色beginp1:process(clk_in)begin if (clk_in'event and clk_in='1') thenif count=7 then count<=0;elsecount<=count+1;-用count來記數(shù)end if;end if;end process p1;p
39、2:process(clk_in)beginif (clk_in'event and clk_in='1') thenif tmp=2499 then -動畫分頻器tmp<=0;clk_tmp<=not clk_tmp;elsetmp<=tmp+1;end if;end if; end process p2;p3:process(clk_tmp,led_swich) begin if led_swich='0'then -動畫計數(shù)器 cnt<=0; elsif (clk_tmp'event and clk_tmp='
40、;1') then if cnt=7 thencnt<=cnt; -控制開機動畫只顯示一次else cnt<=cnt+1;end if;end if; end process p3;p4: process(cnt,count,note,led_swich) begin if led_swich='1'then case cnt is -顯示開機動畫 when 0=> -顯示“O” case count is when 0=> rowt<="11111110" colt_g<="00000000"
41、 colt_r<="00000000" when 1=> rowt<="11111101" colt_g<="00000000" colt_r<="00111100" when 2=> rowt<="11111011" colt_g<="00000000" colt_r<="01000010" when 3=> rowt<="11110111" colt_g<=&q
42、uot;00000000" colt_r<="01000010" when 4=> rowt<="11101111" colt_g<="00000000" colt_r<="01000010" when 5=> rowt<="11011111" colt_g<="00000000" colt_r<="01000010" when 6=> rowt<="10111111&q
43、uot; colt_g<="00000000" colt_r<="01000010" when 7=> rowt<="01111111" colt_g<="00000000" colt_r<="00111100" when others=> rowt<="11111111" colt_r<="00000000" colt_g<="00000000"end case; when
44、1=> -顯示“C” case count is when 0=> rowt<="11111110" colt_g<="00000000" colt_r<="00000000" when 1=> rowt<="11111101" colt_g<="00000000" colt_r<="00111100" when 2=> rowt<="11111011" colt_g<="0
45、0000000" colt_r<="01000010" when 3=> rowt<="11110111" colt_g<="00000000" colt_r<="00000010" when 4=> rowt<="11101111" colt_g<="00000000" colt_r<="00000010" when 5=> rowt<="11011111"
46、colt_g<="00000000" colt_r<="00000010" when 6=> rowt<="10111111" colt_g<="00000000" colt_r<="01000010" when 7=> rowt<="01111111" colt_g<="00000000" colt_r<="00111100" when others=> rowt<
47、;="11111111" colt_r<="00000000" colt_g<="00000000"end case; when 2=> -顯示“A” case count is when 0=> rowt<="11111110" colt_g<="00000000" colt_r<="00000000" when 1=> rowt<="11111101" colt_g<="000000
48、00" colt_r<="01000010" when 2=> rowt<="11111011" colt_g<="00000000" colt_r<="01000010" when 3=> rowt<="11110111" colt_g<="00000000" colt_r<="01000010" when 4=> rowt<="11101111" colt_
49、g<="00000000" colt_r<="01111110" when 5=> rowt<="11011111" colt_g<="00000000" colt_r<="01000010" when 6=> rowt<="10111111" colt_g<="00000000" colt_r<="00100100" when 7=> rowt<="01
50、111111" colt_g<="00000000" colt_r<="00011000" when others=> rowt<="11111111" colt_r<="00000000" colt_g<="00000000"end case; when 3=> -顯示“R” case count is when 0=> rowt<="11111110" colt_g<="00000000&qu
51、ot; colt_r<="00000000" when 1=> rowt<="11111101" colt_g<="00000000" colt_r<="00110010" when 2=> rowt<="11111011" colt_g<="00000000" colt_r<="00001010" when 3=> rowt<="11110111" colt_g<
52、="00000000" colt_r<="00000110" when 4=> rowt<="11101111" colt_g<="00000000" colt_r<="00011110" when 5=> rowt<="11011111" colt_g<="00000000" colt_r<="00100010" when 6=> rowt<="1011111
53、1" colt_g<="00000000" colt_r<="00100010" when 7=> rowt<="01111111" colt_g<="00000000" colt_r<="00011100" when others=> rowt<="11111111" colt_r<="00000000" colt_g<="00000000"end case; when 4=> -顯示“I” case count is when 0=> rowt<="11111110" colt_g<="00000000" colt_r<="00000000" when 1=> rowt<="11111101&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 證券資產(chǎn)投資管理辦法
- 福田外賣區(qū)域管理辦法
- 外地項目安全管理辦法
- 科技培訓(xùn)機構(gòu)管理辦法
- 育兒護理培訓(xùn)課件
- 肩頸護理課件教學(xué)
- 肝硬化護理課件
- 肝癌的護理課件
- 如何有效培訓(xùn)課件
- 高考一檢數(shù)學(xué)試卷
- QCC品管圈活動表格匯編
- 2023年貴州省社區(qū)工作者公開招聘考試《公共基礎(chǔ)知識》專項題庫【真題精選+章節(jié)題庫+模擬試題】
- 出租車大包車合同
- 銀行副行長個人簡歷表格
- 第四講 堅持以人民為中心PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 麻精藥品培訓(xùn)課件
- 醫(yī)院全員聘用制度和崗位聘任管理制度
- 粗紗機任務(wù)與工藝流程
- 探究食育課程對小班幼兒良好飲食習(xí)慣形成的作用 論文
- 湖北武漢洪山區(qū)招考聘用社區(qū)干事235人模擬檢測試卷【共1000題含答案解析】
- 12J4-2 《專用門窗》標(biāo)準(zhǔn)圖集
評論
0/150
提交評論