



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機課程設計設計題目電子琴指導老師:蘇參與實驗者:moxiaoxiao專業(yè):統(tǒng)本電信0801地點: 3#樓北樓 605供參考電子琴一 .設計目的:( 1) .培養(yǎng)綜合運用知識的能力( 2) .朋友查閱資料,使用工程設計標準及編寫設計文檔的能力.( 3) .掌握單片機應用系統(tǒng)的設計方法 .( 4) .提高計算機繪圖能力二 .設計任務:利用 DP51PROC 實驗系統(tǒng)上的定時器 /計數(shù)器,按鍵和蜂鳴器單元。用單片機 I/O 口線控制蜂鳴器發(fā)出不同的音調,程序檢測按鍵狀態(tài), 7 個按鍵中某一鍵按下時,蜂鳴器對應標稱音階 .三 .設計與調試環(huán)境KEIL uVision2是眾多單片機應用開發(fā)軟件中優(yōu)秀
2、的軟件之一,它支持眾多不同公司的MCS51 架構的芯片,它集編輯,編譯,仿真等于一體,同時還支持,PLM,匯編和C 語言的程序設計,它的界面和常用的微軟 VC+ 的界面相似,界面友好,易學易用,在調試程序,軟件仿真方面也有很強大的功能。1:按下面的步驟建立一個項目:圖 14 選取芯片圖 1 5 新建程序文件(1)點擊 圖 1 5中的 3 保存新建的程序, 也可以用菜單File Save 或快捷鍵 Ctrl+S進行保存。因是新文件所以保存時會彈出類似圖1 3 的文件操作窗口,我們把第一個程序命名為 test1.c,保存在項目所在的目錄中,這時程序單詞有了不同的顏色,說明 KEIL 的 C語法檢查
3、生效了。如圖 1 6 鼠標在屏幕左邊的Source Group1 文件夾圖標上右擊彈出菜單,在這里可以做項目中增加減少文件等操作。我們選 “ Add File to GroupSourceGroup”1 彈出文件窗口,選擇剛剛保存的文件,按ADD按鈕,關閉文件窗,程序文件已加到項目中了。這時在 Source Group1 文件夾圖標左邊出現(xiàn)了一個小+號說明,文件組中有了文件,點擊它可以展開查看。供參考圖 1 6 把文件加入到項目文件組中編譯程序(2) 進入調試模式, 軟件窗口樣式大致如圖 18 所示。圖中1 為運行, 當程序處于停止狀態(tài)時才有效, 2 為停止,程序處于運行狀態(tài)時才有效。3 是復
4、位,模擬芯片的復位,程序回到最開頭處執(zhí)行。按4 我們可以打開5 中的串行調試窗口,這個窗口我們可以看到從51芯片的串行口輸入輸出的字符,這項目也正是在這里看運行結果。2.輸入輸出引腳(1) P0 端口 P0.0-P0.7 P0 是一個8 位漏極開路型雙向I/O端口,端口置 1(對端口寫1)時作高阻抗輸入端。 作為輸出口時能驅動8 個 TTL 。對內部Flash 程序存儲器編程時,接收指令字節(jié); 校驗程序時輸出指令字節(jié),要求外接上拉電阻。 在訪問外部程序和外部數(shù)據(jù)存儲器時, P0 口是分時轉換的地址(低 8位)/ 數(shù)據(jù)總線,訪問期間內部的上拉電阻起作用。(2) P1 端口 P1.0 P1.7 P
5、1是一個帶有內部上拉電阻的8 位雙向 I/0 端口。輸出時可驅動4 個 TTL 。端口置 1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接收低8位地址信息。(3) P2 端口 P2.0 P2.7 P2是一個帶有內部上拉電阻的8 位雙向 I/0 端口。輸出時可驅動4 個 TTL 。端口置 1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時, 接收高8 位地址和控制信息。 在訪問外部程序和16 位外部數(shù)據(jù)存儲器時,P2 口送出高 8 位地址。而在訪問8 位地址的外部數(shù)據(jù)存儲器時其引腳上的內容在此期間不會改變。(4) P3 端口 P3.0
6、 P3.7 P2是一個帶有內部上拉電阻的8 位雙向 I/0 端口。輸出時可驅動4 個 TTL 。端口置 1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接控制信息。除此之外P3 端口還用于一些專門功能,具體請看表22.。P1 3 端口在做輸入使用時,因內部有上接電阻,被外部拉低的引腳會輸出一定的電流。P3引腳兼用功能P3.0串行通訊輸入( RXD )供參考P3.1串行通訊輸出( TXD )P3.2外部中斷0(P3.3外部中斷1( INT1 )P3.4定時器 0P3.5定時器 1P3.6外部數(shù)據(jù)存儲器寫選通WRP3.7外部數(shù)據(jù)存儲器寫選通RD生成 HEX 文件和最
7、小化系統(tǒng)3:如何用 KEIL uVision2來編譯生成用于燒寫芯片的HEX 文件。HEX文件格式是Intel 公司提出的按地址排列的數(shù)據(jù)信息,數(shù)據(jù)寬度為字節(jié) ,所有數(shù)據(jù)使用 16 進制數(shù)字表示, 常用來保存單片機或其他處理器的目標程序代碼。它保存物理程序存儲區(qū)中的目標代碼映象。一般的編程器都支持這種格式。打開第一課做的項目,打開它的所在目錄,找到test.Uv2 的文件就可以打開先前的項目了。然后右擊圖31中的 1項目文件夾,彈出項目功能菜單,選Optionsfor Target Target1彈出,項目選項設置窗口,同樣先選中項目文件夾圖標,這時在Project菜單中也有一樣的菜單可選。打
8、開項目選項窗口,轉到Output 選項頁 圖32 所示,圖中 1 是選擇編譯輸出的路徑,2 是設置編譯輸出生成的文件名,3 則是決定是否要創(chuàng)建 HEX 文件,選中它就可以輸出HEX文件到指定的路徑中。將它重新編譯一次,很快在編譯信息窗口中就顯示HEX 文件創(chuàng)建到指定的路徑中了,如 圖 3 3。這樣就可用編程器所附帶的軟件去讀取并燒到芯片了。(技巧:一、在 圖 3 1 中的1 里的項目文件樹形目錄中,先選中對象,再單擊它就可對它進行重命名操作,雙擊文件圖標便可打開文件。二、在Project 下拉菜單的最下方有最近編輯過的項目路徑保存,可以快速打開最近在編輯的項目。)圖 3 1 項目功能菜單供參考
9、圖 3 2 項目選項窗口四 .工作原理:要求設計的電子琴共有七個按鍵對應著七個音階,也就是按下不同的按鍵時,蜂鳴器會發(fā)出不同平率的聲音。而這些聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線不斷的輸出“高 ”“低”電平,則在該口線上就能產生一定頻率的方波,將該方波接上喇叭就能發(fā)出一定頻率的聲音,若再利用程序控制“高 ”“低 ”電平的持續(xù)時間,就能改變輸出波形的頻率,從而改變音調。我們用MC51 單片機實現(xiàn)這一功能。不同音階所對應的頻率如下圖所示:音名1234567頻率( Hz)523.3587.3659.3698.3784880987.8樂曲中,每一音符對應著確定的頻率,表1
10、 給出 C 調時各音符頻率。如果單片機某個口線輸出 “高 ”“低 ”電平的頻率和某個音符的頻率一樣, 那么將此口線接上喇叭就可以發(fā)出此音符的聲音。供參考本系統(tǒng)就是根據(jù)此原理設計,對于 51 單片機來說要產生一定頻率的方波大致是先將某口線輸出高電平然后延時一段時間再輸出低電平,如此循環(huán)的輸出就會產生一定頻率的方波,通過改變延時的時間就可以改變輸出方波的頻率本系統(tǒng)的具體電路如右圖所示。圖中P1 1-P1 7 分別接 7 個按鍵對應著樂曲中的1、2、 3、 4、5、 6、7 七個音符。 P36 口通過功率放大芯片LM386 與喇叭相連。當P11P1.7 中有一個按鍵按下時單片機便執(zhí)行相應的子程序對定
11、時器賦一個計數(shù)初值同時使P36口輸出高電平。當定時器定時結束時將P3 6 口的值取反并重新賦計數(shù)初值繼續(xù)計數(shù),再次計完時再將P3 6 口的值取反再賦初值計數(shù),如此循環(huán)便在P36 口產生一定頻率的方波, LM386 將此方波經過功率放大后通過喇叭輸出便產生對應音符的聲音。按不同的按鍵單片機便執(zhí)行不同的子程序給定時器賦不同的初值得到不同頻率的方波從而輸出不同的聲音,因此按一個按鍵輸出一種音符。在單片機的特殊功能寄存器中有6 個寄存器 (TH1 、 TH0 、 TL1 、 TL0 、TMOD 、 TCON)是用來控制單片機的定時器的, 通過編程對這些特殊功能寄存器的讀寫就可以控制單片機的兩個定時器
12、T0 、 T1。當單片機復位時這 6 個寄存器默認值都是 00H 。五.設計思想( 1)系統(tǒng)的總框圖( 2)系統(tǒng)電路圖供參考( 3)軟件設計思路由于每個音階對應著不同的頻率,當然對單片機來說產生不同的頻率非常方便,我們可以利用單片機的定時、計數(shù)器T0 來產生這樣的方波頻率信號,因此我們只要把1-7 的七個音階對應的頻率關系弄正確即可。本次設計中單片機晶振為12MHz ,那么定時器的計數(shù)周期為1MHz ,假如選擇工作方式為1,那 T 值便為 T=216-5*105/ 相應的頻率, 那么根據(jù)不同的頻率計算出應該賦給定時器的計數(shù)值,列出不同音符與單片機計數(shù)T0 相關的計數(shù)值如下表所示:采用查表程序查
13、表時, 可以為這個音符建立一個表格, 有助于單片機通過查表的方式來獲得相應的數(shù)據(jù)。供參考工作方式 1工作方式1 是 16 位的定時計數(shù)方式,將M1M0 設為 01。對于定時器的工作模式可以根據(jù)定時器的寄存器TMOD 來設置:M1M0 :定時計數(shù)器共有四種工作方式,就是用M1M0 來控制的, 2 位正好是四種組合。C T:定時計數(shù)器即可作定時用也可用計數(shù)用,如果C/T 為 O 就是用作定時器( 開關往上打 ),如果 C T 為 1 就是用作計數(shù)器 ( 開關往下打 )。一個定時計數(shù)器同一時刻要么作定時用,要么作計數(shù)用,不能同時用的。GATE :當我們選擇了定時或計數(shù)工作方式后,定時計數(shù)脈沖卻不一定
14、能到達計數(shù)器端, 中間還有一個開關, 顯然這個開關不合上,計數(shù)脈沖就沒法過去,那么開關什么時候過去呢 ? 有兩種情況GATE=0 ,分析一下邏輯, GATE 非后是 1,進入或門,或門總是輸出 1,和或門的另一個輸入端 INT1 無關, 在這種情況下, 開關的打開、 合上只取決于 TR1 ,只要 TR1 是 1,開關就合上,計數(shù)脈沖得以暢通無阻,而如果TR1 等于 0 則開關打開,計數(shù)脈沖無法通過,因此定時計數(shù)是否工作,只取決于TR1 。GATE=1 ,在此種情況下, 計數(shù)脈沖通路上的開關不僅要由TR1 來控制, 而且還要受到 INT1 引腳的控制,只有TRl 為 1,且 INT1 引腳也是高
15、電平,開關才合上,計數(shù)脈沖才得以通過。這個特性可以用來測量一個信號的高電平的寬度。 程序流程圖第一步是對定時器T0 進行初始化,設定它的工作狀態(tài)(對于本系統(tǒng)將T0 設定為工作方式 O);然后判斷是否有鍵按下,如果沒有按鍵按下,繼續(xù)判斷,如果有按鍵按下,則判斷是哪個鍵按下;再根據(jù)按鍵的功能將計數(shù)初值裝入定時器T0 中中并啟動T0,當 T0 定時完畢后,重新裝入計數(shù)初值繼續(xù)定時并將P3 6 取反,再次定時完畢后再一次的裝入計數(shù)初值繼續(xù)定時并將P3 6 取反,一直循環(huán)此操作直到按鍵釋放為止,按鍵釋放后停止T0 工作并再次判斷是否又有按鍵按下,并繼續(xù)執(zhí)行以前的過程。供參考 程序BUZZ EQU P3.
16、3 ;定義端口ORG 1000HLJMP MAINORG 000BHLJMP INT_T0ORG 1100HMAIN:供參考MOV SP,#60H ;初始化堆棧指針MOV P1,#0FFH ;設置 P1 口為輸入模式MOV TMOD,#01H ;設置定時器0 為工作模式1SETB ET0 ;開定時器0 中斷SETB EA ;開總中斷CLR TR0 ;關閉定時器 0START:MOV R0,P1CJNE R0,#0FFH,KEY1;鍵盤掃描CLR TR0SJMP STARTKEY1:CJNE R0,#0FEH,KEY2 ;K1 鍵按下MOV 30H,#0FBH ;設置音階 1MOV 31H,#0
17、E9HLJMP SET_TIMERKEY2:CJNE R0,#0FDH,KEY3;K2 鍵按下MOV 30H,#0FCH ;設置音階 2MOV 31H,#5CHLJMP SET_TIMERKEY3:CJNE R0,#0FBH,KEY4;K3 鍵按下MOV 30H,#0FCH ;設置音階 3供參考MOV 31H,#0C1HLJMP SET_TIMERKEY4:CJNE R0,#0F7H,KEY5 ;K4 鍵按下MOV 30H,#0FCH ;設置音階 4MOV 31H,#0EFHLJMP SET_TIMERKEY5:CJNE R0,#0EFH,KEY6 ;K5 鍵按下MOV 30H,#0FDH ;設置音階 5MOV 31H,#045HLJMP SET_TIMERKEY6:CJNE R0,#0DFH,KEY7;K6 鍵按下MOV 30H,#0FDH ;設置音階 6MOV 31H,#92HLJMP SET_TIMERKEY7:CJNE R0,#0BFH,NOKEY;K7 鍵按下MOV 30H,#0FDH ;設置音階 7MOV 31H,#0D6HSET_TIMER:S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化與生活試題及答案
- 第4課《一著驚海天》課件
- 中職函數(shù)的定義課件
- 二零二五年度新型木門安裝與綠色建材應用合同
- 2025版睿聯(lián)帶壓封堵技術領先水利工程滲漏治理服務合同
- 二零二五年度【智能家居】二手房出售協(xié)議書模板(含智能家居設施)
- 二零二五年度2人區(qū)塊鏈技術應用合作協(xié)議書模板
- 2025版專業(yè)運輸用板車租賃與運輸安全合同
- 2025版NEC體系下軟件開發(fā)項目合同范本
- 2025年度生態(tài)環(huán)境保護與安全生產合作責任書范本
- 退役軍人保密教育
- 沉淀池斜管安裝施工方案
- 2025年中國航空航天新材料行業(yè)市場運行態(tài)勢及投資前景展望報告
- 《水利水電工程白蟻實時自動化監(jiān)測預警系統(tǒng)技術規(guī)范》
- GB/T 15316-2024節(jié)能監(jiān)測技術通則
- 科創(chuàng)板股票開戶知識測評題庫及答案
- 光伏分布式項目日報模板
- 蘇科版九年級物理上冊一課一測-11.1杠桿
- GB/T 44951-2024防彈材料及產品V50試驗方法
- 中試平臺管理制度
- 電視臺裝飾裝修工程施工設計方案
評論
0/150
提交評論