和麗花 張海龍
(焦作市技師學院電氣工程系,河南 焦作 454003)
AT89C51單片機作為該控制系統的核心元件,利用其強大的控制功能和靈活的編程語言,借助Proteus仿真軟件與Keil程序調試軟件相結合的實驗平臺,通過4×4點陣式鍵盤電路和揚聲器實現16個音調的音頻信號的輸出。本系統運行穩定,電路簡單,軟件功能完善,控制系統可靠,性價比高等特點,具有一定的實用和參考價值。
Proteus 軟件的功能非常強大,具有電路設計、PCB電路制版及仿真等多種功能,不僅能夠對電工、電子技術學科涉及的電路進行設計與分析,還能夠對微處理器進行設計和仿真,并且功能齊全,界面多彩,是近年來廣大電子設計愛好者難得的一個工具軟件。
本系統是采用單片機控制實現的16鍵電子琴。采用Proteus軟件制作的電子琴工作原理,如圖1所示。控制要求:16個鍵是按照自上而下,從左到右的順序觸發系統,輸出3~4的16個音調的音頻信號,并將其顯示。當按下16個鍵中的某一個鍵時,鍵碼有P3口輸入到單片機,單片機就識別外部被按鍵的鍵碼,查詢該鍵碼在鍵碼表中所
在的相對位置,并將鍵碼由P0口輸出到數碼管中顯示,并用相對位置從簡譜表中取出相應的簡譜碼,用取出的簡譜碼去控制系統,由P1.0輸出相應的音頻信號,直到鍵被松開才停下來。

單片機作為電子琴控制系統的核心部件,經過精心考慮,本系統采用了美國ATMAL公司生產的產品AT89C51單片機。整個電路由單片機最小應用系統,4×4點陣式鍵盤電路,鍵碼顯示電路,音頻輸出電路組成。4×4點陣式鍵盤電路,將16個按鍵排成4行4列,分別將每一行的每個按鍵的一端連接在一起構成行線,將每個按鍵的另一端連接在一起構成一根列線,這樣便一共8根線并連接到單片機的P3口上,通過程序掃描鍵盤可檢測16個按鍵,4×4點陣式鍵盤電路。鍵碼顯示電路是由1位共陰極數碼管組成,該電路是用來顯示單片機從16位簡易鍵盤輸入數據后轉換成的鍵碼,即當按下“KEY0~KEYF”中的其中一個時,顯示電路顯示相應的“0~F”的字符。
4.1 音調控制。 當鍵盤子程序掃描到有鍵按下并得到“0~F”鍵碼時,程序將取出一個與該鍵音調對于的16位數據作為定時器T0的計數初值,從而控制硬件電路輸出相應音調的音頻信號。
4.2 音頻輸出控制。 音頻輸出時通過定時中斷并每中斷一次取反一次輸出的方式來實現的,在此是采用控制T0工作方式來實現的。
4.3 簡譜碼的編制。本系統時利用定時器T0工作方式(16位計數器)的定時中斷不斷的對輸出位取反而振蕩產生音頻信號。因此,中斷的頻率是音頻頻率的1/2, 從而根據各音調的頻率計算出16 位(方式1)計算初值,這里的計數初值就稱為簡譜碼。如“3.”的頻率f=330HZ,工作方式1計數單元的最大值為65536。則簡譜碼(計數初值)=65536-(T/2)106=65536-106(2×330)=64021,同理可將其他音調的簡譜碼編制出來。根據16個鍵按照鍵碼在鍵碼表中的順序.觸發系統,輸出3.~4的16個音調的音頻信號的控3.4.制要求,以及編輸出~的16個音調的簡譜碼,并將0~F的順序排列,即可得到簡譜碼表。
TABLE2:
DW 64021,64103,64260,64400,64524,64580,64684,64777
DW 64820,64898,64968,65030,65058,65110,65157,65178
4.4 程序設計。程序設計采用模塊化編程方法。軟件由主程序、子程序和定時中斷服務程序組成。主程序和子程序完成按鍵掃描、顯示功能;定時中斷服務程序用于實現音頻振蕩輸出功能,并實時更新顯示數據。
基于Proteus與Keil軟件相結合所構建的實驗平臺,利用Proteus軟件制作的電子琴工作原理圖。通過Keil軟件編制的程序并將其編譯成目標代碼文件(即*.HEX),進入Proteus軟件制作的電子琴工作原理圖,雙擊單片機AT89C51,彈出“編輯元件屬性”對話框,在“Program File”欄中選擇要加載的目標代碼文件,然后點擊確定,最后,返回Proteus主界面,點擊軟件左下角的“運行”控制按鈕并執行仿真功能,按照控制要求進行控制便可以在電子琴工作原理圖上看到最終的運行效果,運行效果圖
基于單片機的電子琴控制系統的設計,AT89C51單片機作為該控制系統的核心元件,以Proteus仿真軟件與Keil程序調試軟件相結合構建的實驗平臺,既可以模擬單片機控制電路的運行效果又可以大大的降低設計成本、縮短設計周期。本系統運行穩定,電路簡單,軟件功能完善,控制系統可靠,性價比高等特點,具有一定的實用和參考價值,解決了實驗和工程應用間脫節的矛盾。對單片機系統設計有很大的幫助。
[1]Proteus軟件英文簡介.
[2]李朝青,等.單片機原理及接口技術[M].北京:北京航空航天大學出版社,2005.
[3]周立功,陳明計,王祖麟,等.項目驅動--單片機應用設計基礎[M].北京:北京航空航天大學出版社,2011.