單片機流水燈課程設計_第1頁
單片機流水燈課程設計_第2頁
單片機流水燈課程設計_第3頁
單片機流水燈課程設計_第4頁
單片機流水燈課程設計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、目 錄1 設計任務與要求11.1設計任務11.2設計要求12 設計方案12.1 設計思路12.2 器件介紹與作用12.2.1 STC89C52RC簡介12.2.2 STC89C52RC參數(shù)32.2.3 STC89C52RC特性32.2.4 STC89C52RC單片機的P2口介紹42.2.5 LED燈介紹53 硬件電路設計63.1 原理圖63.2 LED被點亮的原理74 軟件設計84.1設計流程84.2 源程序155 調(diào)試過程165.1實物連接圖165.2調(diào)試175.3出現(xiàn)的問題176 總結(jié)187 附錄 MSC-51系列單片機指令表19參考文獻24單片機原理與應用課程設計1 設計任務與要求1.1

2、設計任務 設計一個通過單片機P2口控制流水燈的系統(tǒng)1.2設計要求(1)至少8個燈;(2)可實現(xiàn)不同的亮燈(如左循環(huán),右循環(huán),間隔閃等)。2 設計方案2.1 設計思路整個系統(tǒng)工作由軟件程序控制運行,根據(jù)需要,可以上電后系統(tǒng)經(jīng)過初始化,進入用戶設定模式狀態(tài)。于STC89C52單片機的彩燈控制方案,實現(xiàn)對LED紅燈的控制。本方案以STC89C52單片機作為主控核心,與驅(qū)動等模塊組成核心主控制模塊。在主控模塊上設有晶振電路和8個LED燈,根據(jù)需要編寫若干種亮燈模式,根據(jù)各種亮燈時間的不同需要,在不同時刻輸出燈亮或燈滅的控制信號。2.2 器件介紹與作用2.2.1 STC89C52RC簡介 STC89C5

3、2是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復位電路,3個16 位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口。

4、另外 STC89C52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或件復位為止。最高運作頻率35MHz,6T/12T可選圖2.1 STC89C52RC實物圖圖2.2 STC89C52RC管腳圖2.2.2 STC89C52RC參數(shù)1. 增強型8051單片機,6 時鐘/機器周期和12 時鐘/機器周期可以任意 選擇,指令代碼完全兼容傳統(tǒng)8051.22. 工作電壓:5.5V3.3V(5V單片機)/3.8V2.0V(3V 單片機)3

5、.工作頻率范圍:040MHz,相當于普通8051 的080MHz,實際工作 頻率可達48MHz4. 用戶應用程序空間為8K字節(jié)5. 片上集成512 字節(jié)RAM6. 通用I/O 口(32 個),復位后為:P0/P1/P2/P3 是準雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻。7. ISP(在系統(tǒng)可編程)/IAP(在應用可編程),無需專用編程器,無 需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片8. 具有EEPROM 功能9. 共3 個16 位定時器/計數(shù)器。即定時器T0、T1、

6、T210.外部中斷4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可 由外部中斷低電平觸發(fā)中斷方式喚醒11. 通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART12. 工作溫度范圍:-40+85(工業(yè)級)/075(商業(yè)級)13. PDIP封裝2.2.3 STC89C52RC特性STC89C52RC單片機:8K字節(jié)程序存儲空間;512字節(jié)數(shù)據(jù)存儲空間;內(nèi)帶2K字節(jié)EEPROM存儲空間;可直接使用串口下載;AT89S52單片機:8K字節(jié)程序存儲空間;256字節(jié)數(shù)據(jù)存儲空間;沒有內(nèi)帶EEPROM存儲空間;2.2.4 STC89C52RC單片機的P2口介紹 P2口由一個輸出鎖存

7、器、一個轉(zhuǎn)換開關MUX、兩個三態(tài)輸入緩沖器、輸出驅(qū)動電路和一個反相器組成。P2的結(jié)構(gòu)如圖2.3所示。圖2.3 P2 口的位結(jié)構(gòu) 圖2.3中控制信號C的狀態(tài)決定轉(zhuǎn)換開關的位置。當C=0時,開關處于圖示的位置;當C=1時,開關撥向地址線位置。由圖可見,輸出驅(qū)動電路與P0口不同,內(nèi)部設有上拉電阻(由兩個場效應晶體管并聯(lián)構(gòu)成,圖中用等效電阻R表示)。 (1). P2用作通用I/O口(C=0) 當沒有在單片機芯片外擴展總線;或者雖然擴展了片外總線,但采用“MOVX Ri”類指令訪問,且P2口用高八位地址線沒有全部用到時(P2.6,P2.7,.),P2口的口線就可以作為通用I/O口線使用。 執(zhí)行輸出指令時

8、,內(nèi)部數(shù)據(jù)總線的數(shù)據(jù)在“寫鎖存器”信號的作用下由D端進去鎖存器,經(jīng)反相器反相后送至場效應晶體管T,再經(jīng)T反相,在P2.x引腳出現(xiàn)數(shù)據(jù)正好是內(nèi)部數(shù)據(jù)總線的數(shù)據(jù)。 用作輸入時,數(shù)據(jù)可以自口鎖存器,也可以讀自口的引腳,這是根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令決定。 CPU在執(zhí)行“讀-修改-寫”類輸入指令時(ANL P2,A)內(nèi)部產(chǎn)生的“讀鎖存器”操作信號使鎖存器Q端數(shù)據(jù)進入內(nèi)部總線,在與累加器A進行邏輯運算之后,結(jié)果又送回P2的口鎖存器并出現(xiàn)在引腳。 CPU在執(zhí)行“MOV”類指令時(如:MOV A,P2)內(nèi)部產(chǎn)生的操作信號使“讀引腳”應在執(zhí)行輸入指令前把鎖存器寫入,目的是場效應晶體

9、管T2截止,從而使引腳處于高阻抗輸入狀態(tài)。所以,P2口在通用I/O口時,屬于準雙向口。(2)P2在作為地址總線() 當需要在單片機芯片外部擴展程序存儲器或擴展了RAM(或接口芯片)且采用“MOVX DPTR”類指令訪問,單片機內(nèi)部硬件會使C=1,MUX開關接向地址線,這時P2.x引腳的狀態(tài)與地址線信息相同2.2.5 LED燈介紹LED 是英文 light emitting diode (發(fā)光二極管)的縮寫,LED燈俗稱發(fā)光二極管,它的基本結(jié)構(gòu)是一塊電致發(fā)光的半導體材料,置于一個有引線的架子上,然后四周用環(huán)氧樹脂密封,起到保護內(nèi)部芯線的作用,所以 LED 的抗震性能好。LED(Light Emi

10、tting Diode),發(fā)光二極管,是一種能夠?qū)㈦娔苻D(zhuǎn)化為可見光的固態(tài)的半導體器件,它可以直接把電轉(zhuǎn)化為光。LED的心臟是一個半導體的晶片,晶片的一端附在一個支架上,一端是負極,另一端連接電源的正極,使整個晶片被環(huán)氧樹脂封裝起來。半導體晶片由兩部分組成,一部分是P型半導體,在它里面空穴占主導地位,另一端是N型半導體,在這邊主要是電子。但這兩種半導體連接起來的時候,它們之間就形成一個P-N結(jié)。當電流通過導線作用于這個晶片的時候,電子就會被推向P區(qū),在P區(qū)里電子跟空穴復合,然后就會以光子的形式發(fā)出能量,這就是LED燈發(fā)光的原理。而光的波長也就是光的顏色,是由形成P-N結(jié)的材料決定的。3 硬件電路

11、設計3.1 原理圖通過圖3.1我們可以看出,在LED燈后要加一個電阻,通常電阻應用在單片機電路中有三種作用:限流電阻、上拉電阻、下拉電阻。在流水燈接線圖中的電阻起的是限流作用。 圖3.1 流水燈接線原理圖3.2 LED被點亮的原理 圖3.2中A端為發(fā)光二極管的陽極,B端為發(fā)光二極管的陰極,要想點亮發(fā)光二極管,陰極必須加一個低電平(0V),發(fā)光二極管允許的電流在3mA至10mA之間,發(fā)光二極管被點亮的最小電流為3mA。已知發(fā)光二極管被點亮后的壓降值為1.7V,VCC=+5V,電阻上的電壓為3.3V,根據(jù)歐姆定律R=3.3V/3mA=1.1K,因此要選用1K的電阻圖3.2 流水燈接線分支電路4 軟

12、件設計4.1設計流程1) 打開Keil Vision3軟件2) 建立工程工程以LED為名保存選擇芯片3) 建立新文件以了LED.asm為名保存4) 把文件添加到工程添加成功5) 在文件中輸入程序6) 設置生成.hex文件和編譯設置生成.hex文件編譯成功,無錯誤7) 打開 STC_ISP_V483.exe軟件8) 下載程序4.2 源程序1 程序一 ORG 0000H LJMP START ORG 0100HSTART: MOV SP,#60H ;設置堆棧的初始地址LOOP: MOV P2,00H ;點亮八個LED燈 LCALL DELAY ;調(diào)用延時子程序 MOV P2,0FFH ;熄滅八個L

13、ED燈 LCALL DELAY ;調(diào)用延時子程序 SJMP LOOP DELAY: ;延時子程序 MOV R0,#0FFHNEXT: MOV R1,#0FFH DJNZ R1,$ DJNZ R0,NEXT RET END2 程序二 ORG 0000H LJMP START ORG 0100H START: MOV SP,#60H ;設置堆棧的初始地址 MOV R7,#0FFH ;把R7置1 MOV P2,R7 ;把P2口置1LOOP: MOV A,R7 RLC A ;循環(huán)移位 MOV P2,A ;點亮第一個燈 MOV R7,A LCALL DELAY ;調(diào)用延時子程序 SJMP LOOP DE

14、LAY: ;延時子程序 MOV R0,#0FFH NEXT: MOV R1,#0FFH DJNZ R1,$ DJNZ R0, NEXT RET END5 調(diào)試過程5.1實物連接圖 在普中科技HC6800 V2.8 開發(fā)板中,將開發(fā)板中的USB插口與電腦上的USB插口相連,再將單片機的P2口與LED燈用線連接起來。圖5.1 連接實物圖5.2調(diào)試程序編譯成功以后,生成.hex文件,用STC_ISP下載到單片機中,在下載過程中先進行下載然后再上電,打開單片機開發(fā)板的開關后,就會看到八個發(fā)光二極管的亮滅情況。程序一的現(xiàn)象是八個發(fā)光二極管同時亮、滅,一直循環(huán),并且亮和滅的速度很快。程序二的現(xiàn)象是八個發(fā)光

15、二極管從頭依次亮,每次只有一個燈亮,從第一個一直亮到第八個,從后再從頭循環(huán),在調(diào)試過程中,我們可以在程序中的“LCALL DELAY”語句后再增加“LCALL DELAY”語句,增加的越多,延時越長,亮或者是滅的時間就越長。5.3出現(xiàn)的問題在用STC_ISP往單片機中下載程序時出現(xiàn)圖5.2中的打開串口失敗,原因是串口已被其他程序打開或該串口不存在。出現(xiàn)該問題的原因時使用的串口不正確,在設備管理器中查找正確的串口,并改正。改正后程序能正常下載+圖5.2問題截圖6 總結(jié) 通過這次課程設計我學到了很多東西,我更加體會到理論知識與動手能力相結(jié)合的重要性,而且設計過程中使我懂得在設計程序之前,務必要對所

16、用單片機的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機內(nèi)有哪些資源:懂得設計的關鍵是要有一個清晰的思路和一個完整的軟件流程圖。在設計程序時,不能妄想一次就將整個程序設計好,“反復修改,不斷改進”是程序設計的必經(jīng)之路。要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你思路,這樣也為資料的保存和交流提供了方便。整個設計的過程中,還是碰到了一些問題。比如,對于鍵盤的延時防抖問題不能較好的解決;對于編程的順序及各模塊程序調(diào)用掌握得還不夠好;對于一些相關的應用軟件沒能熟練掌握。設計中我最大的收獲就是自己的動手能力和獨立解決問題的能力得到了很大的提高,在動手的過程中,不僅能增強

17、實踐能力,而且在理論上可以有更深的認識 當今社會,由單片機芯片控制各種硬件工作的技術(shù)日益成熟,并普及在交通、化工、機械等各個領域。而流水燈這項技術(shù)在生活中應用更為廣泛,較為貼近生活。以前在路上夜景中經(jīng)常見到各種流水燈,感覺很漂亮,通過此次編程以后才知道了原理,讓我有一種學以致用的成就感!很開心!流水燈控制的設計所需要的知識不僅吻合了我們本學期對于單片機這門課程的學習,而且對于我們以前所學習的如數(shù)碼管顯示、LEG燈等知識也是一次很好地運用,所以設計流水燈控制的這個課題讓我們對知識的學習和鞏固都有了進一步的加深。 總的來說,這次設計獲益良多。不僅培養(yǎng)了實踐能力,還培養(yǎng)了設計思維,在摸索該如何設計電

18、之實現(xiàn)所需功能的過程中,鍛煉了運用所學知識的靈活性,加深了對知識的理解及提高了解決問題的能力。在體會到設計電路編寫程序的艱辛的同時,更能體會到成功的喜悅和快樂。7 附錄 MSC-51系列單片機指令表表7-1 數(shù)據(jù)類傳送令表助記符操 作功 能字節(jié)數(shù)周期數(shù)MOV A,Rd(A)(Rd)寄存器字節(jié)送到累加器11MOV A,m(A)(m)直接字節(jié)送到累加器21MOV A,Ri(A)(Ri)間接RAM送到累加器11MOV A,#n(A)n立即數(shù)送累加器21MOV Rd,A(Rd)(A)累加器字節(jié)送寄存器11MOV Rd,m(Rd)(m)直接字節(jié)送寄存器22MOV Rd,#n(Rd)n立即數(shù)送寄存器21M

19、OV m,A(m)(A)累加器字節(jié)送直接字節(jié)21MOV m,Rd(m)(Rd)寄存器字節(jié)送直接字節(jié)22MOV m1,m2(m1)(m2)直接字節(jié)送直接字節(jié)32MOV m,Ri(m)(Ri)間接RAM送入直接字節(jié)22MOV m,#n(m)n立即數(shù)送入直接字節(jié)32MOV Ri,A(Ri)(A)累加器字節(jié)送入間接RAM11MOV Ri,m(Ri)(m)直接字節(jié)送入間接RAM22MOV Ri,#n(Ri)n立即數(shù)送入間接RAM21MOV DPTR,#n(16)(DPTR)n(16)十六位立即數(shù)送數(shù)據(jù)指示器32MOVC A,A+DPTR(A)(A)+(DPTR)間接ROM送累加器12MOVC A,A+P

20、C(A)(A)+(PC)間接ROM送累加器12MOVX A,Ri(A)(P2)+(Ri)從外部間接RAM(8位地址)送入累加器12MOVX A,DPTR(A)(DPTR)從外部間接RAM(16位地址)送入累加器12MOVX Ri,A(P2)+(Ri)(A)累加器內(nèi)容送外部間接RAM(8位地址)12MOVX DPTR,A(DPTR)(A)累加器內(nèi)容送外部間接RAM(16位地址)12PUSH m(SP)+1)(m)直接字節(jié)進堆棧22POP m(m)(SP)直接字節(jié)出堆棧22XCH A,Rd(A)(Rd)寄存器與累加器交換11XCH A,m(A)(m)直接字節(jié)與累加器交換21XCH A,Ri(A)(

21、Ri)間接RAM與累加器交換11XCHD A,Ri (A30)(Ri) 74)間接RAM低半字節(jié)與累加器交換11表7-2算術(shù)運算指令助記符操 作功 能字節(jié)數(shù)周期數(shù)ADD A,Rd(A)(A)+(Rd)寄存器加到累加器11ADD A,m(A)(A)+(m)直接字節(jié)加到累加器21ADD A,Ri(A)(A)+(Ri)間接RAM加到累加器11ADD A,#n(A)(A)+n立即數(shù)加到累加器21ADDC A,Rd(A)(A)+(Rd)+(C)寄存器和進位加到累加器11ADDC A,m(A)(A)+(m)+(C)直接字節(jié)和進位加到累加器21ADDC A,Ri(A)(A)+(Ri)+(C)間接RAM和進位

22、加到累加器11ADDC A,#n(A)(A)+n+(C)立即數(shù)和進位加到累加器21SUBB A,Rd(A)(A)-(Rd)-(C)累加器減去寄存器和借位11SUBB A,m(A)(A)-(m)-(C)累加器減去直接字節(jié)和借位21SUBB A,Ri(A)(A)-(Ri)-(C)累加器減去間接RAM和借位11SUBB A,#n(A)(A)-n-(C)累加器減去立即數(shù)和借位21INC A(A)(A)+1累加器加111INC Rd(Rd)(Rd)+1寄存器加111INC m(m)(m)+1直接字節(jié)加121INC Ri(Ri)(Ri)+1間接RAM加111INC DPTR(DPTR)(DPTR)+1數(shù)據(jù)

23、指示器加112DEC A(A)(A)-1累加器減111DEC Rd(Rd)(Rd)-1寄存器減111DEC m(m)(m)-1直接字節(jié)減121DEC Ri(Ri)(Ri)-1間接RAM減111MUL AB(B)(A)(A)·(B)A乘B14DIV AB(A)(B)(A)/(B)A除B14DA A累加器十進制調(diào)整11表7-3 邏輯運算指令助記符操 作功 能字節(jié)數(shù)周期數(shù)ANL A,Rd(A)(A)(Rd)寄存器“與”到累加器11ANL A,m(A)(A)(m)直接字節(jié)“與”到累加器21ANL A,Ri(A)(A)(Ri)間接RAM“與”到累加器11ANL A,#n(A)(A)n立即數(shù)“與

24、”到累加器21ANL m,A(m)(m)(A)累加器“與”到直接字節(jié)21ANL m,#n(m)(m)n立即數(shù)“與”到累加器32ORL A,Rd(A)(A)(Rd)寄存器“或”到累加器11ORL A,m(A)(A)(m)直接字節(jié)“或”到累加器21ORL A,Ri(A)(A)(Ri)間接RAM“或”到累加器11ORL A,#n(A)(A)n立即數(shù)“或”到累加器21ORL m,A(m)(m)(A)累加器“或”到直接字節(jié)21ORL m,#n(m)(m)n立即數(shù)“或”到累加器32XRL A,Rd(A)(A)(Rd)寄存器“異或”到累加器11XRL A,m(A)(A)(m)直接字節(jié)“異或”到累加器21XR

25、L A,Ri(A)(A)(Ri)間接RAM“異或”到累加器11XRL A,#n(A)(A)n立即數(shù)“異或”到累加器21XRL m,A(m)(m)(A)累加器“異或”到直接字節(jié)21XRL m,#n(m)(m)n立即數(shù)“異或”到累加器32CLR A(A)0累加器清零11CPL A(A)()累加器取反11RL A累加器循環(huán)左移11RLC A累加器帶進位循環(huán)左移11RR A累加器循環(huán)右移11RRC A累加器帶進位循環(huán)右移11SWAP A(A74)(A 31)累加器半字節(jié)交換11表7-4 位操作指令助記符操 作功 能字節(jié)數(shù)周期數(shù)CLR c(c)0進位清011CLR b(b)0直接位清021SETB c(c)1進位置位11SETB b(b)1直接位置位21CPL c(c)(c非)進位取反11CPL b(b)(b非)直接位取反21ANL c,b(c)(c)(b)直接位“與”到進位22ANL c,/b(c)(c

溫馨提示

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

評論

0/150

提交評論