基于PC機(jī)的電子琴設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康模保莆绽胮c機(jī)揚(yáng)聲器發(fā)出聲音的方法。2.學(xué)習(xí)利用系統(tǒng)功能調(diào)用從鍵盤上讀取字符的方法。 二、實(shí)驗(yàn)內(nèi)容與要求利用PC機(jī)和揚(yáng)聲器實(shí)現(xiàn)簡(jiǎn)易電子琴的功能。 1.基本要求(1)電子琴功能,編寫程序,程序運(yùn)行時(shí)使pc機(jī)成為一架可彈奏的“鋼琴”。當(dāng)按下PC機(jī)鍵盤數(shù)字鍵1-8時(shí),依次發(fā)出1,2,3,4,5,6,7,i八個(gè)音調(diào)。(2)音樂(lè)盒功能,內(nèi)部存儲(chǔ)至少2首以上的樂(lè)曲,根據(jù)菜單選擇播放。2.提高要求(1)使一組放光二極管隨音調(diào)變化而改變,實(shí)現(xiàn)音樂(lè)彩燈 (2)能夠?qū)崿F(xiàn)高、中、低音的選擇。 (3)能夠存儲(chǔ)彈奏的內(nèi)容,進(jìn)行回放。 三、實(shí)驗(yàn)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單 5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問(wèn)題及解決的方法) 四、設(shè)計(jì)原理要使揚(yáng)聲器發(fā)出不同的音調(diào),就得輸入不同頻率的波形。通過(guò)給8253定時(shí)/計(jì)數(shù)器裝入不同的計(jì)數(shù)值,可以使其輸出不同頻率的方波。經(jīng)過(guò)放大器的放大作用,便可驅(qū)動(dòng)揚(yáng)聲器發(fā)出不同的音調(diào),只要插入一段延時(shí)程序之后,再將揚(yáng)聲器切斷,音調(diào)的聲音就可以持續(xù)一端時(shí)間。通過(guò)計(jì)算機(jī)的不同按鍵輸出不同的音調(diào),需要使用系統(tǒng)調(diào)用功能以接收鍵入字符,并且要建立一張表,使鍵入字符與頻率構(gòu)成一個(gè)對(duì)應(yīng)關(guān)系。
標(biāo)簽: PC機(jī) 電子琴
上傳時(shí)間: 2013-10-16
上傳用戶:xlcky
C語(yǔ)言編程基礎(chǔ):1. 十六進(jìn)制表示字節(jié)0x5a:二進(jìn)制為01011010B;0x6E為01101110。 2. 如果將一個(gè)16位二進(jìn)數(shù)賦給一個(gè)8位的字節(jié)變量,則自動(dòng)截?cái)酁榈?位,而丟掉高8位。 3. ++var表示對(duì)變量var先增一;var—表示對(duì)變量后減一。 4. x |= 0x0f;表示為 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變量TMOD的低四位賦值0x5,而不改變TMOD的高四位。 6. While( 1 ); 表示無(wú)限執(zhí)行該語(yǔ)句,即死循環(huán)。語(yǔ)句后的分號(hào)表示空循環(huán)體,也就是{;} 在某引腳輸出高電平的編程方法:(比如P1.3(PIN4)引腳)1. #include <AT89x52.h> //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含P1.3 2. void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口 3. { 4. P1_3 = 1; //給P1_3賦值1,引腳P1.3就能輸出高電平VCC 5. While( 1 ); //死循環(huán),相當(dāng) LOOP: goto LOOP; 6. } 注意:P0的每個(gè)引腳要輸出高電平時(shí),必須外接上拉電阻(如4K7)至VCC電源。在某引腳輸出低電平的編程方法:(比如P2.7引腳)代碼1. #include <AT89x52.h> //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含P2.7 2. void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口 3. { 4. P2_7 = 0; //給P2_7賦值0,引腳P2.7就能輸出低電平GND 5. While( 1 ); //死循環(huán),相當(dāng) LOOP: goto LOOP; 6. } 在某引腳輸出方波編程方法:(比如P3.1引腳)代碼1. #include <AT89x52.h> //該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含P3.1 2. void main( void ) //void 表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口 3. { 4. While( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句 5. { 6. P3_1 = 1; //給P3_1賦值1,引腳P3.1就能輸出高電平VCC 7. P3_1 = 0; //給P3_1賦值0,引腳P3.1就能輸出低電平GND 8. } //由于一直為真,所以不斷輸出高、低、高、低……,從而形成方波 9. } 將某引腳的輸入電平取反后,從另一個(gè)引腳輸出:( 比如 P0.4 = NOT( P1.1) )
標(biāo)簽: 51單片機(jī)C語(yǔ)言 編程實(shí)例
上傳時(shí)間: 2013-11-02
上傳用戶:zengduo
設(shè)計(jì)采用Altera公司CycloneII系列EP2C5Q208作為核心器件,采用直接數(shù)字頻率合成技術(shù)實(shí)現(xiàn)了一個(gè)頻率、相位可控的基本信號(hào)發(fā)生器。該信號(hào)發(fā)生器可以產(chǎn)生正弦波、方波、三角波和鋸齒波四種波形。仿真及硬件驗(yàn)證的結(jié)果表明,該信號(hào)發(fā)生器精度高,抗干擾性好,此設(shè)計(jì)方案具有一定的實(shí)用性。
標(biāo)簽: FPGA DDS 波形 信號(hào)發(fā)生器
上傳時(shí)間: 2013-11-10
上傳用戶:農(nóng)藥鋒6
該信號(hào)源可輸出正弦波、方波和三角波,輸出信號(hào)的頻率以數(shù)控方式調(diào)節(jié),幅度連續(xù)可調(diào)。與傳統(tǒng)信號(hào)源相比,該信號(hào)源具有波形質(zhì)量好、精度高、設(shè)計(jì)方案簡(jiǎn)潔、易于實(shí)現(xiàn)、便于擴(kuò)展與維護(hù)的特點(diǎn)。
標(biāo)簽: FPGA DDS 數(shù)控 信號(hào)源
上傳時(shí)間: 2013-10-11
上傳用戶:ippler8
超聲波傳感器適用于對(duì)大幅的平面進(jìn)行靜止測(cè)距。普通的超聲波傳感器測(cè)距范圍大概是 2cm~450cm,分辨率3mm(淘寶賣家說(shuō)的,筆者測(cè)試環(huán)境沒(méi)那么好,個(gè)人實(shí)測(cè)比較穩(wěn)定的 距離10cm~2m 左右,超過(guò)此距離就經(jīng)常有偶然不準(zhǔn)確的情況發(fā)生了,當(dāng)然不排除筆者技術(shù) 問(wèn)題。) 測(cè)試對(duì)象是淘寶上面最便宜的SRF-04 超聲波傳感器,有四個(gè)腳:5v 電源腳(Vcc),觸發(fā)控制端(Trig),接收端(Echo),地端(GND) 附:SRF 系列超聲波傳感器參數(shù)比較 模塊工作原理: 采用IO 觸發(fā)測(cè)距,給至少10us 的高電平信號(hào); 模塊自動(dòng)發(fā)送8個(gè)40KHz 的方波,自動(dòng)檢測(cè)是否有信號(hào)返回; 有信號(hào)返回,通過(guò)IO 輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間.測(cè)試距離=(高電平時(shí)間*聲速(340m/s))/2; 電路連接方法 Arduino 程序例子: constintTrigPin = 2; constintEchoPin = 3; floatcm; voidsetup() { Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } voidloop() { digitalWrite(TrigPin, LOW); //低高低電平發(fā)一個(gè)短時(shí)間脈沖去TrigPin delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //將回波時(shí)間換算成cm cm = (int(cm * 100.0)) / 100.0; //保留兩位小數(shù) Serial.print(cm); Serial.print("cm"); Serial.println(); delay(1000); }
標(biāo)簽: Arduino 連接 超聲波傳感器
上傳時(shí)間: 2013-10-18
上傳用戶:星仔
Audio100 audio tester是短歌行網(wǎng)站(WWW.AUDIO100.COM)開發(fā)的音頻信號(hào)發(fā)生器軟件,提供了35種不同頻率的正弦波信號(hào),也提供了3組粉紅噪音信號(hào)和一組20Hz-20kHz的掃頻信號(hào),所有信號(hào)的幅度為-20dB。Audio100 audio tester中的波形信號(hào)全部從專業(yè)音頻信號(hào)發(fā)生儀器采樣,所產(chǎn)生波形的頻率極為準(zhǔn)確,失真度也極小,并且提供了專業(yè)的音頻測(cè)試信號(hào)說(shuō)明。在1.0以前的版本均為測(cè)試版本,在以后的版本中將加入更多頻率的正弦波和不同頻率的方波、三角波等波形信號(hào),成為一個(gè)具有專業(yè)品質(zhì)的軟信號(hào)發(fā)生器。
標(biāo)簽: Audio 100 測(cè)音 軟件
上傳時(shí)間: 2013-11-11
上傳用戶:zl520l
上傳用戶:半熟1994
上傳時(shí)間: 2013-12-18
上傳用戶:kz_zank
本系統(tǒng)是基于LM3S8971實(shí)現(xiàn)了通過(guò)Ethernet或者CAN總線來(lái)控制無(wú)刷直流電機(jī),可以實(shí)現(xiàn)無(wú)刷直流電機(jī)有方波傳感器和方波無(wú)傳感器運(yùn)行,同時(shí)支持有傳感器正弦波運(yùn)行。
標(biāo)簽: Stellaris 無(wú)刷直流電機(jī) 控制系統(tǒng)
上傳時(shí)間: 2013-11-14
上傳用戶:行旅的喵
上傳時(shí)間: 2013-10-17
上傳用戶:asaqq
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1