單片機(jī)c語言課程設(shè)計(jì)交通燈_第1頁
單片機(jī)c語言課程設(shè)計(jì)交通燈_第2頁
單片機(jī)c語言課程設(shè)計(jì)交通燈_第3頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、交通燈的變化規(guī)律按照常規(guī)我們假設(shè)一個十字路口為東西南北走向。初始狀態(tài)為狀態(tài)1,南北方向綠燈通車,東西方向紅燈。經(jīng)過過一段時間(25S)轉(zhuǎn)換狀態(tài)2,南北方向 綠燈閃幾次轉(zhuǎn)亮黃燈,延時5S,東西方向仍然紅燈。再轉(zhuǎn)換到狀態(tài) 3,東西方向 綠燈通車,南北方向紅燈。過一段時間(25S)轉(zhuǎn)換到狀態(tài)4,東西方向綠燈閃 幾次轉(zhuǎn)亮黃等,延時5S,南北方向仍然紅燈。最后循環(huán)至南北綠燈,東西紅燈。 在這些狀態(tài)下,有時鐘倒數(shù)計(jì)時。四. 硬件介紹基礎(chǔ)知識交通燈控制器實(shí)例主要使用了 89C51單片機(jī)的定時器/計(jì)數(shù)器,基礎(chǔ)知識主 要包括交通燈的變化規(guī)律、定時器/計(jì)數(shù)器的概念、定時器/計(jì)數(shù)器的相關(guān)寄存 器、定時器/計(jì)數(shù)器的4

2、種工作方式、以及定時器/計(jì)數(shù)器的變成。4.1定時器/計(jì)數(shù)器定時器/計(jì)數(shù)器是單片機(jī)中最常用、最重要的功能模塊之一,本節(jié)通過交通燈控 制器實(shí)例來演示定時器的使用,并復(fù)習(xí)如何使用散轉(zhuǎn)程序。首先介紹交通燈以及定時器/計(jì)數(shù)器的基礎(chǔ)知識, 接著介紹本實(shí)例的硬件電路構(gòu) 成,然后逐步分析定時器的變成以及程序的全貌,最后總結(jié)一下本實(shí)例的技巧與4.2定時器/計(jì)數(shù)器的概念89C51單片機(jī)有兩個可編程的定時器/計(jì)數(shù)器 TO、T1。當(dāng)定時器/計(jì)數(shù)器用作“定時器”時,每經(jīng)過1個機(jī)器周期(12個時鐘周期),計(jì)數(shù)器加1。當(dāng)定時器/計(jì)數(shù)器用作“計(jì)數(shù)器”時,計(jì)數(shù)器在對應(yīng)的外部輸入管腳(TO為P3.4 引腳,T1為P3.5引腳)上

3、每發(fā)生一次1到0的跳變時加1。使用“計(jì)數(shù)器”功 能時,外部輸入每個機(jī)器周期被采樣一次。當(dāng)某一周期管腳狀態(tài)采樣為高電平而 下一周期采樣為低電平時,計(jì)數(shù)器加 1。由于檢測下降沿跳變需要兩個機(jī)器周期(24個時鐘周期)的時間,所以技術(shù)頻率最大值只能為時鐘周期的 1/24。計(jì)數(shù) 器對外部輸入信號的占空比并無限制,但為了保證給定的電平信號在其改變之前至少被采樣一次,外部輸入信號必須至少保持一個完整的機(jī)器周期。4.3定時器/計(jì)數(shù)器的相關(guān)寄存器與定時器/計(jì)數(shù)器相關(guān)的寄存器有定時器/計(jì)數(shù)器工作方式寄存器(TMOD定時器/計(jì)數(shù)器控制寄存器(TCO) TCON已經(jīng)在2.5節(jié)受控輸出實(shí)例中介紹過, 因此,在本例中主要

4、介紹TMO寄存器。定時器/計(jì)數(shù)器工作方式寄存器(TMOD,字節(jié)地址89H,不可進(jìn)行位尋址。定時器/計(jì)數(shù)器工作方式寄存器(TMOP的8位分為兩組,高4位控制T1,低4 位控制TO。TMO每一位的功能如下。GATE門控位。GAT昌0,僅由運(yùn)行控制位TRX(X= 0,1)= 1來啟動定時器/計(jì)數(shù)器運(yùn)行;GAT昌1,由運(yùn)行控制位TRX(X= 0,1)= 1和外部中斷引腳上的高電平共同來 啟動定時器/計(jì)數(shù)器運(yùn)行。C/ T:定時器模式和計(jì)數(shù)器模式選擇位。C/ T= 0,為定時器模式;C/ T= 1,為計(jì)數(shù)器模式。M1、M0工作方式選擇位。M1 M0的4中編碼對應(yīng)4種工作方式,對應(yīng)關(guān)系見表 2- 10。4.

5、5定時器/計(jì)數(shù)器的4種工作方式定時器/計(jì)數(shù)器的4種工作方式下的邏輯結(jié)構(gòu)如表所示M1M2工作方式00方式0,為13位定時器/計(jì)數(shù)器01方式1,為16位定時器/計(jì)數(shù)器10方式2,為初值自動重裝的8位定時器/計(jì)數(shù)器11方式3,僅T0有效,將T0分為兩個8位定時器/計(jì)數(shù)器(1) 方式0。定時器/計(jì)數(shù)器的工作方式0稱為13位定時器/計(jì)數(shù)器的。它由TLX的低5位 和TLX的8位構(gòu)成13位的計(jì)數(shù)器,此時TLX的高3位未使用。改工作方式是為 了和48系列單片機(jī)兼容而設(shè)計(jì)的一種工作方式,一般情況不使用方式0進(jìn)行定時/計(jì)數(shù)。方式0的控制方式與方式1完全相同,下面重點(diǎn)介紹方式1的控制方 式。(2) 方式1定時器/計(jì)

6、數(shù)器的工作方式1稱為16位定時器/計(jì)數(shù)器。它由TLX和THX構(gòu)成, TLX計(jì)數(shù)溢出向THX進(jìn)位,THX計(jì)數(shù)溢出置位TCON中溢出標(biāo)志位TFXGATE的狀態(tài)定時器/計(jì)數(shù)器運(yùn)行控制取決于 TRX-個條件還是TRX和INTX引 腳這兩個條件。當(dāng)GATE=0寸,則只要TRX被置為1,定時器/計(jì)數(shù)器即被允許 計(jì)數(shù)(定時器/計(jì)數(shù)器的計(jì)數(shù)控制僅由 TRX的狀態(tài)確定,TRX=1計(jì)數(shù),TRX=0亭 止計(jì)數(shù))。當(dāng)GATE=時,定時器/計(jì)數(shù)器是否計(jì)數(shù)由INTX輸入的電平和TRX的 狀態(tài)共同確定:當(dāng)TRX=1且INTX=1時,才允許定時器/計(jì)數(shù)器計(jì)數(shù)(定時器 /計(jì)數(shù)器的計(jì)數(shù)控制由TRX和 INTX兩個條件控制)。(3

7、) 方式2定時器/計(jì)數(shù)器的工作方式0和方式1再計(jì)數(shù)溢出后,計(jì)數(shù)器的值為0,需要通 過程序重新裝入計(jì)數(shù)初值。定時器/計(jì)數(shù)器的工作方式1稱為初值自動重裝的8位定時器/計(jì)數(shù)器。在該工 作方式下,TLX作為計(jì)數(shù)器,當(dāng)TLX計(jì)數(shù)溢出時,在置1溢出標(biāo)志TFX的同時, 還自動的將THX中的常數(shù)送至TLX,使TLX從該常數(shù)開始重新計(jì)數(shù)。這種工作方 式可以省去用戶軟件中重裝常數(shù)的程序, 簡化定時常數(shù)的計(jì)算方法(確定計(jì)數(shù)初 值),可以相當(dāng)精確地確定定時時間。(4) 方式3工作方式3僅對定時器/計(jì)數(shù)器0有效,在該工作方式之下,定時器/計(jì)數(shù)器的 0被拆成2個獨(dú)立的定時器/計(jì)數(shù)器:TL0、TF1。TL0使用T0的狀態(tài)控

8、制C/T、 GATE TR0 INT0,而TH0被固定位一個8位定時器(不能作外部計(jì)數(shù)方式),并 使用定時器/計(jì)數(shù)器1的狀態(tài)控制位TR1、和TF1,同時占用定時器T1的中斷源。 此時,定時器/計(jì)數(shù)器1可設(shè)定為方式0、方式1和方式2,作為串行口的波特 率發(fā)生器。4.5定時器/計(jì)數(shù)器的編程(1)初始化定時器/計(jì)數(shù)器的初始化編程包括以下幾個部分。根據(jù)要求給定時器/計(jì)數(shù)器方式寄存器 (TMOP送一個方式控制字,以設(shè)定定時 器/計(jì)數(shù)器的工作方式。根據(jù)需要給TH和TL寄存器送初值,以確定需要的定時時間或計(jì)數(shù)的初值。根據(jù)需要給中斷允許寄存器(IE)送中斷控制字,以開放相應(yīng)的中斷和設(shè)定中斷 優(yōu)先級。給Tcor

9、寄存器送命令字以啟動或禁止定時/計(jì)數(shù)器的運(yùn)行。(2)定時器/計(jì)數(shù)器初值的計(jì)算。計(jì)數(shù)器初值:設(shè)計(jì)算器的模值位 M所需的計(jì)數(shù)值為C,計(jì)數(shù)初值設(shè)定為TC,則TC=M-C (M 等于2的13次方,16次方,8次方)。定時器初值:設(shè)定時器的模值為 M需要的定時時間為T,定時器的初值設(shè)定為TC,則TC=M-T/t (M等于2的13次方,16次方,8次方)。五. 軟件程序設(shè)計(jì)交通燈控制器實(shí)例使用了 89C51單片機(jī)的定時器/計(jì)數(shù)器,首先分定時器初 始化,定時器中斷服務(wù)程序兩個部分介紹定時器計(jì)數(shù)器的軟件編程, 其次在畫出 程序流程圖的基礎(chǔ)上編寫軟件程序,并給出完整的交通燈控制器程序?qū)嵗?.1定時器初始化為了

10、使定時器時間準(zhǔn)確,避免因?yàn)槎〞r器重裝而引起的累計(jì)誤差,應(yīng)將定時 器設(shè)置為初值自動裝置的 8位定時器/計(jì)數(shù)器,即定時器工作在工作方式 2.在 12MHz晶振條件下,8位定時器的最長定時時間是 0.256ms,為了方便計(jì)算取定 時時間為0.25ms,所以,定時0.5s需要定時器中斷2000次。下面計(jì)算定時器的初值。定時器初值TC=M-T/t=256-250/1=6 ,因此 TH0=06H,TL0=06H.定時器初始化程序如下,定時器T0設(shè)定為工作方式2,初始值為06H,自動 重裝入值為06耳T0-INIT;MOV TMOD,#00000010B ; 定時器 T0 工作方式 2MOV TL0,#06

11、H;設(shè)定時器T0的初始值MOV TH0,#06H;設(shè)定時器T0的自動重裝值MOV TCON,#00010000B ;定時器 TO 的使能SETB EA;中斷允許總控制位使能SETB ET0;T0中斷使能RET5.2定時器中斷服務(wù)程序T0-INIT;DJNZ TIME-COUNT0,T0-INT-EXITMOV TIME-COUNT0,#250DJNZ TIME-COUNT1, T0-INT-EXITMOV TIME-COUNT1,#8SETB SECOND-FLAG ;T0-INT-EXIT;RETI每0.25ms定時器中斷發(fā)生,程序跳轉(zhuǎn)到中斷服務(wù)程序T0-INT開始執(zhí)行。中 斷服務(wù)程序每次將

12、定時器中斷計(jì)數(shù)變量減 1,但定時器中斷計(jì)數(shù)變量為0時,0.5s 定時時間到,將位變量SECOND-FLAG為1.定時器中斷服務(wù)程序通過 RETI指令 返回,程序?qū)⑻D(zhuǎn)到進(jìn)入中斷前的斷點(diǎn)繼續(xù)執(zhí)行。5.3程序流程圖程序較為簡單,可以直接進(jìn)行程序的編寫,但本實(shí)例的程序流程比較復(fù)雜, 在編寫程序前,應(yīng)當(dāng)先畫出程序流程圖。程序流程圖是描述程序運(yùn)行流程的一種 圖表。它不僅描繪程序從頭到尾的運(yùn)行順序, 也描述程序運(yùn)行過程中的所有可能 發(fā)生的狀況。開始六. 電路圖及仿真設(shè)計(jì)6.1設(shè)計(jì)完成原理圖如下在電路連接完成后,將寫好的程序放入單片機(jī),運(yùn)行U1Pt.NW!加 PM i齡 POT ru jj.rjL pn u

13、niPO.AEiXTMiPD 職AD3PO 5JADfFO e.'ADflHSTFO 2畑pj.a/.eeP2.i/eF2.2i7MD說NF2 3WMALEP2 4M3盍PlSrAiSP2 6.14PHOW D/R'XDP1.1 pia Pl JP3.3ART1PI 4 P1J5Fl AP3 4/raPlS/TiPI 7P; ,7/RD21phi,伸t畑窣 <TEXT>6.2在初始狀態(tài)南北綠燈,東西紅燈,持續(xù)時間為25s111PW心XTI4JREPD 1/Wul 削燈丄 pggPO A/AM- PU*/Wjfe 刊砂月 PD i/gPJ D/iSP3咖舊P5IENp

14、zjahALC理.軸2EAIR2j5I3F2-fl4IF2J/A15P1J弭 JDffiXDP1J P1JP3 i>P321INTIPUPWINTIIP 1.4P1344EP1Jp;瓠碩P1-?PSJ/R5'D-11ia沖 Pii s bas«r:I-rJ pn專鬲Pm用?4Fra淞4 卩廠©- f iL T 6.3南北跳轉(zhuǎn)到黃燈5s,東西仍為紅燈MALIK1AEJRSTPCDf*沖PC1?-31m4 -3&FCS3 秤"斗Q «34FUG7 F*UO32«7映PDJ/ADO 閒-/ACT PO */ACE K 2MJTI

15、3 m釘昌市 RD.t/AO6 ra.VAErFTPS ALEP1.0PHP1.2P1.3Pl 4PI 5Pl 6PI .7FS-DiWP1.1W FZ.i/AID F2.i/A11 憶陰】 PZ5/A13 F2 J/AJ4 IF27/A15P3.C/F3WP3/ZTXDP3.2/IN13P3P : 4m p : &nP5 jjCF一IZI-JI5W_7 MIzll*1rjkrrrB1 ppivHTrm:脈 O 在南北轉(zhuǎn)換為紅燈的同時,東西燈轉(zhuǎn)換到綠燈持續(xù) 25s;東西轉(zhuǎn)換為黃燈持 續(xù)5s,南北紅燈不變;如此循環(huán),從而實(shí)現(xiàn)交通燈的作用。七. 總結(jié)回顧起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,

16、學(xué)到了很多的東西。同時不僅 鞏固了以前所學(xué)過的知識,而且還學(xué)到了很多在書本上所沒有學(xué)到過的知識。 在 實(shí)際設(shè)計(jì)中才發(fā)現(xiàn),書本上理論性的東西與在實(shí)際運(yùn)用中的還是有一定的出入 的,所以有些問題不但要深入地理解, 而且要不斷地更正以前的錯誤思維。 一切 問題必須要靠自己一點(diǎn)一滴的解決,而在解決的過程當(dāng)中你會發(fā)現(xiàn)自己在飛速的 提升。對于單片機(jī)設(shè)計(jì),其硬件電路是比較簡單的,主要是解決程序設(shè)計(jì)中的問 題,而程序設(shè)計(jì)是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能 力,它才是一個設(shè)計(jì)的靈魂所在。因此可以說單片機(jī)的設(shè)計(jì)是軟件和硬件的結(jié)合, 二者是密不可分的。通過這次課程設(shè)計(jì)我發(fā)現(xiàn)單片機(jī)原理應(yīng)用行很強(qiáng),

17、 只有老師的講解不行,只 看也不中,只有自己動手去做才會發(fā)現(xiàn)自己確實(shí)有太多的不足, 許多的原理,程 序看似簡單,真正去做才知道知識并沒有自己想象的那樣扎實(shí)。 從而懂得了理論 與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識從而提高自己的相信會對今后使我充分體會與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù), 實(shí)際動手能力和獨(dú)立思考的能力。 樹立了對自己工作能力的信心, 的學(xué)習(xí)工作生活有非常重要的影響。 而且大大提高了動手的能力, 到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。在設(shè)計(jì)完成之際再次衷心感謝泉溪老師的指導(dǎo)!八. 源程序#i nclude <REGX51

18、.H>#defi ne uchar un sig ned char#defi ne uint un sig ned intuchar n=O,temp=O;uchar code Segcode0=0x5b,0x06,0x3f,0x5b,0x06,0x3f,0x5b,0x06,0x3f;uchar code Segcode1=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f;/uchar code Segcode0=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; void delay(x) while(x-);void timer0() in terrupt 1 TH0=(65536-50000)/256;TL0=(65536-50000)%256;n+;temp=temp%61;if(n=20) temp+;n=0;if(temp<25) P1= 0x21;if(temp>=25)&&(temp<

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論