歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

基于51單片機(jī)的吉他調(diào)音器系統(tǒng)設(shè)計--實物制作.doc

  • 資源ID:116441065       資源大?。?span id="gemc33z" class="font-tahoma">2.99MB        全文頁數(shù):25頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

基于51單片機(jī)的吉他調(diào)音器系統(tǒng)設(shè)計--實物制作.doc

課程設(shè)計報告課程名稱: 吉他調(diào)音器控制系統(tǒng)設(shè)計-實物制作 專業(yè)班級: 姓 名: 學(xué) 號: 課設(shè)時間: 指導(dǎo)教師: 批閱時間: 成 績: 目錄緒論11、總體設(shè)計方案 12、核心芯片結(jié)構(gòu)原理介紹 2 2.1、中央控制器-STC90C516RD+3 2.2、電機(jī)驅(qū)動芯片ULN200353、模擬部分介紹 6 3.1、輸入電路 6 3.2、放大電路 6 3.3、濾波電路 8 3.4、整形輸出電路 9 3.5、模擬部分輸出波形10 3.6、模擬部分實物圖104、軟件程序編程語言及開發(fā)環(huán)境選擇115、琴弦頻率測量模塊設(shè)計11 5.1、頻率測量方法的選取11 5.2、頻率測量程序設(shè)計說明12 5.3、單片機(jī)程序流程圖13 5.4、單片機(jī)程序 13 5.5、單電機(jī)實物圖 13 5.6、原件清單 13 5.7、整體電路圖 13結(jié) 論 14附錄一 15附錄二 16附錄三 21附錄四 22 緒論目前單片機(jī)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械以及各種智能機(jī)械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域。琴弦音頻測定儀的設(shè)計正是以單片機(jī)為核心,通過其他的外圍電路實現(xiàn)琴弦的準(zhǔn)確調(diào)弦。我們通過計算得出吉他每一根空弦音的理論音高(十二平均律的),然后看泛音調(diào)弦方法得到的音高是不是與之相等即可。對于標(biāo)準(zhǔn)音高a1=440.0000 Hz,那么按照12平均律所生成的各弦空:1弦空弦,音高e1,頻率f = 440.0000 / 2 ( 5 / 12 ) = 329.6276 Hz2弦空弦,音高b,頻率 f = 440.0000 / 2 ( 10 / 12 ) = 246.9417 Hz3弦空弦,音高g,頻率f = 440.0000 / 2 ( 14 / 12 ) = 195.9977 Hz4弦空弦,音高d,頻率 f = 440.0000 / 2 ( 19 / 12 ) = 146.8324 Hz5弦空弦,音高A,頻率f = 440.0000 / 2 ( 24 / 12 ) = 110.0000 Hz6弦空弦,音高E,頻率 f = 440.0000 / 2 ( 29 / 12 ) = 82.4069 Hz1、總體設(shè)計方案從圖一可以看出,本設(shè)計可以分為四大模塊,分別為聲音采集模塊、核心控制模塊、語音模塊設(shè)計、外圍輔助電路模塊。外圍輔助電路模塊 核心控制 模塊 聲音采集 模塊 圖一圖一 系統(tǒng)總框圖二、實驗儀器: (1)聲音采集模塊的設(shè)計:這部分是利用單片機(jī)測量琴弦頻率的前提,主要功能是將要采集的聲音信號轉(zhuǎn)換成可測量的電信號。要保證轉(zhuǎn)換的精度,還要處理好電路本身產(chǎn)生的諧波。電路應(yīng)該有基本的放大、濾波、比較電路的設(shè)計。 (2)核心控制模塊的設(shè)計:這部分屬于系統(tǒng)的軟件部分設(shè)計。主要是控制芯片的選擇和編程語言的選擇。通過單片機(jī)控制各個子模塊的正常工作,實現(xiàn)需要的功能是需要解決的重點。子模塊包括:鍵盤模塊、LCD12864顯示模塊、頻率測量模塊、PC機(jī)通信模塊。(3)外圍輔助電路的設(shè)計:這部分都是系統(tǒng)的硬件部分設(shè)計,包括復(fù)位晶振電路,顯示電路,電機(jī)動作電路等。需要合理將這些電路準(zhǔn)確組合并能夠?qū)崿F(xiàn)各自所需的功能。根據(jù)設(shè)計任務(wù),以及方案的研究,我們最終確定了以下方案: (4)晶振和復(fù)位電路:晶振作用是為系統(tǒng)提供基本的時鐘信號,通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。復(fù)位是單片機(jī)的初始化操作。通過選擇的控制芯片設(shè)計合適的晶振和復(fù)位電路。 (5)串口電路:使用MAX232芯片設(shè)計一個簡單的串口下載電路,為了方便單片機(jī)程序的下載。2、核心芯片結(jié)構(gòu)原理介紹 該系統(tǒng)核心芯片主要有單片機(jī)STC90C516RD+ ,ULN2003A驅(qū)動電機(jī)。2.1、中央控制器-STC90C516RD+ STC90C516RD+系列單片機(jī)是新一代超高速、低功耗的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時鐘/機(jī)器周期和6時鐘/機(jī)器周期可任意選擇,內(nèi)部集成MAX810專用復(fù)位電路,時鐘頻率在12MHz以下時,復(fù)位腳可直接接地。(實物圖如圖二)。 圖二1.增強(qiáng)型6 時鐘/ 機(jī)器周期,12 時鐘/ 機(jī)器周期 8051 CPU2.工作電壓:5.5V - 3.8V(5V 單片機(jī))/3.8V - 2.4V(3V 單片機(jī))3.工作頻率范圍:0-40MHz,相當(dāng)于普通8051的 080MHz.4.用戶應(yīng)用程序空間 4K/6K/7K/8K/10K/12K/13K/16K/32K/40K/48K/56K/ 61K/字節(jié)5.片上集成 1280字節(jié)/512/256字節(jié) RAM6.通用I/O口(35/39 個),復(fù)位后為: P1/P2/P3/P4 是準(zhǔn)雙向口/ 弱上拉(普通8051 傳統(tǒng)I/O 口)P0口是開漏輸出,作為總線擴(kuò)展用時,不用加上拉電阻,作為I/O 口用時,需加上拉電阻。7.ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器 / 仿真器可通過串口(P3.0/P3.1)直接下載用戶程序,8K 程序3 - 5 秒即可完成一片8.EEPROM 功能9.看門狗10.內(nèi)部集成MAX810專用復(fù)位電路,外部晶體12M以下時,可省外部復(fù)位電路,復(fù)位腳可直接接地。11.共3個16位定時器/計數(shù)器,其中定時器0還可以當(dāng)成2個8位定時器使用12.外部中斷4路,下降沿中斷或低電平觸發(fā)中斷,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒13.通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART14.工作溫度范圍:0-75/-40-+8515.封裝:LQFP-44,PDIP-40,PLCC-44 單片機(jī)各引腳功能:(引腳圖如圖三) XTAL1(19腳):接外部晶體振蕩器的一端。當(dāng)使用芯片內(nèi)部時鐘時,此腳用于外接石英晶體振蕩器和微調(diào)電容;當(dāng)使用外部時鐘 圖三 時,對于HMOS單片機(jī),此引腳接地;對于CMOS單片機(jī),此引腳作為外部振蕩信號的輸入端。XTAL2(18腳):接外部晶體振蕩器的另一端,當(dāng)使用芯片內(nèi)部時鐘時,此腳用于外接石英晶體振蕩器和微調(diào)電容。當(dāng)使用外部時鐘時,對于HMOS單片機(jī),此引腳接外部振蕩源;對于CMOS單片機(jī),此引腳懸空不接。89C51晶體振蕩器頻率可在6MHZ40MHZ之間選擇,常選6MHz或12MHz的石英晶體。電容的值沒有嚴(yán)格要求,但其取值對振蕩器的頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度稍有影響,C1、C2可在20pF100pF之間選擇。當(dāng)外接晶體振蕩器時,電容可選30pF10pF;外接陶瓷振蕩器時,電容可選40pF10pF。 控制信號或與其它電源復(fù)用引腳(1)(9腳):復(fù)位端。當(dāng)輸入的復(fù)位信號持續(xù)2個以上機(jī)器周期(12個晶體振蕩周期)高電平即為有效,用于完成單片機(jī)的復(fù)位初始化操作。正常工作時,此腳電平應(yīng) 0.5V。在VCC發(fā)生故障、降低到電平規(guī)定值掉電期間,此引腳可接備用電源VPD(電源范圍5V0.5V),由VPD向內(nèi)部RAM供電,以保持內(nèi)部RAM中的數(shù)據(jù)。(2)(30腳):地址鎖存使能。ALE(Address Latch Enable);PROG(Program)為CPU訪問外部程序存儲器或外部數(shù)據(jù)存儲器提供地址鎖存信號,將低8位地址鎖存在片外的地址鎖存器中。引腳第二功能,對片內(nèi) Flash編程,為編程脈沖輸入端。(3)(29腳):(Programmer Saving ENable),外部程序存儲器讀選通信號。在讀外部程序存儲器時有效(低電平),以實現(xiàn)外部程序存儲器單元的讀操作。在訪問外部數(shù)據(jù)存儲器、訪問內(nèi)部程序存儲器時無效。(4)(31腳):(Enable Address/Voltage Pulse of Programming)訪問程序存儲控制信號。當(dāng)“0”時,表示讀外部程序存儲器。只讀取外部的程序存儲器中的內(nèi)容,讀取的地址范圍為0000HFFFFH(64KB),片內(nèi)的4KB Flash 程序存儲器不起作用。當(dāng)“1”時,表示對程序存儲器的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。在PC值不超出0FFFH(即不超出片內(nèi)4KB Flash存儲器的地址范圍)時,單片機(jī)讀片內(nèi)程序存儲器(4KB)中的程序,但當(dāng)PC值超出0FFFH (即超出片內(nèi)4KB Flash地址范圍)時,將自動轉(zhuǎn)向讀取片外60KB(1000H-FFFFH)程序存儲器空間中的程序。對于EPROM(或FLASH)型單片機(jī),在EPROM編程期間,此引腳需加12.75V或21V的編程電壓。2.2、電機(jī)驅(qū)動芯片ULN2003 引腳如圖四所示,ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個消線圈反電動勢的二極管,可用來驅(qū)動繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅(qū)動電壓=50V,電流=500mA,輸入電壓=5V,適用于TTL COMS,由達(dá)林頓管組成驅(qū)動電路。 圖四 ULN是集成達(dá)林頓管IC,內(nèi)部還集成了一個消線圈反電動勢的二極管,它的輸出端允許通過電流為200mA,飽和壓降VCE約1V左右,耐壓BVCEO約為36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。采用集電極開路輸出,輸出電流大,故可直接驅(qū)動繼電器或固體繼電器,也可直接驅(qū)動低壓燈泡。通常單片機(jī)驅(qū)動ULN2003時,上拉2K的電阻較為合適,同時,COM引腳應(yīng)該懸空或接電源。 ULN2003是一個非門電路,包含7個單元,但獨每個單元驅(qū)動電流最大可達(dá)350mA.資料的最后有引用電路,9腳可以懸空。 比如1腳輸入,16腳輸出,負(fù)載接在VCC與16腳之間,不用9腳。uln2003的作用:ULN2003是大電流驅(qū)動陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控制電路中??芍苯域?qū)動繼電器等負(fù)載。輸入5VTTL電平,輸出可達(dá)500mA/50V。 ULN2003是高耐壓、大電流達(dá)林頓陳列,由七個硅NPN達(dá)林頓管組成。該電路的特點如下:ULN2003的每一對達(dá)林頓都串聯(lián)一個2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器。ULN2003是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點,適應(yīng)于各類要求高速大功率驅(qū)動的系統(tǒng)。3、模擬部分介紹3.1、輸入電路 電容話筒是根據(jù)電容與兩極板間距離成反比,當(dāng)振動時,電容話筒的兩極間距離變化,距離變大時,因為電容變小,所以電壓扁高,這時就產(chǎn)生了電信號。電容話筒大多需要用電極化,也有不用極化的,稱為駐極體電容話筒,就是一般電話里面使用的,非常廉價。 壓電陶瓷是一種特殊的材料,它受到點的作用時,會發(fā)生變型,相反,它發(fā)生變形時,也會產(chǎn)生電。 圖五這里我們選用駐極體話筒完成設(shè)計(電路如圖五所示)。 3.2、放大電路 TLC2252是用德州儀器公司先進(jìn)的LinCMOSTM工藝制造的雙路運(yùn)算放大器,具有滿電源電壓幅度輸出性能,同時比現(xiàn)有的CMOS運(yùn)放具有更好的輸入失調(diào)電壓和更低的功耗。另外,對于這類低功耗CMOS運(yùn)放,噪聲性能得到了驚人的改進(jìn),每一級放大僅需35uA(典型值)的電源電流。而且,共模輸入電壓范圍比通常標(biāo)準(zhǔn)CMOS類型放大器更寬。為了利用這種性能上的改進(jìn)并使此器件可以適用于更寬范圍的應(yīng)用,用比5mV更大的最大輸入失調(diào)電壓測試極限來規(guī)定VICR。先進(jìn)的LinCMOSTM工藝使用硅柵技術(shù)獲得輸入失調(diào)電壓的溫度和時間穩(wěn)定性,這種穩(wěn)定性遠(yuǎn)遠(yuǎn)超過了用金屬柵技術(shù)所能獲得的穩(wěn)定性。這種技術(shù)也使輸入阻抗有可能符合或超過頂柵JFET和昂貴的介質(zhì)絕緣器件的輸入阻抗;TLC2252呈現(xiàn)高輸入阻抗和低噪聲,能很好地適用于高阻抗源,例如電壓傳感器的小信號狀況。由于這些器件功耗低,所以它們在手持監(jiān)視和 遙感原始傳感器應(yīng)用中工作良好。此外,滿電源電壓幅度輸出特性以及單獨或分離電源工作使得這些器件在直 圖六接與模擬數(shù)字轉(zhuǎn)換器(ADC)接口時成為主要的選擇對象。所有這些特性,再結(jié)合它們的溫度性能,使得TLC2252系列能理想的適用于聲納、遠(yuǎn)程傳感器、溫度控制、有源壓阻傳感器、加速計、便攜式醫(yī)學(xué)應(yīng)用、手持儀表以及許多其他應(yīng)用(引腳圖如圖六所示)。LM358內(nèi)部包括有兩個獨立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器,適合于電源電壓范圍很寬的單電源使用,也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關(guān)。它的使用范圍包括傳感放大器、直流增益模組,音頻放大器、工業(yè)控制、DC增益部件和其他所有可用單電 圖七源供電的使用運(yùn)算放大器的場合(引腳圖如圖七所示)。 由以上兩種放大器和適當(dāng)參數(shù)的電阻電容構(gòu)成兩級放大電路(電路圖如圖八所示)。 圖八3.3、濾波電路設(shè)計中運(yùn)放選擇TI產(chǎn)品典型的通用四運(yùn)放LM324,LM324內(nèi)部包括有兩個獨立的、高增益、內(nèi)部頻率補(bǔ)償 的運(yùn)算放大器,適合于電源電壓范圍很寬的單電源使用, 也適用于雙電源工作模式,在推薦的工作條件下,電源電流與電源電壓無關(guān)。它的使用范圍包括傳感放大器、直流增益模塊和其他所有可用單電源供電的使用運(yùn)算放大器的場合。適用于一般的帶通濾波器的設(shè)計,同時具有低功耗的功能,可設(shè)計階數(shù)相對高一些的帶通濾波器,應(yīng)用起來節(jié)省空間。 巴特沃斯帶通濾波器幅頻響應(yīng)在通帶中具有最平幅度特性,但是從通帶到阻帶衰減較慢,這里采用四階巴特沃斯帶通濾波器來對采集進(jìn)來的音頻信號進(jìn)行濾波(引腳圖如圖九所示)。LM324主要參數(shù):電壓增益 100dB單位增益帶寬 1MHz單電源工作范圍 3V30VDC 每個運(yùn)放功耗(V=+5V) 1mV/op.Amp輸入失調(diào)電壓 2mV(最大7mV) 圖九 輸入偏置電流 50150nA輸入失調(diào)電流 550nA共模抑制比 7090dB輸出電壓幅度 01.5VDC(單電源時)輸出電流 40mA放大器間隔離度 120dB(fo:120KHz)參數(shù)選擇與計算: 對于低通濾波器的設(shè)計,電容一般選取10000pF,對于高通濾波器的設(shè)計,電容一般選取0.1uF,然后根據(jù)公式 R=1/2fc計算得出與電容相組合的電阻值,即得到此圖中R9、R4和R17,為了消除運(yùn)放的失調(diào)電流造成的誤差,盡量是運(yùn)放同相輸入端與反向輸入端對地的直流電阻基本相等,同時巴特沃斯濾波器階數(shù)與增益有一定的關(guān)系,根據(jù)這兩個條件可以列出兩個等式:30=R15*R21/(R15+R21),R15=R21(A-1),36=R14*R19/(R14+R19),R19=R14(A-1)由此可以解出R14、R15、R19、R21,原則是根據(jù)現(xiàn)實情況稍調(diào)整電阻值保持在一定限度內(nèi)即可,不要相差太大,注意頻率不要超過運(yùn)放的標(biāo)定頻率(電路圖如圖十所示)。 圖十3.4、整形輸出電路由于單片機(jī)識別的應(yīng)該正弦波,所以需要將濾波之后的信號進(jìn)行整形得到方波信號輸入給單片機(jī)進(jìn)行測頻(電路圖如圖十一所示),R24用于調(diào)節(jié)比較電壓,根據(jù)實際情況改變比較點電壓。 圖十一 3.5、模擬部分輸出波形 3.6、模擬部分實物圖 4、軟件程序編程語言及開發(fā)環(huán)境選擇以往的單片機(jī)系統(tǒng),其控制程序大多是用相應(yīng)單片機(jī)的匯編指令編制,其執(zhí)行效率高,但其可讀性和可移植性卻較差,直接影響其軟、硬件的擴(kuò)展和升級。C語言早期用于編寫UNIX操作系統(tǒng),是一種結(jié)構(gòu)化的語言,可產(chǎn)生緊湊代碼。C語言可用許多機(jī)器級的函數(shù)直接控制操作單片機(jī)的硬件,不必通過匯編語言。與匯編語言相比,C語言主要有以下一些優(yōu)點有:不要求了解單片機(jī)的指令系統(tǒng),僅要求對其存儲器結(jié)構(gòu)有初步了解;寄存器分配、存儲器尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;程序由不同的函數(shù)構(gòu)成,便于程序的結(jié)構(gòu)化和模塊化;程序的可讀性及可移植性較高;關(guān)鍵字及運(yùn)算符可用近似人的思維方式使用;程序編制及調(diào)試時間顯著縮短,大大地提高了編程效率;C語言提供的庫包含許多標(biāo)準(zhǔn)的子程序,具有較強(qiáng)的數(shù)據(jù)處理能力。C語言是一種非常便于使用的計算機(jī)高級編程語言,使用C語言進(jìn)行單片機(jī) 尤其是MCS-51系列單片機(jī)的開發(fā)具有極大的優(yōu)勢。 用C51編制程序時,應(yīng)遵循結(jié)構(gòu)化、模塊化的設(shè)計方法。在編程時,可將任務(wù)分成若干模塊,對每個模塊分別進(jìn)行編制及調(diào)試,最后有機(jī)結(jié)合成一個完整的控制程序。Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。使用C語言編程么Keil幾乎就是編程的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令編程事半功倍。5、琴弦頻率測量模塊設(shè)計5.1、頻率測量方法的選取測量頻率的方法一般分為無源測頻法、有源測頻法及電子計數(shù)法三種。無源測頻法(又可分為諧振法和電橋法),常用于頻率粗測,精度在1%左右。有源比較法可分為拍頻法和差頻法,前者是利用兩個信號線性疊加以產(chǎn)生拍頻現(xiàn)象, 再通過檢測零拍現(xiàn)象進(jìn)行測頻,常用于低頻測量,誤差在零點幾Hz;后者則利用兩個非線性信號疊加來產(chǎn)生差頻現(xiàn)象,然后通過檢測零差現(xiàn)象進(jìn)行測頻,常用于高頻測量, 誤差在20Hz左右。以上方法在測量范圍和精度上都有一定的不足,而電子計數(shù)法主要通過單片機(jī)進(jìn)行控制。由于單片機(jī)的較強(qiáng)控制與運(yùn)算功能,電子計數(shù)法的測量頻率范圍寬,精度高,易于實現(xiàn)。本設(shè)計就是采用單片機(jī)電子計數(shù)法來測量琴弦頻率。5.2、頻率測量程序設(shè)計說明利用單片機(jī)的T0、T1的定時計數(shù)器功能,完成對輸入的信號進(jìn)行頻率計數(shù)。頻率的測量方法:通過檢測一定時間內(nèi)(1s內(nèi))輸入方波的個數(shù)計算琴弦頻率。T0主要功能時進(jìn)行計數(shù),T1是進(jìn)行計時。T0是工作在計數(shù)狀態(tài)下對輸入的方波信號進(jìn)行計數(shù),但對工作在計數(shù)狀態(tài)下的T0,最大計數(shù)值為fOSC/24,由于fOSC12MHz,因此,T0的最大計數(shù)頻率為250KHz,滿足設(shè)計要求。對于頻率的概念就是在一秒時間內(nèi)輸入脈沖的個數(shù),即為頻率值。設(shè)定T1工作在定時狀態(tài)下,每定時1秒到,就停止T0的計數(shù),并從T0的計數(shù)單元中讀取計數(shù)的數(shù)值即為琴弦的頻率。T1工作在定時狀態(tài)下,最大定時時間為65ms,達(dá)不到1秒的定時,所以采用定時50ms,共定時20次,即可完成1秒的定時功能。定時/計數(shù)器T0由TH0和TL0構(gòu)成,T1由TH1和TL1構(gòu)成。TMOD用于控制和確定T0,T1的功能和工作模式。TCON用于控制T0、T1啟動和停止計數(shù),同時包括T0、T1的狀態(tài)。他們屬于特殊功能寄存器,這些寄存器的內(nèi)容靠軟件預(yù)先設(shè)置。系統(tǒng)復(fù)位時,寄存器的所有位都被清零。定時/計數(shù)器T0和T1都是加法計數(shù)器,每輸入一個脈沖,計數(shù)器加1,當(dāng)加到計數(shù)器T1為1時再輸入一個脈沖,就使計數(shù)器發(fā)生溢出,溢出時,計數(shù)器回零,并置位TCON中的TF0或TF1,以表示定時時間已到或計數(shù)值已滿,向CPU發(fā)出中斷申請。設(shè)計數(shù)器的最大值為M(在不同的工作模式下,M可以為,或),則置入的初值X可這樣來計算。計數(shù)方式時 X=M-計數(shù)值定時方式時 計數(shù)值T= (M-X)T=定時值 所以置入的初值 X=M-(定時值/T) T為計數(shù)周期,是單片機(jī)的機(jī)器周期。 當(dāng)機(jī)器周期為1時,工作在模式0時,最大定時值為 若工作在模式1,則最大定時值為。先對TMOD寄存器賦值,以確定定時器的工作模式是0還是1,即確定機(jī)器周期,從而設(shè)置定時器/計數(shù)器初值。直接將初值寫入寄存器的TH0,TL0或TH1,TL1,再根據(jù)需要,對寄存器ET0,ET1置初值,開放定時器中斷。最后對TCON寄存器中的TR0或TR1置位,啟動定時/計數(shù)器,置位以后,計數(shù)器T0,T1即按規(guī)定的工作模式和初值進(jìn)行定時計數(shù)。5.3、單片機(jī)程序流程圖(見附錄一)5.4、單片機(jī)程序(見附錄二)5.5、單電機(jī)實物圖如圖 5.6、原件清單(見附錄三)5.7、整體電路圖(見附錄四) 結(jié) 論 本次課程設(shè)計的主要內(nèi)容是吉他調(diào)音器控制系統(tǒng)設(shè)計。我們采用單片機(jī)對琴弦空弦音的頻率進(jìn)行計算判斷,并通過控制步進(jìn)電機(jī)正反轉(zhuǎn)從而調(diào)節(jié)弦松緊度,進(jìn)而使吉他空弦音頻率靠近標(biāo)準(zhǔn)音頻率。本次課程設(shè)計所做主要工作概括如下:1. 介紹課題研究的背景,提出了以單片機(jī)為控制核心的琴弦音頻測定儀的設(shè)計;2. 提出了幾種頻率的測量方法,經(jīng)過比較后確定了基于8051單片機(jī)的電子計數(shù)法,這種方法測量頻率范圍寬,精度高,易于實現(xiàn);3. 詳細(xì)闡述了整個系統(tǒng)的軟件設(shè)計。包括:主程序模塊設(shè)計,電機(jī)轉(zhuǎn)動模塊、顯示模塊;4. 通過C語言對單片機(jī)進(jìn)行軟件編程,基于Keil C51集成開發(fā)環(huán)境對軟件進(jìn)行編譯調(diào)試。琴弦音頻測定儀采用高性能單片機(jī)控制,性能穩(wěn)定,可靠性高,具有掉電保護(hù)功能,運(yùn)用的元件也可推廣,還能據(jù)實際要求擴(kuò)展功能,應(yīng)用廣泛,性價比高。在這段時間內(nèi),通過查閱各種書籍與網(wǎng)站,同時在指導(dǎo)老師的指導(dǎo)和同學(xué)的幫助下,完成了此次課程設(shè)計。我們掌握對所學(xué)知識得到利用,鍛煉我們的實際運(yùn)用能力,同時讓我們認(rèn)識到團(tuán)結(jié)互助在各種工作中的重要性。課程設(shè)計不僅鍛煉了我們的動手能力,更加促進(jìn)了我們對理論聯(lián)系實際的理解,對我們今后的工作發(fā)展有著很大的促進(jìn)作用。在此感謝*老師.循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次課程設(shè)計的成功離不開老師您的細(xì)心指導(dǎo)。由于本人能力有限,在設(shè)計過程中難免出現(xiàn)錯誤,懇請老師多多指教,我十分樂意接受您的批評與指正,本人將萬分感謝。 15numyiinpin否是根據(jù)外部采集頻率范圍選擇標(biāo)準(zhǔn)頻率比較,控制電機(jī)轉(zhuǎn)向是1s定時到否yinjie,num,T0_num置零,打開定時計數(shù)器0、1單片機(jī)初始化化 開始附錄一附錄二:#include#define uchar unsigned char#define uint unsigned intsbit pulse=P35; /T1,計外部脈沖數(shù)sbit led=P20;uint num=0,T0_num,n,yinjie,i;uchar code FFW8=0 xf1,0 xf3,0 xf2,0 xf6,0 xf4,0 xfc,0 xf8,0 xf9;/電機(jī)正轉(zhuǎn)uchar code REV8=0 xf9,0 xf8,0 xfc,0 xf4,0 xf6,0 xf2,0 xf3,0 xf1;/電機(jī)反轉(zhuǎn) uint code pinpu =329,247,196,147,110,82 ; / 六弦空弦音void init() /定時計數(shù)初始化TMOD=0 x51;/T1計數(shù),T0定時TH1=0;/0; /計數(shù)初值TL1=0;/0;ET1=1; /定時器1允許 TH0=(65536-50000)/256; /計時初值TL0=(65536-50000)%256;ET0=1; /定時器0允許 TR1=1; /打開計數(shù)器 TR0=1; /打開定時器 EA=1;void delay(uint t) uint k; while(t-) for(k=0; k123; k+); void motor_ffw(uint n) /步進(jìn)電機(jī)正轉(zhuǎn) uchar i; uint j; for (j=0; j12*n; j+) /轉(zhuǎn)n圈 for (i=0; i8; i+) /一個周期轉(zhuǎn)30度 P1 = FFWi; /取數(shù)據(jù) delay(30); /調(diào)節(jié)轉(zhuǎn)速 void motor_rev(uint n) /步進(jìn)電機(jī)反轉(zhuǎn) uchar i; uint j; for (j=0; j12*n; j+) /一個周期轉(zhuǎn)30度,轉(zhuǎn)n圈 for (i=0; i8; i+) P1 = REVi; /取數(shù)據(jù) delay(30); /調(diào)節(jié)轉(zhuǎn)速 /控制步進(jìn)電機(jī)轉(zhuǎn)動子程序void dianji(uint num) if(num300) yinjie=pinpu0; /yinjie=329Hz if(num=328|num=329|num=330) led=0; while(1); else if(numyinjie) motor_ffw(1); /步進(jìn)電機(jī)正轉(zhuǎn) else if(numyinjie) motor_rev(1); /步進(jìn)電機(jī)反轉(zhuǎn) else if(num220) yinjie=pinpu1;/yinjie=247Hz if(num=246|num=247|num=248) led=0; while(1); else if(numyinjie) motor_ffw(1); /步進(jìn)電機(jī)正轉(zhuǎn) else if(numyinjie) motor_rev(1); /步進(jìn)電機(jī)反轉(zhuǎn) else if(num165) yinjie=pinpu2; /yinjie=196Hz if(num=195|num=196|num=197) led=0; while(1); else if(numyinjie) motor_ffw(1); /步進(jìn)電機(jī)正轉(zhuǎn) else if(numyinjie) motor_rev(1); /步進(jìn)電機(jī)反轉(zhuǎn) else if(num120) yinjie=pinpu3; /yinjie=147Hz if(num=146|num=147|num=148) led=0; while(1); else if(numyinjie) motor_ffw(1); /步進(jìn)電機(jī)正轉(zhuǎn) else if(numyinjie) motor_rev(1); /步進(jìn)電機(jī)反轉(zhuǎn) else if(num100) yinjie=pinpu4; /yinjie=110Hz if(num=109|num=110|num=111) led=0; while(1); else if(numyinjie) motor_ffw(1); /步進(jìn)電機(jī)正轉(zhuǎn) else if(numyinjie) motor_rev(1); /步進(jìn)電機(jī)反轉(zhuǎn) else if(num62) yinjie=pinpu5; /yinjie=82Hz if(num=81|num=82|num=83) led=0; while(1); else if(numyinjie) motor_ffw(1); /步進(jìn)電機(jī)正轉(zhuǎn) else if(numyinjie) motor_rev(1); /步進(jìn)電機(jī)反轉(zhuǎn) else if(num360) void time0(void) interrupt 1 /定時器0,定時1sT0_num+; /計數(shù)滿一次,T0_num加1TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(T0_num=20) /1s定時到 EA=0; /關(guān)總中斷 num=TH1*256+TL1; dianji(num); yinjie=0; num=0; T0_num=0; /定時器溢出次數(shù),初值設(shè)為0 TH1=0;/0XFF; /計數(shù)1次 TL1=0;/0XFF; EA=1; void main()init(); while(1);附錄三:原件類型原件參數(shù)原件個數(shù)步進(jìn)電機(jī)五線四相1電容33p2103410440.1u10.01u13u110uf5電阻47031k55.1k210k715K125k147k250k1100k2150k1470k1發(fā)光二極管LED11下載接口 Connector 91三極管90141按鍵SW-PB1芯片LM324D1STC90C516RD+1ULN2003D1MAX2321TLC22521晶振12MHz122

注意事項

本文(基于51單片機(jī)的吉他調(diào)音器系統(tǒng)設(shè)計--實物制作.doc)為本站會員(good****022)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!