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

正文內(nèi)容

畢業(yè)設(shè)計-基于51單片機的多功能迷你跑馬音樂盒設(shè)計-展示頁

2025-06-16 09:53本頁面
  

【正文】 分析 1. 主控芯片 AT89S52 AT89S52 是一個低功耗,高性能 CMOS 8 位單片機,片內(nèi)含 4k Bytes ISP(Insystem programmable)的可反復擦寫 1000 次的 Flash 只讀程序存儲器,器件采用 ATMEL 公司的高密度、非易失性存儲技術(shù)制造,兼容標準 MCS51 指令系統(tǒng)及 80C51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用 8位中央處理器和 ISP Flash 存 儲單元,功能強大的微型計算機的 AT89S51 可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。 2 設(shè)計的具體實現(xiàn) 系統(tǒng)概述 本設(shè)計的要求是設(shè)計一個有 多種功能的走馬燈,有多種不同的顯示方式,加速功能和減速功能,這里的加速減速還有顯示方式都是由單片機內(nèi)部的程序控制,在這里我將 32 個光二極管分別接在 P0 和 P1,通過程序控制這兩個端口的電平高低,將 32 個光二極管的正極接電源,負極接 P0 和 P1 口,即發(fā) P0 和 P1 口的相應端口為高電平時,發(fā)光二極管的兩端都為高電平,所以發(fā)光二極管不亮,當發(fā)光二極管的相應端口為低電平時就能被點亮。 通過發(fā)光二極管的動態(tài)閃亮,顯示非常炫目的效果, 應用于 各種建筑物,大樓,酒吧, KTV,夜總會等娛樂場所 , 拖尾燈,以及各種休閑娛樂場所用的動態(tài)燈光顯示,通過此次設(shè)計,可以加深對 51 單片機的應用、 C51 編程和 protues 軟件操作的能力。此外,跑馬燈在單片機的調(diào)試過程中也非常有用,可以在不同時候?qū)⑿枰募拇嫫骰蜿P(guān)鍵變量的值顯示在跑馬燈上,提供需要的調(diào)試信息。 在單片機運行時,可以在不同狀態(tài)下讓跑馬燈顯示不同的組合,作為單片機系統(tǒng)正常的指示。 第 1 頁 共 21 頁 廣東機電職業(yè)技術(shù)學院 電子產(chǎn)品設(shè)計 論文題目 : 多功能迷你跑馬音樂盒 專 業(yè) : 計算機控制技術(shù) 班 級 : 學生姓名 : 指導教師 : 二零一零年五月 第 2 頁 共 21 頁 目 錄 摘要 ........................................................................................................................................................................................... 3 1 設(shè)計的作用、目的 ???????????????????????? 3 2 設(shè)計的具體實現(xiàn) ………… …… ……… …… …… …… …… …… ……… …… … .3 系統(tǒng)概述 ?????????????????????????? .3 單元電路設(shè)計與分析 ????????????????????? 4 電路的安裝與調(diào)試 ?????????????????????? 7 3 心得體會及建議 ????????????????????????? 8 心得體會 ???????????????????????? ?? 8 建議 ???????????????????????????? 8 4 附錄 ?????????????????????????????? 9 5 參考文獻 ???????????????????????????? 18 第 3 頁 共 21 頁 摘 要 跑馬燈,顧名思義,就是 “ 會像馬兒一樣跑動 ” 的小燈,故取名 “ 跑馬燈 ” 。跑馬燈在單片機系統(tǒng)中一般是用來指示和顯示單片機的運行狀態(tài),一般情況下,單片機的跑馬燈由 多 個 LED 發(fā)光二極管組成 。當單片機 系統(tǒng)出現(xiàn)故障時,可以利用跑馬燈顯示當前的故障碼,對故障做出診斷。 1 設(shè)計的作用、目的 ( 1). 使用 32 個 彩色 LED 燈 ,用這 32 個發(fā)光二極管以不同的模式循環(huán)點亮 ; ( 2) 、三個 功能鍵 , K1 模式鍵,通過按鍵調(diào)整顯示結(jié)果, 總共 有 十 種模式; K2 加速鍵; K3減速鍵; ( 3)當撤換 最 后一個功能模式時,蜂鳴器將會播放音樂,此時 LED 將當作音頻燈使用; ( 4)十 種模式通過一個共 陽 數(shù)碼管顯示出來, 十個模式 分別顯示為 0~ 9。了解 51 單片機的外圍引腳,以及各個端口的功能,還可以通過對走馬燈的程序編寫讓我們對程序的執(zhí)行方式和特點有一個初步的認識,同時掌握 C51 軟件與 protues 聯(lián)機調(diào)試程序,對進一步學習單片機打下堅實基礎(chǔ)。再通過程序循環(huán)的讓各個端口以不同的方式點亮來達到走馬的效果,并且當中要有一定的延時,延時時間小于人眼視覺暫留時間,否則人眼看上去每個燈都是亮 的也就沒有跑馬效果。 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)時鐘振蕩器。空閑模式下, CPU暫停工作,而 RAM 定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存 RAM 的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。 LED 陣列如圖三: 圖三 LED 顯示陣列 4. 模式顯示部分:模式即跑馬的方式,共 十種。 共陰數(shù)碼管結(jié)構(gòu)如圖四: a 各段代碼 b 實物外觀 圖四 共陽數(shù)碼管結(jié)構(gòu) :該部分主要涉及功能的實現(xiàn)方式,即程序編寫。鍵盤有三個按鍵 KK K3, K1 控制 LED 點亮模式, K K3 鍵控制跑馬燈速度, K2 加速, K3 減速。 第 6 頁 共 21 頁 6.音樂播放部分:撤換 最 后一個功能模式時,蜂鳴器將會播放音樂,此時 LED 將當作音頻燈使用。 程序設(shè)計思路 :主程序中默認執(zhí)行左右流水燈 ,在中斷服務程序中,首先讀取按鍵狀態(tài),然后延時 10ms,再次讀取按鍵狀態(tài)。如果是 K1,就執(zhí)行下一個跑馬;如果是 K2,就執(zhí)行跑馬加速;如果是 K3,就執(zhí)行跑馬減速。即在主程序中設(shè)定兩個標志位,一個跑馬模式標志位,一個跑馬速度標志位。跑馬速度標志默認值為 10,對應延時值為 200ms。 程序流程圖如圖五: 第 7 頁 共 21 頁 圖五 程序流程圖 電路的安裝與調(diào)試 用 keil 將程序編寫好之后,檢查程序有無錯 誤。一切OK之后,下面就進行最后階段,即在面包板上搭電路,然后用燒寫器將. HEX 文件下載到 AT89S52 單片機中。 第 8 頁 共 21 頁 仿真圖如圖: 3 心得體會及建議 心得體會 通過此次課程設(shè)計,不僅初步掌握了 51 單片機的一些基本功能應用,還學會了使用 keil和 protues 兩個軟件。 我會以此為起點,進一步學習和使用單片機,為將來工作打基礎(chǔ)。 建議 希望老師多我們講一些單片機的研究方向,平時也多給我們出一些小設(shè)計課題,我覺得像這樣自己做一個設(shè)計對理論學習是一個很好的總結(jié),當我們有不懂的東西的時候也可以得到老師的指點,這樣才能夠更全面的認識和學好單片機。 //**********************************System Fuction************************************************* void Delay1ms(unsigned int count) { unsigned int i,j。icount。j120。 } 第 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 LEDFlash(unsigned char Count) { unsigned char i。 for(i = 0。i++) { Flag = !Flag。 else Display(0x10)。 } Display(RunMode)。 CheckValue = P2amp。 if(CheckValue==0x32) return 0x00。 KeyTemp = P2amp。 if(KeyTemp==CheckValue) return 0x00。0x02)) Key|=0x01。0x10)) Key|=0x02。0x20)) Key|=0x04。 } unsigned int Timer0Count,SystemSpeed,SystemSpeedIndex。 //16 Bit AutoReload Mode TH2 = RCAP2H = 0xFC。 ET2=1。 //定時器 2 啟動 EA=1。//30 void SetSpeed(unsigned char Speed) { SystemSpeed =SpeedCode[Speed]。0x00FF)。0x00FF)。 Timer0Count = 0。 第 11 頁 共 21 頁 P1 = 0x00。 P2 = 0xFF。 Delay1ms(500)。 P0 = 0xFF。 P3 = 0xFF。 Display(RunMode)。 bit LEDDirection = 1,LEDFlag = 1。 LEDIndex = (LEDIndex+1)%16。 LEDIndex = (LEDIndex+1)%16。 else LEDShow(0x8000LEDIndex)。 LEDIndex = (LEDIndex+1)%16。 else LEDShow(~(0x8000LEDIndex))。 LEDIndex = (LEDIndex+1)%16。 else LEDShow(~(0x7FFFLEDIndex))。 else LEDShow(~(0xFFFELEDIndex))。 if(LEDDirection) LEDFlag = !LEDFlag。 } //Mode 5 void Mode_5(void) { if(LEDDirection) LEDShow(0x000FLEDIndex)。 if(LEDIndex==15) LEDDirection = !LEDDirection。 } 第 12 頁 共 21 頁 //Mode 6 void Mode_6(void) { if(LEDDirection) LEDShow(~(0x000FLEDIndex))。 if(LEDIndex==15) LEDDirection = !LEDDirection。 } //Mode 7 void Mode_7(void) { if(LEDDirection) LEDShow(0x003FLEDIndex)。 if(LEDIndex==9) LEDDirection = !LEDDirection。 } //Mode 8 void Mode_8(void) { LEDShow(++LEDIndex)。 } else if(RunMode ==0x01) { Mode_1()。 } else if(RunMode ==0x03) { Mode_3()。 } else if(RunMode ==0x05) { Mode_5()。 } else if(RunMode ==0x07) { Mode_7()。 } } void Timer2(void) interrupt 5 using 3 { TF2 = 0。 Timer0EventRun()。 void KeyDispo
點擊復制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1