2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)說明書</b></p><p>  2010 — 2011學(xué)年第一學(xué)期</p><p>  題目: 模擬交通燈控制系統(tǒng) </p><p>  學(xué) 院: 計(jì)算機(jī)學(xué)院 </p><p>  專業(yè)

2、班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)1班 </p><p>  學(xué) 號(hào): </p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師:   </p><p>  成 績:

3、      </p><p>  時(shí) 間: </p><p>  2011年 12 月 17 日</p><p><b>  摘 要</b></p><p>  隨著城市人口的快速增長和機(jī)動(dòng)車數(shù)量的

4、大量增加,城市交通燈作為緩解交通壓力、提高道路通行效率的重要手段,其作用越來越重要。因此,如何改進(jìn)交通燈的設(shè)計(jì),使其更好的適應(yīng)城市交通的發(fā)展也成為一個(gè)重要課題。紅綠燈控制系統(tǒng)是利用8253A定時(shí)/計(jì)數(shù)器芯片的定時(shí)功能,向8259A中斷控制器芯片發(fā)出定時(shí)中斷請(qǐng)求,驅(qū)動(dòng)8255A可編程并行接口芯片改變路口的LED燈的亮滅。系統(tǒng)采用DVCC-598JH+微機(jī)原理與接口技術(shù)實(shí)驗(yàn)箱作為測試與運(yùn)行的平臺(tái),8086匯編語言作為編程語言,并用MASM5

5、.0作為匯編語言開發(fā)環(huán)境。</p><p>  關(guān)鍵詞:紅綠燈控制系統(tǒng) 8253A定時(shí)器 8259A中斷控制器 8255A可編程并行接 </p><p>  DVCC-598JH+</p><p><b>  目 錄</b></p><p><b>  摘 要 I</b&g

6、t;</p><p>  1.十字路口基本情況分析 1</p><p>  2.交通燈狀態(tài)轉(zhuǎn)換分析 1</p><p>  3.硬件功能分析 2</p><p>  3.1 8253A定時(shí)/計(jì)數(shù)器芯片 2</p><p>  3.2 8259A中斷控制器芯片 3</p><p

7、>  3.3 8255A可編程并行接口芯片 4</p><p>  4.系統(tǒng)設(shè)計(jì) 6</p><p>  4.1硬件設(shè)計(jì) 6</p><p>  4.1.1 電路分析 6</p><p>  4.1.2 電路連接設(shè)計(jì) 6</p><p>  4.2軟件設(shè)計(jì) 8</p>&l

8、t;p>  4.2.1 程序總體設(shè)計(jì) 8</p><p>  4.2.2 程序流程設(shè)計(jì) 9</p><p>  4.2.3 重要代碼分析 10</p><p>  5.系統(tǒng)實(shí)現(xiàn) 15</p><p>  5.1 軟件開發(fā)與運(yùn)行環(huán)境 15</p><p>  5.2 系統(tǒng)硬件環(huán)境 15<

9、;/p><p>  5.3 系統(tǒng)運(yùn)行步驟 16</p><p>  5.4 系統(tǒng)測試結(jié)果 16</p><p><b>  參考文獻(xiàn) 17</b></p><p>  心得 體會(huì) 18</p><p>  教師 評(píng)語 19</p><p>  附 錄

10、 20</p><p>  1.十字路口基本情況分析</p><p>  設(shè)有一個(gè)十字路口,1、3為東西方向,2、4為南北方向,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車; 延時(shí)一段時(shí)間后,1、3路口的綠燈熄滅,而1、3路口的黃燈開始閃爍,閃爍若干次以后,1、3 路口紅燈亮, 而同時(shí)2、4路口的綠燈亮,2、4路口方向通車;延時(shí)一段時(shí)間后,2、4 路口的綠燈熄滅,而黃燈開

11、始閃爍,閃爍若干次以后,再切換到1、3路口方向,之后重復(fù)上述過程。</p><p>  2.交通燈狀態(tài)轉(zhuǎn)換分析</p><p>  合理的設(shè)置每個(gè)路口、每個(gè)方向的交通燈的通行時(shí)間,對(duì)車輛能否及時(shí)疏散,有著決定性的作用。</p><p>  狀態(tài)1的時(shí)候:1、3路口的綠燈熄滅,而1、3路口的黃燈開始亮(當(dāng)通行時(shí)間剩5秒結(jié)束的時(shí),LED燈會(huì)閃爍), 而同時(shí)2、4路口的紅

12、燈亮;</p><p>  狀態(tài)2的時(shí)候:1、3 路口紅燈亮, 而同時(shí)2、4路口的綠燈亮,2、4路口方向通車;</p><p>  狀態(tài)3的時(shí)候:1、3 路口紅燈亮, 而同時(shí)2、4路口的黃燈亮;</p><p>  狀態(tài)4 的時(shí)候:1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車。整個(gè)狀態(tài)轉(zhuǎn)換的過程見表2-1。</p><p>  

13、表2-1 路口四個(gè)狀態(tài)和相互轉(zhuǎn)換過程</p><p>  完成四個(gè)狀態(tài)的一次循環(huán)需要40秒, 紅燈亮20秒 、綠燈亮15秒 、黃燈亮5秒</p><p>  完成了在適當(dāng)?shù)臅r(shí)間限度內(nèi),有效的疏散較大的通行量的目的。</p><p><b>  3.硬件功能分析</b></p><p>  3.1 8253A定時(shí)/計(jì)數(shù)

14、器芯片</p><p>  8253A定時(shí)/計(jì)數(shù)器具有定時(shí)、計(jì)數(shù)雙功能。它具有三個(gè)相同且相互獨(dú)立的16位減法計(jì)數(shù)器,分別稱為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2。每個(gè)計(jì)數(shù)器計(jì)數(shù)頻率為0-2MHZ。</p><p>  其內(nèi)部數(shù)據(jù)總線緩沖器為雙向三態(tài),故可直接連在系統(tǒng)數(shù)據(jù)總線上,通過CPU寫入計(jì)數(shù)初值,也可由CPU讀出計(jì)數(shù)當(dāng)前值。讀寫控制邏輯,當(dāng)選中該芯片時(shí),根據(jù)讀寫命令和送來的地址信息控制整個(gè)芯片

15、工作。其工作方式通過控制字確定??刂谱旨拇嫫饔糜诮邮諗?shù)據(jù)總線緩沖器的信息。當(dāng)寫入控制字時(shí),控制計(jì)數(shù)器的工作方式;當(dāng)寫入數(shù)據(jù)時(shí)則裝入計(jì)數(shù)初值??刂萍拇嫫鳛?位,只能寫入不能讀出。8253A內(nèi)部結(jié)構(gòu)見圖3-1。</p><p>  當(dāng)8253A執(zhí)行計(jì)數(shù)功能時(shí),計(jì)數(shù)器裝入初值后,當(dāng)GATE為高電平時(shí),可用外部事件作為CLK脈沖對(duì)計(jì)數(shù)值進(jìn)行減1計(jì)數(shù)。每來一個(gè)脈沖減1,當(dāng)計(jì)數(shù)值減為0時(shí),由OUT端輸出一個(gè)標(biāo)志信號(hào)。<

16、/p><p>  當(dāng)8253A執(zhí)行定時(shí)功能時(shí),計(jì)數(shù)器裝入初值后,當(dāng)GATE為高電平時(shí),由CLK脈沖觸發(fā)開始自動(dòng)計(jì)數(shù)。當(dāng)計(jì)數(shù)到零時(shí),發(fā)計(jì)數(shù)結(jié)束定時(shí)信號(hào)。</p><p>  8253A可以工作在方式0到方式5,常用的有方式2頻率發(fā)生器方式和方式3方波發(fā)生器方式。在方式2時(shí),當(dāng)初值裝入后,OUT變?yōu)楦撸挥?jì)數(shù)結(jié)束,OUT變?yōu)榈?。該方式下如果?jì)數(shù)未結(jié)束,但GATE為低時(shí),立即停止計(jì)數(shù),將OUT變?yōu)楦撸?/p>

17、當(dāng)GATE再變高時(shí),便啟動(dòng)一次新的計(jì)數(shù)周期。在方式3時(shí),當(dāng)裝入初值后,在GATE上升沿啟動(dòng)計(jì)數(shù),OUT輸出高電平;當(dāng)計(jì)數(shù)完成一半時(shí),OUT輸出低電平。</p><p>  在本系統(tǒng)中,8253A工作于方式3方波發(fā)生器方式。</p><p>  圖 3-1 8253A內(nèi)部結(jié)構(gòu)圖</p><p>  3.2 8259A中斷控制器芯片</p><p

18、>  8259A是專為控制優(yōu)先級(jí)中斷而設(shè)計(jì)的芯片。它將中斷源按優(yōu)先級(jí)排隊(duì)、辨認(rèn)中斷源和提供中斷向量的電路集成于一體,只要用軟件對(duì)它進(jìn)行編程,就可以管理8級(jí)中斷。</p><p>  8259A的內(nèi)部結(jié)構(gòu)見圖3-2。它由中斷請(qǐng)求寄存器(IRR)、優(yōu)先級(jí)分析器、中斷服務(wù)寄存器(ISR)、中斷屏蔽寄存器(IMR)、數(shù)據(jù)總線緩沖器、讀寫控制電路、級(jí)聯(lián)緩沖器和比較器組成。</p><p>  

19、圖 3-2 8259A的內(nèi)部結(jié)構(gòu)</p><p>  對(duì)8259A編程和初始化的時(shí)候,首先要寫初始化命令字ICW1-ICW4。</p><p>  寫ICW1以確定中斷請(qǐng)求信號(hào)類型,清除中斷屏蔽寄存器,進(jìn)行中斷優(yōu)先級(jí)排隊(duì)和確定系統(tǒng)是用單片還是多片。</p><p>  寫ICW2用來定義中斷向量的高五位類型碼。</p><p>  ICW3

20、可以定義主片8259A中斷請(qǐng)求線上IR0-IR7有無級(jí)聯(lián)的8259A從片。</p><p>  寫ICW4用來定義8259A工作時(shí)用8085模式還是8088模式,以及中斷服務(wù)寄存器復(fù)位方式等。</p><p>  初始化命令字寫完以后,要寫8259A的控制命令字,它包括OCW1-OCW3。</p><p>  寫OCW1可以設(shè)置或清除對(duì)中斷源的屏蔽。</p&g

21、t;<p>  寫OCW2設(shè)置優(yōu)先級(jí)是否進(jìn)行循環(huán)、循環(huán)的方式和中斷結(jié)束的方式。8259A復(fù)位時(shí)自動(dòng)設(shè)置IR0優(yōu)先權(quán)最高,IR7優(yōu)先權(quán)最低。</p><p>  寫OCW3用來設(shè)置查詢方式和特殊屏蔽方式,并可以讀取8259A中斷寄存器的當(dāng)前狀態(tài)。</p><p>  在本系統(tǒng)中,使用8259A的循環(huán)等待中斷工作方式。</p><p>  3.3 825

22、5A可編程并行接口芯片</p><p>  8255A是一種可編程的芯片,它采用雙列直插封裝,用+5V電源供電。內(nèi)部有3個(gè)8位的I/0端口:A口、B口和C口。這三個(gè)端口也可以分為各有12位的兩組:A組和B組。A組包含A口8位和C口的高四位,B組包含B口8位和C口的低四位;A組控制和B組控制用于實(shí)現(xiàn)方式選擇操作;讀寫控制邏輯用于控制芯片內(nèi)部寄存器的數(shù)據(jù)和控制字經(jīng)數(shù)據(jù)總線緩沖器送入各組接口寄存器中。由于8255A數(shù)據(jù)

23、總線緩沖器是雙向三態(tài)8位驅(qū)動(dòng)器,因此可以直接和8088系統(tǒng)數(shù)據(jù)總線相連。8255A的內(nèi)部邏輯結(jié)構(gòu)見圖3-3。</p><p>  圖3-3 8255A的內(nèi)部結(jié)構(gòu)</p><p>  8255A有三種工作方式:方式0、方式1和方式2。它通過對(duì)控制寄存器寫入不同的方式選擇控制字來決定其三種不同的工作方式。</p><p>  方式0是基本輸入輸出方式。該方式下的A口8

24、位和B口8位可以由輸入的控制字決定為輸入或輸出,C口分成高4位(PC4-PC7)和低4位(PC0-PC3)兩組,也有控制字決定其輸入或輸出。需要注意的是,該方式下,只能將C口其中一組的四位全部置為輸入或輸出。</p><p>  方式1選通輸入輸出方式,又叫單向輸入輸出方式。它分為A、B兩組,A組由數(shù)據(jù)口A和控制口C的高4位組成,B組由數(shù)據(jù)口B和控制口C的低4位組成。數(shù)據(jù)口的輸入輸出都是鎖存的,與方式0不同,由控

25、制字來決定它是作為輸入還是輸出。C口的相應(yīng)位用于寄存數(shù)據(jù)傳送中所需的狀態(tài)信號(hào)和控制信息。</p><p>  方式2為雙向輸入輸出方式。本方式只有A組可以使用。此時(shí)A口為輸入輸出雙向口,C口中的5位(PC3-PC7)作為A口的控制位。</p><p>  在本系統(tǒng)中,8255A的三個(gè)端口均工作于方式0,全部為輸出口。</p><p><b>  4.系統(tǒng)設(shè)

26、計(jì)</b></p><p><b>  4.1硬件設(shè)計(jì)</b></p><p>  4.1.1 電路分析</p><p>  本系統(tǒng)要實(shí)現(xiàn)的功能是模擬十字路口紅綠燈的工作狀況。按照預(yù)先設(shè)定并優(yōu)化的交通燈規(guī)則,控制LED指示燈的亮滅,同時(shí)在實(shí)驗(yàn)箱的數(shù)碼管顯示屏上顯示剩余的時(shí)間。當(dāng)時(shí)間遞減到0的時(shí)候,改變LED燈的狀態(tài),并刷新顯示屏顯示

27、的時(shí)間。</p><p>  為了實(shí)現(xiàn)以上功能需求,本系統(tǒng)需要6個(gè)LED指示燈,來分別代表1、3方向(東西),2、4方向(南北);兩個(gè)雙位的數(shù)碼管顯示屏,用來顯示1、3路口和2、4路口剩余的時(shí)間。</p><p>  為了實(shí)時(shí)地更新數(shù)碼管顯示屏上的數(shù)字,需要使用8255A可編程芯片來即時(shí)地改變顯示屏每個(gè)筆劃的電平高低,從而準(zhǔn)確地將需要顯示的數(shù)字顯示在數(shù)碼管顯示屏上。</p>

28、<p>  由于交通燈需要按秒進(jìn)行計(jì)數(shù),所以需要一個(gè)均勻地時(shí)鐘發(fā)生器。8253A芯片是個(gè)功能豐富、使用簡單的定時(shí)/計(jì)數(shù)器。它可以根據(jù)需要設(shè)置不同的顯示初值,從而產(chǎn)生所需頻率的時(shí)鐘脈沖,為系統(tǒng)提供計(jì)時(shí)和驅(qū)動(dòng)其他事件的發(fā)生。8259A中斷控制器芯片可以在收到8253A發(fā)出的時(shí)鐘脈沖時(shí),產(chǎn)生定時(shí)的中斷,在中斷服務(wù)程序中,更新顯示緩沖區(qū),并調(diào)用8255A芯片來執(zhí)行相關(guān)程序,從而更新LED燈和數(shù)碼管顯示屏。</p><

29、;p>  本系統(tǒng)使用集成的電路和實(shí)驗(yàn)環(huán)境,以方便進(jìn)行電路的連接和測試,同時(shí)減少由于電路的復(fù)雜性而產(chǎn)生的錯(cuò)誤。</p><p>  4.1.2 電路連接設(shè)計(jì)</p><p>  本系統(tǒng)所使用到的硬件包括8253A芯片、8259A芯片、8255A芯片、LED指示燈和數(shù)碼管顯示屏。</p><p>  在電路連接的時(shí)候,將8255A芯片的PC口的PC5、PC4接紅燈

30、燈,PC3、PC2接綠燈,PC1、PC0接黃燈。通過改變8255A的PC口的值來實(shí)時(shí)地控制每個(gè)LED燈的亮滅,從而改變十字路口的交通狀態(tài)。</p><p>  將8253A的CLK0插孔連接至1MHZ的分頻輸出插孔T4。分頻輸出插孔所輸出的頻率是將系統(tǒng)的主頻分解為一定的頻率,以供其他硬件或者軟件使用。8253A從分頻插孔得到1MHZ的固定頻率,再根據(jù)芯片內(nèi)部設(shè)定的計(jì)數(shù)初值,從而產(chǎn)生需要頻率的時(shí)鐘脈沖,由OUT0口

31、輸出,供其他芯片使用。在這里OUT0接CLK2。</p><p>  將8253A的OUT2插孔連接至8259A的IRQ3插孔上。8259A的IRQ3中斷口每隔固定的時(shí)間便會(huì)收到8253A發(fā)送過來的時(shí)鐘脈沖,作為中斷源來執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序中,完成更新數(shù)碼管顯示值和改變交通燈狀態(tài)的功能。</p><p>  硬件的連接見圖4-1和圖4-2。</p><p&g

32、t;  圖 4-1 系統(tǒng)電路圖——8253A和8259A的連接圖</p><p>  圖 4-2 系統(tǒng)電路圖——8255A和LED燈的連接圖</p><p><b>  4.2軟件設(shè)計(jì)</b></p><p>  4.2.1 程序總體設(shè)計(jì)</p><p>  本系統(tǒng)采用“自上而下總體規(guī)劃、自下而上應(yīng)用開發(fā)”的策略進(jìn)行

33、總體設(shè)計(jì)和開發(fā)。先根據(jù)其功能需要,設(shè)定需要的功能模塊,確定需要編寫的子程序,從而使程序結(jié)構(gòu)清晰,便于閱讀和調(diào)試,加快了系統(tǒng)完成的速度。結(jié)構(gòu)化的程序設(shè)計(jì)方法很適合用來開發(fā)匯編語言程序,因?yàn)閰R編語言的特性決定了其無法使用面向?qū)ο蟮某绦蜷_發(fā)方法;使用瀑布程序開發(fā)模型,從開始的時(shí)候把系統(tǒng)的需求分析透徹,對(duì)系統(tǒng)的功能和各個(gè)模塊進(jìn)行清晰的規(guī)劃,從而縮短系統(tǒng)開發(fā)所用的時(shí)間。</p><p>  為了完成系統(tǒng)的功能,系統(tǒng)的程序部

34、分應(yīng)包含以下幾個(gè)模塊(見圖4-3)。</p><p>  初始化模塊用來初始化各個(gè)芯片,分為以下幾個(gè)步驟:</p><p> ?。?)初始化數(shù)據(jù):T_1為1、3方向(東西)時(shí)間顯示(如 5秒);T_2為2、4方向(南北)的時(shí)間顯示。初值可同設(shè)為5秒。</p><p> ?。?)初始化8255A的工作方式:使A、B、C三個(gè)端口均工作于方式0,且為輸出口;DVCC實(shí)驗(yàn)臺(tái)

35、8255口地址:FF28H—FF2BH</p><p> ?。?)初始化8253A芯片:選用方波發(fā)生器方式,并設(shè)定其使用通道0和2進(jìn)行工作;DVCC實(shí)驗(yàn)臺(tái)8253口地址:0040—0043H</p><p> ?。?)初始化8259A:設(shè)定其工作方式為單片、邊沿觸發(fā)、要寫ICW4、循環(huán)等待中斷方式。DVCC實(shí)驗(yàn)臺(tái)8259口地址:0060—0061H</p><p>

36、  設(shè)置中斷向量表 寫2號(hào)、3號(hào)中斷向量:INTREEUP2、INTREEUP3。</p><p><b>  中斷處理模塊:</b></p><p> ?。?)INTREEUP3是主要的中斷服務(wù)程序, 8253A每發(fā)來一次時(shí)鐘脈沖便產(chǎn)生一次中斷,兩個(gè)路口所亮的燈對(duì)應(yīng)的顯示數(shù)值減一。并輸出完成顯示數(shù)值的更新使時(shí)間緩沖區(qū)中的時(shí)間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷

37、的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行LED燈狀態(tài)的切換</p><p> ?。?)其中INTREEUP2是增加行人手動(dòng)按鈕。實(shí)現(xiàn)可手動(dòng)干預(yù)的(交通事故、步行可及時(shí)通行的)交通燈自動(dòng)控制系統(tǒng)</p><p>  有手動(dòng)干預(yù)(按鈕按下)時(shí),交通燈立即處于該狀態(tài):兩個(gè)方向均紅燈亮(以便讓行人及時(shí)通過)。10秒后,交通恢復(fù)到人工干預(yù)前狀態(tài),繼續(xù)按正常狀態(tài)循環(huán)切換。</p>

38、<p>  顯示模塊(DISP)使用8255A將顯示緩沖區(qū)的字符逐位顯示在數(shù)碼管顯示屏上,在中斷請(qǐng)求沒有到來的時(shí)候,根據(jù)交通燈所處的狀態(tài),點(diǎn)亮相應(yīng)的LED燈;有中斷請(qǐng)求時(shí),調(diào)用相應(yīng)的中斷服務(wù)程序。</p><p>  圖 4-3 系統(tǒng)模塊圖</p><p>  4.2.2 程序流程設(shè)計(jì)</p><p>  程序運(yùn)行的流程圖見圖4-4。</p>

39、<p>  開始運(yùn)行的時(shí)候,初始化程序,給初始顯示區(qū)和電平錯(cuò)誤顯示區(qū)賦初值,顯示相應(yīng)的字符;定義數(shù)值對(duì)應(yīng)的顯示字符,便于轉(zhuǎn)換程序取到時(shí)間數(shù)值對(duì)應(yīng)的字符。</p><p>  接著對(duì)8253A、8255A和8259A進(jìn)行初始化。定義8253A使用通道0和2,工作于方式3,其計(jì)數(shù)初值為3C50,每隔20ms向8259A發(fā)出一個(gè)時(shí)鐘脈沖;8255A的A、B、C三個(gè)端口均工作于輸出方式;8259A工作于循環(huán)

40、等待中斷方式。</p><p>  進(jìn)入顯示程序(DISP)使用8255A將顯示緩沖區(qū)的字符逐位顯示在數(shù)碼管顯示屏上,在中斷請(qǐng)求沒有到來的時(shí)候,根據(jù)交通燈所處的狀態(tài),點(diǎn)亮相應(yīng)的LED燈。</p><p>  當(dāng)有中斷的時(shí)候,則轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序,本系統(tǒng)主要為INTREEUP3程序。8253A每發(fā)來一次時(shí)鐘脈沖便產(chǎn)生一次中斷。INTREEUP3程序首先關(guān)閉中斷,兩個(gè)路口所亮的燈對(duì)應(yīng)的顯示

41、數(shù)值減一。并輸出以完成顯示數(shù)值的更新使時(shí)間緩沖區(qū)中的時(shí)間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行LED燈狀態(tài)的切換。最后</p><p>  打開中斷,并中斷返回。</p><p>  圖4-4 主程序框圖 圖4-5 中斷程序框圖</p><p>  4.2.3 重要代碼分析</p>&

42、lt;p> ?。?)中斷服務(wù)程序INTREEUP3是本系統(tǒng)的程序最核心的子程序。它用來計(jì)算收到8353A發(fā)來的中斷,8253A每發(fā)來一次時(shí)鐘脈沖便產(chǎn)生一次中斷,兩個(gè)路口所亮的燈對(duì)應(yīng)的顯示數(shù)值減一。并輸出完成顯示數(shù)值的更新使時(shí)間緩沖區(qū)中的時(shí)間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行LED燈狀態(tài)的切換,</p><p>  以下是該程序的代碼分析,并注有詳細(xì)的功能說

43、明。</p><p><b>  中斷服務(wù)程序</b></p><p>  INTREEUP3: CLI ;處理中斷時(shí)先關(guān)中斷</p><p>  push ax ;保存堆棧</p><p><b>  push bx</b></p><p><b> 

44、 push dx</b></p><p>  STI ;保存現(xiàn)場后開中斷以可以實(shí)現(xiàn)中斷嵌套</p><p>  ; 1、3方向(東西)</p><p>  DEC T_1 ;對(duì)當(dāng)前數(shù)值減一</p><p>  MOV AL,T_1</p><p>  CMP AL,00H ;判斷當(dāng)前數(shù)值是

45、否減到0</p><p>  JE CHANGE1 ;若 當(dāng)前數(shù)值為0則跳到CHANGE1 切換狀態(tài)</p><p>  JMP RIGHT ;若 當(dāng)前數(shù)值不為0則跳到2、4方向(南北)</p><p>  CHANGE1: MOV AL,C ;讀入并口狀態(tài)</p><p>  TEST AL,02H ;測試當(dāng)前并口狀態(tài)

46、</p><p><b>  JNZ RED1</b></p><p>  TEST AL,08H</p><p>  JNZ YELLOW1</p><p>  TEST AL,20H</p><p>  JNZ GREEN1</p><p>  RED1: MOV DX

47、,IOC ; 1、3方向(東西)亮紅燈</p><p><b>  OR AL,20H</b></p><p>  AND AL,35H</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p&

48、gt;  MOV T_1,14H ; 對(duì)新狀態(tài)賦顯示初值</p><p><b>  JMP RIGHT</b></p><p>  YELLOW1:MOV DX,IOC 1、3方向(東西)亮黃燈</p><p><b>  OR AL,02H</b></p><p>  AND

49、AL,17H</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_1,05H ; 對(duì)新狀態(tài)賦顯示初值</p><p><b>  JMP RIGHT</b></p><p

50、>  GREEN1:MOV DX,IOC ; 1、3方向(東西)綠燈</p><p><b>  OR AL,08H</b></p><p>  AND AL,1DH</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口

51、狀態(tài)</p><p>  MOV T_1,0fH ; 對(duì)新狀態(tài)賦顯示初值</p><p><b>  ;右邊</b></p><p><b>  RIGHT:</b></p><p><b>  DEC T_2</b></p><p>  MOV

52、 AL,T_2</p><p>  CMP AL,00H</p><p>  JE CHANGE2</p><p>  JMP OUTPUT</p><p>  CHANGE2: MOV AL,C ;讀入c口狀態(tài)</p><p>  TEST AL,01H</p><p><b>

53、;  JNZ RED2</b></p><p>  TEST AL,04H</p><p>  JNZ YELLOW2</p><p>  CMP AL,18H ;應(yīng)急狀態(tài)返回時(shí)2、4方向從新跳到紅燈</p><p>  JZ RED2 ; (同時(shí),1、3方向?yàn)榫G燈)</p><p>  

54、TEST AL,10H</p><p>  JNZ GREEN2</p><p>  RED2:MOV DX,IOC</p><p><b>  OR AL,10H</b></p><p>  AND AL,3AH</p><p><b>  OUT DX,AL</b><

55、;/p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_2,14H</p><p>  JMP OUTPUT</p><p>  YELLOW2: MOV DX,IOC</p><p><b>  OR AL,01H</b></p><p>  A

56、ND AL,2BH</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_2,05H</p><p>  JMP OUTPUT</p><p>  GREEN2: MOV DX,IOC</p>&

57、lt;p><b>  OR AL,04H</b></p><p>  AND AL,2EH</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_2,0fH</p><p><

58、b>  ;輸出數(shù)字</b></p><p>  OUTPUT: MOV AL,T_1</p><p>  MOV AH,T_1</p><p>  AND AL,01H</p><p><b>  MOV CL,4</b></p><p><b>  SHR AH,CL

59、</b></p><p>  MOV AL,T_2</p><p>  MOV AH,T_2</p><p>  AND AL,01H</p><p><b>  MOV CL,4</b></p><p><b>  SHR AH,CL</b></p>

60、<p><b>  ;計(jì)數(shù)器從新賦初值</b></p><p>  MOV AL,36H</p><p>  OUT 43H,AL</p><p>  MOV AL,50H</p><p>  OUT 40H,AL</p><p>  MOV AL,11000011B</p&g

61、t;<p>  OUT 40H,AL</p><p>  MOV AL,10110110B ;計(jì)數(shù)器2</p><p>  OUT 43H,AL</p><p>  MOV AL,02H</p><p>  OUT 42H,AL</p><p>  MOV AL,00H</p><p

62、>  OUT 42H,AL</p><p>  ;===================================</p><p><b>  ;========</b></p><p>  MOV AL,T_1</p><p>  CMP AL,03H</p><p>  JA R

63、IGHTTEST</p><p>  JMP YLEDSTA</p><p>  RIGHTTEST:</p><p>  MOV AL,T_2</p><p>  CMP AL,03H</p><p>  JA RETBCAK</p><p><b>  YLEDSTA:</

64、b></p><p><b>  MOV AL,C</b></p><p>  AND AL,03H</p><p>  JNZ YLEDFLASH</p><p>  JMP RETBCAK</p><p>  ;======== 時(shí)間小于等于3時(shí) LED燈 閃爍 ===========

65、</p><p>  YLEDFLASH:</p><p><b>  PUSH CX</b></p><p><b>  ; PUSH DX</b></p><p>  MOV CX,0AH ; 閃爍3次</p><p>  MOV AL,C ;讀入c口狀態(tài)<

66、/p><p>  AND AL,11111100B ; 燈滅</p><p>  MOV DX,IOC</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY ;短延時(shí)</p><p>  MOV AL,C ;燈亮</p><p&g

67、t;<b>  OUT DX,AL</b></p><p>  CALL DELAY ;短延時(shí)</p><p>  ; LOOP YLEDFLASH ;循環(huán)</p><p><b>  ; POP DX</b></p><p><b>  POP CX</b>&l

68、t;/p><p>  JMP RETBCAK</p><p>  ;;=================;短延時(shí)</p><p><b>  DELAY:</b></p><p>  CALL DELAY2</p><p><b>  RET</b></p>&l

69、t;p>  DELAY2: PUSH CX</p><p>  MOV CX,6A45H ;;;;</p><p>  DELA1:LOOP DELA1</p><p><b>  POP CX</b></p><p><b>  RET</b></p><p&

70、gt;  ;;=================</p><p>  ;==================================================================</p><p><b>  RETBCAK:</b></p><p>  MOV AL,20H ;寫ocw2然后返回</p>

71、<p>  MOV DX,0060h</p><p><b>  OUT DX,AL</b></p><p><b>  CLI</b></p><p><b>  pop dx</b></p><p><b>  pop bx</b><

72、;/p><p><b>  pop ax</b></p><p><b>  STI</b></p><p><b>  IRET</b></p><p>  ;===============中斷返回 ==============</p><p><b

73、>  5.系統(tǒng)實(shí)現(xiàn)</b></p><p>  5.1 軟件開發(fā)與運(yùn)行環(huán)境</p><p>  本系統(tǒng)的代碼使用8086匯編語言編寫,所以代碼編寫環(huán)境可以使用任何文本編輯器。如系統(tǒng)自帶的記事本、DOS下的編輯工具EDIT和文本編輯工具UltraEdit等。</p><p>  本系統(tǒng)使用了DVCC-598JH++實(shí)驗(yàn)箱附帶的DV88聯(lián)機(jī)軟件。它可以

74、讀取其他編輯軟件生成的MASM格式的匯編語言文件(*.ASM),也可以作為匯編代碼的編輯、測試、運(yùn)行環(huán)境。在顯示代碼的時(shí)候,可以把常用的匯編指令顯示為藍(lán)色,數(shù)值顯示為紅色,注釋顯示為綠色,從而使論文清晰易讀,并容易發(fā)現(xiàn)代碼中的錯(cuò)誤。</p><p>  DV88聯(lián)機(jī)軟件同樣可以作為系統(tǒng)的運(yùn)行環(huán)境。系統(tǒng)運(yùn)行的時(shí)候需要將ASM源程序編譯產(chǎn)生的OBJ文件傳送到實(shí)驗(yàn)箱,由實(shí)驗(yàn)箱上的處理器和各個(gè)芯片負(fù)責(zé)執(zhí)行。</p&

75、gt;<p>  5.2 系統(tǒng)硬件環(huán)境</p><p>  交通燈控制系統(tǒng)采用的DVCC-598JH++通用微機(jī)原理及接口實(shí)驗(yàn)系統(tǒng),集成了8253A計(jì)數(shù)/定時(shí)器芯片、8255A可編程并行接口芯片和8259A中斷控制器芯片,并把大部分的引腳進(jìn)行了封裝,方便直接進(jìn)行使用;并設(shè)有12個(gè)LED顯示燈;系統(tǒng)分頻器可以產(chǎn)生特定頻率的時(shí)鐘脈沖;固定的導(dǎo)線接口,方便使用導(dǎo)線把各芯片進(jìn)行連接;并設(shè)有鍵盤,可以隨時(shí)控制

76、程序的運(yùn)行,方便進(jìn)行調(diào)試。</p><p>  實(shí)驗(yàn)箱使用串行口連接線與PC機(jī)的串口相連,然后使用DV88聯(lián)機(jī)軟件與實(shí)驗(yàn)箱進(jìn)行連接并傳送運(yùn)行的程序。</p><p>  5.3 系統(tǒng)運(yùn)行步驟</p><p>  系統(tǒng)的代碼編寫完畢的時(shí)候,便可以進(jìn)行程序的聯(lián)機(jī)調(diào)試了。</p><p>  將實(shí)驗(yàn)箱的電源線連接好,使用串口通信線將實(shí)驗(yàn)箱上的串口與

77、PC機(jī)上的串口相連。將各個(gè)芯片和LED燈按照硬件連接設(shè)計(jì)圖上的圖示進(jìn)行連接。</p><p>  打開實(shí)驗(yàn)箱的電源,數(shù)碼管顯示屏上顯示“P.”,提示實(shí)驗(yàn)箱初始化成功。</p><p>  在PC機(jī)上打開DV88聯(lián)機(jī)軟件,調(diào)用編輯好的程序代碼。首先進(jìn)行編譯,系統(tǒng)會(huì)自動(dòng)調(diào)用MASM程序?qū)Υa進(jìn)行編譯。若沒有提示錯(cuò)誤,便可以點(diǎn)擊連接按鈕,調(diào)用LINK程序把編譯生成的OBJ文件進(jìn)行連接,生成EXE

78、文件。再點(diǎn)進(jìn)調(diào)試按鈕,把生成的可執(zhí)行文件傳送到實(shí)驗(yàn)箱,進(jìn)行調(diào)試狀態(tài),此時(shí)屏幕會(huì)顯示實(shí)驗(yàn)箱各個(gè)寄存器的值。最后點(diǎn)擊連續(xù)運(yùn)行按鈕,實(shí)驗(yàn)箱上的數(shù)碼顯示管和LED燈便會(huì)按照設(shè)計(jì)的要求進(jìn)行工作。</p><p>  在運(yùn)行的過程中可以隨時(shí)按實(shí)驗(yàn)箱上的RESET鍵,中斷程序的執(zhí)行,以便進(jìn)行代碼的修改或者結(jié)束系統(tǒng)的運(yùn)行。</p><p>  5.4 系統(tǒng)測試結(jié)果</p><p>

79、  按照表2-1中交通燈四個(gè)狀態(tài)所對(duì)應(yīng)的秒數(shù),在程序中為各個(gè)狀態(tài)子程序設(shè)定相應(yīng)的時(shí)間初值。測試運(yùn)行的結(jié)果如下:</p><p>  開始運(yùn)行時(shí),系統(tǒng)在狀態(tài)一下工作,兩個(gè)顯示屏顯示剩余時(shí)間為5秒,并不斷遞減,同時(shí)LED燈的2、4路口的紅燈點(diǎn)亮,1、3路口的黃燈點(diǎn)亮;當(dāng)狀態(tài)一的剩余時(shí)間減至零的時(shí)候,系統(tǒng)自動(dòng)切換到狀態(tài)二,2、4路口顯示屏顯示剩余時(shí)間變?yōu)?5秒并遞減,1、3路口顯示屏顯示剩余時(shí)間變?yōu)?0秒并遞減,同時(shí)1

80、、3路口的紅燈和2、4路口的綠燈點(diǎn)亮;狀態(tài)二結(jié)束時(shí),系統(tǒng)切換到狀態(tài)三,兩個(gè)顯示屏的剩余時(shí)間變更為5秒,1、3路口的紅燈和2、4路口的黃燈點(diǎn)亮;狀態(tài)三結(jié)束時(shí),進(jìn)入狀態(tài)四,2、4路口顯示屏顯示剩余時(shí)間變?yōu)?0秒并遞減,1、3路口顯示屏顯示剩余時(shí)間變?yōu)?5秒并遞減,同時(shí)1、3路口的綠燈點(diǎn)亮,2、4路口的紅燈點(diǎn)亮。狀態(tài)四結(jié)束時(shí),自動(dòng)切換到狀態(tài)一循環(huán)執(zhí)行。</p><p><b>  參考文獻(xiàn)</b>

81、</p><p>  [1] 季福坤:《計(jì)算機(jī)組織與體系結(jié)構(gòu)》[M],中國水利水電出版社2006年版</p><p>  [2] 李繼燦:《微型計(jì)算機(jī)系統(tǒng)與接口》[M],清華大學(xué)出版社2005年版</p><p>  [3]楊立:《微型計(jì)算機(jī)系統(tǒng)與接口》[M],中國鐵道出版社2009年版</p><p>  [4]《DVCC系列單片機(jī)微機(jī)仿真

82、實(shí)驗(yàn)系統(tǒng)實(shí)驗(yàn)指導(dǎo)書》[M],啟東計(jì)算機(jī)廠有限公司</p><p>  [5] 《紅綠燈控制系統(tǒng)的設(shè)計(jì)》[C], 百度文庫</p><p><b>  心得 體會(huì)</b></p><p>  通過這次課程設(shè)計(jì),加強(qiáng)了我們動(dòng)手、思考和解決問題的能力.現(xiàn)在設(shè)計(jì)已經(jīng)做好了,自己感覺還是比較好的,雖然花了很多的時(shí)間,但學(xué)到了很多東西.做課程設(shè)計(jì)的時(shí)候,

83、查閱了很多課本、資料書,增強(qiáng)了自己對(duì)知識(shí)的理解,很多以前不是很懂的問題現(xiàn)在都有了更高層次的理解.在課程設(shè)計(jì)的過程中,我想了很多種方案,對(duì)同一個(gè)問題,都想了很多種不同的接法,運(yùn)用不同的芯片進(jìn)行了比較,最后還是采取了上面的方法進(jìn)行連接.</p><p>  在這次課程設(shè)計(jì)中,遇到最棘手也是最深刻的問題是不太了解所用平臺(tái)的硬件資源以及其電路結(jié)構(gòu)。深刻教訓(xùn):使用匯編語言編寫程序時(shí),一定要好好了解所用平臺(tái)的硬件資源!<

84、;/p><p>  這次課程設(shè)計(jì)之后,使我們明白了:做任何事情都要認(rèn)真仔細(xì),更要有不輕易放棄的勇氣!不然的話,你會(huì)花更多的時(shí)間、轉(zhuǎn)很多的彎路才會(huì)做好.課程設(shè)計(jì)有利于提高我們的動(dòng)手能力,能把我們所學(xué)的書本知識(shí)運(yùn)用到實(shí)際生活中去.同時(shí)也豐富了我們的業(yè)余生活,提高我們對(duì)知識(shí)的理解能力!</p><p><b>  教師 評(píng)語</b></p><p>&

85、lt;b>  附 錄</b></p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE</p><p><b>  ORG 21B0H</b></p><p>  IOC EQU 0FF2AH</p><p>  T_1 DB 01H&

86、lt;/p><p>  T_2 DB 03H</p><p><b>  C DB 00H</b></p><p>  DATA1 DB 10 DUP(?)</p><p>  BEGIN: ;初始化數(shù)據(jù)</p><p>  MOV T_1,05H</p><p>  MOV

87、 T_2,05H</p><p>  MOV BX,OFFSET DATA1</p><p>  MOV BYTE PTR CS:[BX],0c0h</p><p>  MOV BYTE PTR CS:[BX+1],0f9h</p><p>  MOV BYTE PTR CS:[BX+2],0a4h</p><p> 

88、 MOV BYTE PTR CS:[BX+3],0b0h</p><p>  MOV BYTE PTR CS:[BX+4],99h</p><p>  MOV BYTE PTR CS:[BX+5],92h</p><p>  MOV BYTE PTR CS:[BX+6],82h</p><p>  MOV BYTE PTR CS:[BX+7]

89、,0f8h</p><p>  MOV BYTE PTR CS:[BX+8],80h</p><p>  MOV BYTE PTR CS:[BX+9],90h</p><p><b>  ;初始化并口</b></p><p>  MOV DX,0FF2BH ;方式0,全輸出模式</p><p>

90、  MOV AL,80H</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,IOC</p><p>  MOV AL,21H</p><p>  MOV C,AL ;把C口的狀態(tài)記錄下</p><p><b>  OUT DX,AL</b&g

91、t;</p><p><b>  ;初始化計(jì)數(shù)器</b></p><p>  MOV AL,36H ;計(jì)數(shù)器0.方式3,先寫高位后寫低位,2進(jìn)制計(jì)數(shù)</p><p>  OUT 43H,AL</p><p>  MOV AL,52H</p><p>  OUT 40H,AL</p>

92、;<p>  MOV AL,11000011B</p><p>  OUT 40H,AL</p><p>  MOV AL,10110110B ;計(jì)數(shù)器,方式3,先寫低位后寫高位,2進(jìn)制計(jì)數(shù)</p><p>  OUT 43H,AL</p><p>  MOV AL,02H</p><p>  OUT

93、42H,AL</p><p>  MOV AL,00H</p><p>  OUT 42H,AL</p><p><b>  ;設(shè)置中斷向量表</b></p><p><b>  MOV AX,0H</b></p><p><b>  MOV ES,AX</b

94、></p><p>  MOV DI,002CH</p><p>  MOV AX,OFFSET INTREEUP3</p><p><b>  STOSW</b></p><p>  MOV AX,0000H</p><p><b>  STOSW</b></p

95、><p>  MOV DI,0028H</p><p>  MOV AX,OFFSET INTREEUP2</p><p><b>  STOSW</b></p><p>  MOV AX,0000H</p><p><b>  STOSW</b></p><

96、p>  ;======= 8259 初始化 =====================</p><p>  MOV AL,13H ;寫ICW1,單片,邊沿觸發(fā),要ICW4</p><p>  OUT 60H,AL</p><p>  MOV AL,08H ;寫ICW2,中斷類型號(hào)從8開始</p><p>  OUT 61H,AL<

97、;/p><p>  ;寫ICW4,緩沖方式,8086/8088自動(dòng)配置,即中斷返回時(shí)要寫OCW2</p><p>  MOV AL,09H</p><p>  OUT 61H,AL</p><p><b>  ;省略不寫OCW1</b></p><p><b>  STI</b>

98、</p><p>  WATING:CALL DISP</p><p>  JMP WATING</p><p><b>  ;中斷服務(wù)程序</b></p><p>  INTREEUP3: CLI</p><p><b>  push ax</b></p>&

99、lt;p><b>  push bx</b></p><p><b>  push dx</b></p><p><b>  STI</b></p><p>  ; 1、3方向 (東西)</p><p><b>  DEC T_1</b></p

100、><p>  MOV AL,T_1</p><p>  CMP AL,00H</p><p>  JE CHANGE1</p><p><b>  JMP RIGHT</b></p><p>  CHANGE1: MOV AL,C ;讀入并口狀態(tài)</p><p>  TES

101、T AL,02H</p><p><b>  JNZ RED1</b></p><p>  TEST AL,08H</p><p>  JNZ YELLOW1</p><p>  TEST AL,20H</p><p>  JNZ GREEN1</p><p>  RED1

102、: MOV DX,IOC</p><p><b>  OR AL,20H</b></p><p>  AND AL,35H</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_1,14H

103、</p><p><b>  JMP RIGHT</b></p><p>  YELLOW1:MOV DX,IOC</p><p><b>  OR AL,02H</b></p><p>  AND AL,17H</p><p><b>  OUT DX,AL<

104、;/b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_1,05H</p><p><b>  JMP RIGHT</b></p><p>  GREEN1:MOV DX,IOC</p><p><b>  OR AL,08H</b&g

105、t;</p><p>  AND AL,1DH</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_1,0fH</p><p>  ;2、4方向 (南北)?</p><p><b

106、>  RIGHT:</b></p><p><b>  DEC T_2</b></p><p>  MOV AL,T_2</p><p>  CMP AL,00H</p><p>  JE CHANGE2</p><p>  JMP OUTPUT</p><p

107、>  CHANGE2: MOV AL,C ;讀入c口狀態(tài)</p><p>  TEST AL,01H</p><p><b>  JNZ RED2</b></p><p>  TEST AL,04H</p><p>  JNZ YELLOW2</p><p>  CMP AL,18H&

108、lt;/p><p><b>  JZ RED2</b></p><p>  TEST AL,10H</p><p>  JNZ GREEN2</p><p>  RED2:MOV DX,IOC</p><p><b>  OR AL,10H</b></p><

109、;p>  AND AL,3AH</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_2,14H</p><p>  JMP OUTPUT</p><p>  YELLOW2: MOV DX,IOC<

110、;/p><p><b>  OR AL,01H</b></p><p>  AND AL,2BH</p><p><b>  OUT DX,AL</b></p><p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_2,05H</p><

111、;p>  JMP OUTPUT</p><p>  GREEN2: MOV DX,IOC</p><p><b>  OR AL,04H</b></p><p>  AND AL,2EH</p><p><b>  OUT DX,AL</b></p><p>  MOV

112、 C,AL ;保存c口狀態(tài)</p><p>  MOV T_2,0fH</p><p><b>  ;輸出數(shù)字</b></p><p>  OUTPUT: MOV AL,T_1</p><p>  MOV AH,T_1</p><p>  AND AL,01H</p><p&g

113、t;<b>  MOV CL,4</b></p><p><b>  SHR AH,CL</b></p><p>  MOV AL,T_2</p><p>  MOV AH,T_2</p><p>  AND AL,01H</p><p><b>  MOV CL,

114、4</b></p><p><b>  SHR AH,CL</b></p><p><b>  ;計(jì)數(shù)器從新賦初值</b></p><p>  MOV AL,36H</p><p>  OUT 43H,AL</p><p>  MOV AL,50H</p&g

115、t;<p>  OUT 40H,AL</p><p>  MOV AL,11000011B</p><p>  OUT 40H,AL</p><p>  MOV AL,10110110B ;計(jì)數(shù)器2</p><p>  OUT 43H,AL</p><p>  MOV AL,02H</p>

116、<p>  OUT 42H,AL</p><p>  MOV AL,00H</p><p>  OUT 42H,AL</p><p>  ;===================================</p><p>  MOV AL,T_1</p><p>  CMP AL,03H</p&

117、gt;<p>  JA RIGHTTEST</p><p>  JMP YLEDSTA</p><p>  RIGHTTEST:</p><p>  MOV AL,T_2</p><p>  CMP AL,03H</p><p>  JA RETBCAK</p><p><

118、;b>  YLEDSTA:</b></p><p><b>  MOV AL,C</b></p><p>  AND AL,03H</p><p>  JNZ YLEDFLASH</p><p>  JMP RETBCAK</p><p>  ;======== 時(shí)間小于等于3

119、時(shí) LED燈 閃爍 ===========</p><p>  YLEDFLASH:</p><p><b>  PUSH CX</b></p><p>  MOV CX,0bH ; 閃爍3次</p><p>  MOV AL,C ;讀入c口狀態(tài)</p><p>  AND AL,1111

120、1100B ; 燈滅</p><p>  MOV DX,IOC</p><p><b>  OUT DX,AL</b></p><p>  CALL DELAY ;短延時(shí)</p><p>  MOV AL,C ;燈亮</p><p><b>  OUT DX,AL</b&g

121、t;</p><p>  CALL DELAY ;短延時(shí)</p><p><b>  POP CX</b></p><p>  JMP RETBCAK</p><p>  ;;=================;短延時(shí) ===================================</p>

122、<p><b>  DELAY:</b></p><p>  CALL DELAY2</p><p><b>  RET</b></p><p>  DELAY2: PUSH CX</p><p>  MOV CX,7aaaH ;;;;</p><p> 

123、 DELA1:LOOP DELA1</p><p><b>  POP CX</b></p><p><b>  RET</b></p><p>  ;==================================================================</p><p&

124、gt;<b>  RETBCAK:</b></p><p>  MOV AL,20H ;寫ocw2然后返回</p><p>  MOV DX,0060h</p><p><b>  OUT DX,AL</b></p><p><b>  cli</b></p>

125、<p><b>  pop dx</b></p><p><b>  pop bx</b></p><p><b>  pop ax</b></p><p><b>  sti</b></p><p><b>  IRET</b

126、></p><p>  ;===============中斷返回 ==============</p><p>  ;============== 應(yīng)急 中斷程序 ===============</p><p>  INTREEUP2: CLI</p><p><b>  push ax</b></p>

127、<p><b>  push bx</b></p><p><b>  push dx</b></p><p>  MOV AL,30H ; 全亮紅燈</p><p>  MOV DX,IOC</p><p><b>  OUT DX,AL</b></p&

128、gt;<p>  MOV C,AL ;保存c口狀態(tài)</p><p>  MOV T_1,0ah</p><p>  MOV T_2,0ah</p><p>  MOV AL,20H ;寫ocw2然后返回</p><p>  MOV DX,0060h</p><p><b>  OUT DX,

129、AL</b></p><p><b>  pop dx</b></p><p><b>  pop bx</b></p><p><b>  pop ax</b></p><p><b>  STI</b></p><p&g

130、t;<b>  IRET</b></p><p>  ;==================================================================</p><p><b>  DISP:</b></p><p><b>  ;過濾</b></p>

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論