




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、交通燈控制軟件的開發(fā)1 十字路口基本情況分析設(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 路口的綠燈熄滅,而黃燈開始閃爍,閃爍若干次以后,再切換到1、3路口方向,之后重復(fù)上述過(guò)程。2 交通燈狀態(tài)轉(zhuǎn)換分析合理的設(shè)置每個(gè)路口、每個(gè)方向的交通燈的通行時(shí)間,對(duì)車輛能否及時(shí)疏散,有著決定性的作用。狀態(tài)1 的時(shí)候:1、3路口的綠燈熄滅,1、3路口的黃燈開始亮,當(dāng)通行
2、時(shí)間剩下5秒結(jié)束時(shí),LED會(huì)閃爍,而同時(shí)2、4路口的紅燈亮狀態(tài)2的時(shí)候:1、3 路口紅燈亮, 而同時(shí)2、4路口的綠燈亮,2、4路口方向通車;狀態(tài)3的時(shí)候:1、3 路口紅燈亮, 而同時(shí)2、4路口的黃燈亮;狀態(tài)4 的時(shí)候:1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車。整個(gè)狀態(tài)轉(zhuǎn)換的過(guò)程見表2-1。表2-1 路口四個(gè)狀態(tài)和相互轉(zhuǎn)換過(guò)程狀態(tài)每個(gè)路口燈的點(diǎn)亮情況通行時(shí)間路口1路口2路口3路口4狀態(tài)1(ZT1)黃 紅 黃 紅5s狀態(tài)2(ZT2)紅 綠 紅 綠15s狀態(tài)3(ZT3) 紅 黃 紅 黃5s狀態(tài)4(ZT4)綠紅綠紅15s完成四個(gè)狀態(tài)的一次循環(huán)需要40秒, 紅燈亮20秒 、綠燈亮15秒
3、 、黃燈亮5秒完成了在適當(dāng)?shù)臅r(shí)間限度內(nèi),有效的疏散較大的通行量的目的。3 緊急通行情況分析手動(dòng)撥動(dòng)單脈沖一次,則產(chǎn)生一個(gè)優(yōu)先級(jí)高一級(jí)的中斷,程序轉(zhuǎn)而執(zhí)行此中斷處理程序,處理完后返回繼續(xù)執(zhí)行低級(jí)中斷。整個(gè)執(zhí)行過(guò)程見圖3-1主程序是否中斷繼續(xù)執(zhí)行主程序循環(huán)值入棧紅燈全亮結(jié)束中斷服務(wù)程序循環(huán)值出棧繼續(xù)處理未完成的低級(jí)中斷圖3-1 緊急中斷程序4 硬件功能分析4.1 8253A定時(shí)/計(jì)數(shù)器芯片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ù)頻率為02MHZ。其內(nèi)部數(shù)據(jù)總線緩沖器為雙向三態(tài),故可直接連在系統(tǒng)數(shù)據(jù)總
4、線上,通過(guò)CPU寫入計(jì)數(shù)初值,也可由CPU讀出計(jì)數(shù)當(dāng)前值。讀寫控制邏輯,當(dāng)選中該芯片時(shí),根據(jù)讀寫命令和送來(lái)的地址信息控制整個(gè)芯片工作。其工作方式通過(guò)控制字確定??刂谱旨拇嫫饔糜诮邮諗?shù)據(jù)總線緩沖器的信息。當(dāng)寫入控制字時(shí),控制計(jì)數(shù)器的工作方式;當(dāng)寫入數(shù)據(jù)時(shí)則裝入計(jì)數(shù)初值??刂萍拇嫫鳛?位,只能寫入不能讀出。8253A內(nèi)部結(jié)構(gòu)見圖4-1。當(dāng)8253A執(zhí)行計(jì)數(shù)功能時(shí),計(jì)數(shù)器裝入初值后,當(dāng)GATE為高電平時(shí),可用外部事件作為CLK脈沖對(duì)計(jì)數(shù)值進(jìn)行減1計(jì)數(shù)。每來(lái)一個(gè)脈沖減1,當(dāng)計(jì)數(shù)值減為0時(shí),由OUT端輸出一個(gè)標(biāo)志信號(hào)。當(dāng)8253A執(zhí)行定時(shí)功能時(shí),計(jì)數(shù)器裝入初值后,當(dāng)GATE為高電平時(shí),由CLK脈沖觸發(fā)開
5、始自動(dòng)計(jì)數(shù)。當(dāng)計(jì)數(shù)到零時(shí),發(fā)計(jì)數(shù)結(jié)束定時(shí)信號(hào)。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)楦撸划?dāng)GATE再變高時(shí),便啟動(dòng)一次新的計(jì)數(shù)周期。在方式3時(shí),當(dāng)裝入初值后,在GATE上升沿啟動(dòng)計(jì)數(shù),OUT輸出高電平;當(dāng)計(jì)數(shù)完成一半時(shí),OUT輸出低電平。在本系統(tǒng)中,8253A工作于方式3方波發(fā)生器方式。計(jì)數(shù)器0CLK0GATE0OUT0計(jì)數(shù)器1CLK1GATE1OUT1計(jì)數(shù)器2CLK2GATE2OUT2數(shù)據(jù)總線緩沖器讀/寫邏輯控制
6、字寄存器D0-D7-RD-WRA0A1-CS圖 4-1 8253A內(nèi)部結(jié)構(gòu)圖4.2 8259A中斷控制器芯片8259A是專為控制優(yōu)先級(jí)中斷而設(shè)計(jì)的芯片。它將中斷源按優(yōu)先級(jí)排隊(duì)、辨認(rèn)中斷源和提供中斷向量的電路集成于一體,只要用軟件對(duì)它進(jìn)行編程,就可以管理8級(jí)中斷。8259A的內(nèi)部結(jié)構(gòu)見圖4-2。它由中斷請(qǐng)求寄存器(IRR)、優(yōu)先級(jí)分析器、中斷服務(wù)寄存器(ISR)、中斷屏蔽寄存器(IMR)、數(shù)據(jù)總線緩沖器、讀寫控制電路、級(jí)聯(lián)緩沖器和比較器組成??刂七壿嫹?wù)寄存器優(yōu)先級(jí)分析器中斷請(qǐng)求寄存器中斷屏蔽寄存器IMR內(nèi)部總線IR0IR1IR2IR3IR4IR5IR6IR7數(shù)據(jù)總線控制器讀寫電路級(jí)聯(lián)緩沖器/比
7、較器CAS0CAS1CAS2D0-D7-RD-WRA0-CSSP/-ENINT-INTA圖 4-2 8259A的內(nèi)部結(jié)構(gòu)對(duì)8259A編程和初始化的時(shí)候,首先要寫初始化命令字ICW1-ICW4。寫ICW1以確定中斷請(qǐng)求信號(hào)類型,清除中斷屏蔽寄存器,進(jìn)行中斷優(yōu)先級(jí)排隊(duì)和確定系統(tǒng)是用單片還是多片。寫ICW2用來(lái)定義中斷向量的高五位類型碼。ICW3可以定義主片8259A中斷請(qǐng)求線上IR0-IR7有無(wú)級(jí)聯(lián)的8259A從片。寫ICW4用來(lái)定義8259A工作時(shí)用8085模式還是8088模式,以及中斷服務(wù)寄存器復(fù)位方式等。初始化命令字寫完以后,要寫8259A的控制命令字,它包括OCW1-OCW3。寫OCW1可
8、以設(shè)置或清除對(duì)中斷源的屏蔽。寫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)最低。寫OCW3用來(lái)設(shè)置查詢方式和特殊屏蔽方式,并可以讀取8259A中斷寄存器的當(dāng)前狀態(tài)。在本系統(tǒng)中,使用8259A的循環(huán)等待中斷工作方式。4.3 8255A可編程并行接口芯片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)方式選擇操作;讀寫控制邏輯用
9、于控制芯片內(nèi)部寄存器的數(shù)據(jù)和控制字經(jīng)數(shù)據(jù)總線緩沖器送入各組接口寄存器中。由于8255A數(shù)據(jù)總線緩沖器是雙向三態(tài)8位驅(qū)動(dòng)器,因此可以直接和8088系統(tǒng)數(shù)據(jù)總線相連。8255A的內(nèi)部邏輯結(jié)構(gòu)見圖4-3。A組端口A組端口C高4位A組端口C低4位B組端口A組控制B組控制數(shù)據(jù)總線緩沖器讀寫控制邏輯雙向數(shù)據(jù)總線D0-D7I/0PA7-PA0I/0PC7-PC0I/0PC0-PC20I/0PB7-PB0-CSCPU接口內(nèi)部邏輯外設(shè)接口-RD-WRA1 A0RESET圖4-3 8255A的內(nèi)部結(jié)構(gòu)8255A有三種工作方式:方式0、方式1和方式2。它通過(guò)對(duì)控制寄存器寫入不同的方式選擇控制字來(lái)決定其三種不同的工作
10、方式。方式0是基本輸入輸出方式。該方式下的A口8位和B口8位可以由輸入的控制字決定為輸入或輸出,C口分成高4位(PC4-PC7)和低4位(PC0-PC3)兩組,也有控制字決定其輸入或輸出。需要注意的是,該方式下,只能將C口其中一組的四位全部置為輸入或輸出。方式1選通輸入輸出方式,又叫單向輸入輸出方式。它分為A、B兩組,A組由數(shù)據(jù)口A和控制口C的高4位組成,B組由數(shù)據(jù)口B和控制口C的低4位組成。數(shù)據(jù)口的輸入輸出都是鎖存的,與方式0不同,由控制字來(lái)決定它是作為輸入還是輸出。C口的相應(yīng)位用于寄存數(shù)據(jù)傳送中所需的狀態(tài)信號(hào)和控制信息。方式2為雙向輸入輸出方式。本方式只有A組可以使用。此時(shí)A口為輸入輸出雙
11、向口,C口中的5位(PC3-PC7)作為A口的控制位。在本系統(tǒng)中,8255A的三個(gè)端口均工作于方式0,全部為輸出口。5 系統(tǒng)設(shè)計(jì)5.1硬件設(shè)計(jì)5.1.1 電路分析本系統(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),并刷新顯示屏顯示的時(shí)間。為了實(shí)現(xiàn)以上功能需求,本系統(tǒng)需要12個(gè)LED指示燈,來(lái)分別代表1、3方向(東西),2、4方向(南北);兩個(gè)雙位的數(shù)碼管顯示屏,用來(lái)顯示1、3路口和2、4路口剩余的時(shí)間。為了實(shí)時(shí)地更新數(shù)碼管顯示屏上的數(shù)字,需要使用8255A
12、可編程芯片來(lái)即時(shí)地改變顯示屏每個(gè)筆劃的電平高低,從而準(zhǔn)確地將需要顯示的數(shù)字顯示在數(shù)碼管顯示屏上。由于交通燈需要按秒進(jìn)行計(jì)數(shù),所以需要一個(gè)均勻地時(shí)鐘發(fā)生器。8253A芯片是個(gè)功能豐富、使用簡(jiǎn)單的定時(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芯片來(lái)執(zhí)行相關(guān)程序,從而更新LED燈和數(shù)碼管顯示屏。本系統(tǒng)使用集成的電路和實(shí)驗(yàn)環(huán)境,以方便進(jìn)行電路的連接和測(cè)試,同時(shí)減少由于電路的復(fù)雜性而產(chǎn)生的錯(cuò)誤。5.1.2 電路連
13、接設(shè)計(jì)本系統(tǒng)所使用到的硬件包括8253A芯片、8259A芯片、8255A芯片、LED指示燈和數(shù)碼管顯示屏。在電路連接的時(shí)候,將8255A芯片的PC口的PC5、PC4接紅燈燈,PC3、PC2接綠燈,PC1、PC0接黃燈。通過(guò)改變8255A的PC口的值來(lái)實(shí)時(shí)地控制每個(gè)LED燈的亮滅,從而改變十字路口的交通狀態(tài)。將8253A的CLK0插孔連接至1MHZ的分頻輸出插孔T4。分頻輸出插孔所輸出的頻率是將系統(tǒng)的主頻分解為一定的頻率,以供其他硬件或者軟件使用。8253A從分頻插孔得到1MHZ的固定頻率,再根據(jù)芯片內(nèi)部設(shè)定的計(jì)數(shù)初值,從而產(chǎn)生需要頻率的時(shí)鐘脈沖,由OUT0口輸出,供其他芯片使用。在這里OUT0
14、接CLK2。將8253A的OUT2插孔連接至8259A的IRQ3插孔上。8259A的IRQ3中斷口每隔固定的時(shí)間便會(huì)收到8253A發(fā)送過(guò)來(lái)的時(shí)鐘脈沖,作為中斷源來(lái)執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序中,完成更新數(shù)碼管顯示值和改變交通燈狀態(tài)的功能。硬件的連接見圖5-1和圖5-2。D0 T0OUTD1 GATE0D2 T0CLKD3 GATE2D4 T2OUTD5 T2CLKD6D7 8253A OUT1 CS RD WRGATE2 A0CLK1 A1D0D1D2D3D4D5D6D7VCCTCLK1T0OUTVCCT0CLKCKVCCUB318253TOUT1CS3IORIOWADD0ADD11MHZ
15、IR0 D0IR1 D1IR2 D2IR3 D3IR4 D4IR5 8259A D5IR6 D6IR7 D7 A0SP/EN WR RDCS INT INTAADD0IOWIORINTRINTACSVCC圖 5-1 系統(tǒng)電路圖8253A和8259A的連接圖RD PB0 PB1WR PB2A0 PB3A1 PB4RESET PB5CS PB6 PB78255A PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7VCCY7L3(控制綠燈)L6L9L12L1(控制紅燈)L4L7L10L2(控制黃燈)L5L8L11CS_8255圖 5-2 系統(tǒng)電路圖8255A和LED燈的連接圖5.2軟件設(shè)
16、計(jì)5.2.1 程序總體設(shè)計(jì)本系統(tǒng)采用“自上而下總體規(guī)劃、自下而上應(yīng)用開發(fā)”的策略進(jìn)行總體設(shè)計(jì)和開發(fā)。先根據(jù)其功能需要,設(shè)定需要的功能模塊,確定需要編寫的子程序,從而使程序結(jié)構(gòu)清晰,便于閱讀和調(diào)試,加快了系統(tǒng)完成的速度。結(jié)構(gòu)化的程序設(shè)計(jì)方法很適合用來(lái)開發(fā)匯編語(yǔ)言程序,因?yàn)閰R編語(yǔ)言的特性決定了其無(wú)法使用面向?qū)ο蟮某绦蜷_發(fā)方法;使用瀑布程序開發(fā)模型,從開始的時(shí)候把系統(tǒng)的需求分析透徹,對(duì)系統(tǒng)的功能和各個(gè)模塊進(jìn)行清晰的規(guī)劃,從而縮短系統(tǒng)開發(fā)所用的時(shí)間。為了完成系統(tǒng)的功能,系統(tǒng)的程序部分應(yīng)包含以下幾個(gè)模塊(見圖5-3)。初始化模塊用來(lái)初始化各個(gè)芯片,分為以下幾個(gè)步驟:(1)初始化數(shù)據(jù):T_1為1、3方向(
17、東西)時(shí)間顯示(如 5秒);T_2為2、4方向(南北)的時(shí)間顯示。初值可同設(shè)為5秒。(2)初始化8255A的工作方式:使A、B、C三個(gè)端口均工作于方式0,且為輸出口;DVCC實(shí)驗(yàn)臺(tái)8255口地址:FF28HFF2BH(3)初始化8253A芯片:選用方波發(fā)生器方式,并設(shè)定其使用通道0和2進(jìn)行工作;DVCC實(shí)驗(yàn)臺(tái)8253口地址:00400043H(4)初始化8259A:設(shè)定其工作方式為單片、邊沿觸發(fā)、要寫ICW4、循環(huán)等待中斷方式。DVCC實(shí)驗(yàn)臺(tái)8259口地址:00600061H設(shè)置中斷向量表 寫2號(hào)、3號(hào)中斷向量:INTREEUP2、INTREEUP3。中斷處理模塊:(1)INTREEUP3是主
18、要的中斷服務(wù)程序, 8253A每發(fā)來(lái)一次時(shí)鐘脈沖便產(chǎn)生一次中斷,兩個(gè)路口所亮的燈對(duì)應(yīng)的顯示數(shù)值減一。并輸出完成顯示數(shù)值的更新使時(shí)間緩沖區(qū)中的時(shí)間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行LED燈狀態(tài)的切換(2)其中INTREEUP2是增加行人手動(dòng)按鈕。實(shí)現(xiàn)可手動(dòng)干預(yù)的(交通事故、步行可及時(shí)通行的)交通燈自動(dòng)控制系統(tǒng)有手動(dòng)干預(yù)(按鈕按下)時(shí),交通燈立即處于該狀態(tài):兩個(gè)方向均紅燈亮(以便讓行人及時(shí)通過(guò))。10秒后,交通恢復(fù)到人工干預(yù)前狀態(tài),繼續(xù)按正常狀態(tài)循環(huán)切換。顯示模塊(DISP)使用8255A將顯示緩沖區(qū)的字符逐位顯示在數(shù)碼管顯示屏上,在中斷請(qǐng)求沒有
19、到來(lái)的時(shí)候,根據(jù)交通燈所處的狀態(tài),點(diǎn)亮相應(yīng)的LED燈;有中斷請(qǐng)求時(shí),調(diào)用相應(yīng)的中斷服務(wù)程序。初始化模塊顯示模塊DISP中斷處理程序INTREEUP3交通燈控制系統(tǒng)應(yīng)急中斷處理程序INTREEUP2圖 5-3 系統(tǒng)模塊圖5.2.2 程序流程設(shè)計(jì)程序運(yùn)行的流程圖見圖5-4,中斷應(yīng)急流程圖見5-5。開始運(yùn)行的時(shí)候,初始化程序,給初始顯示區(qū)和電平錯(cuò)誤顯示區(qū)賦初值,顯示相應(yīng)的字符;定義數(shù)值對(duì)應(yīng)的顯示字符,便于轉(zhuǎn)換程序取到時(shí)間數(shù)值對(duì)應(yīng)的字符。接著對(duì)8253A、8255A和8259A進(jìn)行初始化。定義8253A使用通道0和2,工作于方式3,其計(jì)數(shù)初值為3C50,每隔20ms向8259A發(fā)出一個(gè)時(shí)鐘脈沖;825
20、5A的A、B、C三個(gè)端口均工作于輸出方式;8259A工作于循環(huán)等待中斷方式。進(jìn)入顯示程序(DISP)使用8255A將顯示緩沖區(qū)的字符逐位顯示在數(shù)碼管顯示屏上,在中斷請(qǐng)求沒有到來(lái)的時(shí)候,根據(jù)交通燈所處的狀態(tài),點(diǎn)亮相應(yīng)的LED燈。當(dāng)有中斷的時(shí)候,則轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序,本系統(tǒng)主要為INTREEUP3程序。8253A每發(fā)來(lái)一次時(shí)鐘脈沖便產(chǎn)生一次中斷。INTREEUP3程序首先關(guān)閉中斷,兩個(gè)路口所亮的燈對(duì)應(yīng)的顯示數(shù)值減一。并輸出以完成顯示數(shù)值的更新使時(shí)間緩沖區(qū)中的時(shí)間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行LED燈狀態(tài)的切換。最后打開中斷,并中斷返回。中
21、斷入口保護(hù)現(xiàn)場(chǎng)四個(gè)方向的紅燈亮30秒輸出中斷結(jié)束命令中斷返回恢復(fù)現(xiàn)場(chǎng)開始初始化設(shè)置中斷控制器工作方式中斷允許狀態(tài)循環(huán)切換,顯示數(shù)字圖5-4 主程序框圖 圖5-5 中斷程序框圖5.2.3 重要代碼分析(1)中斷服務(wù)程序INTREEUP3是本系統(tǒng)的程序最核心的子程序。它用來(lái)計(jì)算收到8353A發(fā)來(lái)的中斷,8253A每發(fā)來(lái)一次時(shí)鐘脈沖便產(chǎn)生一次中斷,兩個(gè)路口所亮的燈對(duì)應(yīng)的顯示數(shù)值減一。并輸出完成顯示數(shù)值的更新使時(shí)間緩沖區(qū)中的時(shí)間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行LED燈狀態(tài)的切換,以下是該程序的代碼分析,并注有詳細(xì)的功能說(shuō)明。中斷服務(wù)程序INTREE
22、UP3: CLI ;處理中斷時(shí)先關(guān)中斷 push ax ;保存堆棧 push bx push dx STI ;保存現(xiàn)場(chǎng)后開中斷以可以實(shí)現(xiàn)中斷嵌套 ; 1、3方向(東西) DEC T_1 ;對(duì)當(dāng)前數(shù)值減一 MOV AL,T_1 CMP AL,00H ;判斷當(dāng)前數(shù)值是否減到0 JE CHANGE1 ;若 當(dāng)前數(shù)值為0則跳到CHANGE1 切換狀態(tài) JMP RIGHT ;若 當(dāng)前數(shù)值不為0則跳到2、4方向(南北) CHANGE1: MOV AL,C ;讀入并口狀態(tài) TEST AL,02H ;測(cè)試當(dāng)前并口狀態(tài) JNZ RED1 TEST AL,08H JNZ YELLOW1 TEST AL,20H J
23、NZ GREEN1 RED1: MOV DX,IOC ; 1、3方向(東西)亮紅燈 OR AL,20H AND AL,35H OUT DX,AL MOV C,AL ;保存c口狀態(tài) MOV T_1,14H ; 對(duì)新狀態(tài)賦顯示初值 JMP RIGHT YELLOW1:MOV DX,IOC 1、3方向(東西)亮黃燈 OR AL,02H AND AL,17H OUT DX,AL MOV C,AL ;保存c口狀態(tài) MOV T_1,05H ; 對(duì)新狀態(tài)賦顯示初值 JMP RIGHT GREEN1:MOV DX,IOC ; 1、3方向(東西)綠燈 OR AL,08H AND AL,1DH OUT DX,AL
24、 MOV C,AL ;保存c口狀態(tài) MOV T_1,0fH ; 對(duì)新狀態(tài)賦顯示初值 ;右邊 RIGHT: DEC T_2 MOV AL,T_2 CMP AL,00H JE CHANGE2 JMP OUTPUT CHANGE2: MOV AL,C ;讀入c口狀態(tài) TEST AL,01H JNZ RED2 TEST AL,04H JNZ YELLOW2 CMP AL,18H ;應(yīng)急狀態(tài)返回時(shí)2、4方向從新跳到紅燈JZ RED2 ; (同時(shí),1、3方向?yàn)榫G燈) TEST AL,10H JNZ GREEN2 RED2:MOV DX,IOC OR AL,10H AND AL,3AH OUT DX,AL
25、MOV C,AL ;保存c口狀態(tài) MOV T_2,14H JMP OUTPUT YELLOW2: MOV DX,IOC OR AL,01H AND AL,2BH OUT DX,AL MOV C,AL ;保存c口狀態(tài) MOV T_2,05H JMP OUTPUT GREEN2: MOV DX,IOC OR AL,04H AND AL,2EH OUT DX,AL MOV C,AL ;保存c口狀態(tài) MOV T_2,0fH ;輸出數(shù)字 OUTPUT: MOV AL,T_1 MOV AH,T_1 AND AL,01H MOV CL,4 SHR AH,CL MOV AL,T_2 MOV AH,T_2 AN
26、D AL,01H MOV CL,4 SHR AH,CL ;計(jì)數(shù)器從新賦初值 MOV AL,36H OUT 43H,AL MOV AL,50H OUT 40H,AL MOV AL,11000011B OUT 40H,AL MOV AL,10110110B ;計(jì)數(shù)器2 OUT 43H,AL MOV AL,02H OUT 42H,AL MOV AL,00H OUT 42H,AL ;= ;= MOV AL,T_1 CMP AL,03H JA RIGHTTEST JMP YLEDSTARIGHTTEST: MOV AL,T_2 CMP AL,03H JA RETBCAKYLEDSTA: MOV AL,C
27、 AND AL,03H JNZ YLEDFLASH JMP RETBCAK ;= 時(shí)間小于等于3時(shí) LED燈 閃爍 =YLEDFLASH: PUSH CX ; PUSH DX MOV CX,0AH ; 閃爍3次 MOV AL,C ;讀入c口狀態(tài) AND AL,11111100B ; 燈滅 MOV DX,IOC OUT DX,AL CALL DELAY ;短延時(shí) MOV AL,C ;燈亮 OUT DX,AL CALL DELAY ;短延時(shí) ; LOOP YLEDFLASH ;循環(huán) ; POP DX POP CX JMP RETBCAK ;=;短延時(shí) DELAY: CALL DELAY2 RETDELAY2: PUSH CXMOV CX,6A45H ;DELA1:LOOP DELA1POP CXRET ;= ;= RETBCAK: MOV AL,20H ;寫ocw2然后返回 MOV DX,0060h OUT DX,AL CLI pop dx pop bx pop ax STI IRET;=中斷返回 =6 系統(tǒng)實(shí)現(xiàn)6.1 軟件開發(fā)與運(yùn)行環(huán)境本系統(tǒng)的代碼使用80
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程公司財(cái)務(wù)制度
- 咸寧彩色混凝土施工方案
- 磚砌污水井施工方案
- 砼護(hù)欄施工方案
- 南山車庫(kù)防水施工方案
- 廣西噴泉維修施工方案
- 6mm 650nm 5mw 紅光點(diǎn)狀激光 pd腳作用
- 5年級(jí)下冊(cè)人教版英語(yǔ)詞語(yǔ)表
- 5年級(jí)白鷺第二自然段改寫成一段說(shuō)明文
- 橋梁端頭封堵施工方案
- 少兒美術(shù)繪本教案課件-3-6歲 《100層巴士》
- 鋼筋原材質(zhì)量證明書
- WH/T 42-2011演出場(chǎng)所安全技術(shù)要求第2部分:臨時(shí)搭建演出場(chǎng)所舞臺(tái)、看臺(tái)安全技術(shù)要求
- GB/T 5023.5-2008額定電壓450/750 V及以下聚氯乙烯絕緣電纜第5部分:軟電纜(軟線)
- GB/T 23445-2009聚合物水泥防水涂料
- 瓷貼面教學(xué)課件
- 尺骨冠突骨折課件
- 北師大版七年級(jí)下冊(cè)第一章整式的乘除計(jì)算題專項(xiàng)訓(xùn)練
- 2022年蘇州健雄職業(yè)技術(shù)學(xué)院?jiǎn)握锌荚嚸嬖囋囶}及答案解析
- 乳腺癌改良根治術(shù)
- 新版(七步法案例)PFMEA
評(píng)論
0/150
提交評(píng)論