單片機交通燈控制畢業(yè)設計_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  引言</b></p><p>  當今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。但這一技術在19世紀就已出現(xiàn)了。</p><p>  1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的

2、議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p><p>  電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p>  1918年,又出現(xiàn)

3、了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。</p><p>  信號燈的出現(xiàn),使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故

4、有明顯效果。1968年,聯(lián)合國《道路交通和道路標志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。</p><

5、;p><b>  單片機概述</b></p><p>  單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。</p><p>  通常,單片機由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機只需要和適當?shù)能浖巴獠吭O備相結(jié)合

6、,便可成為一個單片機控制系統(tǒng)。</p><p>  單片機經(jīng)過1、2、3、3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強,內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。</p><p>  一、 設計課題:單片機交通燈控制</p><p><b>  二、 設計目的:</b></p><p

7、>  (1)掌握單片機定時 ,計數(shù)器的編程應用。(2)通過對交通燈控制程序的編寫與調(diào)試,掌握中斷程序的結(jié)構(gòu)(3)進一步熟練使用開發(fā)系統(tǒng)的各種調(diào)試方法</p><p>  三、 課題任務的控制要求</p><p>  東西、南北兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切

8、換,且黃燈燃亮時間為東西、南北兩干道的公共停車時間。設東西道比南北道的車流量大,指示燈燃亮的方案如表1。 </p><p><b>  表1 </b></p><p>  表1說明: </p><p> ?。?)當東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時間為60秒。 <

9、;/p><p> ?。?)黃燈閃爍5秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 </p><p>  (3)當東西方向為綠燈,此道車輛通行;南北方向為紅燈,南北道車輛禁止通過,行人通行。時間為80秒。 東西方向車流大 通行時間長。 </p><p> ?。?)這樣如上表的時間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。 </p&g

10、t;<p> ?。?)此表可根據(jù)車流量動態(tài)設定紅綠燈初始值。 </p><p>  四、 總體設計的框圖</p><p><b>  五 、單片機選型</b></p><p>  選用設備8031單片機一片選用設備:8031彈片機一片,8255并行通用接口芯</p><p>  片一片,74LS07兩片,M

11、AX692‘看門狗’一片,共陰極的七段數(shù)碼管兩個雙向晶閘管若干,7805三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個,開關鍵盤、連線若干。</p><p>  六 、 硬件設計電路圖及各電路模塊的說明</p><p>  (1) MCS-51的引腳說明</p><p>  MCS-51 系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),

12、圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3 口線復用?,F(xiàn)在我們對這些引腳的功能加以說明: </p><p>  MCS-51的引腳說明: </p><p>  MCS-51 系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外

13、置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3 口線復用?,F(xiàn)在我們對這些引腳的功能加以說明:圖如下</p><p>  Pin9:RESET/Vpd 復位信號復用腳,當8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn) 24 個時鐘周期以上的高電平,系統(tǒng)即初始復位。初始化后,程序計數(shù)器 PC 指向0000H,P0-P3 輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RE

14、SET由高電平下降為低電平后,系統(tǒng)即從 0000H 地址開始執(zhí)行程序。然而,初始復位不改變RAM(包括工作寄存器 R0-R7)的狀態(tài),8051的初始態(tài)。8051 的復位方式可以是自動復位,也可以是手動復位,見下圖 2。此外,RESET/Vpd還是一復用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內(nèi)部 RAM 的數(shù)據(jù)不丟失。 </p><p><b>  圖2 </b></p&g

15、t;<p>  ·Pin30:ALE/ 當訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE 端將有一個 1/6 時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出。更有一個特點,當訪問外部程序存儲器,ALE會跳過一個脈沖。 </p><p>  如果單片機是EPROM,在編程其間, 將用于輸入編程脈沖。 &l

16、t;/p><p>  ·Pin29: 當訪問外部程序存儲器時,此腳輸出負脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在 P0 和 P2 口上,外部程序存儲器則把指令數(shù)據(jù)放到 P0 口上,由 CPU 讀入并執(zhí)行。 </p><p>  ·Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機,內(nèi)置有4kB的程序存儲器,當 EA 為高電平并且程序地址小于 4kB

17、 時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過 4kB 地址則讀取外部指令數(shù)據(jù)。如 EA 為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。 </p><p>  在編程時,EA/Vpp腳還需加上21V的編程電壓。 </p><p>  (2 )8255可編程并行接口芯片簡介: </p><p>  8255可編程并

18、行接口芯片有三個輸入輸出端口,即A口、B口和C口,對應于引腳PA7~PA0、PB7~PB0 和 PC7~PC0。其內(nèi)部還有一個控制寄存器,即控制口。通常 A 口、B 口作為輸入輸出的數(shù)據(jù)端口。C 口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成 4 位的端口,每個端口包含一個 4 位鎖存器。它們分別與端口 A/B配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。 </p><p>  8255可編程并行接

19、口芯片方式控制字格式說明: </p><p>  8255有兩種控制命令字;一個是方式選擇控制字;另一個是C口按位置位/復位控制字。其中C口按位置位/復位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時用戶可自行查找有關資料。 </p><p>  方式控制字格式說明如表2: </p><p><b>  表2</b></p&

20、gt;<p>  D7:設定工作方式標志,1有效。 </p><p>  D6、D5:A口方式選擇 </p><p><b>  0 0 —方式0 </b></p><p><b>  0 1 —方式1 </b></p><p><b>  1 ×—方式2 <

21、/b></p><p>  D4:A口功能 (1=輸入,0=輸出) </p><p>  D3:C口高4位功能 (1=輸入,0=輸出) </p><p>  D2:B口方式選擇 (0=方式0,1=方式1) </p><p>  D1:B口功能 (1=輸入,0=輸出) </p><p>

22、  D0:C口低4位功能 (1=輸入,0=輸出) </p><p>  8255可編程并行接口芯片工作方式說明: </p><p>  方式 0:基本輸入/輸出方式。適用于三個端口中的任何一個。每一個端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。 </p><p>  方式 1:選通輸入/輸出方式。這時 A 口或 B 口的 8 位外設線用作輸入或輸出,C 口

23、的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡信號和中斷請求信號。 </p><p>  方式 2 :雙向總線方式。只有A口具備雙向總線方式,8位外設線用作輸入或輸出,此時C口的5條線用作通訊聯(lián)絡信號和中斷請求信號。 </p><p>  (3) 74LS373簡介(見下圖)</p><p>  74LS373 是一種帶三態(tài)門的 8D鎖存器,其管腳示意圖如下示: </p&g

24、t;<p>  其中:1D-8D為8個輸入端。 </p><p>  1Q-8Q為8個輸出端。 </p><p>  LE為數(shù)據(jù)打入端:當LE為“1”時,鎖存器輸出 狀態(tài)同輸入狀態(tài);當LE由“1”變“0”時,數(shù)據(jù) 打入鎖存器 </p><p>  OE為輸出允許端:當OE=0時,三態(tài)門打開; </p><p>  當OE=1時,

25、三態(tài)門關閉,輸出高阻。</p><p>  七、軟件設計流程圖及各功能模塊的程序設計說明</p><p>  .控制器的軟件設計說明 </p><p>  7)1.每秒鐘的設定 </p><p>  延時方法可以有兩種一中是利用MCS-51內(nèi)部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。 </p><p&

26、gt;  7)2.計數(shù)器硬件延時 </p><p>  定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設定為C和計數(shù)初值設定為TC 可得到如下計算通式: </p><p><b>  TC=M-C </b></p><p> 

27、 式中,M為計數(shù)器摸值,該值和計數(shù)器工作方式有關。在方式0時M為213 ;在方式1時M的值為216;在方式2和3為28 </p><p>  (2). 計算公式 </p><p>  T=(M-TC)T計數(shù) </p><p>  或TC=M-T/T計數(shù) </p><p>  T計數(shù)是單片機時鐘周期TCLK的12倍;TC為定時初值 </p

28、><p>  如單片機的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻13 </p><p>  方式0 TMAX=2 *1微秒=8.192毫秒 16 </p><p>  方式1 TMAX=2 *1微秒=65.536毫秒 </p><p>  顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能

29、解決這個問題. </p><p>  (3) 1秒的方法 我們采用在主程序中設定一個初值為20的軟件計數(shù)器和使T0定時50毫秒.這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時間顯示程序。 </p><p>  (4)相應程序代碼 </p>&

30、lt;p><b> ?。ǎ保┲鞒绦?</b></p><p>  定時器需定時50毫秒,故T0工作于方式1。 初值: 16 </p><p> ?。裕茫剑停裕?T計數(shù) =2 -50ms/1us=15536=3CBOH </p><p>  ORG 1000H </p><p>  START: MOV

31、TMOD, #01H ; 令TO為定時器方式1 </p><p>  MOV TH0, #3CH ;裝入定時器初值 </p><p>  MOV TL0, #BOH ; </p><p>  MOV IE, #82H ;開T0中斷 </p><p>  SEBT TRO

32、 ;啟動T0計數(shù)器 </p><p>  MOV RO, #14H ;軟件計數(shù)器賦初值 </p><p>  LOOP: SJMP $ ;等待中斷 </p><p>  (2)中斷服務子程序 </p><p> ?。希遥?000BH </p><p> ?。粒剩停?

33、 BRT0 </p><p> ?。希遥?00BH </p><p> ?。拢遥裕希篋JNZ R0,NEXT </p><p>  AJMP TIME ; 跳轉(zhuǎn)到時間及信號燈顯示子程序 </p><p>  DJNZ:MOV RO,#14H ;恢復R0值 </p><p>  MOV TH0,

34、 #3CH ;重裝入定時器初值 </p><p>  MOV TL0, #BOH ; </p><p>  MOV IE, #82H </p><p><b> ?。遥牛裕?</b></p><p><b>  END </b></p><

35、p>  7) 3 軟件延時 </p><p>  MCS-51 的工作頻率為 2-12MHZ,我們選用的 8031 單片機的工作頻率為 6MHZ。機器周期與主頻有關,機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間。 </p><p>  具體的延時程序分析: </p&

36、gt;<p>  DELAY:MOV R4,#08H 延時 1秒子程序 </p><p>  DE2:LCALL DELAY1 </p><p>  DJNZ R4,DE2 </p><p>  RETDELAY1:MOV R6,#0 延時125ms 子程序 </p><p>  MOV R5,#0 </p

37、><p>  DE1: DJNZ R5,$ </p><p>  DJNZ R6,DE1 </p><p><b>  RET </b></p><p>  MOV RN,#DATA 字節(jié)數(shù)數(shù)為2 機器周期數(shù)為1 </p><p>  所以此指令的執(zhí)行時間為2ms </p&

38、gt;<p>  DELAY1 為一個雙重循壞 循環(huán)次數(shù)為 256*256=65536 所以延時時間=65536*2=1310約為125us </p><p>  DELAY R4設置的初值為8 主延時程序循環(huán)8次,所以125us*8= 1秒 </p><p>  由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。 </p><p>  (

39、1) 8051并行口的擴展 </p><p>  8051 雖然有 4 個 8 位 I/O 端口,但真正能提供借用的只有 P1 口,因為 P2 和 P0 口通于傳送外部傳送地址和數(shù)據(jù),P3 口也有它的第二功能。因此,8031 通常需要擴展。由于我們用外部輸入設定紅綠燈倒計時初值、數(shù)碼管的輸出顯示、紅綠黃信號燈的顯示都要一個I/O端口,顯然8031的端口是不夠,需要擴展。 </p><p>

40、  擴展的方法有兩種:(1)借用外部RAM 地址來擴展I/O端口;(2)采用I/O接口來擴充。我們用8255并行接口信片來擴展I/O端口。 </p><p><b>  (2)顯示原理: </b></p><p>  當定時器定時為 1 秒,時程序跳轉(zhuǎn)到時間顯示及信號燈顯示子程序,它將依次</p><p>  信號燈時間 ,同時一直顯示信號燈的

41、顏色,這時在返回定時子程序定時一秒,在顯燈的下一個時間,這樣依次把所有的燈色的時間顯示完后在重新給時間計數(shù)器賦初重新進入循環(huán)。 </p><p>  (3) 8255PA 口輸出信號接信號燈: </p><p>  由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對應的二極管發(fā)光,所以</p><p>  用置位方法點亮紅,綠,黃發(fā)光二極管。 </p>

42、;<p>  (4)8255輸出信號與數(shù)碼管的連接: </p><p>  LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點量示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH所以 SP上為0伏,不亮為TTL高電平,全亮則顯示為8 </p><p><b>  采用共陰級連接: </b></p>&

43、lt;p><b>  其中</b></p><p>  PC0\PB0-a, </p><p>  PC1\PB1-b, </p><p>  PC2\PB2-c,</p><p>  PC3\PB3-d, </p><p>  PC4\PB4-e, </p><

44、p>  PC5\PB5-f, </p><p>  PC6\PB6-g </p><p>  PC7\PB7 -SP接地 </p><p>  表 3 驅(qū)動代碼表 </p><p>  7)4.5 8255與8051的連接: </p><p>  用 8051 的 P0 口的 p0.7 連接 8255 的片選信

45、號 cs 我們用 8031 的地址采用方式,當p0.7 =0 時片選有效, 其他無效, p0.1 p0.1 用于選擇8255端口 </p><p>  P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0 </p><p>  A7 A6 A5 A4 A3 A2 A1 A0 </p><p>  1

46、 X X X X X 0 0 00H為8255 的PA口 </p><p>  1 X X X X X 0 1 01H 為8255的PB口 </p><p>  1 X X X X X 1 0 02H 為8255的PC口 </p><p&g

47、t;  1 X X X X X 1 1 03H 為8255的控制口 </p><p>  由于8051是分時對8255和儲存器進行訪問所以8051的P0口不會發(fā)生沖突 </p><p><b>  八、程序設計</b></p><p><b>  1 程序流程圖</b><

48、;/p><p><b>  2 程序源代碼</b></p><p>  ORG 0000H ;主程序的入口地址 </p><p>  LJMP MAIN ;跳轉(zhuǎn)到主程序的開始處 </p><p>  ORG 0003H ;外部中斷0的中斷程序入口地址 &l

49、t;/p><p>  ORG 000BH ;定時器0的中斷程序入口地址 LJMP T0_INT ;跳轉(zhuǎn)到中斷服務程序處 </p><p>  ORG 0013H ;外部中斷1的中斷程序入口地址 </p><p>  MAIN : MOV SP,#50H </p>&

50、lt;p>  MOV IE,#8EH ;CPU 開中斷,允許T0中斷,T1中斷和外部中斷1中斷 </p><p>  MOV TMOD,#51H ;設置T1為計數(shù)方式,T0為定時方式,且都工作于模式1</p><p>  MOV TH1,#00H ;T1 計數(shù)器清零 </p><p>  MOV TL1,#00H </p&g

51、t;<p>  SETB TR1 ;啟動T1計時器 </p><p>  SETB EX1 ;允許INT1 中斷 </p><p>  SETB IT1 ;選擇邊沿觸發(fā)方式 </p><p>  MOV DPTR ,#0003H </p><p>  MOV A, #80H

52、 ;給8255賦初值,8255工作于方式0 </p><p>  MOVX @DPTR, A </p><p>  AGAIN: JB P3.1,N0 ;判斷是否要設定東西方向紅綠燈時間的初值,若P3.1為1 跳轉(zhuǎn) </p><p>  MOV A,P1 </p><p>  JB P1.7,RED

53、 ;判斷P1.7是否為1,若為1則設定紅燈時間,否則設定綠燈間 </p><p>  MOV R0,#00H ;R0 清零 </p><p>  MOV R0,A ;存入東西方向綠燈初始時間 </p><p><b>  MOV R3,A </b></p><p>  LCALL DIS

54、P1 </p><p>  LCALL DELAY </p><p>  AJMP AGAIN </p><p>  RED: MOV A,P1 </p><p>  ANL A,#7FH ;P1.7 置0 </p><p>  MOV R7,#00H ;R7 清零 </p><

55、;p>  MOV R7,A ;存入東西方向紅燈初始時間 </p><p><b>  MOV R3,A </b></p><p>  LCALL DISP1 </p><p>  LCALL DELAY </p><p>  AJMP AGAIN </p><p>  ;---

56、---------------------------------------- </p><p>  N0: SETB TR0 ;啟動T0計時器 </p><p>  MOV 76H,R7 ;紅燈時間存入76H </p><p>  N00: MOV A,76H ;東西方向禁止,南北方向通行 </p&g

57、t;<p>  MOV R3,A </p><p>  MOV DPTR,#0000H ;置8255A口,東西方向紅燈亮,南北方向綠燈亮 MOV A,#0DDH </p><p>  MOVX @DPTR, A </p><p>  N01: JB P2.0,B0 </p><p>  N02:

58、 SETB P3.0 </p><p>  CJNE R3,#00H,N01 ;比較R3中的值是否為0,不為0轉(zhuǎn)到當前指令處</p><p>  ;------黃燈閃爍5秒程序------ </p><p>  N1: SETB P3.0 </p><p>  MOV R3,#05H </p><p>  M

59、OV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮 </p><p>  MOV A,#0D4H </p><p>  MOVX @DPTR,A </p><p>  N11: MOV R4,#00H </p><p>  N12: CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒 </p>

60、<p>  N13: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅 </p><p>  MOV A,#0DDH </p><p>  MOVX @DPTR,A </p><p>  N14: MOV R4,#00H </p><p>  CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒 &

61、lt;/p><p>  CJNE R3,#00H,N1 ;閃爍時間達5秒則退出</p><p>  ;-----------------------------------------------</p><p>  N2: MOV R7,#00H </p><p>  MOV A,R0 ;東西通行,南北禁止 </p>

62、<p><b>  MOV R3,A </b></p><p>  MOV DPTR,#0000H ; 置8255A口,東西方向綠燈亮,南北方向紅燈亮 </p><p>  MOV A,#0EBH </p><p>  MOVX @DPTR,A </p><p>  N21: JB P2.0,T03 &l

63、t;/p><p>  N22: CJNE R3,#00H,N21 </p><p>  ;------黃燈閃爍5秒程序------ </p><p>  N3: MOV R3,#05H </p><p>  MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮 </p><p>  MOV

64、 A,#0E2H </p><p>  MOVX @DPTR,A </p><p>  N31: MOV R4,#00H </p><p>  CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒 </p><p>  N32: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅 </p><

65、;p>  MOV A,#0EBH MOVX @DPTR,A </p><p>  N33: MOV R4,#00H </p><p>  CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒 </p><p>  CJNE R3,#00H,N3 ;閃爍時間達5秒則退出 </p><p><b>  S

66、JMP N00 </b></p><p>  ;------闖紅燈報警程序------ </p><p>  B0: MOV R2,#03H ;報警持續(xù)時間3秒 </p><p>  B01: MOV A,R3 </p><p>  JZ N1 ;若倒計時完畢,不再報警 </

67、p><p>  CLR P3.0 ;報警 </p><p>  CJNE R2,#00H,B01 ;判斷3 秒是否結(jié)束 </p><p>  SJMP N02 </p><p>  ;------1秒延時子程序------- </p><p>  N7: RETI </p>

68、<p>  T0_INT:MOV TL0,#9AH ;給定時器T0送定時10ms 的</p><p>  MOV TH0,#0F1H </p><p><b>  INC R4 </b></p><p><b>  INC R5 </b></p><p>  CJNE R

69、5,#0FAH,T01 ;判斷延時是否夠一秒,不夠則</p><p>  MOV R5,#00H ;R5 清零 </p><p>  DEC R3 ;倒計時初值減一 </p><p>  DEC R2 ;報警初值減一 </p><p>  T01: ACALL DISP

70、 ;調(diào)用顯示子程序 </p><p>  RETI ;中斷返回 </p><p>  ;------顯示子程序------ </p><p>  DISP: JNB P2.4,T02 </p><p>  DISP1: MOV B,#0AH </p><p>  MOV A,R3

71、 ;R3 中值二轉(zhuǎn)十顯示轉(zhuǎn)換 </p><p><b>  DIV AB </b></p><p>  MOV 79H,A </p><p>  MOV 7AH,B </p><p>  DIS: MOV A,79H ;顯示十位 </p><p>  

72、MOV DPTR,#TAB </p><p>  MOVC A,@A+DPTR </p><p>  MOV DPTR,#0002H </p><p>  MOVX @DPTR,A </p><p>  MOV DPTR,#0001H </p><p>  MOV A,#0F7H MOVX @DPTR,A

73、</p><p>  LCALL DELAY </p><p>  DS2: MOV A,7AH ;顯示個位 </p><p>  MOV DPTR,#TAB </p><p>  MOVC A,@A+DPTR </p><p>  MOV DPTR,#0002H </p>&

74、lt;p>  MOVX @DPTR,A </p><p>  MOV DPTR,#0001H </p><p>  MOV A,#0FBH </p><p>  MOVX @DPTR,A </p><p><b>  RET </b></p><p>  ;------東西方向車流量檢測程序

75、------ </p><p>  T03: MOV A,R3 </p><p>  SUBB A,#00H ;若綠燈倒計時完畢,不再檢測車</p><p>  JZ N3 </p><p>  JB P2.0,T03 </p><p>  INC R7

76、 </p><p>  CJNE R7,#64H,E1 </p><p>  MOV R7,#00H ;中斷到 100次則清零 </p><p>  E1: SJMP N22 </p><p>  ;------東西方向車流量顯示程序------ </p><

77、p>  T02: MOV B,#0AH </p><p>  MOV A,R7 ;R7 中值二轉(zhuǎn)十顯示轉(zhuǎn)換 </p><p><b>  DIV AB </b></p><p>  MOV 79H,A </p><p>  MOV 7AH,B </p><

78、p>  DIS3: MOV A,79H ;顯示十位 </p><p>  MOV DPTR,#TAB </p><p>  MOVC A,@A+DPTR </p><p>  MOV DPTR,#0002H </p><p>  MOVX @DPTR,A </p><p>  MOV DPT

79、R,#0001H </p><p>  MOV A,#0F7H </p><p>  MOVX @DPTR,A </p><p>  LCALL DELAY </p><p>  DS4: MOV A,7AH ;顯示個位 </p><p>  MOV DPTR,#TAB </p>

80、<p>  MOVC A,@A+DPTR MOV DPTR,#0002H </p><p>  MOVX @DPTR,A </p><p>  MOV DPTR,#0001H </p><p>  MOV A,#0FBH </p><p>  MOVX @DPTR,A </p><p><

81、b>  LJMP N7 </b></p><p>  ;------延時4MS子程序---------- </p><p>  DELAY: MOV R1,#0AH </p><p>  LOOP: MOV R6,#64H </p><p><b>  NOP </b></p>&

82、lt;p>  LOOP1: DJNZ R6,LOOP1 </p><p>  DJNZ R1,LOOP </p><p>  RET </p><p>  ;------字符表------ </p><p>  TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH &

83、lt;/p><p><b>  END </b></p><p>  九、調(diào)試程序所用的試驗設備</p><p>  實訓設備:單片機集成開發(fā)環(huán)境,綜合實訓板。</p><p>  十、模擬調(diào)試的過程和出現(xiàn)問題的分析</p><p> ?。?)開關鍵盤輸入交通燈初始時間,通過8051單片機P1 輸入到

84、系統(tǒng) </p><p>  (2) 由 8051 單片機的定時器每秒鐘通過 P0 口向 8255 的數(shù)據(jù)口送信息,由 8255 的PA 口顯示紅、綠、黃燈的燃亮情況;由8255的PC口顯示每個燈的燃亮時間。 </p><p>  (3)8051 通過 設置 各個信號等的燃亮時間、通過8031設置,綠、紅時間分別為60秒、80秒循環(huán)由8051的 P0 口向8255的數(shù)據(jù)口輸出。 <

85、/p><p> ?。?) 通過 8051 單片機的 P3.0 位來控制系統(tǒng)是工作或設置初值,當.牌位 0 就對系統(tǒng)進行初始化,為1系統(tǒng)就開始工作。 </p><p>  (5)紅燈倒計時時間,當有車輛闖紅燈時,啟動蜂鳴器進行報警,3S后然后恢復正常。</p><p> ?。?)增加每次綠燈時間車流量檢測的功能,并且通過查詢P2.0端口的電平是否為低,開關按下為低電平,雙

86、位數(shù)碼管顯示車流量,直到下一次綠燈時間重新記入。 </p><p>  (7)綠燈時間倒計時完畢,重新循環(huán)。 </p><p><b>  十一、設計的體會</b></p><p>  通過這次單片機課程設計,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新

87、可以是在原有的基礎上進行改進,使之功能不斷完善,成為真己的東西。設計結(jié)果能夠符合題意,成功完成了此次實習要求,我們不只在乎這一結(jié)果,更加在乎的,是這個過程。這個過程中,我們花費了大量的時間和精力,更重要的是,我們在學會創(chuàng)新的基礎上,同時還懂得合作精神的重要性,學會了與他人合作。我在萬老師的精心指導和嚴格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,單片機領域這對我今后進一步學習計算機方面的知識有極大的幫助。在此,忠心感謝老師以及許

88、多同學的指導和支持。我會繼續(xù)努力的......</p><p>  本系統(tǒng)就是充分利用了8051和8255芯片的I/O引腳。系統(tǒng)統(tǒng)采用MSC-51 系列單片機Intel8051和可編程并行I/O接口芯片 8255A為中心器件來設計交通燈控制器,實現(xiàn)了能根據(jù)實際車流量通過8031芯片的P1 口設置紅、綠燈燃亮時間的功能;紅綠燈循環(huán)點亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過PA口輸出,顯示時間直接通過8255的

89、PC口輸出至雙位數(shù)碼管);車輛闖紅燈報警;綠燈時間可檢測車流量并可通過雙位數(shù)碼管顯示。。系統(tǒng)不足之處不能控制車的左、右轉(zhuǎn)、以及自動根據(jù)車流改變紅綠燈時間等。這是由于本身地理位子以及車流量情況所定,如果有需要可以設計擴充原系統(tǒng)來實現(xiàn) 。 </p><p>  通過這次畢業(yè)設計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及在常用編程設計思路技巧(

溫馨提示

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

評論

0/150

提交評論