版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文) </b></p><p> 基于單片機(jī)的交通燈設(shè)計(jì)</p><p> 姓 名:XXX</p><p> 所在系部:自動(dòng)控制系</p><p> 專業(yè)班級(jí):自動(dòng)化XXX</p><p><b> 指導(dǎo)教師:XXX</b&
2、gt;</p><p><b> 2011年12月</b></p><p> Nanjing College of Chemical Technology</p><p> Graduation project:</p><p> Based on SCM traffic light design</p&g
3、t;<p> Candidate:XXX</p><p> Supervisor:QXXX</p><p><b> Dec,2011</b></p><p><b> 目 錄</b></p><p><b> 摘 要4</b></p>
4、<p><b> 第一章 引言5</b></p><p> 第二章交通管理方案論證6</p><p><b> 2.1設(shè)計(jì)任務(wù)6</b></p><p><b> 2.2方案介紹6</b></p><p> 第三章 交通燈系統(tǒng)硬件設(shè)計(jì)7<
5、/p><p> 3.1單片機(jī)概述7</p><p> 3.2芯片選擇與介紹7</p><p> 3.2.1 MCS-51芯片的簡介7</p><p> 3.2.2 8255芯片簡介10</p><p> 3.2.3 74LS373芯片簡介11</p><p> 第四章 控制器的
6、軟件設(shè)計(jì)12</p><p> 4.1 每秒鐘的設(shè)定12</p><p> 4.2 計(jì)數(shù)器硬件延時(shí)12</p><p> 4.3 軟件延時(shí)14</p><p> 4.4 時(shí)間及信號(hào)的顯示15</p><p> 4.5 程序設(shè)計(jì)17</p><p><b> 第五
7、章 結(jié)論26</b></p><p> 第六章 參考文獻(xiàn)27</p><p><b> 摘 要</b></p><p> 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測技術(shù)日益更新。在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬
8、件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機(jī)ATSC51和可編程并行I/O接口芯片8255A為中心器件來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過8051芯片的P1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩5秒時(shí)黃燈閃
9、爍警示(交通燈信號(hào)通過PA口輸出,顯示時(shí)間直接通過8255的PC口輸出至雙位數(shù)碼管);車輛闖紅燈報(bào)警;綠燈時(shí)間可檢測車流量并可通過雙位數(shù)碼管顯示。本系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。 </p><p><b> 關(guān)鍵詞:</b></p><p><b> 單片機(jī) </b></p><p><b> 交通燈
10、 </b></p><p><b> 闖紅燈 </b></p><p><b> 檢測車流量 </b></p><p><b> 第一章 引言</b></p><p> 當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19
11、世紀(jì)就已出現(xiàn)了。</p><p> 1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車通行。這是世界上最早的交通信號(hào)燈。1868年,英國機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p>
12、<p> 電氣啟動(dòng)的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p> 1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動(dòng)紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對(duì)
13、壓力敏感的路面時(shí),它就能察覺到有人要過馬路。紅外光束能把信號(hào)燈的紅燈延長一段時(shí)間,推遲汽車放行,以免發(fā)生交通事故。</p><p> 信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標(biāo)志信號(hào)協(xié)定》對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法
14、地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),面對(duì)紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號(hào),面對(duì)黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。</p><p> 第二章 交通管理方案論證</p><p><b> 2.1設(shè)計(jì)任務(wù):</b></p><p> 東西、南北兩
15、干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案如表2。</p><p> 表2 亮燈順序和間隔時(shí)間</p><p> 2.2方案介紹: </p><p>
16、(1)當(dāng)東西方向?yàn)榧t燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時(shí)間為60秒。</p><p> ?。?)黃燈閃爍5秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 </p><p> (3)當(dāng)東西方向?yàn)榫G燈,此道車輛通行;南北方向?yàn)榧t燈,南北道車輛禁止通過,行人通行。時(shí)間為100秒。 東西方向車流大 通行時(shí)間長。</p><
17、;p> ?。?)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。</p><p> ?。?)此表可根據(jù)車流量動(dòng)態(tài)設(shè)定紅綠燈初始值。</p><p> 第三章 交通燈系統(tǒng)硬件設(shè)計(jì)</p><p> 3.1單片機(jī)的概述:</p><p> 單片機(jī)是一塊集成電路芯片上集中了控制器、存儲(chǔ)器、運(yùn)算器和輸入輸出
18、端口的單片微型計(jì)算機(jī),它體積小,耗電省,主要用于構(gòu)成工業(yè)控制單元,在過程控制、智能儀表、機(jī)電一體化和家用電器等領(lǐng)域起著重要的控制作用,所以準(zhǔn)確反映單片機(jī)本質(zhì)的叫法應(yīng)是微控制器(Micro Controller Unit,MCU)。</p><p> 通常,單片機(jī)由單個(gè)集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一
19、個(gè)單片機(jī)控制系統(tǒng)。</p><p> 單片機(jī)自1976年由美國Inter公司推出MCS-48系列以來,從技術(shù)到應(yīng)用都有了相當(dāng)大的發(fā)展。經(jīng)過4個(gè)階段的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引腳的多功能化,以及低電壓、低功耗。</p><p> 可以說,二十一世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦
20、通常是指個(gè)人計(jì)算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成?,F(xiàn)在,單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。</p><p> 3.2芯片的選擇與介紹</p><p> 3.2.1 MSC-51芯片簡介</p><p> MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)</p><p> 8051是MCS-51系列
21、單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。 8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p><b> ·中央處理器:</b></p><p> 中央處理器(C
22、PU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作[4]。</p><p> ·數(shù)據(jù)存儲(chǔ)器(RAM)</p><p> 8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用
23、于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表[4]。</p><p> 圖1 8051內(nèi)部結(jié)構(gòu)圖</p><p> ·程序存儲(chǔ)器(ROM):</p><p> 8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格[4]。</p><p>
24、183;定時(shí)/計(jì)數(shù)器(ROM):</p><p> 8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向[4]。</p><p> ·并行輸入輸出(I/O)口:</p><p> 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸[4]。</p><p><b&g
25、t; ·全雙工串行口:</b></p><p> 8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用[4]。</p><p><b> ·中斷系統(tǒng):</b></p><p> 8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)
26、器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇[2]。</p><p><b> ·時(shí)鐘電路:</b></p><p> 8051內(nèi)置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。</p><p> 單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開
27、的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)[7]。</p><p> 下圖是MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖</p><p> 3.2.2 8255芯片簡介&l
28、t;/p><p> 8255可編程并行接口芯片簡介:</p><p> 8255可編程并行接口芯片有三個(gè)輸入輸出端口,即A口、B口和C口,對(duì)應(yīng)于引腳PA7~PA0、PB7~PB0和PC7~PC0。其內(nèi)部還有一個(gè)控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個(gè)端口包含一個(gè)4位鎖存器。它們分別與端口A/B配合
29、使用,可以用作控制信號(hào)輸出或作為狀態(tài)信號(hào)輸入[6]。</p><p> 8255可編程并行接口芯片方式控制字格式說明:</p><p> 8255有兩種控制命令字;一個(gè)是方式選擇控制字;另一個(gè)是C口按位置位/復(fù)位控制字。其中C口按位置位/復(fù)位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時(shí)用戶可自行查找有關(guān)資料。</p><p> 方式控制字格式說
30、明如表1:</p><p> 表1、方式選擇控制格式</p><p> D7:設(shè)定工作方式標(biāo)志,1有效。</p><p> D6、D5:A口方式選擇</p><p><b> 0 0 —方式0</b></p><p><b> 0 1 —方式1</b></p&
31、gt;<p><b> 1 ×—方式2</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=輸
32、出)</p><p> D0:C口低4位功能 (1=輸入,0=輸出)</p><p> 8255可編程并行接口芯片工作方式說明:</p><p> 方式0:基本輸入/輸出方式。適用于三個(gè)端口中的任何一個(gè)。每一個(gè)端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存[6]。</p><p> 方式1:選通輸入/輸出方式。這時(shí)A口或B口的8
33、位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)[6]。</p><p> 方式2 :雙向總線方式。只有A口具備雙向總線方式,8位外設(shè)線用作輸入或輸出,此時(shí)C口的5條線用作通訊聯(lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)[6]。</p><p> 2.3.3 74LS373簡介</p><p> 74LS373 是一種帶三態(tài)門的8D鎖存器,其管腳示意圖
34、如下示:</p><p> 其中:1D-8D為8個(gè)輸入端。</p><p> 1Q-8Q為8個(gè)輸出端。</p><p> LE為數(shù)據(jù)打入端:當(dāng)LE為“1”時(shí),鎖存器輸出</p><p> 狀態(tài)同輸入狀態(tài);當(dāng)LE由“1”變“0”時(shí),數(shù)據(jù)打入鎖存器</p><p> OE為輸出允許端:當(dāng)OE=0時(shí),三態(tài)門打開;&
35、lt;/p><p> 當(dāng)OE=1時(shí),三態(tài)門關(guān)閉,輸出高阻。</p><p> 第四章 控制器的軟件設(shè)計(jì)</p><p><b> 4.1每秒鐘的設(shè)定</b></p><p> 延時(shí)方法可以有兩種一中是利用MCS-51內(nèi)部定時(shí)器才生溢出中斷來確定1秒的時(shí)間,另一種是采用軟延時(shí)的方法。</p><p&
36、gt; 4.2計(jì)數(shù)器硬件延時(shí)</p><p> 4.2.1 計(jì)數(shù)器初值計(jì)算</p><p> 定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式:</p><p><b> TC=M-C
37、</b></p><p> 式中,M為計(jì)數(shù)器摸值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213 ;在方式1時(shí)M的值為216;在方式2和3為28。</p><p> 4.2.2 計(jì)算公式</p><p> T=(M-TC)T計(jì)數(shù)</p><p> 或TC=M-T/T計(jì)數(shù)</p><p> T計(jì)數(shù)
38、是單片機(jī)時(shí)鐘周期TCLK的12倍;TC為定時(shí)初值</p><p> 如單片機(jī)的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻</p><p> 方式0 TMAX=213 *1微秒=8.192毫秒</p><p> 方式1 TMAX=216?。?微秒=65.536毫秒</p><p> 顯然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間
39、,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題[1]。</p><p> 4.2.3 1秒的方法</p><p> 我們采用在主程序中設(shè)定一個(gè)初值為20的軟件計(jì)數(shù)器和使TO定時(shí)50毫秒.這樣每當(dāng)TO到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減1,然后判斷它是否為零,為零表示1秒已到可以返回到輸出時(shí)間顯示程序[
40、1]。</p><p> 4.2.4 相應(yīng)程序代碼</p><p><b> (1)主程序 </b></p><p> 定時(shí)器需定時(shí)50毫秒,故T0工作于方式1?!?lt;/p><p> 初值:TC=M-T/ T計(jì)數(shù) =216?。?0ms/1us=15536=3CBOH</p><p>&l
41、t;b> ORG 1000H</b></p><p> START: MOV TMOD, #01H ; 令T0為定時(shí)器方式1</p><p> MOV TH0, #3CH ; 裝入定時(shí)器初值</p><p> MOV TL0, #BOH ;</p><p> MOV IE,
42、#82H ; 開T0中斷</p><p> SEBT TRO ; 啟動(dòng)T0計(jì)數(shù)器</p><p> MOV RO, #14H ; 軟件計(jì)數(shù)器賦初值</p><p> LOOP: SJMP $ ; 等待中斷</p><p> ?。ǎ玻┲袛喾?wù)子程序</p><p> OR
43、G 000BH</p><p> AJMP BRTO</p><p> ORG 00BH</p><p> BRTO:DJNZ RO,NEXT</p><p> AJMP TIME ; 跳轉(zhuǎn)到時(shí)間及信號(hào)燈顯示子程序 </p><p> DJNZ:MOV RO,#14H ;
44、 恢復(fù)RO值</p><p> MOV TH0, #3CH ; 重裝入定時(shí)器初值</p><p> MOV TL0, #BOH </p><p> MOV IE, #82H</p><p><b> RET1</b></p><p><b> EN
45、D</b></p><p><b> 4.3 軟件延時(shí)</b></p><p> MCS-51的工作頻率為2-12MHZ,我們選用的8051單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時(shí)間。<
46、;/p><p> 具體的延時(shí)程序分析:</p><p> DELAY: MOV R4,#08H ;延時(shí)1秒子程序</p><p> DE2:LCALL DELAY1 </p><p> DJNZ R4,DE2</p><p><b> RET</b></p><p
47、> DELAY1:MOV R6,#0 ;延時(shí)125ms 子程序</p><p><b> MOV R5,#0</b></p><p> DE1: DJNZ R5,$</p><p> DJNZ R6,DE1</p><p><b> RET</b></p><
48、;p> MOV RN,#DATA 字節(jié)數(shù)數(shù)為2 ;機(jī)器周期數(shù)為1</p><p> 所以此指令的執(zhí)行時(shí)間為2ms </p><p> DELAY1 為一個(gè)雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時(shí)時(shí)間=65536*2=131072us 約為125us </p><p> DELAY R4設(shè)置的初值為8 主延時(shí)程序循環(huán)8
49、次,所以125us*8= 1秒</p><p> 由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)[4]。</p><p> 4.4 時(shí)間及信號(hào)燈的顯示</p><p> 4.4.1 8051并行口的擴(kuò)展</p><p> 8051雖然有4個(gè)8位I/O端口,但真正能提供借用的只有P1口,因?yàn)镻2和P0口通常用于傳送外部傳送地址
50、和數(shù)據(jù),P3口也有它的第二功能。因此,8031通常需要擴(kuò)展。由于我們用外部輸入設(shè)定紅綠燈倒計(jì)時(shí)初值、數(shù)碼管的輸出顯示、紅綠黃信號(hào)燈的顯示都要用到一個(gè)I/O端口,顯然8031的端口是不夠,需要擴(kuò)展。</p><p> 擴(kuò)展的方法有兩種:(1)借用外部RAM地址來擴(kuò)展I/O端口;(2)采用I/O接口新片來擴(kuò)充。我們用8255并行接口信片來擴(kuò)展I/O端口[10]。</p><p> 4.4.
51、2顯示原理:</p><p> 當(dāng)定時(shí)器定時(shí)為1秒,時(shí)程序跳轉(zhuǎn)到時(shí)間顯示及信號(hào)燈顯示子程序,它將依次顯示信號(hào)燈時(shí)間 ,同時(shí)一直顯示信號(hào)燈的顏色,這時(shí)在返回定時(shí)子程序定時(shí)一秒,在顯示黃燈的下一個(gè)時(shí)間,這樣依次把所有的燈色的時(shí)間顯示完后在重新給時(shí)間計(jì)數(shù)器賦初值 ,重新進(jìn)入循環(huán)。 </p><p> 4.4.3 8255PA口輸出信號(hào)接信號(hào)燈</p><p>
52、 由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對(duì)應(yīng)的二極管發(fā)光,所以可以用置位方法點(diǎn)亮紅,綠,黃發(fā)光二極管。</p><p> 8255輸出信號(hào)與數(shù)碼管的連接</p><p> LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)量而顯示不同的字形如 SP,g,f,e,d,c,b,a管角上加上7FH所以?。樱猩蠟椋胺?,不亮其余為TTL高電平,全亮則顯示為8[10]
53、。</p><p><b> 采用共陰級(jí)連接:</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
54、, </p><p> PC5\PB5-f,</p><p><b> PC6\PB6-g</b></p><p> PC7\PB7 -SP接地</p><p> 表 3 驅(qū)動(dòng)代碼表</p><p> 4.4.4 8255與8051的連接</p><p>
55、 用8051的P0 口的 p0.7 連接8255的片選信號(hào)CS我們用8031的地址采用全譯碼方式,當(dāng)p0.7 =0 時(shí)片選有效, 其他無效, 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>
56、<p> 1 X XXXX 0 0 00H為8255 的PA口</p><p> 1 X XXXX 0 1 01H 為8255的PB口</p><p> 1 X XXXX 1 0 02H 為8255的PC口</p><p> 1 X XXXX 1
57、 1 03H 為8255的控制口</p><p> 由于8051是分時(shí)對(duì)8255和儲(chǔ)存器進(jìn)行訪問所以8051的P0口不會(huì)發(fā)生沖突[10]。</p><p><b> 4.5 程序設(shè)計(jì)</b></p><p> 4.5.1流程圖如圖所示[11]</p><p><b> 圖9 程序流程圖</b&
58、gt;</p><p> 4.5.2 程序源代碼[11]</p><p> ORG 0000H ;主程序的入口地址</p><p> LJMP MAIN ;跳轉(zhuǎn)到主程序的開始處</p><p> ORG 0003H ;外部中斷0的中斷程序入口地址 </p>
59、<p> ORG 000BH ;定時(shí)器0的中斷程序入口地址</p><p> LJMP T0_INT ;跳轉(zhuǎn)到中斷服務(wù)程序處</p><p> ORG 0013H ;外部中斷1的中斷程序入口地址 </p><p> MAIN : MOV SP,#50H</p><p>
60、; MOV IE,#8EH ;CPU開中斷,允許T0中斷,T1中斷和外部中斷1中斷</p><p> MOV TMOD,#51H ;設(shè)置T1為計(jì)數(shù)方式,T0為定時(shí)方式,且都工作于模式1</p><p> MOV TH1,#00H ;T1計(jì)數(shù)器清零</p><p> MOV TL1,#00H</p><p>
61、; SETB TR1 ;啟動(dòng)T1計(jì)時(shí)器</p><p> SETB EX1 ;允許INT1中斷</p><p> SETB IT1 ;選擇邊沿觸發(fā)方式</p><p> MOV DPTR ,#0003H</p><p> MOV A, #80H ;給8255賦初值,82
62、55工作于方式0</p><p> MOVX @DPTR, A</p><p> AGAIN: JB P3.1,N0 ;判斷是否要設(shè)定東西方向紅綠燈時(shí)間的初值,若P3.1為1 則跳轉(zhuǎn)</p><p><b> MOV A,P1</b></p><p> JB P1.7,RED ;判斷P1.7
63、是否為1,若為1則設(shè)定紅燈時(shí)間,否則設(shè)定綠燈時(shí)間 </p><p> MOV R0,#00H ;R0清零</p><p> MOV R0,A ;存入東西方向綠燈初始時(shí)間</p><p><b> MOV R3,A</b></p><p> LCALL DISP1</p>
64、<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><p> MOV R7,A
65、 ;存入東西方向紅燈初始時(shí)間</p><p><b> MOV R3,A</b></p><p> LCALL DISP1</p><p> LCALL DELAY</p><p> AJMP AGAIN</p><p> ;----------------------------
66、---------------</p><p> N0: SETB TR0 ;啟動(dòng)T0計(jì)時(shí)器</p><p> MOV 76H,R7 ;紅燈時(shí)間存入76H</p><p> N00: MOV A,76H ;東西方向禁止,南北方向通行</p><p><b> MOV R
67、3,A</b></p><p> MOV DPTR,#0000H ;置8255A口,東西方向紅燈亮,南北方向綠燈亮</p><p> MOV A,#0DDH</p><p> MOVX @DPTR, A</p><p> N01: JB P2.0,B0</p><p> N02: SET
68、B P3.0</p><p> CJNE R3,#00H,N01 ;比較R3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行</p><p> ;------黃燈閃爍5秒程序------</p><p> N1: SETB P3.0</p><p> MOV R3,#05H</p><p> MOV DPTR
69、,#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><p> N
70、13: 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秒</p><p&
71、gt; CJNE R3,#00H,N1 ;閃爍時(shí)間達(dá)5秒則退出</p><p> ;------------------------------------------------------------</p><p> N2: MOV R7,#00H</p><p> MOV A,R0 ;東西通行,南北禁止</p><p
72、><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</p>&
73、lt;p> N22: CJNE R3,#00H,N21</p><p> ;------黃燈閃爍5秒程序------</p><p> N3: MOV R3,#05H</p><p> MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮</p><p> MOV A,#0E2H</p&
74、gt;<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><p> MOV A,#0EBH&
75、lt;/p><p> MOVX @DPTR,A</p><p> N33: MOV R4,#00H</p><p> CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒</p><p> CJNE R3,#00H,N3 ;閃爍時(shí)間達(dá)5秒則退出</p><p><b> SJMP N00&
76、lt;/b></p><p> ;------闖紅燈報(bào)警程序------</p><p> B0: MOV R2,#03H ;報(bào)警持續(xù)時(shí)間3秒</p><p> B01: MOV A,R3</p><p> JZ N1 ;若倒計(jì)時(shí)完畢,不再報(bào)警</p><p&
77、gt; CLR P3.0 ;報(bào)警 </p><p> CJNE R2,#00H,B01 ;判斷3秒是否結(jié)束</p><p><b> SJMP N02</b></p><p> ;------1秒延時(shí)子程序-------</p><p> N7: RETI</p>
78、<p> T0_INT:MOV TL0,#9AH ;給定時(shí)器T0送定時(shí)10ms的初值</p><p> MOV TH0,#0F1H </p><p><b> INC R4</b></p><p><b> INC R5</b></p><p> CJNE R5,
79、#0FAH,T01 ;判斷延時(shí)是否夠一秒,不夠則調(diào)用顯示子程序</p><p> MOV R5,#00H ;R5清零</p><p> DEC R3 ;倒計(jì)時(shí)初值減一</p><p> DEC R2 ;報(bào)警初值減一</p><p> T01: ACALL DIS
80、P ;調(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
81、 ;R3中值二轉(zhuǎn)十顯示轉(zhuǎn)換</p><p><b> DIV AB</b></p><p><b> MOV 79H,A</b></p><p><b> MOV 7AH,B</b></p><p> DIS: MOV A,79H
82、 ;顯示十位</p><p> 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
83、A,#0F7H</p><p> MOVX @DPTR,A</p><p> LCALL DELAY</p><p> DS2: MOV A,7AH ;顯示個(gè)位</p><p> MOV DPTR,#TAB </p><p> MOVC A,@A+DPTR</p>&l
84、t;p> 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><b> RET</b></p>
85、;<p> ;------東西方向車流量檢測程序------</p><p> T03: MOV A,R3</p><p> SUBB A,#00H ;若綠燈倒計(jì)時(shí)完畢,不再檢測車流量</p><p> JZ N3 </p><p> JB P2.0,T03</
86、p><p> INC R7 </p><p> CJNE R7,#64H,E1 </p><p> MOV R7,#00H ;中斷到100次則清零</p><p> E1: SJMP N22</p><p> ;------東西方向車流量顯示
87、程序------</p><p> T02: MOV B,#0AH</p><p> MOV A,R7 ;R7中值二轉(zhuǎn)十顯示轉(zhuǎn)換</p><p><b> DIV AB</b></p><p><b> MOV 79H,A</b></p>
88、<p><b> MOV 7AH,B</b></p><p> DIS3: MOV A,79H ;顯示十位</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#0002H</p>&l
89、t;p> MOVX @DPTR,A</p><p> MOV DPTR,#0001H</p><p> MOV A,#0F7H</p><p> MOVX @DPTR,A</p><p> LCALL DELAY</p><p> DS4: MOV A,7AH ;顯示個(gè)位<
90、;/p><p> 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,#0FBH<
91、/p><p> MOVX @DPTR,A</p><p><b> LJMP N7</b></p><p> ;------延時(shí)4MS子程序----------</p><p> DELAY: MOV R1,#0AH</p><p> LOOP: MOV R6,#64H</p&g
92、t;<p><b> NOP</b></p><p> LOOP1: DJNZ R6,LOOP1</p><p> DJNZ R1,LOOP</p><p> RET </p><p> ;------字符表------</p><p> TAB:
93、DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH </p><p><b> END</b></p><p><b> 第五章 結(jié)論</b></p><p> 本系統(tǒng)就是充分利用了8051和8255芯片的I/O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機(jī)Intel8051和可編程并行I
94、/O接口芯片8255A為中心器件來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過8051芯片的P1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩5秒時(shí)黃燈閃爍警示(交通燈信號(hào)通過PA口輸出,顯示時(shí)間直接通過8255的PC口輸出至雙位數(shù)碼管);車輛闖紅燈報(bào)警;綠燈時(shí)間可檢測車流量并可通過雙位數(shù)碼管顯示。系統(tǒng)不足之處不能控制車的左、右轉(zhuǎn)、以及自動(dòng)根據(jù)車流改變紅綠燈時(shí)間等。這是由于本身地理位置以及車流量情況所定,如果有需要可以設(shè)計(jì)擴(kuò)充原
95、系統(tǒng)來實(shí)現(xiàn)。</p><p> 通過這次畢業(yè)設(shè)計(jì),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計(jì)思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。</p><p><b> 參考文獻(xiàn)</b></p><p>
96、 [1] 張毅坤. 單片微型計(jì)算機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版社,1998 </p><p> [2] 余錫存 曹國華.單片機(jī)原理及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000.7</p><p> [3] 雷麗文 等.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.2</p><p> [4] 李廣弟,等.單片機(jī)基礎(chǔ)[M].北京:北京
97、航空航天大學(xué)出版社,2001</p><p> [5] 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)——系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1990</p><p> [6] 蘇家健,等.單片機(jī)原理及應(yīng)用技術(shù)[M].北京:高等教育出版社,2004</p><p> [7] 趙曉安. MCS-51單片機(jī)原理及應(yīng)用.天津:天津大學(xué)出版社,2001
98、.3</p><p> [8] 夏繼強(qiáng). 單片機(jī)實(shí)驗(yàn)與實(shí)踐教程.北京:北京航空航天大學(xué)出版社,2001</p><p> [9] 陳志強(qiáng) 胡輝.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)踐指南.自編教材</p><p> [10] 徐惠民 安德寧.單片機(jī)微型計(jì)算機(jī)原理接口及應(yīng)用.第1版.北京:北京郵電大學(xué)出版社,1996</p><p> [11] 樓然苗
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈畢業(yè)設(shè)計(jì)---- 基于單片機(jī)的交通燈設(shè)計(jì)
- 交通燈畢業(yè)設(shè)計(jì)--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)
- 電氣工程及其自動(dòng)化畢業(yè)設(shè)計(jì)基于單片機(jī)的交通燈設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)交通燈的設(shè)計(jì)
- 基于單片機(jī)的交通燈畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的交通燈設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-基于單片機(jī)的交通燈設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的交通燈設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)交通燈的設(shè)計(jì)
- 基于單片機(jī)的交通燈設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)交通燈設(shè)計(jì)
- 基于單片機(jī)的交通燈畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)交通燈畢業(yè)設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于51單片機(jī)的交通燈系統(tǒng)
- 單片機(jī)畢業(yè)設(shè)計(jì)---單片機(jī)控制交通燈
- 基于8051單片機(jī)自動(dòng)控制交通燈畢業(yè)設(shè)計(jì)
- 城市交通燈畢業(yè)設(shè)計(jì)---基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
- 基于單片機(jī)的智能交通燈畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論