朱自立
(鄭州工業(yè)應(yīng)用技術(shù)學(xué)院,河南鄭州,451150)
由于尺寸緊湊、性能卓越、成本實(shí)惠,單片機(jī)已被普遍采納,并在中國(guó)的各個(gè)行業(yè)中都有所應(yīng)用。目前,它主要被用于通信、家庭娛樂(lè)、LCD 顯示器等行業(yè),未來(lái),由它開(kāi)創(chuàng)的新型產(chǎn)品將更加普及。對(duì)于一名準(zhǔn)備從事電子行業(yè)的工作者來(lái)說(shuō),深入研究并熟練操控單片機(jī)的運(yùn)行原理及操作方法,將成為他們獲取高級(jí)職位的重要一步。
本設(shè)計(jì)的主要內(nèi)容是制作一個(gè)精美的電子琴。經(jīng)過(guò)研究發(fā)現(xiàn),89C51 單片機(jī)可以有效地取代傳統(tǒng)電子琴,它可以提供更多復(fù)雜、更豐富、更靈活的控制功能,從而使得它可以更好地表達(dá)出聲、光、力等多種元素,從而更好地滿足人們演出需求。隨著聲音和觸摸屏的持續(xù)改進(jìn),電子琴將逐漸進(jìn)入市場(chǎng)。第四代電子計(jì)算機(jī),即單片微型計(jì)算機(jī),已經(jīng)取得了巨大的進(jìn)步,其優(yōu)勢(shì)在于擁有更強(qiáng)的功率、更快的運(yùn)行速率、更小的尺寸、更便宜的價(jià)格、更強(qiáng)的穩(wěn)定性和更多的適用范圍。隨著單片機(jī)的普及,其對(duì)于傳統(tǒng)的控制技術(shù)的影響將會(huì)徹底改變,這也使得其在高新技術(shù)及工業(yè)界的廣泛使用受到了極大的關(guān)注[1]。
這個(gè)設(shè)計(jì)通過(guò)LED 小燈來(lái)控制燈光的變化,并通過(guò)揚(yáng)聲器來(lái)播放音樂(lè)。它的電路由鍵盤、單片機(jī)和LED 顯示電路組成,并配備了聲音電路。詳細(xì)的功能說(shuō)明請(qǐng)參見(jiàn)下面的內(nèi)容。
(1)鍵盤是一種用來(lái)演奏音樂(lè)的工具,它有八個(gè)按鍵,可以演奏8 個(gè)音階。
(2)單片機(jī)可以通過(guò)發(fā)送多種電脈沖信號(hào)來(lái)控制各個(gè)組件的運(yùn)行狀態(tài)。
(3)由于單片機(jī)的存儲(chǔ)功能,LED 顯示屏上的數(shù)據(jù)被轉(zhuǎn)換成可讀的格式,而LED 小燈則將這些格式轉(zhuǎn)換成可以被揚(yáng)聲器捕捉的語(yǔ)言。
單片機(jī)可以通過(guò)程序設(shè)計(jì)實(shí)現(xiàn)對(duì)音符輸入信號(hào)的讀取,從而產(chǎn)生音頻脈沖。CPU 可以根據(jù)讀取的數(shù)據(jù),對(duì)其進(jìn)行處理,并通過(guò)I/O 口將音樂(lè)以高質(zhì)量的音頻格式傳輸?shù)綋P(yáng)聲器,從而實(shí)現(xiàn)音樂(lè)的高清晰度和高質(zhì)量的傳輸[2]。
圖1 系統(tǒng)整體框圖
方案1:采用凌陽(yáng)系列單片機(jī)作為系統(tǒng)的控制器,可以有效地提升系統(tǒng)的性能和可靠性。
凌陽(yáng)系列單片機(jī)具備出色的性能,其內(nèi)置的模塊尺寸小巧,而且結(jié)構(gòu)緊湊,使得整個(gè)系統(tǒng)的穩(wěn)定性得到極大的改善,同時(shí)也極易于組裝,使其具備更強(qiáng)的抗干擾性,因此,凌陽(yáng)系列單片機(jī)非常適用于大型實(shí)時(shí)系統(tǒng)的控制。
方案2:采用51 系列作為系統(tǒng)控制器,可以有效地提升系統(tǒng)的性能和可靠性。
單片機(jī)具有出色的計(jì)算能力,它的軟件編寫非常靈活,具有很高的自主權(quán)。它具有許多獨(dú)有的特征,如節(jié)省電力、輕巧、高效、經(jīng)濟(jì)、耐久,因此被廣泛地應(yīng)用到不同的行業(yè)[3]。
由于51 單片機(jī)的價(jià)格比凌陽(yáng)系列更加實(shí)惠,而且本設(shè)計(jì)不需要極快的處理能力,因此,在經(jīng)濟(jì)性和實(shí)用性的雙重考量下,我們最終選擇了方案2。
由于最小系統(tǒng)的重要性,它不僅僅只有一個(gè)單片機(jī)芯片,而且還有許多關(guān)鍵的組件,如電源、時(shí)鐘、復(fù)位,它們都起到了至關(guān)重要的作用,保證了該系統(tǒng)的安全和高效率。此外,它還具備極大的彈性,可以實(shí)現(xiàn)多種不同的任務(wù),比如存儲(chǔ)、A/D、網(wǎng)絡(luò)、多媒體、多任務(wù)調(diào)度、多任務(wù)管理、多任務(wù)調(diào)度、多任務(wù)調(diào)度。
STC89C51 擁有一種高增益反相放大,它能夠?qū)⒄袷幤鞯男盘?hào)轉(zhuǎn)換為電信號(hào),其中RXD 引腳連接到振蕩器的輸入,而TXD 引腳連接到振蕩器的輸出。該放大器的時(shí)鐘系統(tǒng)也能夠通過(guò)內(nèi)置的或者外置的方法實(shí)現(xiàn)。根據(jù)圖2,RXD 與TXD 之 間 的 連接是通過(guò)外部的振蕩器實(shí)現(xiàn)的,而且不需要考慮其他因素,僅需確保其中的脈沖寬度,通常會(huì)選擇12MHz 以上晶振[4]。
圖2 總電路圖
STC89C51 單片機(jī)的RST 引腳被激活后,將會(huì)進(jìn)入高電平狀態(tài),這種狀態(tài)會(huì)維持2 個(gè)機(jī)器周期,如果該引腳一直處于高電平狀態(tài),則會(huì)進(jìn)入循環(huán)復(fù)位狀態(tài)。
電路復(fù)位通常有兩種選擇:自動(dòng)重置或者按鍵重置。
在最基本的上電自動(dòng)復(fù)位電路中,電容充放電是一種重要的操作,它可以有效地控制Vcc 的上升速度,使其保持在1ms 以內(nèi),從而達(dá)到自動(dòng)上電復(fù)位的目的。
在這種情況下,我們采用了按鍵手動(dòng)復(fù)位技術(shù)。這種技術(shù)可以通過(guò)兩種方式實(shí)現(xiàn):電平復(fù)位和脈沖復(fù)位。其中,電平復(fù)位需要RST(9)端與電源Vcc 相連。根據(jù)圖2,采用11.0592MHz 的時(shí)鐘頻率,將C 設(shè)置為10μF,將R 設(shè)置為10kΩ,以實(shí)現(xiàn)按鍵手動(dòng)復(fù)位功能。
該部分為設(shè)計(jì)最主要的部分。
在此次設(shè)計(jì)的電路中,CS9013 和其他兩個(gè)NPN 型號(hào)的三極管被認(rèn)為是至關(guān)重要的,因?yàn)樗鼈兛梢詫纹瑱C(jī)的噪聲信號(hào)進(jìn)行放大和輸出。為了確保CS9013 的可靠性,我們采取了一系列的檢測(cè)措施,包括檢查其引線,檢查其可靠性,檢測(cè)其可靠性,檢測(cè)其可靠性,從而確保其正常工作[5]。
(1)通過(guò)使用NPN 型號(hào)的三極管,使用一個(gè)黑色的表筆連接一個(gè)電極,一個(gè)紅色的表筆連接兩個(gè)電極,當(dāng)兩個(gè)電極的電阻值均小時(shí),并且在替換表筆之前,這兩個(gè)電極的電阻值均大,這就說(shuō)明第一次使用的黑色表筆連接的正確。但是,當(dāng)兩個(gè)電極的電阻值之間的差異非常大時(shí),這就說(shuō)明第一次使用的并非正確的基極。
(2)在確認(rèn)了三極管的基極之后,我們可以使用兩個(gè)表筆來(lái)檢查e 極與c 極之間的電阻。當(dāng)兩次檢查的電阻值不一致時(shí),我們可以使用一個(gè)紅色的表筆來(lái)檢查e 極,而另一個(gè)則使用黑色的表筆來(lái)檢查c 極。NPN 型號(hào)的三極管的檢測(cè)過(guò)程大致如此,但需要特別留心的是,當(dāng)使用紅黑表筆檢測(cè)e、c 極之間的電阻時(shí),因?yàn)樗鼈兊腣(BR)CEO 非常微弱,所以可能會(huì)導(dǎo)致發(fā)射結(jié)被擊穿。
經(jīng)過(guò)檢測(cè),兩個(gè)三極管組成的達(dá)林頓系統(tǒng)具有良好的散熱性和抗干擾性,它們?cè)赑1.4 口處產(chǎn)生的高電壓使得整個(gè)系統(tǒng)的散熱性增強(qiáng),從而使得在接收到的信號(hào)中,噪音得不到有效的抑制,從而使得整個(gè)系統(tǒng)的音質(zhì)得到提升。
發(fā)光模塊由16 個(gè)排列成心形的發(fā)光二極管構(gòu)成,由單片機(jī)的P0 口和P2 口控制,低電平點(diǎn)亮,本設(shè)計(jì)設(shè)置了單獨(dú)的花樣流水燈功能,可以由按鍵進(jìn)行切換進(jìn)入執(zhí)行。在電子琴?gòu)椬噙^(guò)程中,心形發(fā)光二極管會(huì)根據(jù)音階變換不同的顯示圖形。
這款電子琴擁有11 個(gè)按鈕,1 個(gè)按鍵用于復(fù)位,2 個(gè)按鍵用于調(diào)節(jié)功能,8 個(gè)按鍵用于演奏音樂(lè)。這8 個(gè)按鈕都可以用來(lái)進(jìn)行各個(gè)音調(diào)的演奏,它們可以用來(lái)模擬各種樂(lè)器的演奏方式。這款電子琴的操縱系統(tǒng)采用了單片機(jī)的P3 口引腳,可以根據(jù)用戶的需求進(jìn)行自動(dòng)調(diào)整。除了這3 個(gè),還有一個(gè)用于調(diào)節(jié)功能的按鈕,可以調(diào)節(jié)光源的亮度和顏色,并可以調(diào)節(jié)音量。
采用單片機(jī),即將需要演繹的音符用按鍵來(lái)控制,并將其轉(zhuǎn)化為一個(gè)電訊號(hào),傳送到單片機(jī)控制器,經(jīng)過(guò)信息處理后,產(chǎn)生相應(yīng)的信號(hào)傳遞到揚(yáng)聲器,從而實(shí)現(xiàn)對(duì)音色的控制。
編程語(yǔ)言選擇C 語(yǔ)言,C 語(yǔ)言作為面向過(guò)程的計(jì)算機(jī)編程語(yǔ)言與面向?qū)ο缶幊陶Z(yǔ)言的 C++、C# 和Java 不同。它可以簡(jiǎn)單地編譯,處理低層內(nèi)存,只產(chǎn)生很少的代碼,并且在沒(méi)有運(yùn)行環(huán)境的情況下就可以操作。同時(shí),C 語(yǔ)言具有更好的通用性,可適用于多種操作系統(tǒng),且在運(yùn)行效率方面表現(xiàn)出卓越的優(yōu)勢(shì)。適合用于本設(shè)計(jì)的編程語(yǔ)言。
開(kāi)發(fā)環(huán)境選擇Keil ,Keil 是一款兼容于C語(yǔ)言和單片機(jī)的軟件開(kāi)發(fā)工具。它主要用于設(shè)計(jì)各種應(yīng)用系統(tǒng)中所需要的程序。Keil 提供了一套完整的開(kāi)發(fā)方案,其中涵蓋了C 編譯器、宏匯編、鏈接器、庫(kù)管理以及一個(gè)強(qiáng)大的模擬調(diào)試器,為用戶提供了全方位的開(kāi)發(fā)解決方案。
該設(shè)計(jì)程序流程圖如圖3 所示,首先判斷0 號(hào)按鍵是否按下,如果按下,切換為花樣流水燈程序,如果沒(méi)有按下,再判斷1 號(hào)鍵是否按下,如果按下切換為音樂(lè)播放程序,播放設(shè)置好的音樂(lè),如果沒(méi)有按下,接著判斷2~9 號(hào)按鍵是否按下,2~9 號(hào)按鍵分別對(duì)應(yīng)“哆、來(lái)、咪、發(fā)、唆、拉、西、哆(高音)”8 個(gè)音調(diào),相應(yīng)的按鍵按下播放對(duì)應(yīng)音調(diào)的聲音。
圖3 程序流程圖
圖4 心形流水燈顯示功能圖
音階程序如下:
按下0 號(hào)流水燈和電子琴切換按鍵,程序切換到心形流水燈顯示部分執(zhí)行,按鍵每按下一次16 個(gè)LED 燈按照以下順序切換發(fā)光顯示。
根據(jù)流程圖編寫相應(yīng)的程序,使用Keil 進(jìn)行調(diào)試,如果有錯(cuò)誤進(jìn)行相應(yīng)的修改,直到程序無(wú)誤,生成可執(zhí)行的HEX 文件,為了降低成本,首先使用Proteus 軟件進(jìn)行模擬仿真,繪制電路原理圖,將生成的HEX 文件加載到單片機(jī)芯片上,觀察運(yùn)行效果是否相符,如果不符合進(jìn)行相應(yīng)的程序修改,如相符,即可購(gòu)買元器件進(jìn)行實(shí)物制作。
基于51 單片機(jī)的心形聲光電子琴設(shè)計(jì)主要實(shí)現(xiàn)了心形聲光顯示和電子琴?gòu)椬喙δ?。通過(guò)使用單片機(jī),可以創(chuàng)造出各種頻段的信息,從而控制電子琴的發(fā)聲。通過(guò)調(diào)整頻率,可以創(chuàng)造出需要的音色和節(jié)拍。電子琴可以根據(jù)的需要?jiǎng)?chuàng)造出各種各樣的旋律。通過(guò)使用數(shù)字單片機(jī)的定時(shí)器/記數(shù)器T0,可以調(diào)整方波頻率信號(hào),從而創(chuàng)造出喜歡的旋律。通過(guò)使用先進(jìn)的技術(shù),可以通過(guò)控制功率放大器,并通過(guò)測(cè)量每個(gè)節(jié)拍的長(zhǎng)度,讓可以準(zhǔn)確地聽(tīng)取每個(gè)節(jié)拍的音色。經(jīng)過(guò)精心的研究和開(kāi)發(fā),成功地把單片機(jī)、發(fā)光和發(fā)聲三者有效地結(jié)合在一起,創(chuàng)造出一款具有完美音質(zhì)的心形聲光電子琴,它不僅滿足了的需求,而且還可以提供更多的便利性和可靠性[6]。