freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計-基于51單片機的多功能迷你跑馬音樂盒設計(已修改)

2025-06-20 09:53 本頁面
 

【正文】 第 1 頁 共 21 頁 廣東機電職業(yè)技術學院 電子產(chǎn)品設計 論文題目 : 多功能迷你跑馬音樂盒 專 業(yè) : 計算機控制技術 班 級 : 學生姓名 : 指導教師 : 二零一零年五月 第 2 頁 共 21 頁 目 錄 摘要 ........................................................................................................................................................................................... 3 1 設計的作用、目的 ???????????????????????? 3 2 設計的具體實現(xiàn) ………… …… ……… …… …… …… …… …… ……… …… … .3 系統(tǒng)概述 ?????????????????????????? .3 單元電路設計與分析 ????????????????????? 4 電路的安裝與調(diào)試 ?????????????????????? 7 3 心得體會及建議 ????????????????????????? 8 心得體會 ???????????????????????? ?? 8 建議 ???????????????????????????? 8 4 附錄 ?????????????????????????????? 9 5 參考文獻 ???????????????????????????? 18 第 3 頁 共 21 頁 摘 要 跑馬燈,顧名思義,就是 “ 會像馬兒一樣跑動 ” 的小燈,故取名 “ 跑馬燈 ” 。跑馬燈在單片機系統(tǒng)中一般是用來指示和顯示單片機的運行狀態(tài),一般情況下,單片機的跑馬燈由 多 個 LED 發(fā)光二極管組成 。 在單片機運行時,可以在不同狀態(tài)下讓跑馬燈顯示不同的組合,作為單片機系統(tǒng)正常的指示。當單片機 系統(tǒng)出現(xiàn)故障時,可以利用跑馬燈顯示當前的故障碼,對故障做出診斷。此外,跑馬燈在單片機的調(diào)試過程中也非常有用,可以在不同時候?qū)⑿枰募拇嫫骰蜿P鍵變量的值顯示在跑馬燈上,提供需要的調(diào)試信息。 1 設計的作用、目的 ( 1). 使用 32 個 彩色 LED 燈 ,用這 32 個發(fā)光二極管以不同的模式循環(huán)點亮 ; ( 2) 、三個 功能鍵 , K1 模式鍵,通過按鍵調(diào)整顯示結果, 總共 有 十 種模式; K2 加速鍵; K3減速鍵; ( 3)當撤換 最 后一個功能模式時,蜂鳴器將會播放音樂,此時 LED 將當作音頻燈使用; ( 4)十 種模式通過一個共 陽 數(shù)碼管顯示出來, 十個模式 分別顯示為 0~ 9。 通過發(fā)光二極管的動態(tài)閃亮,顯示非常炫目的效果, 應用于 各種建筑物,大樓,酒吧, KTV,夜總會等娛樂場所 , 拖尾燈,以及各種休閑娛樂場所用的動態(tài)燈光顯示,通過此次設計,可以加深對 51 單片機的應用、 C51 編程和 protues 軟件操作的能力。了解 51 單片機的外圍引腳,以及各個端口的功能,還可以通過對走馬燈的程序編寫讓我們對程序的執(zhí)行方式和特點有一個初步的認識,同時掌握 C51 軟件與 protues 聯(lián)機調(diào)試程序,對進一步學習單片機打下堅實基礎。 2 設計的具體實現(xiàn) 系統(tǒng)概述 本設計的要求是設計一個有 多種功能的走馬燈,有多種不同的顯示方式,加速功能和減速功能,這里的加速減速還有顯示方式都是由單片機內(nèi)部的程序控制,在這里我將 32 個光二極管分別接在 P0 和 P1,通過程序控制這兩個端口的電平高低,將 32 個光二極管的正極接電源,負極接 P0 和 P1 口,即發(fā) P0 和 P1 口的相應端口為高電平時,發(fā)光二極管的兩端都為高電平,所以發(fā)光二極管不亮,當發(fā)光二極管的相應端口為低電平時就能被點亮。再通過程序循環(huán)的讓各個端口以不同的方式點亮來達到走馬的效果,并且當中要有一定的延時,延時時間小于人眼視覺暫留時間,否則人眼看上去每個燈都是亮 的也就沒有跑馬效果。 第 4 頁 共 21 頁 系統(tǒng)框圖如圖一: 圖一 系統(tǒng)框圖 單元電路設計與分析 1. 主控芯片 AT89S52 AT89S52 是一個低功耗,高性能 CMOS 8 位單片機,片內(nèi)含 4k Bytes ISP(Insystem programmable)的可反復擦寫 1000 次的 Flash 只讀程序存儲器,器件采用 ATMEL 公司的高密度、非易失性存儲技術制造,兼容標準 MCS51 指令系統(tǒng)及 80C51 引腳結構,芯片內(nèi)集成了通用 8位中央處理器和 ISP Flash 存 儲單元,功能強大的微型計算機的 AT89S51 可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。 2. AT89S52 性能簡介 AT89S52 具有如下特點: 40 個引腳, 4k Bytes Flash 片內(nèi)程序存儲器, 128 bytes 的隨機存取數(shù)據(jù)存儲器( RAM), 32個外部雙向輸入 /輸出( I/O)口, 5個中斷優(yōu)先級 2 層中斷嵌套中斷, 2個 16 位可編程定時計數(shù)器 ,2 個全雙工串行通信口,看門狗( WDT)電路,片內(nèi)時鐘振蕩器。 此外, AT89S52 設計和配置了振蕩頻率可為 0Hz 并可通過軟件設置省電模式??臻e模式下, CPU暫停工作,而 RAM 定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存 RAM 的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。 AT89S52 PDIP Pin Configurations 如圖二: MCU(AT89S51) LED顯示陣列 12M 晶振 復位 電路 7段共陰數(shù)碼管 鍵盤 第 5 頁 共 21 頁 圖二 AT89S52 Pin Configurations :顯示部分用 32 個發(fā)光二極管分別接在 P0 和 P1,通過程序控制 P0 和 P2的 16 個端口按照一定的方式依次為低電平以點亮相應端口的 LED。 LED 陣列如圖三: 圖三 LED 顯示陣列 4. 模式顯示部分:模式即跑馬的方式,共 十種。相應方式由數(shù)碼管顯示出來,每當模式按鈕按下時,相應的模式加一 ,數(shù)碼管顯示相應模式。 共陰數(shù)碼管結構如圖四: a 各段代碼 b 實物外觀 圖四 共陽數(shù)碼管結構 :該部分主要涉及功能的實現(xiàn)方式,即程序編寫。程序要實現(xiàn)的功能包括讀鍵盤 , 通過對讀入鍵盤的值控制 LED 點亮方式和數(shù)碼管顯示。鍵盤有三個按鍵 KK K3, K1 控制 LED 點亮模式, K K3 鍵控制跑馬燈速度, K2 加速, K3 減速。不論 K1 被按下多少次, LED 九種點亮模式是循環(huán)的, K K3 鍵控制速度分別有 上限和下限,多按無效。 第 6 頁 共 21 頁 6.音樂播放部分:撤換 最 后一個功能模式時,蜂鳴器將會播放音樂,此時 LED 將當作音頻燈使用。當中共有三首音樂,分別是《我的驕傲》 《同一首歌》和《兩只蝴蝶》 此時 K2 加速充當下一曲的作用, K3 減速充當上一曲的作用,歌曲是循環(huán)播放的,此時 LED 彩色燈將從當隨音頻變化的指示燈。 程序設計思路 :主程序中默認執(zhí)行左右流水燈 ,在中斷服務程序中,首先讀取按鍵狀態(tài),然后延時 10ms,再次讀取按鍵狀態(tài)。把兩次獲得的按鍵狀態(tài)比較,如果不同,就表示是抖動,退出中斷;否則,就去判斷是哪個按鍵按下。如果是 K1,就執(zhí)行下一個跑馬;如果是 K2,就執(zhí)行跑馬加速;如果是 K3,就執(zhí)行跑馬減速。采用置標志位的方法。即在主程序中設定兩個標志位,一個跑馬模式標志位,一個跑馬速度標志位。不斷的對這三個標志進行查詢:如果是跑馬模式標志為狀態(tài) 0,就執(zhí)行右向跑馬;如果是狀態(tài) 1,就執(zhí)行左向跑馬燈,依次類推。跑馬速度標志默認值為 10,對應延時值為 200ms。而在中斷服務程序中,只需要進行如下工作:去抖動,鍵盤識別,改變標志位。 程序流程圖如圖五: 第 7 頁 共 21 頁 圖五 程序流程圖 電路的安裝與調(diào)試 用 keil 將程序編寫好之后,檢查程序有無錯 誤。有錯誤就改正,直到?jīng)]有錯誤,最后生成. HEX 文件,再用 peoteus 畫好硬件電路圖,將單片機指向剛生成的. HEX 文件并進行仿真調(diào)試,在調(diào)試過程當中通過調(diào)試的結果完善程序。一切OK之后,下面就進行最后階段,即在面包板上搭電路,然后用燒寫器將. HEX 文件下載到 AT89S52 單片機中。調(diào)試電路,帶著笑容欣賞勝利的成果。 第 8 頁 共 21 頁 仿真圖如圖: 3 心得體會及建議 心得體會 通過此次課程設計,不僅初步掌握了 51 單片機的一些基本功能應用,還學會了使用 keil和 protues 兩個軟件。知道了怎么用 keil 新建工程文件、編寫調(diào)試程序、生成. HEX 文件;怎么用 protues 軟件畫圖,特別是總線的畫法,怎么仿真等。 我會以此為起點,進一步學習和使用單片機,為將來工作打基礎。 感謝我的 51 單片機啟蒙老師李建波老師的教誨。 建議 希望老師多我們講一些單片機的研究方向,平時也多給我們出一些小設計課題,我覺得像這樣自己做一個設計對理論學習是一個很好的總結,當我們有不懂的東西的時候也可以得到老師的指點,這樣才能夠更全面的認識和學好單片機。 第 9 頁 共 21 頁 4 附錄 實物圖如圖六: C 程序如下 : include include unsigned char RunMode。 //**********************************System Fuction************************************************* void Delay1ms(unsigned int count) { unsigned int i,j。 for(i=0。icount。i++) for(j=0。j120。j++)。 } 第 10 頁 共 21 頁 unsigned char code LEDDisplayCode[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //0~7 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF}。 void Display(unsigned char Value) { P3 = LEDDisplayCode[Value]。 } void LEDFlash(unsigned char Count) { unsigned char i。 bit Flag。 for(i = 0。 iCount。i++) { Flag = !Flag。 if(Flag) Display(RunMode)。 else Display(0x10)。 Delay1ms(100)。 } Display(RunMode)。 } unsigned char GetKey(void) { unsigned char KeyTemp,CheckValue,Key = 0x00。 CheckValue = P2amp。0x32。 if(CheckValue==0x32) return 0x00。 Delay1ms(10)。 KeyTemp = P2amp。0x32。 if(KeyTemp==CheckValue) return 0x00。 if(!(CheckValueamp。0x02)) Key|=0x01。 if(!(CheckValueamp。0x10)) Key|=0x02。 if(!(CheckValueamp。0x20)) Key|=0x04。 return Key。 } unsigned int Timer0Count,SystemSpeed,SystemSpeedIndex。 void InitialTimer2(void) { T
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1