LED流水燈設(shè)計(jì)單片機(jī)控制_第1頁(yè)
LED流水燈設(shè)計(jì)單片機(jī)控制_第2頁(yè)
LED流水燈設(shè)計(jì)單片機(jī)控制_第3頁(yè)
LED流水燈設(shè)計(jì)單片機(jī)控制_第4頁(yè)
LED流水燈設(shè)計(jì)單片機(jī)控制_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與綜合實(shí)驗(yàn)(實(shí)踐)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)課題 LED霓虹燈設(shè)計(jì) 姓名 學(xué)號(hào) 班級(jí) 指導(dǎo)老師 目 錄第一章 設(shè)計(jì)概述31.1 設(shè)計(jì)任務(wù)31.2 設(shè)備器材3第二章 硬件設(shè)計(jì)方案32.1 設(shè)計(jì)思想32.2 硬件選擇42.3 AT89C52單片機(jī)介紹42.4 硬件邏輯圖72.5 設(shè)計(jì)連線82.6 仿真電路圖8第三章 軟件設(shè)計(jì)方案83.1 軟件設(shè)計(jì)思想83.2 程序流程圖9第四章 調(diào)試及運(yùn)行結(jié)果10第五章 設(shè)計(jì)心得與體會(huì)10參考資料11源程序清單11第一章 設(shè)計(jì)概述1.1 設(shè)計(jì)任務(wù)設(shè)計(jì)內(nèi)容:利用匯編語(yǔ)言(或C語(yǔ)言),實(shí)現(xiàn)8個(gè)單色LED燈的左、右循環(huán)顯示,并實(shí)現(xiàn)循環(huán)的速度可調(diào)。選用芯片: 8

2、255 等注:由于實(shí)驗(yàn)室的沒(méi)有提供8255芯片,所以改用單片機(jī)完成此實(shí)驗(yàn),并且添加了調(diào)節(jié)燈明暗的功能,以實(shí)現(xiàn)明暗可調(diào)。1.2 設(shè)備器材在本設(shè)計(jì)中,所用到的設(shè)備器材如下所示:(1)計(jì)算機(jī)一臺(tái);(2)唐都儀器實(shí)驗(yàn)箱一臺(tái);(3) AT89C52單片機(jī)一片;(4)導(dǎo)線若干。第二章 硬件設(shè)計(jì)方案2.1 設(shè)計(jì)思路本課題需要用按鈕開關(guān)實(shí)現(xiàn)流水燈的左右循環(huán)顯示、調(diào)速、控制亮度的功能??梢赃x用五個(gè)開關(guān)來(lái)實(shí)現(xiàn)這些操作。單片機(jī)正在軟件運(yùn)行下通過(guò)不斷掃描開關(guān)狀態(tài),來(lái)將相關(guān)操作對(duì)應(yīng)量送入單片機(jī)的輸入端口,然后判斷屬于哪一類操作。五個(gè)開關(guān)分別為K1,K2,K3,K4,K5,分別控制流水燈的調(diào)向、加速、減速、變亮、變暗。在

3、設(shè)計(jì)過(guò)程中,接開關(guān)的端口要全部保持高電平,當(dāng)按下一個(gè)開關(guān)時(shí),輸入一個(gè)低電平,即為狀態(tài)改變信號(hào)。不能同時(shí)有兩個(gè)端口同為高電平。在設(shè)計(jì)中我主要負(fù)責(zé)了用云脈沖寬度調(diào)制(PWM)波控制LED燈的亮度環(huán)節(jié),開始對(duì)PWM并不是很了解,通過(guò)請(qǐng)教同學(xué)和查閱相關(guān)資料,漸漸明白了其中的原理。在主程序運(yùn)行時(shí)通過(guò)中斷方式調(diào)整其輸出電壓的占空比,從而改變燈泡的亮度。原理是這樣的,主程序的始終頻率和中斷的始終頻率并不相同,大約是中斷的一千倍,LED燈在移動(dòng)時(shí)如果響應(yīng)了中斷,則在執(zhí)行中斷程序時(shí),LED燈近似看做沒(méi)有移動(dòng),此時(shí)在中斷程序中設(shè)計(jì)一個(gè)初值和一個(gè)上限,當(dāng)計(jì)數(shù)到初值時(shí)置燈泡滅掉,在計(jì)數(shù)到上限之前小燈泡都是熄滅的,到達(dá)

4、上限后回0,并置燈泡為亮,繼續(xù)計(jì)數(shù),在到設(shè)定的初值時(shí)置小燈泡為滅掉。這樣在主程序的一個(gè)周期內(nèi),中斷程序?qū)⑿襞葜妹髦冒盗私磺Т?,通過(guò)改變?cè)O(shè)定的初值可以改變小燈泡的亮度。2.2 硬件選擇本實(shí)驗(yàn)選用AT89C52單片機(jī)、五個(gè)按鍵開關(guān)和8個(gè)發(fā)光二極管。其中AT89C52為控制核心,當(dāng)5個(gè)開關(guān)的狀態(tài)改變時(shí),單片機(jī)檢測(cè)到開關(guān)信號(hào)后就通過(guò)軟件輸出控制發(fā)光二極管。2.3 AT89C52單片機(jī)介紹AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技

5、術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線。AT89C52的內(nèi)部結(jié)構(gòu)圖如下:引腳圖如下: 引腳功能說(shuō)明:P0 口:P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門電路,對(duì)端口P0 寫“1”時(shí),可作為高阻抗輸入端用。 訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組

6、口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。 在Flash 編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。 P1 口:P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口,P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C51 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX), 參

7、見表1。 Flash 編程和程序校驗(yàn)期間,P1 接收低8 位地址。 表.P1.0和P1.1的第二功能 引腳號(hào)功能特性P1.0T2,時(shí)鐘輸出P1.1T2EX(定時(shí)/計(jì)數(shù)器2) P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。對(duì)端口P2 寫“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR 指令)時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問(wèn)8 位地址

8、的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX RI 指令)時(shí),P2 口輸出P2 鎖存器的內(nèi)容。 Flash 編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。 P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門電路。對(duì)P3 口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能 。P3 口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期

9、以上高電平將使單片機(jī)復(fù)位。 ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE 脈沖。 對(duì)Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位

10、無(wú)效。 PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。 EA/VPP:外部訪問(wèn)允許。欲使CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000HFFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。 Flash 存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V 編

11、程電壓Vpp。 XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 XTAL2:振蕩器反相放大器的輸出端。2.4硬件連接框圖單片機(jī)從開關(guān)上提取不同輸入信號(hào),進(jìn)行相應(yīng)的軟件操作,反映輸出在發(fā)光二極管上。開關(guān)輸入AT89C52單片機(jī)流水燈2.5設(shè)計(jì)連線本實(shí)驗(yàn)的連線為:開關(guān)使用唐都試驗(yàn)箱上的5個(gè)開關(guān),分別接到單片機(jī)的P2.0P2.4口,然后發(fā)光二極管分別接到單片機(jī)的P1.0P1.7口。2.6實(shí)驗(yàn)仿真電路圖第三章軟件設(shè)計(jì)方案3.1 軟件設(shè)計(jì)思想一個(gè)完整的系統(tǒng)僅有硬件是不夠的,還要有軟件的配合。軟件和硬件對(duì)一個(gè)系統(tǒng)來(lái)說(shuō)都是不可或缺的。本實(shí)驗(yàn)采用C語(yǔ)言編程,在具體設(shè)計(jì)中,通過(guò)GetKey()函數(shù)來(lái)不

12、停的掃描開關(guān)的狀態(tài),通過(guò)KeyProcess()來(lái)確定輸入的信號(hào),即按鍵的位置,從而執(zhí)行不同的子程序內(nèi)容,實(shí)現(xiàn)LED燈的控制。3.2程序流程圖第四章 調(diào)試及運(yùn)行結(jié)果通過(guò)設(shè)計(jì)和編寫程序代碼,講程序通過(guò)Keil軟件編譯后生成的hex文件寫進(jìn)AT89C52中,便可操作。為當(dāng)撥動(dòng)相應(yīng)的開關(guān)時(shí),看LED燈的變化。調(diào)試過(guò)程中問(wèn)題很多,主要原因是對(duì)單片機(jī)結(jié)構(gòu)的不熟悉,其次就是程序中的一些問(wèn)題。但通過(guò)努力,都被一一解決。實(shí)際接線前我們先用protues仿真了一下實(shí)驗(yàn)結(jié)果,確認(rèn)無(wú)誤后接線,這樣提高了調(diào)試的時(shí)間。第五章 心得體會(huì)經(jīng)過(guò)四次的上機(jī)課程設(shè)計(jì),在我和*同學(xué)的共同努力下,順利的完成了任務(wù),并在其中體現(xiàn)了自己

13、的獨(dú)創(chuàng)部分。同時(shí)我感覺自己學(xué)到了很多。首先是要把理論和實(shí)際相結(jié)合起來(lái),從理論中得出結(jié)論,然后再實(shí)踐,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考問(wèn)題的能力。在設(shè)計(jì)的過(guò)程中遇到了很多的問(wèn)題,也發(fā)現(xiàn)了自己的不足之處。首先是之前對(duì)單片機(jī)并不十分了解,通過(guò)借閱書籍,找同學(xué)咨詢慢慢的開始對(duì)其有了初步的認(rèn)識(shí)。其次是一些相關(guān)軟件的用法,這個(gè)通過(guò)自己慢慢的摸索也逐漸熟悉了起來(lái)。特別是protues的使用,它給了我們很大的幫助,幫助我們解決了很多調(diào)試過(guò)程中的問(wèn)題。在者是對(duì)PWM波的使用,這個(gè)問(wèn)題很是傷到筋,因?yàn)橹皩?duì)其并不了解,從熟悉到使用我們查閱了很多資料,請(qǐng)教了同學(xué),最后終于掌握了。同時(shí)也是設(shè)計(jì)更完善。此課程設(shè)計(jì)讓

14、我加深理解了所學(xué)的理論知識(shí),并進(jìn)一步建立了計(jì)算機(jī)應(yīng)用系統(tǒng)的整體概念,初步掌握了單片機(jī)軟、硬件開發(fā)方法,為以后進(jìn)行實(shí)際的單片機(jī)軟、硬件應(yīng)用開發(fā)奠定了良好的基礎(chǔ)。這對(duì)下學(xué)期單片機(jī)的學(xué)習(xí)會(huì)有很大的幫助,也使我對(duì)單片機(jī)產(chǎn)生了興趣。這次課程設(shè)計(jì)的順利完成,離不開學(xué)長(zhǎng),同學(xué)和知道老師的幫助,特別是PWM波的運(yùn)用,也是學(xué)長(zhǎng)給我們提出的建議。在此感謝老師和學(xué)長(zhǎng)的無(wú)私幫助。附錄一 參考文獻(xiàn)1單片機(jī)原理及其接口技術(shù) 胡漢才 編著 北京:清華大學(xué)出版社2MCS-51單片機(jī)原理及應(yīng)用張毅剛 編著 哈爾濱:哈爾濱工業(yè)大學(xué)出版社351單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì) 實(shí)例精講(第二版) 戴佳 劉博文 編著 電子工業(yè)出版社附錄一

15、C語(yǔ)言程序清單/*/* 程序名:可控流水燈*/* 功能:實(shí)現(xiàn)流水燈的方向、速度、亮度控制 */* 硬件:P2接開關(guān),P1接LED */*/#include<reg52.h>#include <intrins.h>sbit K1=P20; /方向sbit K2=P21; /加速sbit K3=P22; /減速sbit K4=P23; /加亮sbit K5=P24; /變暗unsigned char Speed,LED;unsigned int tCount=0;unsigned char Idx; /速度取值索引bit Dirtect=1; /滾動(dòng)方向char duty=

16、10; /占空比unsigned int code sTable=0,1,3,7,9,15,30,50,100,200,230,280,300,350; /調(diào)速表void InitTimer0_Timer1(void);void delay(unsigned int x) unsigned char i; while(x-) for(i=0;i<20;i+);unsigned char GetKey(void) unsigned char K; if(P2=0xFF) return 0; delay(10); switch(P2) case 0xFE:K=1;break; case 0x

17、FD:K=2;break; case 0xFB:K=3;break; case 0xF7:K=4;break; case 0xEF:K=5;break; default: K=0;break; while(P2!=0xFF); /等待釋放按鍵 return K;void KeyProcess(unsigned char Key) switch(Key) case 1:Dirtect=Dirtect;break; /方向 case 2:if(Idx>1) Speed=sTable-Idx;break;/加速 case 3:if(Idx<15) Speed=sTable+Idx;bre

18、ak;/減速 case 4:duty+;if(duty>=20) duty=20;break; /加亮 case 5:duty-;if(duty<=0) duty=1; break; /變暗 void main(void) unsigned char Key; P1=P2=0xFF; Idx=4; Speed=sTableIdx;IP=0x02; /中斷優(yōu)先級(jí) InitTimer0_Timer1(); LED = 0xfe; P1 = LED; while(1) Key=GetKey(); if(Key!=0) KeyProcess(Key); /*/* 定時(shí)器0和定時(shí)器1初始化 */*/void InitTimer0_Timer1(void) TMOD = 0x20; TH1 = 0x06; TL1 = 0x06; EA = 1; ET0 = 1; TR0 = 1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論