基于STC89C51的流水燈的設(shè)計與實現(xiàn)_第1頁
基于STC89C51的流水燈的設(shè)計與實現(xiàn)_第2頁
基于STC89C51的流水燈的設(shè)計與實現(xiàn)_第3頁
基于STC89C51的流水燈的設(shè)計與實現(xiàn)_第4頁
基于STC89C51的流水燈的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、開放與創(chuàng)新實驗設(shè)計報告設(shè)計題目:基于stc-89c51的流水燈的設(shè)計與實現(xiàn) 指導(dǎo)老師: 設(shè)計時間: 開放與創(chuàng)新實驗任務(wù)書一、設(shè)計任務(wù)設(shè)計題目:按鍵式流水燈設(shè)計。設(shè)計內(nèi)容:本設(shè)計是按鍵式流水燈設(shè)計,給出如下需求:整個流水燈系統(tǒng)由按鍵控制,實現(xiàn)各種狀態(tài)(4種狀態(tài))之間的轉(zhuǎn)換,即按鍵第一次壓下,流水燈進入到第一種狀態(tài);按鍵第二次壓下,流水燈進入到第二種狀態(tài);以此類推。二、系統(tǒng)需求基本要求:利用stc-89c51單片機作為系統(tǒng)核心控制部分,用16個發(fā)光二極管模擬流水燈的顯示部分,自己設(shè)計電路和程序完成流水燈設(shè)計。發(fā)揮部分: 1使用外部中斷作為對按鍵的控制。2用硬件定時器完成流水燈狀態(tài)轉(zhuǎn)換間的延時,延時

2、誤差小于20×10-6s.開放與創(chuàng)新實驗_流水燈設(shè)計報告流水燈控制系統(tǒng)設(shè)計摘要:本系統(tǒng)由單片機系統(tǒng)、數(shù)碼顯現(xiàn)管、led 顯示等部分組成。系統(tǒng)能夠?qū)崿F(xiàn)以下功能:往南和往北的信號一致,即紅燈(綠燈或黃燈)同時亮或同時熄滅。用兩個數(shù)碼管來顯示被點綠亮的指示燈還將點亮多久。往東和往西方向的信號一致,其工作方式與南北方向一樣,也采用兩個數(shù)碼管來倒計時。當(dāng)南北方向為綠燈或黃燈時,東西方向的紅燈點亮禁止通行;而東西方向為綠燈或黃閃燈時,南北向的紅燈點亮禁止通行。交通信號燈控制方式很多。本設(shè)計采用msc-51系列單片機stc89c51和可編程并行i/o接口芯片8255,8155為中心器件來設(shè)計交通燈

3、控制器,實現(xiàn)了用,8155芯片控制數(shù)碼顯現(xiàn)管,pc口進行段選,pb進行位選,來設(shè)置紅、綠燈點亮倒計時的功能;由8255芯片控制12個led 燈來實現(xiàn)紅綠黃燈狀態(tài),紅綠燈循環(huán)點亮,倒計時結(jié)束后黃燈閃爍警示。在設(shè)計中采用了硬件技術(shù)與軟件技術(shù)相結(jié)合的方法,用stc-89c51的定時器t0,設(shè)定30秒倒計時時間,然后再利用軟件進行技術(shù),從而產(chǎn)生秒信號。定時器t0用了中斷方式,當(dāng)定時時間到時,在t0斷服務(wù)程序中實現(xiàn)秒的倒計數(shù),從而控制led顯示器倒計數(shù)顯示準(zhǔn)行或禁行時間。本系統(tǒng)實用性強、操作簡單、擴展功能強。關(guān)鍵詞:單片機 ,8255,8155芯片 交通燈目 錄一、緒論···

4、;····························· 5二、實驗原理···················

5、83;········ 5三、實驗的各種方案······················ 12四、硬件設(shè)計················&

6、#183;··········· 13五、軟件設(shè)計···························· 14六、系統(tǒng)調(diào)試·······&

7、#183;···················· 21七、試驗心得體會························ 22一緒論1.題目分析設(shè)計要求是流水燈

8、的控制,需自己設(shè)計圖形并實現(xiàn)四種狀態(tài)。 2.功能要求我們利用stc89c52單片機作為核心控制部分?jǐn)U展外部并口芯片,用p0、p1、p2端口控制燈的亮滅,p02端口控制按鍵,應(yīng)用外部中斷來實現(xiàn)流水燈的控制。二實驗原理:<一>.80c51的中斷系統(tǒng)結(jié)構(gòu)1、中斷的概念cpu在處理某一事件a時,發(fā)生了另一事件b請求cpu迅速去處理(中斷發(fā)生); cpu暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件b(中斷響應(yīng)和中斷服務(wù)); 待cpu將事件b處理完畢后,再回到原來事件a被中斷的地方繼續(xù)處理事件a(中斷返回),這一過程稱為中斷 。2.mcs-51單片機的中斷系統(tǒng)結(jié)構(gòu) 執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點中斷請

9、求中斷響應(yīng)執(zhí)行中斷處理程序 引起cpu中斷的根源,稱為中斷源。中斷源向cpu提出的中斷請求。cpu暫時中斷原來的事務(wù)a,轉(zhuǎn)去處理事件b。對事件b處理完畢后再回到原來被中斷的地方(即斷點),稱為中斷返回。 隨著計算機技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機與慢速i/o設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點:1.分時操作。cpu可以分時為多個i/o設(shè)備服務(wù),提高了計算機的利用率;2.實時響應(yīng)。cpu能夠及時處理應(yīng)用系統(tǒng)的隨機事件,系統(tǒng)的實時性大大增強;3.可靠性高。cpu具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。380c51中斷系統(tǒng)的結(jié)構(gòu) 80c51的中斷系統(tǒng)有5個中斷源

10、(8052有 6個) ,2個優(yōu)先級,可實現(xiàn)二級中斷嵌套 。ex0eapx001et0pt001ex1px101et1pt101esps011ritiscontconie0tf0ie1tf110101it0it1int0int1t0t1rxtxieip111111110硬件查詢自然優(yōu)先級自然優(yōu)先級中斷入口中斷入口高級低級中斷源中斷源 1、(p0.2)可由it0(tcon.0)選擇其為低電平有效還是下降沿有效。當(dāng)cpu檢測到p0.2引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志ie0(tcon.1)置1,向cpu申請中斷。2、(p0.3)可由it1(tcon.2)選擇其為低電平有效還是下降沿有效。當(dāng)cpu檢

11、測到p0.3引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志ie1(tcon.3)置1,向cpu申請中斷。3、tf0(tcon.5),片內(nèi)定時/計數(shù)器t0溢出中斷請求標(biāo)志。當(dāng)定時/計數(shù)器t0發(fā)生溢出時,置位tf0,并向cpu申請中斷。 4、tf1(tcon.7),片內(nèi)定時/計數(shù)器t1溢出中斷請求標(biāo)志。當(dāng)定時/計數(shù)器t1發(fā)生溢出時,置位tf1,并向cpu申請中斷。 5、ri(scon.0)或ti(scon.1),串行口中斷請求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位ri或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時置位ti,向cpu申請中斷。 <二>、中斷請求標(biāo)志1、tcon的中斷標(biāo)志it0(tcon.0),外部

12、中斷0觸發(fā)方式控制位。當(dāng)it0=0時,為電平觸發(fā)方式。當(dāng)it0=1時,為邊沿觸發(fā)方式(下降沿有效)。ie0(tcon.1),外部中斷0中斷請求標(biāo)志位。it1(tcon.2),外部中斷1觸發(fā)方式控制位。ie1(tcon.3),外部中斷1中斷請求標(biāo)志位。tf0(tcon.5),定時/計數(shù)器t0溢出中斷請求標(biāo)志位。tf1(tcon.7),定時/計數(shù)器t1溢出中斷請求標(biāo)志位。 2、中斷優(yōu)先級控制 80c51單片機有兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器ip中的相應(yīng)位的狀態(tài)來規(guī)定的 。§ px0(ip.0),外部中斷0優(yōu)先級設(shè)定位;§

13、pt0(ip.1),定時/計數(shù)器t0優(yōu)先級設(shè)定位;§ px1(ip.2),外部中斷0優(yōu)先級設(shè)定位;§ pt1(ip.3),定時/計數(shù)器t1優(yōu)先級設(shè)定位;§ ps (ip.4),串行口優(yōu)先級設(shè)定位;§ pt2 (ip.5) ,定時/計數(shù)器t2優(yōu)先級設(shè)定位。同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:設(shè)置52單片機的4個中斷源,使他們的優(yōu)順序t1,int1,int0,t0.iph = 0x08;pt1 = 1;ip = 0x40;px1 = 1;80c51單片機的中斷

14、優(yōu)先級有三條原則:1.cpu同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高的中斷請求。2.正在進行的中斷過程不能被新的同級或低優(yōu)先級中斷請求所中斷。3.正在進行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請求所中斷。為了實現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置1,表示正在響應(yīng)高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置1,表示正在響應(yīng)低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。3定時/計數(shù)器的結(jié)構(gòu)和工作原理 一、定時/計數(shù)器的結(jié)構(gòu) 定時/計數(shù)器的實質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。tmod是定時/計數(shù)器的工作方式寄存器,確定工

15、作方式和功能;tcon是控制寄存器,控制t0、t1的啟動和停止及設(shè)置溢出標(biāo)志。 定時/計數(shù)器的工作原理: 加1計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是t0或t1引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當(dāng)加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使tcon中tf0或tf1置1,向cpu發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。 可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。 加1計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由系

16、統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是t0或t1引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當(dāng)加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使tcon中tf0或tf1置1,向cpu發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。 可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。§ 設(shè)置為計數(shù)器模式時,外部事件計數(shù)脈沖由t0或t1引腳輸入到計數(shù)器。在每個機器周期的s5p2期間采樣t0、t1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加

17、1,更新的計數(shù)值在下一個機器周期的s3p1期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當(dāng)晶振頻率為12mhz時,最高計數(shù)頻率不超過1/2mhz,即計數(shù)脈沖的周期要大于2 ms。 三.實驗的各種方案(輸入端接按鍵及外部中斷接按鍵兩種方案)進行比較論證方案一:利用stc-89c52單片機作為系統(tǒng)核心控制部分?jǐn)U展外部并口芯片。由p0、p1、p2端口控制發(fā)光二極管,選擇p0、p1、p2任一端口接按鍵來控制流水燈。方案二:利用stc-89c52單片機作為系統(tǒng)核心控制部分?jǐn)U展外部并口芯片。由p0、p1、p2端口來控制燈的亮滅,p0.2(檢測中斷

18、信號)接按鍵。方案一將輸入端接按鍵需要純粹的軟件編程來控制按鍵,對cpu的利用率高,但在日常生活中利用率不高;而將外部中斷與按鍵相接來控制流水燈,降低了cpu的利用率,可以更好的利用單片四硬件設(shè)計(包括電路圖)此電路總體來說由兩部分組成。一部分是stc89c52單片機,另一部分是單片機的外部擴展由發(fā)光二極管構(gòu)成。五軟件設(shè)計1.流程圖:初始化有一半燈亮燈先左移,后又移亮燈閃爍三次奇偶燈依次交替亮2.源代碼:實驗一:org 0540hha1s:mov a,#00hha1s1:jb p3.3,ha1s1mov r2,#20hlcall delayjb p3.3,ha1s1ha1s2:jnb p3.3

19、,ha1s2mov r2,#20hlcall delayjnb p3.3,ha1s2inc apush acccpl amov p1,apop accajmp ha1s1delay:push 02hdelay1: push 02hdelay2: push 02hdelay3: djnz r2,delay3pop 02hdjnz r2,delay2pop 02hdjnz r2,delay1pop 02hdjnz r2,delayretend實驗二:#include<reg51.h>void main()unsigned int i;p1=0x01;while(1)i=20000;wh

20、ile(i-);p1=p1<<1;if(p1=0x00)p1=0x01;實驗三:#include<reg51.h>unsigned int flag;unsigned char flag_1;void timer_init()tmod=0x02; /定時器0 工作方式2 初值自動重裝th0=0x06;tl0=0x06;tr0=1;ea=1;et0=1;void delay()int i;for(i=0;i<1000;i+);display_1() / -> <-p1=0xff;p2=0x7e;delay();/1,8p1=0xff;p2=0x3c;de

21、lay();/1,8-2,7p1=0xff;p2=0x18; delay();/1,8 -2,7-3,6 p1=0xff;p2=0x00;delay();/1,8 -2,7-3,6,-4,5display_2() /<- ->p1=0xff;p2=0xe7;delay();/1,8p1=0xff;p2=0xc3;delay();/1,8-2,7p1=0xff;p2=0x81; delay();/1,8 -2,7-3,6 p1=0xff;p2=0x00;delay();/1,8 -2,7-3,6,-4,5display_3() p1=0x80;p2=0xfe;delay();/1,8p1=0xc0;p2=0xfc;delay();/1,8-2,7p1=0xd0;p2=0xf8; delay();/1,8 -2,7-3,6 p1=0xf0;p2=0xf0;delay();/1,8 -2,7-3,6,-4,5 p1=0xf8;p2=0xe0;delay();/1,8 -2,7-3,6,-4,5 p1=0xfc;p2=0xc0;delay()

溫馨提示

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

評論

0/150

提交評論