




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第 屆電子設計大賽論文單片機音樂發(fā)生器組長: 組員: - 25 -目 錄1、系統(tǒng)方案- 2 -1.1、方案比較與選擇- 2 -1.1.1、單片機選擇與論證- 2 -1.1.2、功放選擇與論證- 2 -1.1.3、顯示器件選擇與論證- 2 -1.1.4、鍵盤形式選擇與論證- 3 -1.1.5、材料選擇與論證- 3 -2、理論分析與計算- 3 -2.1、聲音播放的原理- 3 -2.1.1、普通聲音產生原理. - 3 -2.1.2、音樂產生原理.- 4 -2.2、音符節(jié)拍處理- 5 -3、電路與程序設計- 6 -3.1、電路的設計- 6 -3.1.1、總體框圖設計- 6 -3.1.2、時鐘電路設計-
2、 6 -3.1.3、復位電路設計- 7 -3.1.4、按鍵電路設計- 7 -3.1.5、顯示電路設計- 8 -3.1.6、揚聲器電路設計- 9 -3.2、程序設計.- 10 -3.2.1、系統(tǒng)整體流程圖- 10 -3.2.2、鍵盤子程序流程圖- 10 -3.2.3、液晶顯示子程序流程圖- 11 -4、測試方案與測試結果- 12 -4.1、測試方案- 12 -4.2、測試結果- 12 -4.3、測試分析- 13 -附錄- 13 -附錄1:電路原理圖- 13 -附錄2:部分源程序- 14 -1、系統(tǒng)方案1.1、方案比較與選擇1.1.1、單片機選擇與論證方案一:8051單片機。8051內部包含一個8
3、位CPU,128BRAM,4KBROM,21個特殊功能寄存器,4個8位并行I/O口,一個全雙工串行口,2個16位定時器、計數器,5個中斷源。方案二:SST單片機。SST單片機省去了開發(fā)用的編程器和仿真器。省去了外部EEPROM、電壓監(jiān)控芯片、上電復位電路和5個UART的擴展芯片。它自帶在線下載和在線仿真功能,帶有5路PCA模塊(主成分分析),PCA功能比普通單片機有更強的計時性。利用PCA的脈沖寬度調制(PWM)模式可產生一個8位PWM。方案三:AT89C52單片機。AT89C52是美國ATMEL公司生產的低電壓,高性能CMOS位單片機,片內含4k字節(jié)的可反復擦寫1000次的只讀程序存儲器(P
4、EROM)和128字節(jié)的隨機存取數據存儲器(RAM),片內置通用8位中央處理器(CPU)和Flash存儲單元?;趯δ荦R全性的考慮,我們采用方案三。1.1.2、功放選擇與論證方案一:LM386。LM386是一種音頻集成功放,具有自身功耗低、更新內鏈增益可調整、電源電壓范圍大和總諧波失真小等優(yōu)點的功率放大器。方案二:NPN型三極管。集電極電流受基極電流的控制,并且基極電流很小的變化,會引起集電極電流很大的變化,且變化滿足一定的比例關系。出于對市場供應情況和價格方面的考慮,我們采用方案一。1.1.3、顯示器件選擇與論證方案一:數碼管。數碼管顯示能在低電壓、小電流條件下驅動發(fā)光,能與CMOS、IT
5、L電路兼容。發(fā)光響應時間極短(<01s),高頻特性好,單色性好,亮度高。體積小,重量輕,抗沖擊性能好。壽命長,使用壽命在10萬小時以上,甚至可達100萬小時。但顯示功能有限,只能顯示數字和個別字母。方案二:液晶顯示器(LCD)。液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,顯示質量高。其接口都是數字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示器要少得多。方案三:陰極射線管顯示器(CRT)。此種顯示器圖像色彩豐富,還原性好,有豐富的幾何失真調整能力。但不能長期暴露在磁場下,會磁化或損壞,不能讓強光直射,
6、會降低發(fā)光效率,不能在高溫下使用,工作性能和使用壽命會大打折扣。出于價格和電路復雜程度的考慮,在鍵控音符輸入時采用方案一,在歌曲信息的顯示時采用方案三。1.1.4、鍵盤形式選擇與論證方案一:獨立式按鍵。獨立按鍵的輸入線較多,結構復雜,一般適用于按鍵較少,操作速度較高的場合。方案二:行列式鍵盤。行列式鍵盤由行和列線交叉組成,一般適用于按鍵較多的場合。使用4×4矩形鍵盤,這樣鍵盤模塊僅使用8根線與處理器相連,節(jié)省了系統(tǒng)資源。由于我們功能比較少,矩形鍵盤占用電路板位置較大且電路復雜,因此選擇方案一。1.1.5、材料選擇與論證方案一:玻璃板。玻璃板光滑、透明,但是質量較重,易碎,并且不易加工
7、。方案二:塑料板。塑料板質量輕,不易碎,但是也不好加工,且不環(huán)保。方案三:木板。木板質量比塑料板重,但比玻璃板輕,易于加工,可塑性強?;诔杀炯凹庸碗s程度的考率,采用方案二。2、理論分析與計算2.1、聲音播放的原理2.1.1普通聲音產生原理人耳能聽到的聲音頻率范圍是幾十到幾千赫茲之間,單片機的I/O輸出引腳上能輸出高電平或低電平。設計一個程序,令單片機的某一個引腳按照一個的時間間隔輸出一些符合規(guī)律的高低電平信號,那么就能得到一系列的矩形波。入伏哦這種時間間隔反映的頻率在人耳所能聽到的頻率范圍內,那么就能輸出一定的聲音信息。 圖1要輸出的穩(wěn)定的矩形波,可以利用延時程序來控制輸出高電平或低電平的
8、持續(xù)時間,當持續(xù)時間到時就令該信號反向,從而實現(xiàn)電平的轉換,如圖1所示。圖中,從單片機引腳上輸出的信號,高電平和低電平保持的時間分別為t1和t2,信號的基本輸出周期為T,即頻率f的倒數。在程序編寫時,可令t1和t2相等。這樣,當要產生某一頻率的音頻信號時,只要先計算得到這個周期時間的一半,然后利用延時程序來控制單片機的輸出引腳在該時間內輸出穩(wěn)定的高電平或低電平。該時間結束時,又利用程序使單片機的輸出引腳的輸出信號電平發(fā)生反相。如此循環(huán)執(zhí)行后,就能得到設計要求的音頻信號了。2.1.2音樂產生原理一首樂曲是由多個音符構成的。每一個音符都對應著一個確定的頻率。另外,每一個音符會根據樂曲的要求設定一個
9、確定的節(jié)拍音符頻率的處理方法如下:程序設計如果利用定時器計數的方式來產生延時的效果,就可以將歌曲中每一個音符所對應的頻率換算成相對應的技術初值。然后,將這首音樂所有音符的計數初值編成一個表,并把每一個音符的計數初值與一個確定的數字碼來聯(lián)系。如表1所示為利用定時器T0工作于方式1時,一些簡譜音符所對應的頻率,計數初值和簡譜碼。音符頻率(Hz)簡譜碼(T)音符頻率(Hz)簡譜碼(T)低1D026263628#4FA#74064860#1D0#27763731中5SO74864898低2RE29463835#5S0#83164934#2RE#31163928中6LA88064968低3M330640
10、21#6LA#93264994低4FA34964103中7S198865030#4FA#37064185高1DO104665058低5SO39264260#DO#110965085#5S0#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3M131865157低7S149464524高4FA139765178中1DO52364580#4FA#148065198#1D0#55464633高5SO156865217中2RE57864684#5SO#166165235#2RE#62264723高6LA176065252中3M6
11、5964777#6LA#186565268中4FA69864820高7SI196765283 表1例如,要計算中音DO、中音RE、中音MI的計數初值中音DO: TC=216 106/(523*2)=65536-956=65480=0FC44H中音RE: TC=216 - 106/(587*2)=65536-888=64684=0FCACH中音MI: TC=216 - 106/(659*2)=65536-759=64777=0FD09H2.2、音符節(jié)拍的處理一首樂曲的每一個音符除了頻率之外,還有不同的節(jié)拍,也就是這個音符發(fā)音的持續(xù)時間。如表2所示為節(jié)拍碼與實際碼之間的對照表。節(jié)拍碼實際節(jié)拍節(jié)拍碼
12、實際節(jié)拍11/4拍51又1/4拍22/4拍61又1/2拍33/4拍82拍41拍A2又1/2拍 表2如果1拍為0.4s,1/4拍是0.1s,只要設定延遲時間就可求得節(jié)拍的時間。假設1/4拍為1DELAY,那么1拍應為4DELAY。如表3所示為1/4和1/8拍的時間設定。1/4拍的時間設定1/8拍的時間設定曲調值DELAY曲調值DELAY調4/4125ms調4/462ms調3/4187ms調3/494ms調2/4250ms調2/4125ms 表31/4拍的延遲時間=187ms延時程序為:DELAY: MOV R7,#02DELA1:MOV R4, #187DELA1:MOV R3,#248DJNZ
13、 R3, $DJNZ R4, DELA2DJNZ R7, DELA13、電路與程序設計3.1、電路的設計3.1.1、總體框圖設計系統(tǒng)總體框圖如圖2所示。 單 片 機時鐘與復位鍵盤輸入拓展RAM拓展ROM音頻發(fā)生音頻放大大揚聲器LCD顯示 圖23.1.2、時鐘電路設計AT89C52內部有一個用于構成振蕩器的高增益反相放大器,它的輸入端為芯片引腳XTAL1,輸出端引腳為XTAL2。這兩個引腳跨接石英晶體和微調電容,構成一個穩(wěn)定的自激振蕩器,如圖3所示為AT89C52的內部時鐘方式的電路。 圖3圖中電容C1和C2的值選擇為30pF。該電容的大小會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶
14、體振蕩頻率的范圍通常是在1.212MHz。晶體的頻率越高,系統(tǒng)的時鐘頻率越高,單片機的運行速度也就越快。但同時,運行速度快對存儲器的速度要求也就越高,對印制電路板的工藝要求也就越高,即要求線間的寄生電容要小。晶體和電容應盡可能安裝得與單片機芯片靠近,以減小寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作。3.1.3、復位電路設計AT89C52的復位是由外部的復位電路實現(xiàn)的,在本次設計中,我們采用了按鍵電平復位電路。按鍵手動電平復位是通過RST端經電阻與電源Vcc接通來實現(xiàn),具體電路如圖4所示。 圖43.1.4、按鍵電路設計此電路實現(xiàn)的功能是每當有按鍵按下時,通過數碼管顯示相應數字。每個按鍵代表不同的
15、音符,通過程序控制揚聲器發(fā)出不同音符。如圖5所示為獨立式按鍵的具體電路。 圖53.1.5、顯示電路3.1.5.1 LED數碼管顯示電路在本次設計中我們采用的是7管LED數碼管,它由7個發(fā)光二極管組成。這七個發(fā)光二極管a-g呈“日”字形排列,當某一發(fā)光二極管導通時,相應地點亮某一點或某一段筆畫,通過發(fā)光二極管不停地亮暗組合形成不同的數字、字母等符號。由于采用的是共陰極接法,所以在單片機輸出口和LED輸入口相連時沒有外接電阻。如圖6所示為數碼管實際連接電路。 圖63.1.5.2 LCD液晶顯示器電路在本次設計中,我們采用的是FG12864E LCD,它是一種圖形點陣液晶顯示器。由于LCD的電源供電
16、情況有別于普通的+5V電源,其驅動電源情況必須通過一個供電電路來提供,如圖7所示。 圖7 圖8如圖8所示為LCD具體連接電路。顯示數據通過單片機的P0引腳來傳送;左半屏與右半屏顯示的選擇,引腳分別連接LCD的CS1和CS2。3.1.6、揚聲器電路 圖9如圖9所示為揚聲器電路實際連接圖,將單片機與喇叭通過一個LM386連接,揚聲器的工作原理是當兩輸入端有電平差時,揚聲器發(fā)聲。所以將喇叭的一個輸出端接地,另一端與集成運放的輸出相連。突出采用的連接方式,可以通過改變滑動變阻器的大小來改變接入運放的電壓,并實現(xiàn)控制音量大小的調節(jié)。3.2、程序的設計3.2.1、系統(tǒng)整體流程圖 圖10如圖10所示為系統(tǒng)整
17、體流程圖。將歌曲的節(jié)拍和頻率儲存到數據表中,播放歌曲時利用查表函數為計數器賦初值,產生周期不等的方波,即可播放音樂。3.2.3、鍵盤子程序流程圖如圖11所示為鍵盤子程序流程圖。圖11 3.2.2、液晶顯示子程序流程圖如圖12所示為液晶顯示子程序流程圖。圖124、測試方案與測試結果4.1、測試方案基本要求(1):能播放標準C調的Do、Re、Mi、Fa、So、La、Si、Do作為起始測試音?;疽螅?):測試音結束后等待2秒,播放一首自選曲目,時間>30秒。發(fā)揮部分(1):能播放指定曲目。發(fā)揮部分(2):具有鍵盤,可現(xiàn)場編曲并播放。發(fā)揮部分(3):具有液晶顯示功能,可顯示簡譜。發(fā)揮部分(4
18、):可將簡譜轉換成顯示五線譜。4.2、測試結果4.2.1、仿真測試通過Keil和Proteus仿真,在播放Do,Re,Mi,Fa,So,La,Xi,Do等待兩秒后,可以聽到自選歌曲和指定曲目,LCD顯示歌曲信息。按下控制鍵后,進入編曲模式,7個獨立鍵盤分別代表七個音符,可現(xiàn)場編曲。同時,數碼管顯示每個按鍵代表的數字。如圖13所示,為數碼管仿真結果。 圖134.2.2、成品測試 通過對成品進行調試實驗,所得到的結果與仿真結果相同。4.3、測試分析由測試結果可以看出,成品滿足基本要求和發(fā)揮部分的部分要求。附錄附錄1:電路原理圖附錄2:部分源程序#include<reg51.h>#inc
19、lude<absacc.h> #defineuchar unsigned char#define uint unsigned int #define LCDPORT P0#define E P31#define RW P33#define DI P34#define CS1 P36#define CS2 P35#define BUSYSTATUS P07#define LCDSTARTROW 0xc0#define LCDPAGE 0xB8#define LCDLINE 0x40void Run(void);/主程序void KeyScan(void);/ 按鍵void PlayK
20、ey(void); /按鍵程序void delay_1ms(uchar i);/延時1msvoid PlayMusic1(void); / 播放12345671void PlayMusic(void); /播放同一首歌void PlayMusic2(void); /播放規(guī)定曲目1void DisPlay(void);/ 數碼管/void lcd_init(void); /lcd初始化void init_com(void);void sound_delay(uchar n);void timer0(void);uchar code hz1;/*一系列變量*/sbit Beep=P27;/sbit
21、 busy=P01;ucharTh0,Tl0;ucharflag=0;/模式,0表示音樂,1表示按鍵ucharkey=0;/按鍵代號uchara;uchargaodi=0;/uchar data count=0;/uint counter=0;/12345671的頻率uchar code SONG_TONE=115,102,91,86,77,68,61,0;/12345671的節(jié)拍uchar code SONG_LONG=17,18,20,21,23,25,28,0; /*比賽規(guī)定曲目*/魂斗羅 赤色要塞uchar code SONG_TONE2=34,38,45,51,45,51,57,61
22、, 57,61,68,77,68,102,91,77, 68,68,45,51,45,43,38, 68,68,45,51,45,43,57, 68,68,45,51,45,43,38, 68,68,45,51,45,43,57,0;/魂斗羅的節(jié)拍uchar code SONG_LONG2=13,12,10,9,10,9,8,28, 8,7,6,6,6,5,5,6, 35,13,10,9,19,11,85, 35,13,10,9,19,11,68, 35,13,10,9,19,11,85, 35,13,10,9,19,11,68,0; /*同一首歌的源代碼*/uchar codeMusic=0
23、Xef,0Xef, 0X88,0X14,0X24,0X36,0X42,0X34,0X14,0X28,0X14,0X94,0X1f,0X88,0X14,0X24,0X34,0X32,0X42,0X54,0X14,0X46,0X32,0X54,0X22,0X32,0X32,0X22,0X2C,0X38,0X54,0X74,0X76,0X62,0X68,0X54,0X52,0X62,0X74,0X62,0X52,0X3f,0X46,0X42,0X54,0X64,0X54,0X42,0X32,0X28,0X0a4,0Xa2,0X92,0X84,0X94,0X1f,0Xb8,0X68,0X46,0X52
24、,0X68,0X74,0X72,0X72,0X74,0X62,0X52,0X3f,0Xb8,0X68,0X46,0X52,0X68,0X64,0X62,0X62,0X64,0X42,0X32,0X2f,0X58,0X14,0X24,0X36,0X42,0X34,0X12,0X12,0X26,0X22,0X24,0X22,0X12,0X94,0X9c,0Xa8,0Xa6,0X92,0X84,0X64,0X54,0X22,0X22,0X46,0X42,0X44,0X32,0X22,0X5f,0Xef,0Xef,0xFF,/按鍵音符ucharcodeKeyCode =0XFF,0XFF,0xF8,0
25、x8B,0xF9,0x5B,0xFA,0x14,0xFA,0x66,0xFB,0x03,0xFB,0x8F,0xFC,0x0B,/低音0xFC,0x43,0xFC,0xAB,0xFD,0x08,0xFD,0x33,0xFD,0x81,0xFD,0xC7,0xFE,0x05,/中音0xFE,0x21,0xFE,0x55,0xFE,0x84,0xFE,0X99,0XFE,0xC0,0xFE,0xE3,0xFF,0x02,/高音;/功能程序void Run(void)if(flag=0)PlayMusic1(); /12345671PlayMusic(); /同一首歌PlayMusic2();/魂斗
26、羅elsePlayKey();void KeyScan(void)/按按鍵1-7,數碼管的顯示if(P1=0X7f)/如果P1.7=0delay_1ms(5);if(P1=0X7f)gaodi+;if(gaodi>2)gaodi=0;a=gaodi;else if(P1=0XFE)delay_1ms(12);if(P1=0XFE)key=1;a=key;else if(P1=0XFD)delay_1ms(12);if(P1=0XFD)key=2;a=key;else if(P1=0XFB)delay_1ms(12);if(P1=0XFB)key=3;a=key;else if(P1=0X
27、F7)delay_1ms(12);if(P1=0XF7)key=4;a=key;else if(P1=0XEF)delay_1ms(12);if(P1=0XEF)key=5;a=key; else if(P1=0XDF)delay_1ms(12);if(P1=0XDF)key=6;a=key;else if(P1=0XBF)delay_1ms(12);if(P1=0XBF)key=7;a=key;elsereturn;void PlayKey(void)if(key=0)return;elseTh0=KeyCodegaodi*14+key*2;Tl0=KeyCodegaodi*14+key*2
28、+1;TR0=1;delay_1ms(187);TR0=0;key=0;time0() interrupt 1 /定時器0中斷TH0=Th0;TL0=Tl0;Beep=Beep;void interrupt0() interrupt 0 /外部終端0flag=flag;if(flag=0)a=8;P2=0;/延時1msvoid delay_1ms(uchar i)uchar j,k;for(j=0;j<i;j+)for(k=0;k<148;k+); /*播放音樂主程序*/12345671void PlayMusic1(void) uint i=0; uint j,k; while(
29、SONG_LONGi!=0|SONG_TONEi!=0) /播放各個音符,SONG_LONG 為拍子長度 for(j=0;j<SONG_LONGi*30;j+) Beep=Beep; /SONG_TONE 延時表決定了每個音符的頻率 for(k=0;k<SONG_TONEi/3;k+); delay_1ms(10); i+; TR0=0;if(flag!=0)break; /同一首歌的實現(xiàn)部分void PlayMusic(void)uchar yinfu,jiepai;uchar i,j;for(i=0;Musici!=0XFF;i+)yinfu=(Musici>>4)
30、;jiepai=(Musici&0X0F);if(yinfu=0)continue;Th0=MusicCode(yinfu-1)*2;Tl0=MusicCode(yinfu-1)*2+1;TR0=1;for(j=jiepai;j>0;-j)delay_1ms(150);/調歌曲快慢:187(越大越慢) TR0=0;if(flag!=0)break;void PlayMusic2(void) uint i=0; uint j,k; while(SONG_LONG2i!=0|SONG_TONE2i!=0) /播放各個音符,SONG_LONG 為拍子長度 for(j=0;j<SO
31、NG_LONG2i*30;j+) Beep=Beep; /SONG_TONE 延時表決定了每個音符的頻率 for(k=0;k<SONG_TONE2i/3;k+); delay_1ms(10); i+; TR0=0;if(flag!=0)break; /*數碼管顯示模塊*/ void Display(void)/顯示switch(a)case 0: P2=0X3F;break;case 1:P2=0X06;break;case 2:P2=0X5B;break;case 3:P2=0X4F;break;case 4:P2=0X66;break;case 5:P2=0X6D;break;cas
32、e 6:P2=0X7D;break;case 7:P2=0X07;break;default: P2=0X00;break;void delay (unsigned int n)unsigned int i ; for( ; n>0 ;n-)for ( i=500; i>0 ; i-);bit bCheckBusy () LCDPORT=0xff; RW = 1; DI=0; E=1; E=0; return BUSYSTATUS ;void vWriteData (unsigned char ucData) while(bCheckBusy() ; LCDPORT=0xff; R
33、W=0; DI=1; LCDPORT=ucData; E=1; E=0;void vWriteCMD(unsigned char ucCMD) while ( bCheckBusy() ); LCDPORT=0xff; RW=0; DI=0; LCDPORT=ucCMD; E=1; E=0; void vLCDInitialize()CS1=1;CS2=1;vWriteCMD (0x38) ;vWriteCMD (0x0f) ;vWriteCMD (0x01) ;vWriteCMD (0x06) ;vWriteCMD (LCDSTARTROW); Void vShowCustomRow ( unsigned char ucPage ,unsigned char ucLine ,unsigned char ucWidth ,unsigned char *ucaRow) unsigned char ucCount ; if(ucLine<64) CS1=1; CS2=0; vWriteCMD(LCDPAGE+ucPage) ; vWriteCMD(LCDLINE+ucLine) ; if (ucLine + ucWidth)<64) for (ucCount =0 ; ucCount<ucWidth ;ucC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45618-2025安全與韌性危機管理指南
- GB/T 45607-2025船舶與海上技術船舶系泊和拖帶設備系泊導纜孔底座
- GB/T 45523.2-2025放射性物質遠程操作裝置第2部分:機械式主從機械手
- 2025年手工木工師制作工技能資格知識考試題與答案
- 危險化學品安全管理與應急處置培訓大綱
- 行政人員培訓方案
- 城市交通規(guī)劃合同糾紛咨詢重點基礎知識點
- 物業(yè)員工保密意識培訓
- 通訊商業(yè)合作合同協(xié)議
- 轉店協(xié)議和租房合同
- 福建省廈門市2025屆高中畢業(yè)班高三5月第四次質量檢測物理試卷(廈門四檢)
- 非謂語動詞動詞不定式
- 【2025二輪復習】讀后續(xù)寫專題
- 2025年國家民委直屬事業(yè)單位招聘考試筆試試題(附答案)
- 運動健康產業(yè)的市場分析與前景
- 商品房門窗加工合同協(xié)議
- 藥品知識產權保護
- 2025年四川雅安市石棉縣森林資源保護林場招聘筆試參考題庫附帶答案詳解
- 2025至2030中國電力巡檢無人機行業(yè)深度評估與投資風險預警報告
- (四調)武漢市2025屆高中畢業(yè)生四月調研考試 物理試卷(含答案)
- 養(yǎng)老護理員初級試題庫含參考答案
評論
0/150
提交評論