版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《計(jì)算機(jī)原理及接口技術(shù)》 課程設(shè)計(jì)報(bào)告</p><p> 題 目 交通控制系統(tǒng)設(shè)計(jì) </p><p> 學(xué)院(部) 電子與控制工程學(xué)院 </p><p> 專 業(yè) 建筑設(shè)施智能技術(shù) </p><p> 班 級(jí)
2、 </p><p> 學(xué)生姓名 </p><p> 學(xué) 號(hào) </p><p> 2011年12 月 18日至2011年 12 月 29日 </p><p><b> 前 言</b&
3、gt;</p><p> 隨著社會(huì)經(jīng)濟(jì)的發(fā)展,城市問題越來越引起人們的關(guān)注。人、車、路三者關(guān)系的協(xié)調(diào),已成為交通管理部門需要解決的重要問題之一。城市交通控制系統(tǒng)是用于城市交通數(shù)據(jù)檢測、交通信號(hào)燈控制與交通疏通的計(jì)算機(jī)綜合管理系統(tǒng),它是現(xiàn)代城市交通監(jiān)控指揮系統(tǒng)中最重要的組成部分。</p><p> 隨著城市機(jī)動(dòng)車量的不斷增加,組多大城市如北京、上海、南京等出現(xiàn)了交通超負(fù)荷運(yùn)行的情況,因此
4、,自80年代后期,這些城市紛紛修建城市高速通道,在高速道路建設(shè)完成的初期,它們也曾有效地改善了交通狀況。然而,隨著交通量的快速增長和缺乏對(duì)高速道路的系統(tǒng)研究和控制,高速道路沒有充分發(fā)揮出預(yù)期的作用。而城市高速道路在構(gòu)造上的特點(diǎn),也決定了城市高速道路的交通狀況必然受高速道路與普通道路耦合處交通狀況的制約。所以,如何采用合適的控制方法,最大限度利用好耗費(fèi)巨資修建的城市高速通道,緩解主干道與匝道、城市同周邊地區(qū)的交通擁堵狀況,越來越成為交通運(yùn)
5、輸管理和城市規(guī)劃部門亟待解決的主要問題。</p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通燈的控制方式很多,本系統(tǒng)采用Intel8086為中心器件來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)本系統(tǒng)的各種功能。同時(shí),本系統(tǒng)實(shí)用性強(qiáng),操作簡單。</p><p><b> 關(guān)鍵字:交通燈</b>
6、</p><p><b> 目 錄</b></p><p> 前 言………………………………………………………………… 1</p><p> 關(guān)鍵字……………………………………………………………………1</p><p> 設(shè)計(jì)任務(wù)…………………………………………………………………3</p>
7、<p> 第一章 系統(tǒng)概述………………………………………………………4</p><p> 第二章 單元方案選擇與論證…………………………………………5</p><p> 硬件設(shè)計(jì)………………………………………………………5</p><p> 軟件設(shè)計(jì)………………………………………………………12</p><p> 第三
8、章 交通燈控制系統(tǒng)總電路圖……………………………………15</p><p> 第四章 源程序 ………………………………………………………16</p><p> 心得與體會(huì)………………………………………………………………26</p><p> 參考文獻(xiàn)…………………………………………………………………26</p><p> 指導(dǎo)教
9、師評(píng)語……………………………………………………………27</p><p><b> 一、設(shè)計(jì)任務(wù):</b></p><p><b> ?。ㄒ唬┰O(shè)計(jì)要求:</b></p><p> ?。?)設(shè)A道為東西方向,B道為南北方向。A道和B道上均有車輛要求通過時(shí),A、B道輪流放行。A道放行X分鐘),B道放行Y分鐘 。</p&
10、gt;<p> ?。?)一道有車而另一道無車時(shí),交通燈控制系統(tǒng)應(yīng)能立即讓有車道放行。</p><p> ?。?)交通燈的變化狀態(tài)如表1所示。A車道與B車道之間的切換時(shí)間為2秒(即:黃燈閃的時(shí)間)。</p><p> 表1 交通燈狀態(tài)表</p><p> (4)當(dāng)有急救車和消防車時(shí),A、B道紅燈亮,以禁止普通車輛通過并讓其穿紅燈而過。只有當(dāng)其通過
11、后,交通燈才恢復(fù)到正常的狀態(tài)。(用中斷技術(shù)實(shí)現(xiàn))</p><p> ?。?)顯示燈控時(shí)間,當(dāng)時(shí)間到時(shí)或剩余若干秒時(shí),聲報(bào)警提示</p><p><b> ?。ǘU(kuò)充功能</b></p><p> ?。?)轉(zhuǎn)彎道的路燈控制</p><p> ?。?)分時(shí)區(qū)控制功能:如6:00~22:00正常路燈控制,22:00~次日6:
12、00, 黃燈閃爍控制模式。</p><p><b> 系統(tǒng)概述</b></p><p> 1.1設(shè)計(jì)步驟與思路</p><p> 1.1.1 總框圖設(shè)計(jì)構(gòu)思</p><p> 在通過對(duì)題目以及要求的分析和思考,明確了設(shè)計(jì)任務(wù)的功能后,我們將設(shè)計(jì)過程分為五大模塊,并分析各個(gè)模塊之間的工作關(guān)系,最后將各模塊組合在一起
13、畫出總體功能模塊圖,并完成實(shí)現(xiàn)整體的電路圖,最終使用Proteus模擬器模擬其實(shí)際功能,最終完成設(shè)計(jì)書。</p><p> 1.1.2 各單元的構(gòu)思 </p><p> 對(duì)于不通的實(shí)驗(yàn)要求對(duì)各模塊進(jìn)行分析,這個(gè)題目是一個(gè)硬件與軟件相結(jié)合的系統(tǒng),通過研究,我們根據(jù)總電路的功能的劃分,結(jié)合我們所學(xué)習(xí)過的知識(shí)對(duì)該系統(tǒng)進(jìn)行具體的構(gòu)思設(shè)計(jì)各單元模塊
14、,在實(shí)現(xiàn)各模塊構(gòu)思設(shè)計(jì)時(shí),從要實(shí)現(xiàn)的功能及如何實(shí)現(xiàn)等方面著手,從熟悉的芯片與原件入手,選擇相應(yīng)的元器件及芯片,再進(jìn)行細(xì)節(jié)設(shè)計(jì),最后使用Proteus對(duì)其進(jìn)行仿真與測試。</p><p> 1.1.3 總電路圖的構(gòu)思</p><p> (1)在以上步驟中設(shè)計(jì)好單元模塊后,再從各個(gè)單元功能模塊間的控制關(guān)系著手,選擇最優(yōu)方案,分別對(duì)各單元功能模塊進(jìn)行檢驗(yàn)論證,在保證各個(gè)模塊間無沖突,均能正常
15、運(yùn)行。</p><p> (2)在仿真無誤后,對(duì)整體電路進(jìn)行誤差分析,確定符合要求后,對(duì)模塊間進(jìn)行連接時(shí)電路圖完整。而本設(shè)計(jì)的應(yīng)重點(diǎn)分析部分。</p><p> (3)根據(jù)整體的電路的分布進(jìn)行分劃,設(shè)計(jì)好各個(gè)元件之間的連接以及位置,最后完成總的電路圖。</p><p> 第二章 單元電路設(shè)計(jì)與分析</p><p><b>
16、 一、硬件設(shè)計(jì)</b></p><p><b> 1.譯碼電路設(shè)計(jì)</b></p><p> 通過分析8259、8253、8255各端口地址,設(shè)計(jì)合理的地址譯碼電路。8259的地址為00H、01H、8253的地址為30H、31H、33H,8255的端口地址為70H、71H、72H、73H。采用獨(dú)立編址的部分譯碼電路,具體見下圖所示:</p>
17、<p><b> 2.計(jì)時(shí)中斷模式</b></p><p> 2.1 8253級(jí)聯(lián)方式</p><p> 本設(shè)計(jì)中采用計(jì)數(shù)器0的輸出做計(jì)數(shù)器1的輸入做級(jí)聯(lián),計(jì)數(shù)器0的時(shí)鐘頻率為1.19MHZ,其中計(jì)數(shù)器0和1都采用方式2工作</p><p> 8259與8253連接</p><p><b&g
18、t; 3.中斷模塊</b></p><p><b> 4.并行通信模塊</b></p><p><b> 5.主電路模塊</b></p><p><b> 3.芯片介紹</b></p><p> 3.1 計(jì)時(shí)器/定時(shí)器8253</p>&
19、lt;p><b> (1)內(nèi)部結(jié)構(gòu)</b></p><p> 8253是Intel公司生產(chǎn)的三通道16位的可編程定時(shí)/計(jì)時(shí)器,24引腳雙列直插封裝。8253的內(nèi)部結(jié)構(gòu)由數(shù)據(jù)總線緩沖器,讀、寫控制邏輯,3個(gè)獨(dú)立的計(jì)數(shù)器三部分組成。 </p><p><b> 1)數(shù)據(jù)總線緩沖器</b></p&
20、gt;<p> 這是一個(gè)三態(tài)8位雙向緩沖器,D7—D0同系統(tǒng)數(shù)據(jù)總線相連。CPU通過執(zhí)行輸入/輸出指令來實(shí)現(xiàn)對(duì)緩沖器發(fā)送或接受數(shù)據(jù)。8253的控制字也是通過該緩沖器傳送的。</p><p><b> 2)讀、寫控制邏輯</b></p><p> 讀、寫控制邏輯用來管理數(shù)據(jù)信息和控制字的傳送,它接收來自CPU地址總線和控制總線的有關(guān)信號(hào),向3個(gè)獨(dú)立的
21、計(jì)數(shù)器的控制部件發(fā)送命令。對(duì)8253進(jìn)行控制的信號(hào)有:</p><p> A1,A0:片內(nèi)寄存器選擇信號(hào);</p><p> CS:片選信號(hào),低電平有效;</p><p> RD:讀信號(hào),低電平有效;</p><p> WR:寫信號(hào),低電平有效。</p><p> 控制信號(hào)CS,RD,WR以及A1,A0的組合
22、可以實(shí)現(xiàn)對(duì)三個(gè)計(jì)數(shù)器和控制寄存器的讀寫操作。</p><p><b> 3)計(jì)數(shù)器</b></p><p> 三個(gè)計(jì)數(shù)器中每一個(gè)都有三條信號(hào)線:</p><p> CLK:計(jì)數(shù)輸入,用于輸入定時(shí)基準(zhǔn)脈沖或計(jì)數(shù)脈沖;</p><p> OUT:輸出信號(hào),以相應(yīng)的電平指示計(jì)數(shù)的完成或輸出脈沖波形;</p>
23、<p> GATE:選通輸入,用于啟動(dòng)或禁止計(jì)數(shù)器的操作,以使計(jì)數(shù)器和計(jì)數(shù)器輸入信號(hào)同步。</p><p> 每個(gè)計(jì)數(shù)器中有四個(gè)寄存器:</p><p> a.6位的控制寄存器,初始化時(shí),將控制字寫入該寄存器;</p><p> b.16位的計(jì)數(shù)初值寄存器,初始化時(shí)寫入該計(jì)數(shù)器的初始值,其最大初始值為0000H;</p><
24、p> c.16位的減計(jì)數(shù)器,計(jì)數(shù)初值由計(jì)數(shù)初值寄存器送入減計(jì)數(shù)寄存器,當(dāng)計(jì)數(shù)輸入端輸入一個(gè)計(jì)數(shù)脈沖時(shí),減計(jì)數(shù)寄存器內(nèi)容減一;</p><p> d.16位的輸出鎖存器用來鎖存計(jì)數(shù)執(zhí)行部件的內(nèi)容,從而使CPU可以對(duì)此進(jìn)行讀操作.</p><p><b> ?。?) 工作方式</b></p><p> 8253有六種工作方式:</
25、p><p> ?。?)方式0:計(jì)數(shù)結(jié)束中斷</p><p> (2)方式1:復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器</p><p> ?。?)方式2:頻率發(fā)生器</p><p> (4)方式3:方波發(fā)生器</p><p> ?。?)方式4:軟件觸發(fā)選通信號(hào)</p><p> ?。?)方式5:硬件觸發(fā)選通信號(hào)<
26、;/p><p><b> 計(jì)數(shù)啟動(dòng)方式:</b></p><p> a.軟件啟動(dòng):GATE端為高電平,置入計(jì)數(shù)初值后的第2個(gè)CLK脈沖的下降沿。</p><p> b.硬件啟動(dòng):GATE端有一個(gè)上升沿,對(duì)應(yīng)CLK脈沖的下降沿</p><p> 計(jì)數(shù)過程中,可用門控脈沖GATE重新啟動(dòng)計(jì)數(shù)。當(dāng)GATE變低時(shí),現(xiàn)行計(jì)數(shù)暫
27、停,變高后,下一個(gè)CLK輸入脈沖使減一計(jì)數(shù)器恢復(fù)計(jì)數(shù)初值重新開始計(jì)數(shù),所以可用一個(gè)外部控制邏輯來控制GATE,從而達(dá)到同步計(jì)數(shù)的作用</p><p><b> (3) 控制字</b></p><p> 8253只有一個(gè)控制字,其格式和含義如圖3-2-1所示</p><p> 圖3-2-1 8253控制字</p><
28、p> 8253的控制寄存器和3個(gè)計(jì)數(shù)器分別具有獨(dú)立的編程地址,并且控制字本身的內(nèi)容又確定了所控制的寄存器序號(hào),所以對(duì)8253的編程沒有太多嚴(yán)格的順序規(guī)定,使用非常靈活。但是,編程有3條原則必須嚴(yán)格遵守:</p><p> 1)在選擇任何一種工作方式下,都必須先向8253寫入控制字,控制字還起復(fù)位作用,它使OUT端變?yōu)楣ぷ鞣绞街幸?guī)定的狀態(tài)和對(duì)計(jì)數(shù)初值寄存器清零。</p><p>
29、 2)對(duì)計(jì)數(shù)器設(shè)置初值前必須先寫控制字,在設(shè)置計(jì)數(shù)初值時(shí),要符合控制字中的格式規(guī)定,控制字中一旦規(guī)定,具體初始值設(shè)定時(shí)就要與之一致。</p><p> 3)讀取當(dāng)前計(jì)數(shù)值時(shí),必須設(shè)置鎖存操作控制字。由于8253對(duì)外的數(shù)據(jù)線只有8根,對(duì)16位計(jì)數(shù)器進(jìn)行寫入或讀取當(dāng)前計(jì)數(shù)值時(shí),需要分兩次進(jìn)行;由于兩次讀/寫之間存在時(shí)間間隔,這期間可能恰好有計(jì)數(shù)脈沖,所以讀出的值帶有隨機(jī)性,為了使CPU能獲得計(jì)數(shù)器某一時(shí)刻準(zhǔn)確的值,
30、8253設(shè)置了鎖存操作。當(dāng)控制字的D5,D4位為00時(shí),表示鎖存。當(dāng)鎖存命令到來時(shí),減一計(jì)數(shù)器記到某一個(gè)值,因?yàn)殒i存器是跟隨減一計(jì)數(shù)器工作的,所以,鎖存器中為同一個(gè)值,此時(shí),這一數(shù)值被鎖住,當(dāng)CPU將此鎖定值置后,鎖存器自動(dòng)失鎖,于是又跟隨計(jì)數(shù)器變化。</p><p> 3.2 中段控制器8259A</p><p> 8259A是一種可由軟件進(jìn)行控制的中斷控制器,可以使用于各種不同
31、環(huán)境,具有很強(qiáng)的中斷管理功能。</p><p> 8259A主要功能有:</p><p> a.每片8259A可管理8級(jí)優(yōu)先權(quán)中斷源,在基于不增加其他電路的情況下,通過8259A的級(jí)聯(lián),最多可管理64級(jí)優(yōu)先級(jí)的中斷源;</p><p> b對(duì)任何一個(gè)級(jí)別的中斷源都可以單獨(dú)進(jìn)行屏蔽,使該級(jí)中斷請求暫時(shí)被禁止,直到取消屏蔽時(shí)為止;</p><p
32、> c.向CPU提供可編程的標(biāo)識(shí)碼,對(duì)于8086-Pentium的CPU來說就是中斷類型碼。</p><p> d.具有六種中斷優(yōu)先權(quán)管理方式,即全嵌套方式、特殊全嵌套方式、自動(dòng)循環(huán)方式、特殊循環(huán)方式、特殊屏蔽方式、中斷查詢方式,這些管理方式均可通過程序動(dòng)態(tài)的進(jìn)行變化;</p><p> e.具有三種中斷結(jié)束方式,即自動(dòng)中斷結(jié)束方式,一般的中斷結(jié)束方式和特殊的中斷結(jié)束方式;&l
33、t;/p><p> f.8259A用NMOS工藝制作,只需要一組+5V電源。</p><p> 3.3可編程并行接口8255 </p><p><b> (1)內(nèi)部結(jié)構(gòu)</b></p><p> 8255為可編程的并行接口芯片,具有40個(gè)引腳,雙列直插DIP封裝,+5V供電,全部信號(hào)與TTL電平兼容。</p&g
34、t;<p><b> 8255的特點(diǎn)有:</b></p><p> a.具有三個(gè)并行數(shù)據(jù)傳輸端口:A端口、B端口、C端口;</p><p> b.每個(gè)端口擁有不同的工作方式:A口具有3種工作方式;B口具有2種工作方式;C口只有1種工作方式;</p><p> c.每個(gè)端口工作在輸出方式時(shí),具有鎖存功能;</p>
35、<p> d.可以通過編程設(shè)置成4位端口,8位端口,12位端口,16位端口,20位端口或24位端口;</p><p> 8255由四部分組成,如下圖3-2-2所示</p><p> 圖3-2-2 8255A 結(jié)構(gòu)圖</p><p><b> (2)工作方式</b></p><p> 8255有三種
36、工作方式(方式0,方式1,方式2)可供選擇使用,而且三個(gè)端口可以同時(shí)按照各自選擇的工作方式工作,當(dāng)然8255各端口在正常工作開始前,必須進(jìn)行初始化設(shè)計(jì),確定每個(gè)端口按哪種工作方式工作。</p><p> 方式0:基本輸入或輸出方式,為單向8位端口。多用于同步數(shù)據(jù)傳輸場合,無需握手線進(jìn)行傳輸,也可用于查詢方式,此時(shí)往往用C口的某些信號(hào)線作為自定義狀態(tài)線和控制線。8255的三個(gè)端口都可工作于方式0。</p&g
37、t;<p> 方式1:選通輸入或輸出方式,為單向的8位端口。只有A口和B口可以工作在方式1狀態(tài),而此時(shí)C口的某些信號(hào)線一定作為A口或B口的聯(lián)絡(luò)線,其他非聯(lián)絡(luò)線仍可以工作在方式0 輸入或輸出狀態(tài)。</p><p> 方式2:雙向傳輸方式,既可以輸入又可輸出。只有A口可以采用方式2 工作,此時(shí)C口中的5根信號(hào)線作為A口的聯(lián)絡(luò)線,而其余的3根信號(hào)線可以做B口方式1時(shí)的聯(lián)絡(luò)線,或者與B口一起工作在方式0
38、狀態(tài)。</p><p><b> (3)控制字</b></p><p> 8255在正常工作之前必須進(jìn)行初始化設(shè)置,對(duì)所用到的每個(gè)端口都要設(shè)置具體的工作方式。8255具有2個(gè)控制字:方式控制字和C口位控控制字。2個(gè)控制字均需要送入控制寄存器口地址中,其區(qū)別在于:方式控制字中的D7=1,C口位控控制字中的D7=0。</p><p><b
39、> 1)方式控制字</b></p><p> 其中D7為方式控制字標(biāo)志位,用來區(qū)別C口位控控制字。D6D5設(shè)置A口的工作方式,D4 設(shè)置A口處于方式0或者方式1時(shí)的傳輸方向,當(dāng)處于方式2時(shí)此位無效,D3設(shè)置C口的高4位傳輸方向,由于C口只有一種工作方式,因此不需要設(shè)置方式,D2設(shè)置B口的工作方式,D1設(shè)置B口的傳輸方向,D0設(shè)置C口的低4位傳輸方向。當(dāng)C 口的信號(hào)線作為A口或 B口的聯(lián)絡(luò)線時(shí)
40、,設(shè)置無效。</p><p><b> 2)C口位控控制字</b></p><p> C口位控控制字用于將C口中的某一位清0或置1。C口位控控制字格式定義如下:</p><p> 其中D7為方式控制字標(biāo)志位,用來區(qū)別方式控制字,D6D5D4為無效位,D3D2D1用來選擇PC7—PC0中之一,D0為0表示清0,為1表示置1。</p&g
41、t;<p><b> 二、軟件設(shè)計(jì)</b></p><p> 主程序流程圖如下所示:</p><p> 0定時(shí)中斷流程圖如下:</p><p><b> 1號(hào)外部中斷如圖:</b></p><p> 第三章 交通燈控制系統(tǒng)電路圖</p><p>&l
42、t;b> 第四章 源程序</b></p><p> ;**************數(shù)據(jù)段初始化*****************</p><p> DATA SEGMENT</p><p> A_ICW1_8259 EQU 00H</p><p> A_ICW2_8259 EQ
43、U 01H</p><p> A_ICW4_8259 EQU 01H</p><p> A_OCW2_8259 EQU 00H</p><p> D_ICW1_8259 EQU 13H ;ICW1 上升沿,單片,寫ICW4</p><p> D_ICW2_8259 E
44、QU 08H ;IR0中斷向量碼為08H</p><p> D_ICW4_8259 EQU 01H ;非自動(dòng)EOI方式</p><p> A_CNT0_8253 EQU 30H</p><p> A_CNT1_8253 EQU 31H </p><p> A_CONL_
45、8253 EQU 33H </p><p> D_CNT0_8253 EQU 2000 ;CNT0為2000,主頻2MHZ時(shí)定時(shí)為1ms</p><p> D_CNT1_8253 EQU 500 ;CNT1為500,主頻1KHZ時(shí)定時(shí)為0.5s</p><p> D_CONL0_8253 EQU
46、 34H ;CNT0為16位數(shù)據(jù),工作方式2,二進(jìn)制</p><p> D_CONL1_8253 EQU 74H ;CNT1為16位數(shù)據(jù),工作方式2,二進(jìn)制</p><p> A_PA_8255 EQU 70H </p><p> A_PB_8255 EQU 71H</p>
47、<p> A_PC_8255 EQU 72H</p><p> A_CONL_8255 EQU 73H </p><p> D_CONL_8255 EQU 88H ;A口方式0輸出,B口方式0輸出,C口低4位輸出</p><p> MARK1 DB 00H
48、 ;0.5s計(jì)數(shù)</p><p> MARK2 DW 0000H ;1min計(jì)數(shù)</p><p> MK DB 00H ;特殊情況標(biāo)志位</p><p> MK1 DB 00H</p><p> MK2 DB
49、 00H</p><p> DATA ENDS </p><p> ;***************堆棧段初始化***************</p><p> STACK SEGMENT</p><p> DW 64 DUP(?)</p><p> S
50、TACK ENDS</p><p> ;***************代碼段**********************</p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DATA</p><p> START: MOV AX,DA
51、TA ;段寄存器初始化</p><p> MOV DS,AX</p><p> PUSH DS;當(dāng)前用戶DS段入棧保存</p><p> MOV AX,0000H</p><p> MOV DS,AX;修改DS=0000H,指向中斷矢量表所在段</p><
52、;p> MOV AX,OFFSET IRQ0 ;取出中斷處理子程序的入口偏移地址(以0為基準(zhǔn))</p><p> ADD AX,2000H ;修正,實(shí)際地址=裝入地址的偏移量+相對(duì)于0起始的偏移量</p><p> MOV SI,0020H;IR0中斷矢量號(hào)為08H,處于矢量表的20H~23H&
53、lt;/p><p> MOV [SI],AX;將偏移地址裝入矢量表</p><p> MOV AX,0000H</p><p> MOV SI,0022H</p><p> MOV [SI],AX;將段地址(0000H)裝入矢量表 </p><p> MOV
54、 AX,OFFSET IRQ1 ;取出中斷處理子程序的入口偏移地址(以0為基準(zhǔn))</p><p> ADD AX,2000H ;修正,實(shí)際地址=裝入地址的偏移量+相對(duì)于0起始的偏移量</p><p> MOV SI,0024H;IR1中斷矢量號(hào)為09H,處于矢量表的24H~27H</p>&l
55、t;p> MOV [SI],AX;將偏移地址裝入矢量表</p><p> MOV AX,0000H</p><p> MOV SI,0026H</p><p> MOV [SI],AX;將段地址(0000H)裝入矢量表</p><p> POP DS;恢復(fù)用戶
56、數(shù)據(jù)段DS</p><p> ;----------------初始化8259--------------------</p><p> MOV AL,D_ICW1_8259 ;寫入ICW1,上升沿觸發(fā),寫ICW4</p><p> MOV DX,A_ICW1_8259</p><p>
57、OUT DX,AL</p><p> MOV AL,D_ICW2_8259 ;寫入ICW2,設(shè)置IR0的中斷向量碼為08H,IR7中斷向量碼為0FH</p><p> MOV DX,A_ICW2_8259</p><p> OUT DX,AL</p><p> MOV
58、 AL,D_ICW4_8259 ;寫入ICW4,非自動(dòng)EOI</p><p> MOV DX,A_ICW4_8259</p><p> OUT DX,AL</p><p> ;-----------------初始化8253--------------------</p><p>
59、 MOV DX,A_CONL_8253</p><p> MOV AL,D_CONL0_8253</p><p> OUT DX,AL</p><p> MOV AL,D_CONL1_8253</p><p> OUT DX,AL</p><p> MOV
60、 DX,A_CNT0_8253</p><p> MOV AX,D_CNT0_8253</p><p> OUT DX,AL</p><p> MOV AL,AH</p><p> OUT DX,AL</p><p> MOV DX,A_CNT1_825
61、3</p><p> MOV AX,D_CNT1_8253</p><p> OUT DX,AL</p><p> MOV AL,AH</p><p> OUT DX,AL</p><p> STI ;開中斷
62、</p><p> ;------------------初始化8255---------------------</p><p> MOV AL,D_CONL_8255 ;寫入8255方式控制字,A口方式0輸出,C口高4位輸入,B口方式0輸出,C口低4位輸出</p><p> MOV DX,A_CONL_8255&l
63、t;/p><p> OUT DX,AL</p><p> ;**************主函數(shù)體死循環(huán)******************</p><p> ;//////////////////////////////////////////</p><p> MAIN: MOV AL,MK
64、 ;判斷MK是否為1,為1為特殊情況,為0為普通情況</p><p> CMP AL,0</p><p> JZ NORMAL</p><p> JMP SPECIAL</p><p> SPECIAL: MOV AL,10001000B ;東西紅,南北紅</p&g
65、t;<p> MOV DX,A_PA_8255</p><p> OUT DX,AL</p><p> JMP MAIN </p><p> NORMAL: MOV AX,MARK2</p><p> CMP AX,360 ;判斷MARK2是否>
66、=6:00</p><p> JAE JUDGE ;是則繼續(xù)判斷</p><p> JMP T22_0_6 ;否則進(jìn)入22_0_6執(zhí)行</p><p> JUDGE: CMP AX,1320 ;判斷MARK2是否<=22:00</p><p> JBE
67、T6_22 ;是則進(jìn)入T6_22執(zhí)行</p><p> JMP T22_0_6 ;否則進(jìn)入T22_0_6執(zhí)行</p><p> ;///////////////////-------//////////////////////// </p><p> T6_22: N
68、OP</p><p> JUDGE_MT: MOV DX,A_PC_8255</p><p> IN AL,DX ;讀PC口</p><p> AND AL,11110000B ;保留高4位</p><p> CMP AL,10H ;東西判斷<
69、/p><p> JZ EAST</p><p> CMP AL,20H ;南北判斷</p><p> JZ WEST</p><p> JMP JUDGE_MK1</p><p> EAST: MOV AL,00101000B ;
70、東西綠,南北紅</p><p> MOV DX,A_PA_8255</p><p> OUT DX,AL</p><p> JMP MAIN</p><p> WEST: MOV AL,10000010B ;東西紅,南北綠 </p><
71、;p> MOV DX,A_PA_8255</p><p> OUT DX,AL </p><p> JMP MAIN </p><p> JUDGE_MK1: CALL WARNING</p><p> MOV AL,MK1</p><p> CMP
72、 AL,0</p><p> JZ GG1</p><p> JNZ GG2</p><p> GG1: NOP</p><p> G1: MOV AL,MARK1 </p><p> CMP AL,115
73、;58s</p><p> JBE R_G ;如果小于等于115則執(zhí)行R_G</p><p> JMP G2 </p><p> R_G: MOV AL,10000010B ;東西紅,南北綠</p><p> MOV DX,A_PA_8255</p>
74、;<p> OUT DX,AL</p><p> G2: MOV AL,MARK1</p><p> CMP AL,116</p><p> JZ R_YH ;如果MARK1等于116則執(zhí)行R_YH </p><p> CMP AL,11
75、8</p><p> JZ R_YH ;如果MARK1等于118則執(zhí)行R_YH </p><p> JMP G3</p><p> R_YH: MOV AL,10000100B ;東西紅,南北黃亮</p><p> MOV DX,A_PA_8255</p
76、><p> OUT DX,AL</p><p> G3: MOV AL,MARK1</p><p> CMP AL,117</p><p> JZ R_YL ;如果MARK1等于117則執(zhí)行R_YL</p><p> CMP AL,
77、119 </p><p> JZ R_YL ;如果MARK1等于119則執(zhí)行R_YL</p><p> JMP CX1_CX </p><p> R_YL: MOV AL,10000000B ;東西紅,南北黃滅</p><p> MOV
78、 DX,A_PA_8255</p><p> OUT DX,AL</p><p> CX1_CX: JMP MAIN</p><p> ;///////////////////////////////////////////</p><p> GG2: NOP</p>&l
79、t;p> G11: MOV AL,MARK1 </p><p> CMP AL,115 ;58s</p><p> JBE G_R ;如果小于等于115則執(zhí)行G_R</p><p> JMP G22 </p><p> G_R:
80、 MOV AL,00101000B ;東西綠,南北紅</p><p> MOV DX,A_PA_8255</p><p> OUT DX,AL</p><p> G22: MOV AL,MARK1</p><p> CMP AL,116</p><
81、;p> JZ YH_R ;如果MARK1等于116則執(zhí)行YH_R</p><p> CMP AL,118</p><p> JZ YH_R ;如果MAKR1等于118則執(zhí)行YH_R</p><p> JMP G33</p><p> YH_R:
82、MOV AL,01001000B ;東西黃亮,南北紅</p><p> MOV DX,A_PA_8255</p><p> OUT DX,AL</p><p> G33: MOV AL,MARK1</p><p> CMP AL,117 </p>
83、<p> JZ YL_R ;如果MARK1等于117則執(zhí)行YL_R</p><p> CMP AL,119</p><p> JZ YL_R ;如果MARK1等于119則執(zhí)行YL_R</p><p> JMP CX2_CX</p><p> YL_R:
84、 MOV AL,00001000B ;東西黃滅,南北紅</p><p> MOV DX,A_PA_8255</p><p> OUT DX,AL</p><p> CX2_CX: JMP MAIN ;返回程序開始進(jìn)行判斷</p><p> ;///////
85、////////////-------////////////////////////</p><p> T22_0_6: NOP</p><p> G111: MOV AL,MK2</p><p> CMP AL,0</p><p> JZ YH_YH ;如果MK2等
86、于0即0,5s則執(zhí)行YH_YH</p><p> JMP G222</p><p> YH_YH: MOV AL,01000100B ;東西黃亮,南北黃亮</p><p> MOV DX,A_PA_8255</p><p> OUT DX,AL
87、 </p><p> G222: MOV AL,MK2</p><p> CMP AL,1</p><p> JZ YL_YL ;如果MK2等于1即1s則執(zhí)行YL_YL</p><p> JMP ONCE </p><p
88、> YL_YL: MOV AL,00000000B ;東西黃滅,南北黃滅</p><p> MOV DX,A_PA_8255</p><p> OUT DX,AL</p><p> ONCE: JMP MAIN ;返回程序開始進(jìn)行判斷</p><p
89、> ;***************報(bào)警子函數(shù)*****************</p><p> WARNING PROC</p><p> PUSH AX</p><p> PUSH DX </p><p> MOV AL,MARK1</p><p> CMP
90、 AL,110 ;55s,即剩余5s</p><p> JAE SOUND ;>=55s,即剩余不足5s時(shí)報(bào)警</p><p> JB SILENT ;<55s則停止報(bào)警</p><p> SOUND: MOV AL,01H ;C口按位操作
91、,C0口置1</p><p> MOV DX,A_CONL_8255</p><p> OUT DX,AL </p><p> SILENT: MOV AL,00H ;C口按位操作,C0口置0</p><p> MOV DX,A_CONL_8255</p>
92、<p> OUT DX,AL </p><p> POP AX</p><p> POP DX</p><p><b> RET</b></p><p> WARNING ENDP </p><p> ;****
93、************數(shù)碼管顯示子函數(shù)***************</p><p> DISPLAY PROC</p><p> PUSH AX</p><p> PUSH DX </p><p> PUSH BX</p><p> MOV AL,MARK1
94、 </p><p> CBW ;AL擴(kuò)展成AX</p><p> AND AX,00FFH ;AX高位清零</p><p> MOV BL,2 </p><p> DIV BL ;AX/BL傳到AL 即秒值</p>
95、<p> MOV BL,60 </p><p> SUB BL,AL ;60-AL傳到BL</p><p> MOV AL,BL</p><p> CBW </p><p> AND AX,00FFH</p><p>
96、MOV BL,10</p><p> DIV BL ;AL中存放商,AH中存放余數(shù)</p><p> MOV BH,AH</p><p> MOV BL,16 </p><p> MUL BL ;AL中的數(shù)乘以16即左移4位放入AX中 &
97、lt;/p><p> MOV AH,BH</p><p> OR AL,AH ;將AH中的余數(shù)與AL中移位后的整數(shù)相或</p><p> MOV DX,A_PB_8255</p><p> OUT DX,AL ;顯示轉(zhuǎn)換為BCD碼的整數(shù)</p><p
98、> POP AX</p><p> POP DX</p><p> POP BX</p><p><b> RET</b></p><p> DISPLAY ENDP </p><p> ;**************IRQ0中斷服務(wù)
99、子程序(定時(shí))**************</p><p> IRQ0: PUSH AX</p><p> PUSH DX</p><p> XOR AX,AX</p><p> MOV AL,MK2 ;MK2每0.5s翻轉(zhuǎn)一次</p><p>
100、CMP AL,0</p><p> JZ MRH2</p><p> JNZ MRL2</p><p> MRH2: MOV AL,1</p><p> MOV MK2,AL</p><p> JMP OK2</p>&
101、lt;p> MRL2: MOV AL,0</p><p> MOV MK2,AL </p><p> CALL DISPLAY ;MK2每兩次翻轉(zhuǎn)即1s則調(diào)用一次數(shù)碼管顯示函數(shù)</p><p> JMP OK2 </p><
102、;p> OK2: MOV AL,MARK1 </p><p> INC AL</p><p> MOV MARK1,AL</p><p> CMP AL,120 ;判斷MARK1是否為1min</p><p> JZ T1
103、MIN </p><p> JMP OVER0</p><p> ;//////////////////////////////////////</p><p> T1MIN: MOV AL,MK1 ;MK1每1min翻轉(zhuǎn)一次</p><p> CMP
104、 AL,0</p><p> JZ MRH1</p><p> JNZ MRL1</p><p> MRH1: MOV AL,1</p><p> MOV MK1,AL</p><p> JMP OK</p><p>
105、 MRL1: MOV AL,0</p><p> MOV MK1,AL</p><p> JMP OK </p><p> OK: MOV AL,00H ;MARK1清零</p><p> MOV MARK1,AL&l
106、t;/p><p> MOV AX,MARK2</p><p> INC AX</p><p> MOV MARK2,AX</p><p> CMP AX,1440 ;判斷MARK2是否為1day</p><p> JZ T1D</p>&
107、lt;p> JMP OVER0</p><p> ;/////////////////////////////////////////</p><p> T1D: MOV AX,0 ;MARK2清零</p><p> MOV MARK2,AX</p><p> OV
108、ER0: MOV AL,20H ;一般EOI命令,全嵌套方式,IR0復(fù)位 </p><p> MOV DX,A_OCW2_8259</p><p> OUT DX,AL </p><p> POP DX</p><p> POP AX</p><p
109、><b> IRET</b></p><p> ;**************IRQ1中斷服務(wù)子程序(特殊情況)**************</p><p> IRQ1: PUSH AX </p><p> PUSH DX</p><p> MOV AL,MK<
110、;/p><p> CMP AL,0 ;判斷MK為0還是1</p><p> JZ MRH</p><p> JNZ MRL</p><p> MRH: MOV AL,1 ;如果MK為0則將MK置1</p><p> MOV MK,
111、AL</p><p> JMP OVER1</p><p> MRL: MOV AL,0 ;如果MK為1則將MK置0</p><p> MOV MK,AL</p><p> JMP OVER1 </p><p> OVER
112、1: MOV AL,20H ;一般EOI命令,全嵌套方式,IR1復(fù)位 </p><p> MOV DX,A_OCW2_8259</p><p> OUT DX,AL</p><p> POP DX </p><p> POP AX</p><p&g
113、t; IRET </p><p> CODE ENDS</p><p> END START</p><p><b> 心得及體會(huì)</b></p><p> 通過此次課程設(shè)計(jì)讓我能夠親身參與電子產(chǎn)品的設(shè)計(jì)使我更加深深地體會(huì)到:現(xiàn)代
114、的社會(huì)是信息的社會(huì),很多與人們生活緊密相關(guān)的產(chǎn)品都是電子產(chǎn)品。要熟練地掌握單片機(jī)的基本知識(shí),這樣才能對(duì)試驗(yàn)中出現(xiàn)的問題進(jìn)行分析解決。通過這次對(duì)交通燈系統(tǒng)的設(shè)計(jì),我們掌握了設(shè)計(jì)一個(gè)實(shí)用裝置電路的基本方法和基本步驟,掌握了實(shí)用裝置工作的基本原理,實(shí)際解決了設(shè)計(jì)中出現(xiàn)的問題,增強(qiáng)了尋找問題,解決問題的能力。此次電子設(shè)計(jì)的成功不僅幫助我們更好地掌握書本知識(shí),尤其重要的是增強(qiáng)了我們的自信,培養(yǎng)了我們獨(dú)立思考的能力!</p><
115、p> 通過這周緊張而充實(shí)的課程設(shè)計(jì),我學(xué)到了很多東西,讓我重新認(rèn)識(shí)自己,收益匪淺,并對(duì)我以后所要做的畢業(yè)設(shè)計(jì)有了一個(gè)初步的了解。做好一個(gè)課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)不僅要具備扎實(shí)的書本知識(shí)并會(huì)善于應(yīng)用,還要學(xué)會(huì)查閱資料,對(duì)以前學(xué)過的知識(shí)不清楚的地方還要進(jìn)行復(fù)習(xí),實(shí)在搞不明白的地方要向老師或同學(xué)請教,這樣才可能做出一個(gè)比較不錯(cuò)的課程設(shè)計(jì)。在這里我要感謝我們的指導(dǎo)老師,非常感謝老師和同學(xué)的指導(dǎo)和幫助。希望以后還能參加這樣的課程設(shè)計(jì)。我想我會(huì)做
116、的更好的。</p><p><b> 參考文獻(xiàn)</b></p><p> 1.戴梅萼,史嘉權(quán)編著.微型計(jì)算機(jī)技術(shù)及應(yīng)用(第三版).北京,清華大學(xué)出版社,2003</p><p> 2.李順增,吳國東,趙何明等,微機(jī)原理與接口技術(shù),北京,機(jī)械工業(yè)出版社,2006</p><p> 3.孫德文,微型計(jì)算機(jī)技術(shù),高等教
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈課程設(shè)計(jì)---交通控制系統(tǒng)設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)---交通燈控制系統(tǒng)
- eda交通燈課程設(shè)計(jì)---交通燈控制系統(tǒng)的設(shè)計(jì)
- 交通燈控制系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--交通燈控制系統(tǒng)
- 課程設(shè)計(jì)--交通燈控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)---交通燈控制系統(tǒng)設(shè)計(jì)
- 交通燈控制系統(tǒng)課程設(shè)計(jì)
- 交通燈控制系統(tǒng) 課程設(shè)計(jì)
- 交通燈控制系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)-交通燈控制系統(tǒng)設(shè)計(jì)
- eda交通燈課程設(shè)計(jì)--cpld實(shí)現(xiàn)交通燈控制系統(tǒng)
- 智能交通燈控制系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 交通燈控制系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)---模擬交通燈控制系統(tǒng)
- eda課程設(shè)計(jì)--交通燈控制系統(tǒng)設(shè)計(jì)
- 微機(jī)課程設(shè)計(jì)---交通燈控制系統(tǒng)設(shè)計(jì)
- 交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)
- 交通燈課程設(shè)計(jì)--plc實(shí)現(xiàn)交通燈控制設(shè)計(jì)
- 基于plc交通燈控制系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論