單片機(jī) 跑馬燈課程設(shè)計(jì)_第1頁(yè)
單片機(jī) 跑馬燈課程設(shè)計(jì)_第2頁(yè)
單片機(jī) 跑馬燈課程設(shè)計(jì)_第3頁(yè)
單片機(jī) 跑馬燈課程設(shè)計(jì)_第4頁(yè)
單片機(jī) 跑馬燈課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE7摘要AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,即單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。該設(shè)計(jì)使用AT89C51芯片作為控制芯片,利用P1口連接8個(gè)發(fā)光二極管,通過(guò)I/O的值控制“跑馬燈”的亮滅,以達(dá)到顯示效果。開(kāi)始時(shí)所有燈全亮,按下按鍵S時(shí)開(kāi)始跑馬燈,再按下按鍵S時(shí)停止,再按下S時(shí)繼續(xù),并要求有多種亮暗組合。關(guān)鍵詞:AT89C51單片機(jī)跑馬燈按鍵目錄摘要 I第一章 芯片分析和設(shè)計(jì)概述 2第一節(jié) AT89C51芯片分析 2第二節(jié)設(shè)計(jì)概述 5第二章硬件電路設(shè)計(jì) 6第三章程序部分設(shè)計(jì) 7參考文獻(xiàn) 12芯片分析和設(shè)計(jì)概述AT89C51芯片分析ATMEL的AT89S51是一種高效微控制器,將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。AT89C51的芯片引腳圖如下:圖1.1AT89C51引腳圖各引腳的說(shuō)明和功能分析如下:VCC:供電電壓。GND:接地。

P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。

P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)當(dāng)8051通電,時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指鐘寫(xiě)入07H,其它專(zhuān)用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),特殊功能寄存器初始態(tài)特殊功能寄存器初始態(tài)ACC00HB00HPSW00HSP07HDPH00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0xx00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxB8051的初始態(tài)(4-2-2)ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。

XTAL2:來(lái)自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來(lái)完成。在芯片擦操作中,代碼陣列全被寫(xiě)“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。第二節(jié)設(shè)計(jì)概述本程序設(shè)計(jì)意在展示跑馬燈的色彩樣式及“跑馬”變換效果,如果將跑馬燈做大,會(huì)有很高的觀賞價(jià)值。通過(guò)對(duì)一些相關(guān)書(shū)籍資料的查閱及網(wǎng)上各種作品和代碼的瀏覽,對(duì)各種實(shí)現(xiàn)代碼的比較和優(yōu)化,總結(jié)出本程序,以較優(yōu)秀的代碼實(shí)現(xiàn)各種可控的“跑馬燈”功能。硬件系統(tǒng)部分包括顯示部分、按鍵控制部分和控制芯片。系統(tǒng)框圖如下:圖1.1系統(tǒng)框圖第二章硬件電路設(shè)計(jì)本設(shè)計(jì)使用89C2051芯片作為控制芯片,利用P1口連接8個(gè)發(fā)光二極管,通過(guò)P3接口連接按鍵S作控制開(kāi)關(guān)的輸入,控制開(kāi)關(guān)連接INTO中斷,通關(guān)按鍵觸發(fā)中斷響應(yīng)控制“跑馬燈”的亮滅,以達(dá)到顯示效果。開(kāi)始時(shí)所有燈全亮,按下按鍵S時(shí)開(kāi)始跑馬燈,再按下按鍵S時(shí)停止,再按下S時(shí)繼續(xù),并設(shè)計(jì)多種亮暗組合。硬件電路連接圖如下:圖2.1硬件電路連接圖第三章程序部分設(shè)計(jì)程序設(shè)計(jì)思路:開(kāi)始時(shí)跑馬燈全亮,接著讀取按鍵狀態(tài),當(dāng)按鍵沒(méi)有閉合時(shí),一直在此查詢(xún)按鍵狀態(tài);當(dāng)有按鍵真正閉合后,開(kāi)始讀程序存儲(chǔ)器,調(diào)出I/O值送給P1口,實(shí)習(xí)一次LED狀態(tài)改變。然后再檢查按鍵狀態(tài),若無(wú)閉合,繼續(xù)讀程序存儲(chǔ)器;否則,在此循環(huán),直到按鍵再次按下才讀程序存儲(chǔ)器。主程序的流程圖如下:圖3.1主程序流程圖主程序源代碼如下:SEQUORG0000HLJMPSTARTORG0030HSTART:MOVP1,#00H;初始化P1口,LED全亮CLR00H;清標(biāo)志位00HX2:JBS,X1LCALLDEL10;延時(shí)10MS的消抖X1:JBS,X2JNBS,$;等待按鍵松開(kāi)MOVA,#00HLOOP:JB00H,X3;判斷00H位MOVR2,AMOVDPTR,#TABMOVCA,@A+DPTR INCR2MOVP1,ALCALLDELAY;延時(shí)125MSMOVA,R2CJNER2,#85,X3;判斷讀程存是否為最后一列MOVP1,#00H;初始化P1口MOVA,#00HX3:JBS,LOOP;查詢(xún)按鍵狀態(tài)LCALLDEL10JBS,X3JNBS,$CPL00HLJMPLOOP;******************************;延時(shí)125ms;******************************DELAY:MOVR5,#5DL:MOVR4,#50DL2:MOVR3,#250DL1:DJNZR3,DL1DJNZR4,DL2DJNZR5,DLNOP RET;******************************;延時(shí)10ms;******************************DEL10:MOV7FH,#42DEL10MS:MOV7EH,#119 DJNZ7EH,$ DJNZ7FH,DEL10MSRETTAB:DB00000000bDB11111111bDB00000000bDB00000000bDB00000000bDB00000000bDB11111111bDB00000000bDB11111111bDB11111110BDB11111101BDB11111011BDB11110111BDB11101111BDB11011111BDB10111111BDB01111111BDB10111111BDB11011111BDB11101111BDB11110111BDB11111011BDB11111101BDB11111110BDB11111111BDB11111100BDB11110011BDB11001111BDB00111111BDB11001111BDB11110011BDB11111100BDB11111111BDB11110000BDB00001111BDB00001111BDB11110000BDB00001111BDB00001111BDB11110000BDB00000000BDB11100000BDB01110000BDB00111000BDB00011100BDB00001110BDB00000111BDB01111110BDB10111101BDB11011011BDB11100111BDB11011011BDB10111101BDB01111110BDB11111110BDB11111100BDB11111000BDB11110000BDB11100000BDB11000000BDB10000000BDB00000000BDB10000000BDB110000

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論