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

正文內(nèi)容

基于單片機(jī)多模式帶音樂跑馬燈設(shè)計(jì)文檔-在線瀏覽

2025-01-13 02:52本頁(yè)面
  

【正文】 64 頁(yè) 1 設(shè)計(jì)的作用 、目的 ( 1) 使用 32個(gè) 彩色 LED 燈 ,用這 32 個(gè)發(fā)光二極管以不同的模式循環(huán)點(diǎn)亮 ; ( 2) 三個(gè) 功能鍵 , K1 模式鍵,通過按鍵調(diào)整顯示結(jié)果, 總共 有 十 種模式; K2 加速鍵; K3減速鍵; ( 3)當(dāng)撤換 最 后一個(gè)功能模式時(shí),蜂鳴器將會(huì)播放音樂,此時(shí) LED 將當(dāng)作音頻燈使用; ( 4)十 種模式通過一個(gè)共 陽(yáng) 數(shù)碼管顯示出來, 十個(gè)模式分別顯示為 0~ 9。了解 51 單片機(jī)的外圍引腳,以及各個(gè)端口的功能,還可以通過對(duì)走馬燈的程序編寫讓我們對(duì)程序的執(zhí)行方式和特點(diǎn)有一個(gè)初步的認(rèn)識(shí),同時(shí)掌握 C51 軟件與 protues 聯(lián)機(jī)調(diào)試程序,對(duì)進(jìn)一步學(xué)習(xí)單片機(jī)打下堅(jiān)實(shí)基礎(chǔ)。再通過程序循環(huán)的讓各個(gè)端口以不同的方式點(diǎn)亮來達(dá)到走馬的效果,并且當(dāng)中要有一定的延時(shí),延時(shí)時(shí)間小于人眼視覺暫留時(shí)間,否則人眼看上去每個(gè)燈都是亮的也就沒有跑馬效果。 2. AT89S52 性能簡(jiǎn)介 AT89S52 具有如下特點(diǎn): 40 個(gè)引腳, 4k Bytes Flash 片內(nèi) 程序存儲(chǔ)器, 128 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器( RAM), 32個(gè)外部雙向輸入 /輸出( I/O)口, 5個(gè)中斷優(yōu)先級(jí) 2 層中斷嵌套中斷, 2個(gè) 16 位可編程定時(shí)計(jì)數(shù)器 ,2 個(gè)全雙工串行通信口,看門狗( WDT)電路,片內(nèi)時(shí)鐘振蕩器??臻e模式下, CPU 暫停工作,而 RAM 定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存 RAM 的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。 LED 陣列如圖三: 圖三 LED 顯示陣列 4. 模式顯示部分:模式即跑馬的方式,共十種。 共陰數(shù)碼管結(jié)構(gòu)如圖四: a 各段代碼 b 實(shí)物外觀 圖四 共陽(yáng)數(shù)碼管結(jié)構(gòu) :該部分主要涉及功能的實(shí)現(xiàn)方式,即程序編寫。鍵盤有三個(gè)按鍵 KK K3, K1 控制 LED 點(diǎn)亮模式, K K3 鍵控制跑馬燈速度, K2 加速, K3 減速。 6.音樂播放部分:撤換 最 后一個(gè)功能模式時(shí),蜂鳴器將會(huì)播放音樂,此時(shí) LED 將當(dāng)作音頻燈使用。 程序設(shè)計(jì)思路 :主程序中默認(rèn)執(zhí)行左右流水燈 ,在中斷服務(wù)程序中,首先讀取按鍵狀態(tài),然后延時(shí) 10ms,再次讀取按鍵狀態(tài)。如果是 K1,就執(zhí)行下一個(gè)跑馬;如果是 K2,就執(zhí)行跑馬加速;如果是 K3,就執(zhí)行跑馬減速。即在主程序中設(shè)定兩個(gè)標(biāo)志位,一個(gè)跑馬模式標(biāo)志位,一個(gè)跑馬速度標(biāo)志位。跑馬速度標(biāo)志默認(rèn)值為 10,對(duì)應(yīng)延時(shí)值為 200ms。 程序流程圖如圖五: 第 8 頁(yè) 共 64 頁(yè) 圖五 程序流程圖 電路的安裝與調(diào)試 用 keil 將程序編寫好之后,檢查程序有無錯(cuò)誤。一切OK之后,下面就進(jìn)行最 后階段,即在面包板上搭電路,然后用燒寫器將. HEX 文件下載到 AT89S52 單片機(jī)中。 第 9 頁(yè) 共 64 頁(yè) 仿真圖如圖: 3 建議 希望老師多 給 我們講一些單片機(jī)的研究方向,平時(shí)也多給我們出一些小設(shè)計(jì)課題,我 覺得像這樣自己做一個(gè)設(shè)計(jì)對(duì)理論學(xué)習(xí)是一個(gè)很好的總結(jié),當(dāng)我們有不懂的東西的時(shí)候也可以得到老師的指點(diǎn),這樣才能夠更全面的認(rèn)識(shí)和學(xué)好單片機(jī)。知道了怎么用 keil 新建工程文件、編寫調(diào)試程序、生成. HEX 文件;怎么用 protues 軟件畫圖,特別是總線的畫法,怎么仿真等。 感謝我的單片機(jī)啟蒙老師 戴嚴(yán)炯 老師的教誨。 第 12 頁(yè) 共 64 頁(yè) 參 考 文 獻(xiàn) [1] 譚浩強(qiáng). C 程序設(shè)計(jì)(第二版)[ M].北京:清華大學(xué)出版社, 1999。 [3] 百度搜索引擎.網(wǎng)址 第 13 頁(yè) 共 64 頁(yè) 4 附錄 實(shí)物圖如圖六: C 程序如下 : include include unsigned char RunMode。 for(i=0。i++) for(j=0。j++)。 void Display(unsigned char Value) { P3 = LEDDisplayCode[Value]。 bit Flag。 iCount。 if(Flag) Display(RunMode)。 Delay1ms(100)。 } unsigned char GetKey(void) { unsigned char KeyTemp,CheckValue,Key = 0x00。0x32。 Delay1ms(10)。0x32。 if(!(CheckValueamp。 if(!(CheckValueamp。 if(!(CheckValueamp。 return Key。 void InitialTimer2(void) { T2CON = 0x00。 //重裝值 ,初始值 TL2 = RCAP2L = 0x18。 //定時(shí)器 2 中斷允許 TR2 = 1。 } unsigned int code SpeedCode[]={ 1, 2, 3, 5, 8, 10, 14, 17, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120, 140, 160, 180, 200, 300, 400, 500, 600, 700, 800, 900,1000}。 } void LEDShow(unsigned int LEDStatus) { P1 = ~(LEDStatusamp。 P0 = ~((LEDStatus8)amp。 } void InitialCPU(void) { RunMode = 0x00。 SystemSpeedIndex = 9。 P0 = 0x00。 P3 = 0x00。 P1 = 0xFF。 P2 = 0xFF。 SetSpeed(SystemSpeedIndex)。 } //Mode 0 unsigned int LEDIndex = 0。 void Mode_0(void) { LEDShow(0x0001LEDIndex)。 } //Mode 1 void Mode_1(void) { LEDShow(0x8000LEDIndex)。 } //Mode 2 void Mode_2(void) { if(LEDDirection) LEDShow(0x0001LEDIndex)。 if(LEDIndex==15) LEDDirection = !LEDDirection。 } //Mode 3 void Mode_3(void) { if(LEDDirection) LEDShow(~(0x0001LEDIndex))。 if(LEDIndex==15) LEDDirection = !LEDDirection。 } //Mode 4 void Mode_4(void) { if(LEDDirection) { if(LEDFlag) LEDShow(0xFFFELEDIndex)。 } else { if(LEDFlag) LEDShow(0x7FFFLEDIndex)。 } if(LEDIndex==15) { LEDDirection = !LEDDirection。 } LEDIndex = (LEDIndex+1)%16。 else LEDShow(0xF000LEDIndex)。 LEDIndex = (LEDIndex+1)%16。 else LEDShow(~(0xF000LEDIndex))。 LEDIndex = (LEDIndex+1)%16。 else LEDShow(0xFC00LEDIndex)。 LEDIndex = (LEDIndex+1)%10。 } void Timer0EventRun(void) { if(RunMode==0x00) { Mode_0()。 } else if(RunMode ==0x02) { Mode_2()。 } else if(RunMode ==0x04) { Mode_4()。 } else if(RunMode ==0x06) { Mode_6()。 } else if(RunMode ==0x08) { Mode_8()。 //中斷標(biāo)志清除 ( Timer2 必須軟件清標(biāo)志 !) if(++Timer0Count=SystemSpeed) { Timer0Count = 0。 } } unsigned char MusicIndex = 0。0x01) { LEDDirection = 1。 LEDFlag = 1。 Display(RunMode)。 else TR2 = 1。0x02) { if(RunMode==0x09) { MusicIndex =(MusicIndex+MUSICNUMBER1)%MUSICNUMBER。 SetSpeed(SystemSpeedIndex)。 } } } if(Keyamp。 } else { if(SystemSpeedIndex28) { ++SystemSpeedIndex。 } else { LEDFlash(6)。 //同一首歌 unsigned char code Music_Same[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03, 0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66, 0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00, 0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03, 0x1A,0x01, 0x19,0x02, 0x19,0x03, 0x1A,0x03, 0x1B,0x02, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03, 0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03, 0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C, 0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03, 0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1