課程設(shè)計(jì)報(bào)告模擬交通燈_第1頁(yè)
課程設(shè)計(jì)報(bào)告模擬交通燈_第2頁(yè)
課程設(shè)計(jì)報(bào)告模擬交通燈_第3頁(yè)
課程設(shè)計(jì)報(bào)告模擬交通燈_第4頁(yè)
課程設(shè)計(jì)報(bào)告模擬交通燈_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、學(xué)科基礎(chǔ)課硬件課程設(shè)計(jì)設(shè)計(jì)說(shuō)明書(shū)模擬交通燈學(xué)生姓名學(xué)號(hào)0618014069班級(jí)計(jì)本062成績(jī)指導(dǎo)教師計(jì)算機(jī)科學(xué)與技術(shù)系2009年9月11日25學(xué)科基礎(chǔ)課硬件 課程設(shè)計(jì)評(píng)閱書(shū)題目模擬交通燈學(xué)生姓名學(xué)號(hào)0618014069指導(dǎo)教師評(píng)語(yǔ)及成績(jī)指導(dǎo)教師簽名: 年 月 日答辯評(píng)語(yǔ)及成績(jī)答辯教師簽名: 年 月 日教研室意見(jiàn)總成績(jī): 室主任簽名: 年 月 日課程設(shè)計(jì)任務(wù)書(shū)20092010學(xué)年第1 學(xué)期專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)號(hào): 0618014069 姓名: 課程設(shè)計(jì)名稱: 學(xué)科基礎(chǔ)課硬件課程設(shè)計(jì) 設(shè)計(jì)題目: 模擬交通燈 完成期限:自 2009 年 8 月 31 日至 2009 年 9 月 11 日共

2、2 周設(shè)計(jì)內(nèi)容:用匯編語(yǔ)言和微型計(jì)算機(jī)原理與應(yīng)用技術(shù)設(shè)計(jì)模擬交通燈。設(shè)計(jì)要求:1)問(wèn)題分析和任務(wù)定義:根據(jù)設(shè)計(jì)題目的要求,充分地分析和理解問(wèn)題,明確問(wèn)題要求做什么?(而不是怎么做?)限制條件是什么?確定問(wèn)題的輸入數(shù)據(jù)集合。2)邏輯設(shè)計(jì):對(duì)問(wèn)題描述中涉及的操作對(duì)象定義相應(yīng)的數(shù)據(jù)類型,并按照以數(shù)據(jù)庫(kù)為中心的原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型。邏輯設(shè)計(jì)的結(jié)果應(yīng)寫(xiě)出每個(gè)抽象數(shù)據(jù)類型的定義(包括數(shù)據(jù)窗口的描述和每個(gè)基本操作的功能說(shuō)明),各個(gè)主要模塊的算法,并畫(huà)出模塊之間的調(diào)用關(guān)系圖;3)詳細(xì)設(shè)計(jì):綜合考慮系統(tǒng)功能,使得系統(tǒng)結(jié)構(gòu)清晰、合理、簡(jiǎn)單和易于調(diào)試,抽象數(shù)據(jù)類型的實(shí)現(xiàn)盡可能做到數(shù)據(jù)封裝,基

3、本操作的規(guī)格說(shuō)明盡可能明確具體。詳細(xì)設(shè)計(jì)的結(jié)果是基本操作做出進(jìn)一步的求精; 4)程序編碼:把詳細(xì)設(shè)計(jì)的結(jié)果進(jìn)一步求精為程序設(shè)計(jì)語(yǔ)言程序。同時(shí)加入一些注解和斷言,使程序中邏輯概念清楚;5)程序調(diào)試與測(cè)試:能夠熟練掌握調(diào)試工具的各種功能,設(shè)計(jì)測(cè)試數(shù)據(jù)確定疑點(diǎn),通過(guò)修改程序來(lái)證實(shí)它或繞過(guò)它。調(diào)試正確后,認(rèn)真整理源程序及其注釋,形成格式和風(fēng)格良好的源程序清單和結(jié)果;6)結(jié)果分析:程序運(yùn)行結(jié)果包括正確的輸入及其輸出結(jié)果和含有錯(cuò)誤的輸入及其輸出結(jié)果;7)編寫(xiě)課程設(shè)計(jì)報(bào)告;以上要求中前三個(gè)階段的任務(wù)完成后,先將設(shè)計(jì)說(shuō)明數(shù)的草稿交指導(dǎo)老師面審,審查合格后方可進(jìn)入后續(xù)階段的工作。設(shè)計(jì)工作結(jié)束后,經(jīng)指導(dǎo)老師驗(yàn)收合

4、格后將設(shè)計(jì)說(shuō)明書(shū)打印裝訂,并進(jìn)行答辯。指導(dǎo)教師(簽字): 教研室主任(簽字): 批準(zhǔn)日期: 年 月 日摘 要隨著科技的飛速發(fā)展,十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。本文介紹了基于8255a的交通燈管理系統(tǒng),重點(diǎn)講述了軟件系統(tǒng)的編寫(xiě)方法。本系統(tǒng)采用8255a芯片、8253芯片和8259芯片實(shí)現(xiàn)了a、b口設(shè)置紅、綠燈點(diǎn)亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,紅綠燈變換之間,黃燈閃爍5秒。經(jīng)多次調(diào)試,基本達(dá)到了設(shè)計(jì)要求。關(guān)鍵詞: 交通燈;8255a芯片;8253芯片;8259芯片 目 錄1 課題描述12.系統(tǒng)設(shè)計(jì)22.1、交通燈控制系統(tǒng)介紹22.1.1主

5、要內(nèi)容22.1.2工作原理22.2 芯片選擇32.3 系統(tǒng)原理43 詳細(xì)設(shè)計(jì)53.1硬件設(shè)計(jì)53.1.1 8255a并行接口53.1.2 8259a可編程中斷控制器73.1.3、8253可編程定時(shí)器/計(jì)數(shù)器83.1.4 設(shè)計(jì)電路圖113.2軟件設(shè)計(jì)123.2.1. 軟件設(shè)計(jì)思路123.2.2. 主程序設(shè)計(jì)133.2.3 定時(shí)中斷子程序143.2.4 外部中斷服務(wù)子程序153.3 程序流程圖173.4設(shè)備連接圖184 程序源代碼:195調(diào) 試215.1 實(shí)驗(yàn)步驟215.2調(diào)試記錄與分析216 運(yùn)行與結(jié)果22總 結(jié)23參考文獻(xiàn)241 課題描述隨著計(jì)算機(jī)科學(xué)技術(shù)的不斷發(fā)展,微型計(jì)算機(jī)得到了廣泛的應(yīng)用

6、,是人們利用計(jì)算機(jī)設(shè)計(jì)和開(kāi)發(fā)各種應(yīng)用系統(tǒng)的基礎(chǔ)。同時(shí)微型計(jì)算機(jī)接口技術(shù)也是一門(mén)實(shí)踐性較強(qiáng)的課程, 理論與實(shí)踐相結(jié)合可以更好的掌握知識(shí),這也是這次交通燈系統(tǒng)控制的設(shè)計(jì)目的。交通燈是交通安全的關(guān)鍵,已廣泛應(yīng)用于城鄉(xiāng)的十字路口,它的有無(wú)作為交通安全檢查的重要依據(jù),是交通秩序正常進(jìn)行的有力保障。十字道口的紅綠燈是交通法規(guī)的無(wú)聲命令,是司機(jī)和行人的行為準(zhǔn)則。十字道口的交通紅綠燈控制是保證交通安全和道路暢通的關(guān)鍵。當(dāng)前,國(guó)內(nèi)大多數(shù)城市正在采用“自動(dòng)”紅綠交通燈,它具有固定的“紅燈綠燈”轉(zhuǎn)換間隔,并自動(dòng)切換。它們一般由“通行與禁止時(shí)間控制顯示、紅黃綠三色信號(hào)燈和方向指示燈”三部分組成。交通燈的時(shí)間控制顯示,

7、以固定時(shí)間值預(yù)先“固化”在單片機(jī)中,每次只是以一定周期交替變化。但是,實(shí)際上不同時(shí)刻的車輛流通狀況是十分復(fù)雜的,是高度非線性的、隨機(jī)的,還經(jīng)常受認(rèn)為因素的影響。采用定時(shí)控制經(jīng)常造成道路有效應(yīng)用時(shí)間的浪費(fèi),出現(xiàn)綠燈方向車輛較少,紅燈方向車輛積壓。它不顧當(dāng)前道路上交通車輛數(shù)的實(shí)際情況變化,其最大的缺陷就在于當(dāng)路況發(fā)生變化時(shí),不能滿足司機(jī)與路人的實(shí)際需要,輕者造成時(shí)間上的浪費(fèi),重者直接導(dǎo)致交通堵塞,導(dǎo)致城市交通效率的下降。目前,有一種使用“模糊控制”技術(shù)控制交通燈的方法。能夠根據(jù)十字路口兩個(gè)方向上車輛動(dòng)態(tài)狀況,自動(dòng)判斷紅綠燈時(shí)間間隔,以保證最大車流量,減少道口的交通堵塞。但是卻不像定時(shí)控制,能用數(shù)字

8、顯示器顯示當(dāng)前燈色剩余時(shí)間,以便于駕駛員隨時(shí)掌握自己的駕駛動(dòng)作,及時(shí)停車或啟動(dòng)。 日常生活在十字路口需要兩個(gè)方向通車和行人行走,為了行人和車輛的安全和正常的交通次序,每次只能一個(gè)方向通車和行人。在每個(gè)方向都有相應(yīng)的指示燈指揮車輛的通行,當(dāng)紅燈亮起的時(shí)候表示這個(gè)方向禁止通行;綠燈亮的時(shí)候起表示這個(gè)方向可以通行;黃燈閃爍時(shí)表示這個(gè)方向?qū)⒂煽梢酝ㄐ袪顟B(tài)轉(zhuǎn)變?yōu)榻雇ㄐ袪顟B(tài)。每個(gè)方向車流量不同,通車放行時(shí)間也不同。當(dāng)有緊急車輛,如:急救車,消防車,公安出勤車等過(guò)來(lái)時(shí),每個(gè)方向都禁止通車亮紅燈,方便緊急車輛通過(guò),等緊急車過(guò)去后馬上恢復(fù)緊急車輛來(lái)之前的狀態(tài)。發(fā)光二極管有電流通過(guò)時(shí)就會(huì)發(fā)光。采用不同的材料,就

9、會(huì)發(fā)出不同的光。單片機(jī)通過(guò)對(duì)p1口寫(xiě)操作,使p1口的口線出現(xiàn)高電平和低電平來(lái)決定相應(yīng)的發(fā)光二極管亮和息,控制車輛的通行狀態(tài).本次的交通燈控制系統(tǒng)主要由8255a并行口、8253定時(shí)/計(jì)算器、8259單極中斷控制器以及74ls139譯碼器實(shí)驗(yàn)等芯片組成。整個(gè)課程設(shè)計(jì)主要使用8255a的a口和b口模擬十字路口交通燈的閃爍情況。2.系統(tǒng)設(shè)計(jì)2.1、交通燈控制系統(tǒng)介紹十字道口的紅綠燈是交通法規(guī)的無(wú)聲命令,是司機(jī)和行人的行為準(zhǔn)則。十字道口的交通紅綠燈控制是保證交通安全和道路暢通的關(guān)鍵。當(dāng)前,國(guó)內(nèi)大多數(shù)城市正在采用“自動(dòng)”紅綠交通燈,它具有固定的“紅燈綠燈”轉(zhuǎn)換間隔,并自動(dòng)切換。它們一般由“通行與禁止時(shí)間

10、控制顯示、紅黃綠三色信號(hào)燈和方向指示燈”三部分組成。假設(shè)為某個(gè)十字路口設(shè)計(jì)一個(gè)交通燈控制系統(tǒng),1、3為東,南方向, 2、4為西,北方向,初始態(tài)為4個(gè)路口的紅燈全亮。 之后, 1、3路口的綠燈亮, 2、4路口的紅燈亮, 1、3路口方向通車。 延遲一段時(shí)間后, 1、3路口的綠燈熄滅,而1、3路口的黃燈開(kāi)始閃爍。閃爍若干次后, 1、3路口的紅燈亮, 同時(shí)2、4路口的綠燈亮, 2、4路口方向開(kāi)始通車。 延遲一段時(shí)間后, 2、4路口的綠燈熄滅,而黃燈開(kāi)始閃爍。閃爍若干次后,再切換到1、3路口方向。 之后,重復(fù)上述過(guò)程。2.1.1主要內(nèi)容在十字路口的東西和南北兩個(gè)方向都各有紅、黃、綠三個(gè)信號(hào)燈。紅、黃、綠

11、交通燈的變化規(guī)律為: 1)南北方向的綠燈、東西方向的紅燈同時(shí)亮20秒。2)南北方向的綠燈滅、黃燈亮5秒,同時(shí)東西方向的紅燈繼續(xù)亮。3)南北方向的黃燈滅、紅燈亮,同時(shí)東西方向的紅燈滅、綠燈亮,持續(xù)20秒。4)南北方向的紅燈繼續(xù)亮,同時(shí)東西方向的綠燈滅、黃燈亮5秒。5)轉(zhuǎn)1)重復(fù)。2.1.2工作原理交通燈的工作過(guò)程如下:設(shè)十字路口的1、3為南,北方向,2、4為東西方向,初始態(tài)為4個(gè)路口的紅燈全亮。之后,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車,2個(gè)路口的led數(shù)碼管開(kāi)始倒計(jì)時(shí)25秒。延遲20秒后,1、3路口的綠燈熄滅,而1,3路口的黃燈開(kāi)始閃爍(1hz)。閃爍5次后,1、3路口的

12、紅燈亮,同時(shí)2、4路口的綠燈亮,2、4路口方向開(kāi)始通車,2個(gè)路口的led數(shù)碼管重新開(kāi)始倒計(jì)時(shí)25秒。延遲20秒時(shí)間后,2、4路口的綠燈熄滅,而黃燈開(kāi)始閃爍。閃爍5次后,再切換到1、3路口方向。之后,重復(fù)上述過(guò)程。當(dāng)有緊急情況時(shí),2個(gè)方向都紅燈亮,倒計(jì)時(shí)停止,車輛禁止通行,當(dāng)緊急情況結(jié)束后,控制器恢復(fù)以前的狀態(tài)繼續(xù)工作。 在設(shè)計(jì)中采用6個(gè)發(fā)光二極管來(lái)模擬2個(gè)路口的黃紅綠燈,每個(gè)路口用2個(gè)數(shù)碼管來(lái)顯示通行或禁止剩余的時(shí)間。緊急情況用一個(gè)單脈沖發(fā)生單元申請(qǐng)中斷來(lái)模擬,緊急情況結(jié)束后,再發(fā)一個(gè)中斷來(lái)恢復(fù)以前的狀態(tài)。根據(jù)前面的介紹,本設(shè)計(jì)硬件由定時(shí)模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。

13、定時(shí)模塊采用硬件定時(shí)和軟件定時(shí)相結(jié)合的方法,用8253定時(shí)/計(jì)數(shù)器定時(shí)100ms,再用軟件計(jì)時(shí)實(shí)現(xiàn)所需的定時(shí)。發(fā)光二極管模塊由8255控制發(fā)光二極管來(lái)實(shí)現(xiàn)。數(shù)碼管顯示模塊由實(shí)驗(yàn)平臺(tái)上的led顯示模塊實(shí)現(xiàn)。緊急中斷模塊是由單脈沖發(fā)生單元和8279中斷控制器組成。程序主要是由定時(shí)子程序、發(fā)光二極管顯示子程序、數(shù)碼管顯示子程序和中斷服務(wù)程序組成。包括對(duì)8253、8255以及8259等可編程器件的編程。交通燈顯示模塊圖2.1 交通燈顯示模塊2.2 芯片選擇 1用實(shí)驗(yàn)系統(tǒng)8255a實(shí)現(xiàn)對(duì)信號(hào)燈的控制(所用端口自定);2位數(shù)碼顯示用 8255a實(shí)現(xiàn)控制。 2. 用實(shí)驗(yàn)系統(tǒng)8253的計(jì)數(shù)器2定時(shí)向?qū)嶒?yàn)系統(tǒng)主

14、片8259a的irq7請(qǐng)求中斷, 以實(shí)現(xiàn)定時(shí);實(shí)驗(yàn)系統(tǒng)8253的計(jì)數(shù)器2的clk2接opclk,頻率為1.19318mhz;gate2已接 +5v;定時(shí)采用軟硬件相結(jié)合的方式實(shí)現(xiàn)。3. 用實(shí)驗(yàn)系統(tǒng)的發(fā)光二極管模擬紅綠燈。2.3 系統(tǒng)原理本次系統(tǒng)利用8253定時(shí),8259中斷、8255a并口輸出實(shí)現(xiàn)交通燈模擬控制的硬件電路,利用匯編語(yǔ)言程序編寫(xiě)源程序代碼實(shí)現(xiàn)軟件部分;能自動(dòng)控制和手動(dòng)控制,可以調(diào)整自動(dòng)模式的綠燈和紅燈時(shí)間。通過(guò)接口芯片8255構(gòu)成并行接口電路,用它的a口和b口模擬交通燈的閃爍情況,a口表示東、南方向,b口表示西、北方向,綠燈和紅燈共同表示黃燈。首先片選對(duì)應(yīng)的端口地址,定義8255

15、a的工作方式位0;然后對(duì)端口a和b進(jìn)行不同的數(shù)據(jù)寫(xiě)入,控制交通燈的亮度以及閃爍情況,采用延時(shí)子系統(tǒng)。3 詳細(xì)設(shè)計(jì)3.1硬件設(shè)計(jì)本課題的設(shè)計(jì)可通過(guò)實(shí)驗(yàn)平臺(tái)上的一些功能模塊電路組成,由于各模塊電路內(nèi)部已經(jīng)連接,用戶在使用時(shí)只要設(shè)計(jì)模塊間電路的連接,因此,硬件電路的設(shè)計(jì)及實(shí)現(xiàn)相對(duì)簡(jiǎn)單。完整系統(tǒng)的硬件連接如圖3.1所示。硬件電路由定時(shí)模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。定時(shí)模塊是由8253的計(jì)數(shù)器0來(lái)實(shí)現(xiàn)定時(shí)100ms。clk0接實(shí)驗(yàn)平臺(tái)分頻電路輸出q6,f46875hz。gate0接8255的pa0,由8255輸出來(lái)控制計(jì)數(shù)器的起停。out0接8259的irq2,定時(shí)完成申請(qǐng)中斷

16、,進(jìn)入中斷服務(wù)程序。q6out0 8253 gate0 clk0 pa0 8255 pc地址 cs1譯碼 cs2電路 cs3 cs4路數(shù)碼管顯示模塊irq28259irq3發(fā)光二極管電路單脈沖發(fā)生單元pc bus圖3.1 系統(tǒng)硬件電路圖3.1.1 8255a并行接口3.1.1.1 8255a的引腳及功能 8255a是一個(gè)采用nmos工藝制造的40個(gè)引腳的雙列直插式組建, 其外部引腳如下圖所示:圖3.1.2 8255a外部引腳線圖功能:8255a具有面向主機(jī)系統(tǒng)總線和面向外設(shè)兩個(gè)方向的連接能力,即通過(guò)8255a,cpu可直接同外設(shè)相連接,負(fù)責(zé)cpu和外設(shè)之間的數(shù)據(jù)傳送。1、面向系統(tǒng)總線的信號(hào)線d

17、0d7:雙向數(shù)據(jù)線;cpu通過(guò)它向8255a發(fā)送命令、數(shù)據(jù);8255a通過(guò)它向cpu回送狀態(tài)、數(shù)據(jù)/cs:選片信號(hào)線,該信號(hào)線低電平有效,由系統(tǒng)總線經(jīng)i/o地址譯碼器產(chǎn)生a1、a0:芯片內(nèi)部端口地址信號(hào)線,與系統(tǒng)地址總線地位相連/rd:讀信號(hào)線,該信號(hào)低電平有效,cpu通過(guò)執(zhí)行in指令,發(fā)讀信號(hào)將數(shù)據(jù)或狀態(tài)信號(hào)從8255a讀至cpu/wr:寫(xiě)信號(hào)線,該信號(hào)低電平有效,cpu通過(guò)執(zhí)行out指令,發(fā)寫(xiě)信號(hào),將命令或數(shù)據(jù)寫(xiě)入8255areset:復(fù)位信號(hào)線,該信號(hào)高電平有效。2、面向i/o設(shè)備的信號(hào)線pa0pa1:端口a的輸入/輸出線pbopb7:端口b的輸入/輸出線pc0pc7:端口c的輸入/輸出

18、線這24根信號(hào)線均可用來(lái)連接i/o設(shè)備,通過(guò)它們傳送數(shù)字量信息或開(kāi)關(guān)量信息3.1.1.2 8255的內(nèi)部結(jié)構(gòu)1、數(shù)據(jù)總線緩沖器2、讀/寫(xiě)控制邏輯3、a組和b組控制電路4、數(shù)據(jù)端口a、b、c3.1.1.3 8255的工作方式1、方式0基本輸入/輸出方式8255工作在方式0時(shí),三個(gè)端口分成彼此的兩個(gè)8位口,即a口和b口,兩個(gè)4位口,這4個(gè)并行口都能設(shè)定為輸入或輸出。方式0常用于無(wú)條件查詢傳送2、方式1選通輸入/輸出方式3、方式2雙向輸入/輸出方式3.1.2 8259a可編程中斷控制器3.1.2.1 8259a的引腳及功能8259a的引線分為3部分,即與cpu的接口引線,與外設(shè)的引線和用于級(jí)聯(lián)的接口

19、引線,如下圖所示圖3.1.3 8259a外部引腳線圖1、8259a與cpu的接口引線d7d0:數(shù)據(jù)線,雙向,三態(tài)。與cpu數(shù)據(jù)總線直接相連/wr: 寫(xiě)信號(hào),輸入,低電平有效/rd: 讀信號(hào),輸入,低電平有效a0: 地址線,輸入,用于尋址8259a內(nèi)部的兩個(gè)端口,此引腳連接cpu系統(tǒng)地址線/cs: 片選信號(hào),輸入,低電平有效。此引腳連接譯碼電路輸出端int:中斷請(qǐng)求信號(hào),輸出,高電平有效,連接cpu的可屏蔽中斷請(qǐng)求輸入端intr/inta; 中斷響應(yīng)信號(hào),低電平有效,用于接收cpu送回的中斷響應(yīng)負(fù)脈沖3.1.2.2內(nèi)部結(jié)構(gòu)1、數(shù)據(jù)總線緩沖器2、讀/寫(xiě)邏輯3、級(jí)聯(lián)緩沖/比較器4、中斷請(qǐng)求寄存器5、

20、終端屏蔽寄存器6、優(yōu)先權(quán)分析器7、中斷服務(wù)寄存器8、控制邏輯3.1.2.3工作方式1、屏蔽中斷源方式2、設(shè)置優(yōu)先級(jí)的方式3、中斷結(jié)束方式4、查詢中斷方式5、讀取狀態(tài)方式6、級(jí)聯(lián)方式7、連接系統(tǒng)總線方式3.1.3、8253可編程定時(shí)器/計(jì)數(shù)器3.1.3.1 8253定時(shí)/計(jì)數(shù)器的引腳及功能8253是nmos工藝制成,采用單一+5v電源,24引腳雙列直插式封裝,外部引腳如下所示圖3.1.4 8253外部引腳線圖1、8253與cpu的接口引線d7d0:雙向數(shù)據(jù)線:可直接與數(shù)據(jù)總線相連,用于傳遞各種數(shù)據(jù)信息/wr:寫(xiě)信號(hào),輸入,低電平有效,用于控制cpu對(duì)8253的寫(xiě)操作/rd:讀信號(hào),輸入低電平有效

21、。用于控制cpu對(duì)8253的讀操作a1、a0:地址線,輸入信號(hào)/cs:片選信號(hào),輸入信號(hào),低電平有效。當(dāng)/cs為0時(shí),8253被選中,允許cpu對(duì)其進(jìn)行讀/寫(xiě)操作2、8253與外設(shè)的接口引線clkoclk2:時(shí)鐘輸入信號(hào);gate0gate2:門(mén)控輸入信號(hào);out0out2:計(jì)數(shù)輸出端3、定時(shí)與計(jì)數(shù)方式3.1.3.2內(nèi)部結(jié)構(gòu) 圖3.1.5 8253的內(nèi)部結(jié)構(gòu)1、數(shù)據(jù)總線緩沖器2、讀/寫(xiě)邏輯電路3、控制字寄存器4、計(jì)數(shù)器3.1.3.3 8253方式控制字定時(shí)/計(jì)數(shù)器8253的每個(gè)計(jì)數(shù)通道根據(jù)cpu發(fā)命令寫(xiě)入控制寄存器的控制字確定工作方式和計(jì)數(shù)格式。8253控制字的格式如下所示:圖3.1.6 82

22、53的方式控制字d7、d6:計(jì)數(shù)器選擇位sc1、sc0。8253的3個(gè)計(jì)數(shù)器相互獨(dú)立,并且都有一個(gè)控制寄存器。但這三個(gè)控制寄存器占用同一個(gè)端口地址,即a1a0=11d5、d4:讀/寫(xiě)指示位rw1、rw0。cpu向某個(gè)計(jì)數(shù)器寫(xiě)入初值和讀取它們的當(dāng)前值時(shí)不同的格式d3、d2、d1:工作方式選擇位m2、m1、m0。8253有6種工作方式,選擇哪種工作方式由m2、m1、m0編碼確定do:數(shù)值計(jì)數(shù)格式,用來(lái)選擇計(jì)數(shù)格式。do=o,計(jì)數(shù)器按二進(jìn)制格式計(jì)數(shù);d0=1,計(jì)數(shù)器按bcd碼格式計(jì)數(shù)3.1.3.4 8253工作方式1、方式0計(jì)數(shù)結(jié)束中斷方式2、方式1可編程單穩(wěn)態(tài)輸出方式3、方式2分頻器4、方式3方波

23、發(fā)生器5、方式4軟件觸發(fā)選通設(shè)計(jì)電路圖:3.1.4 設(shè)計(jì)電路圖 圖3.1.7 模擬交通燈電路圖圖3.1.8 模擬交通燈接口原理圖3.2軟件設(shè)計(jì)3.2.1. 軟件設(shè)計(jì)思路本程序由主程序、定時(shí)中斷子程序和外部中斷子程序組成。主程序主要負(fù)責(zé)系統(tǒng)初始化和等待中斷。定時(shí)中斷子程序主要負(fù)責(zé)數(shù)碼管顯示刷新和紅綠黃燈各種狀態(tài)切換。外部中斷子程序負(fù)責(zé)緊急情況處理和處理完恢復(fù)。8253計(jì)數(shù)的起停由8255的pa0控制,8255的pa0輸出1時(shí),8253開(kāi)始計(jì)數(shù),交通燈按正常狀態(tài)切換工作,pa0輸出0時(shí),計(jì)數(shù)器停止工作,交通燈不再按正常狀態(tài)切換。8253開(kāi)始計(jì)數(shù)后每100ms發(fā)出一個(gè)中斷申請(qǐng)信號(hào),在中斷子程序中先刷

24、新數(shù)碼管,然后判斷當(dāng)前狀態(tài),進(jìn)入相應(yīng)的處理程序進(jìn)行處理。當(dāng)有緊急情況時(shí)進(jìn)入外部中斷服務(wù)子程序,先讓8253停止計(jì)數(shù),然后點(diǎn)亮所有的紅燈,下一次外部中斷處理時(shí),恢復(fù)原來(lái)的交通燈狀況,啟動(dòng)8253開(kāi)始工作。3.2.2. 主程序設(shè)計(jì)主程序負(fù)責(zé)系統(tǒng)的初始化,然后數(shù)碼管數(shù)據(jù)輸出顯示,同時(shí)檢測(cè)pc鍵盤(pán)按鍵,有按鍵就退出程序。主程序的流程圖如圖3.2.1所示。系統(tǒng)初始化包括8253的初始化,8255的初始化,中斷向量初始化以及設(shè)置交通燈工作的初始狀態(tài)。8253定時(shí)的時(shí)間是100ms,clk0的輸入時(shí)鐘f46875hz,所以計(jì)數(shù)初值為124fh。開(kāi)始y初始化8253初始化8255設(shè)置中斷向量設(shè)置交通燈初態(tài)啟動(dòng)

25、計(jì)數(shù)器數(shù)碼管數(shù)據(jù)輸出有按鍵結(jié)束n圖3.2.1 主程序流程圖3.2.3 定時(shí)中斷子程序定時(shí)中斷子程序是本設(shè)計(jì)的重點(diǎn),負(fù)責(zé)完成數(shù)碼管輸出數(shù)據(jù)刷新和各個(gè)狀態(tài)的處理切換。中斷子程序包括數(shù)碼管輸出數(shù)據(jù)刷新程序和各狀態(tài)處理程序。中斷程序的流程圖如圖3.2.2所示。圖3.2.2 定時(shí)中斷服務(wù)子程序數(shù)碼管輸出數(shù)據(jù)刷新子程序是實(shí)現(xiàn)倒計(jì)時(shí)25s,用ledout表示輸出的數(shù)據(jù),cnt用來(lái)軟件計(jì)時(shí)1s,就是計(jì)數(shù)10個(gè)100ms。led輸出是要將輸出的數(shù)據(jù)轉(zhuǎn)化為段選碼。led數(shù)碼管倒計(jì)時(shí)顯示子程序的流程圖如圖3.2.3所示。圖3.2.3 led倒計(jì)時(shí)顯示子程序根據(jù)當(dāng)前的狀態(tài)跳轉(zhuǎn)到相應(yīng)的處理程序,在處理程序中完成定時(shí)和狀

26、態(tài)的切換。狀態(tài)1和3的流程是一樣的,先點(diǎn)亮對(duì)應(yīng)的交通燈,再判斷定時(shí)到了就可以切換了。狀態(tài)2和4要實(shí)現(xiàn)黃燈的閃爍,間隔點(diǎn)亮和熄滅就可以了。狀態(tài)1和3處理程序的流程圖(以狀態(tài)1為例)如圖6所示,其中num是狀態(tài)1對(duì)應(yīng)的pc口輸出,見(jiàn)前面的表中介紹。狀態(tài)2和4處理程序(以狀態(tài)1為例)的流程圖如圖3.2.4所示,其中num1和num2是狀態(tài)1對(duì)應(yīng)的pc口輸出。 圖3.2.4 狀態(tài)1處理程序流程圖3.2.4 外部中斷服務(wù)子程序外部中斷服務(wù)子程序主要用來(lái)處理緊急情況,將2個(gè)方向的車都停止運(yùn)行,點(diǎn)亮所有紅燈。下次中斷來(lái)時(shí)恢復(fù)以前的狀態(tài)。用一個(gè)標(biāo)志位flag判斷是第一次進(jìn)入還是恢復(fù)狀態(tài)。外部中斷服務(wù)子程序的流

27、程圖見(jiàn)圖3.2.5所示。 圖3.2.5 外部中斷服務(wù)子程序流3.3 程序流程圖初始化8255端口地址,定義數(shù)據(jù)變量,定義8255工作方式開(kāi) 始寫(xiě)a口的數(shù)據(jù),東方向綠燈亮,南方向紅燈亮寫(xiě)b口發(fā)出的數(shù)據(jù),西方向綠燈亮,北方向紅燈亮寫(xiě)a口發(fā)出的數(shù)據(jù),東方向黃燈亮,南方向紅燈亮寫(xiě)a口發(fā)出的數(shù)據(jù),西方向黃燈亮, 北方向紅燈亮寫(xiě)a口發(fā)出的數(shù)據(jù),東方向黃燈滅,南北方向紅燈亮寫(xiě)b口發(fā)出的數(shù)據(jù),西方向黃燈滅,南北方向紅燈亮寫(xiě)a口發(fā)出的數(shù)據(jù),東方向紅燈亮,南方向綠燈亮寫(xiě)b口發(fā)出的數(shù)據(jù),西方向紅燈亮,北方向綠燈亮寫(xiě)a口發(fā)出的數(shù)據(jù),南方向黃燈亮,東方向紅燈亮寫(xiě)b口發(fā)出的數(shù)據(jù),北方向黃燈亮,西方向紅燈亮寫(xiě)a口發(fā)出的數(shù)據(jù)

28、,南北方向黃燈滅,東方向紅燈亮寫(xiě)b口發(fā)出的數(shù)據(jù),南北方向黃燈滅,西方向紅燈亮判斷m bios 功能調(diào)用是否有按鍵按下,調(diào)用功能號(hào)1, 無(wú)按鍵則跳回繼續(xù)循環(huán),有則退出dos系統(tǒng)功能調(diào)用,軟件延時(shí)子程序東西方向紅燈亮,南北方向綠燈亮軟件延時(shí)子程序,黃燈閃爍(即亮與滅)的時(shí)間間隔圖3.3 程序流程圖3.4設(shè)備連接圖 gate0 clk08253 out01.19mhzirq0 8259a+5v pa0 pa78255 d0d7sw-led unit4 程序源代碼:org 0000hljmp jod0org 0bb0hjod0: mov sp,#60h mov dptr,#0ff2bhmov a,#8

29、8hmovx dptr,a;8255初始化mov dptr,#0ff28hmov a,#0b6hmovx dptr,ainc dptrmov a,#0dhmovx dptr,a;點(diǎn)亮4個(gè)紅燈mov r2,#25h;延時(shí)lcall delyjod3: mov dptr,#0ff28h mov a,#75h movx dptr,a inc dptrmov a,#0dhmovx dptr,a;東西綠燈亮,南北紅燈亮mov r2,#55hlcall dely;延時(shí)mov r7,#05h;閃爍次數(shù)jod1:mov dptr,#0ff28hmov a,#0f3hmovx dptr,a inc dptrmo

30、v a,#0chmovx dptr,a;東西黃燈亮,南北紅燈亮mov r2,#20hlcall dely;延時(shí)mov dptr,#0ff28hmov a,#0f7hmovx dptr,ainc dptrmov a,#0dhmovx dptr,a;南北紅燈亮mov r2,#20hlcall dely;延時(shí)djnz r7,jod1;閃爍次數(shù)未到繼續(xù)mov dptr,#0ff28hmov a,#0aehmovx dptr,ainc dptrmov a,#0bhmovx dptr,a;東西紅燈亮,南北綠燈亮mov r2,#55hlcall dely;延時(shí)mov r7,#05h;閃爍次數(shù)jod2:mov

31、 dptr,#0ff28hmov a,#9ehmovx dptr,ainc dptrmov a,#07hmovx dptr,a;東西紅燈亮,南北黃燈亮mov r2,#20hlcall dely;延時(shí)mov dptr,#0ff28hmov a,#0behmovx dptr,ainc dptrmov a,#0fhmovx dptr,a;東西紅燈亮mov r2,#20hlcall dely;延時(shí)djnz r7,jod2;閃爍次數(shù)未到繼續(xù)ljmp jod3;循環(huán)org 0c30hdely: push 02hdel2:push 02hdel3:push 02h;延時(shí)del4:djnz r2,del4po

32、p 02hdjnz r2,del3pop 02hdjnz r2,del2pop 02hdjnz r2,delyretend5調(diào) 試5.1 實(shí)驗(yàn)步驟(1) 連接8255并行口控制交通燈實(shí)驗(yàn)電路      運(yùn)行并使其能通過(guò)軟件控制其交通燈控制系統(tǒng)。(2) 連接8259單極中斷控制器實(shí)驗(yàn)電路      運(yùn)行并使其能成功完成中斷控制。(3) 連接8253定時(shí)/計(jì)數(shù)器實(shí)驗(yàn)電路      運(yùn)行并使其能定時(shí)/計(jì)數(shù)器功能,并產(chǎn)生方波

33、。(4) 用導(dǎo)線將以上實(shí)驗(yàn)電路模塊連接起來(lái),就是硬件控制的交通燈控制系統(tǒng)。(5) 編寫(xiě)程序代碼,8255交通燈顯示實(shí)驗(yàn),a口表示東、南方向,b口表示西、北方向,綠燈和紅燈共同表示黃燈(6) 將匯編好的實(shí)驗(yàn)程序裝入(7) 匯編調(diào)試(8) 記錄運(yùn)行結(jié)果,以及調(diào)試中遇到的問(wèn)題5.2調(diào)試記錄與分析在調(diào)試中,剛開(kāi)始由于對(duì)一些芯片不是很了解以及匯編語(yǔ)言用的不是很熟練,所以起初錯(cuò)誤比較多,要么燈都不顯示,要么燈顯示不全,再要么紅燈綠燈時(shí)間分配不合理。總之是一頭霧水,通過(guò)翻閱接口方面的書(shū)以及在網(wǎng)上查閱資料,有點(diǎn)了初步的進(jìn)展。諸如像燈不顯示或顯示不全,一方面可能由于電路連接出錯(cuò)或者可能程序沒(méi)寫(xiě)正確都會(huì)導(dǎo)致這些錯(cuò)誤。而紅黃綠時(shí)間分配不合理,比方說(shuō)黃燈時(shí)間很久而綠燈時(shí)間很短,這都是時(shí)間設(shè)置問(wèn)題,這些都要通過(guò)代碼更改才能實(shí)現(xiàn)。其中8255a的a口表示東、南方向,b口表示西、北方向,綠燈和紅燈共同表示黃燈,由于能力有限以及代碼存在的一些錯(cuò)誤,沒(méi)能正確的調(diào)試出預(yù)期實(shí)驗(yàn)結(jié)果,希望通過(guò)以后不斷的學(xué)習(xí),提高自身能力。6 運(yùn)行與結(jié)果在程序執(zhí)行過(guò)程中,初始狀態(tài)為四個(gè)路口的燈全亮,東西路口的綠燈亮,南北路口的紅燈亮,東西

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論