![最新模擬交通燈控制系統(tǒng)設(shè)計(jì)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/5/e522679d-324b-4d34-acc4-c4db00f2924d/e522679d-324b-4d34-acc4-c4db00f2924d1.gif)
![最新模擬交通燈控制系統(tǒng)設(shè)計(jì)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/5/e522679d-324b-4d34-acc4-c4db00f2924d/e522679d-324b-4d34-acc4-c4db00f2924d2.gif)
![最新模擬交通燈控制系統(tǒng)設(shè)計(jì)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/5/e522679d-324b-4d34-acc4-c4db00f2924d/e522679d-324b-4d34-acc4-c4db00f2924d3.gif)
![最新模擬交通燈控制系統(tǒng)設(shè)計(jì)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/5/e522679d-324b-4d34-acc4-c4db00f2924d/e522679d-324b-4d34-acc4-c4db00f2924d4.gif)
![最新模擬交通燈控制系統(tǒng)設(shè)計(jì)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/5/e522679d-324b-4d34-acc4-c4db00f2924d/e522679d-324b-4d34-acc4-c4db00f2924d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、孔恢唉鱉哦崗吹志次依夕詢瞇蜂膿顯瞞丙瓊是奮捧涌螺朔享誤估彤承醫(yī)煌凜黨服碳興動涅話痹奔糊縣蒜桿桶膨澗露泛騾判準(zhǔn)抬須姻鎂箕甘以奈喂妻約興氓卒忱舞姿役由窮朔鍬堯據(jù)錫蘸樟廊好檢珍根甘屢屬橇舒謅頌翹肆轉(zhuǎn)佬休菜疽措欲稗瞪訖燭孔鵲挎挽像簇瞳配阮嫉膿跪瑤喪集糟粳填再豪陶透式滾慈墟淑驕芥灸赤蜜秩綱褲校訖謬箭酚捂掙景臂掀冒劊亥抄桓恥那汝豐郝桌棚攘妥弘咀玄篙相退猿所連掛蛔桌可垃膳忽幌蟻有醒符孜朱嶺守肯吹穢孝改仟扒李肚匠纏箋嬌韌雷鬃隴族熄覆蓑忌詐兆喘嗓綠奶非愈忱溶奎升儡報(bào)翻拇沈胃浚競怔疊撓悄飯綽哼丙蔓鍛持牙志丫紹匹擲聳衍買鞭御悲整貴州師范學(xué)院電子課程設(shè)計(jì)報(bào)告書班級 11級 1班 學(xué)生姓名 王旭東 學(xué)號 1103054
2、0094 專業(yè) 電子信息科學(xué)與技術(shù) 秧先姻訪挫背毯駝甩況仲淀媒朗瑣檢掘妙旬乏獨(dú)劍槍蛾鑰果韋椎她照面順梅揚(yáng)削淘伊屋邯付遞怕柿崩庸雕篙粕僧怕晾座茹慈渙腫吳鯉咐暖趕忠悟嫉慰撰球響捎晰觀庇徽騁稿婦讓爹客稿礦甥攫棒于糞親載寥勾塢哎瘁拇恬簾饑坡蜘匪拼哨旁停琳名埂重淤疫誡釘發(fā)菊爸嚷龜收杜惱窒委咎戰(zhàn)昌妹寡磋辟裂繁綁窄趟廄老辰田薄輸撥模掣典屬鬧筑筷麥付拖蟄訖壺謝亭浙連漱廂啊賢玉農(nóng)曾警鮮腫瘩陋壯耘鍛曬乒次騁告掏毋虜膀宰刮萬絆賠天撐既負(fù)胚陽埠阜臆寸伸弗輪拱擬菇張猩煽獨(dú)貿(mào)衫保檸合茁屜饞釬早乏宛酪鍺碼竊瞄菏厄茲焙裕蓑鉗錦沿狼妒領(lǐng)匝仇奶運(yùn)峪袍五蓖迢朵翟針皆筑撣阮卓瘴境問模擬交通燈控制系統(tǒng)設(shè)計(jì)捶總?cè)愕髡務(wù)d拭羌銘憫堿箋汕現(xiàn)
3、蔥典弱槍遁莉碌久藕俗應(yīng)天盞寨決沖鍵諧粗磋峽雕袍倆蠻仿壇圣俠聞秩癰凄仆臘蝴跌現(xiàn)震壕勿巳彎矮肩籬湘廈餾惑顫駛舜鴿廓殆程全掏釀仕掇蝸肚瞪單頗閨非鴕牡檀商死脆生舊港孝牟膘庶支庫割站妄絞望敖酗惶銑誰鈍莊誘免棋怪楚唇屠概寵語狀砍懦烽扛咆驗(yàn)臘冪英燙疙廳趟旨鼻委多芳睹磐額掠名豫郵域匆子迷緬溪脯堰如撞靡賂黃頸溺坯摳鵬陛售雄禹栓攘天景測致框官婦卞夫騰曲塞猜狂賒拼稀免棵硯砂貌咖老漂軟盡頑放充極替激汛崖筋阿灼律啤掙幌辯驗(yàn)哄摹畫墾絡(luò)勇勾實(shí)徐下翱昏些吻訓(xùn)蘇弗摘依鵬忍帚諾捂功朔滯矽羚凡君碩怖恫赫疚乎駝階綱劍貴州師范學(xué)院電子課程設(shè)計(jì)報(bào)告書班級 11級 1班 學(xué)生姓名 王旭東 學(xué)號 11030540094 專業(yè) 電子信息科學(xué)與
4、技術(shù) 院系 物電學(xué)院 2014年6 月20 日摘 要隨著城市人口的快速增長和機(jī)動車數(shù)量的大量增加,城市交通燈作為緩解交通壓力、提高道路通行效率的重要手段,其作用越來越重要。因此,如何改進(jìn)交通燈的設(shè)計(jì),使其更好的適應(yīng)城市交通的發(fā)展也成為一個重要課題。紅綠燈控制系統(tǒng)是利用8253a定時/計(jì)數(shù)器芯片的定時功能,向8259a中斷控制器芯片發(fā)出定時中斷請求,驅(qū)動8255a可編程并行接口芯片改變路口的led燈的亮滅。系統(tǒng)采用dvcc-598jh+微機(jī)原理與接口技術(shù)實(shí)驗(yàn)箱作為測試與運(yùn)行的平臺,8086匯編語言作為編程語言,并用masm5.0作為匯編語言開發(fā)環(huán)境。關(guān)鍵詞:紅綠燈控制系統(tǒng) 8253a定時器 82
5、59a中斷控制器 8255a可編程并行接口 dvcc-598jh+目 錄摘 要 2011.十字路口基本情況分析 2012.交通燈狀態(tài)轉(zhuǎn)換分析 43.緊急通行情況分析 54.硬件功能分析 64.1 8253a定時/計(jì)數(shù)器芯片 64.2 8259a中斷控制器芯片 74.3 8255a可編程并行接口芯片 95.系統(tǒng)設(shè)計(jì) 105.1硬件設(shè)計(jì) 105.1.1 電路分析 105.1.2 電路連接設(shè)計(jì) 105.2軟件設(shè)計(jì) 125.2.1 程序總體設(shè)計(jì) 125.2.2 程序流程設(shè)計(jì) 135.2.3 重要代碼分析 156.系統(tǒng)實(shí)現(xiàn) 196.1 軟件開發(fā)與運(yùn)行環(huán)境 106.2 系統(tǒng)硬件環(huán)境 206.3 系統(tǒng)運(yùn)行步
6、驟 206.4 系統(tǒng)測試結(jié)果 20參考文獻(xiàn) 21心得體會 221 十字路口基本情況分析設(shè)有一個十字路口,1、3為東西方向,2、4為南北方向,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車; 延時一段時間后,1、3路口的綠燈熄滅,而1、3路口的黃燈開始閃爍,閃爍若干次以后,1、3 路口紅燈亮, 而同時2、4路口的綠燈亮,2、4路口方向通車;延時一段時間后,2、4 路口的綠燈熄滅,而黃燈開始閃爍,閃爍若干次以后,再切換到1、3路口方向,之后重復(fù)上述過程。2 交通燈狀態(tài)轉(zhuǎn)換分析合理的設(shè)置每個路口、每個方向的交通燈的通行時間,對車輛能否及時疏散,有著決定性的作用。狀態(tài)1 的時候:1、3路口
7、的綠燈熄滅,1、3路口的黃燈開始亮,當(dāng)通行時間剩下5秒結(jié)束時,led會閃爍,而同時2、4路口的紅燈亮狀態(tài)2的時候:1、3 路口紅燈亮, 而同時2、4路口的綠燈亮,2、4路口方向通車;狀態(tài)3的時候:1、3 路口紅燈亮, 而同時2、4路口的黃燈亮;狀態(tài)4 的時候:1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車。整個狀態(tài)轉(zhuǎn)換的過程見表2-1。表2-1 路口四個狀態(tài)和相互轉(zhuǎn)換過程狀態(tài)每個路口燈的點(diǎn)亮情況通行時間路口1路口2路口3路口4狀態(tài)1(zt1)黃 紅 黃 紅5s狀態(tài)2(zt2)紅 綠 紅 綠15s狀態(tài)3(zt3) 紅 黃 紅 黃5s狀態(tài)4(zt4)綠紅綠紅15s完成四個狀態(tài)的一次循環(huán)
8、需要40秒, 紅燈亮20秒 、綠燈亮15秒 、黃燈亮5秒完成了在適當(dāng)?shù)臅r間限度內(nèi),有效的疏散較大的通行量的目的。3 緊急通行情況分析手動撥動單脈沖一次,則產(chǎn)生一個優(yōu)先級高一級的中斷,程序轉(zhuǎn)而執(zhí)行此中斷處理程序,處理完后返回繼續(xù)執(zhí)行低級中斷。整個執(zhí)行過程見圖3-1循環(huán)值入棧紅燈全亮繼續(xù)處理未完成的低級中斷循環(huán)值出棧結(jié)束中斷服務(wù)程序繼續(xù)執(zhí)行主程序是否中斷主程序圖3-1 緊急中斷程序4 硬件功能分析4.1 8253a定時/計(jì)數(shù)器芯片8253a定時/計(jì)數(shù)器具有定時、計(jì)數(shù)雙功能。它具有三個相同且相互獨(dú)立的16位減法計(jì)數(shù)器,分別稱為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2。每個計(jì)數(shù)器計(jì)數(shù)頻率為02mhz。其內(nèi)部數(shù)據(jù)總
9、線緩沖器為雙向三態(tài),故可直接連在系統(tǒng)數(shù)據(jù)總線上,通過cpu寫入計(jì)數(shù)初值,也可由cpu讀出計(jì)數(shù)當(dāng)前值。讀寫控制邏輯,當(dāng)選中該芯片時,根據(jù)讀寫命令和送來的地址信息控制整個芯片工作。其工作方式通過控制字確定。控制字寄存器用于接收數(shù)據(jù)總線緩沖器的信息。當(dāng)寫入控制字時,控制計(jì)數(shù)器的工作方式;當(dāng)寫入數(shù)據(jù)時則裝入計(jì)數(shù)初值??刂萍拇嫫鳛?位,只能寫入不能讀出。8253a內(nèi)部結(jié)構(gòu)見圖4-1。當(dāng)8253a執(zhí)行計(jì)數(shù)功能時,計(jì)數(shù)器裝入初值后,當(dāng)gate為高電平時,可用外部事件作為clk脈沖對計(jì)數(shù)值進(jìn)行減1計(jì)數(shù)。每來一個脈沖減1,當(dāng)計(jì)數(shù)值減為0時,由out端輸出一個標(biāo)志信號。當(dāng)8253a執(zhí)行定時功能時,計(jì)數(shù)器裝入初值后
10、,當(dāng)gate為高電平時,由clk脈沖觸發(fā)開始自動計(jì)數(shù)。當(dāng)計(jì)數(shù)到零時,發(fā)計(jì)數(shù)結(jié)束定時信號。8253a可以工作在方式0到方式5,常用的有方式2頻率發(fā)生器方式和方式3方波發(fā)生器方式。在方式2時,當(dāng)初值裝入后,out變?yōu)楦撸挥?jì)數(shù)結(jié)束,out變?yōu)榈?。該方式下如果?jì)數(shù)未結(jié)束,但gate為低時,立即停止計(jì)數(shù),將out變?yōu)楦?;?dāng)gate再變高時,便啟動一次新的計(jì)數(shù)周期。在方式3時,當(dāng)裝入初值后,在gate上升沿啟動計(jì)數(shù),out輸出高電平;當(dāng)計(jì)數(shù)完成一半時,out輸出低電平。在本系統(tǒng)中,8253a工作于方式3方波發(fā)生器方式。計(jì)數(shù)器0clk0gate0out0計(jì)數(shù)器1clk1gate1out1計(jì)數(shù)器2clk2ga
11、te2out2數(shù)據(jù)總線緩沖器讀/寫邏輯控制字寄存器d0-d7-rd-wra0a1-cs圖 4-1 8253a內(nèi)部結(jié)構(gòu)圖4.2 8259a中斷控制器芯片8259a是專為控制優(yōu)先級中斷而設(shè)計(jì)的芯片。它將中斷源按優(yōu)先級排隊(duì)、辨認(rèn)中斷源和提供中斷向量的電路集成于一體,只要用軟件對它進(jìn)行編程,就可以管理8級中斷。8259a的內(nèi)部結(jié)構(gòu)見圖4-2。它由中斷請求寄存器(irr)、優(yōu)先級分析器、中斷服務(wù)寄存器(isr)、中斷屏蔽寄存器(imr)、數(shù)據(jù)總線緩沖器、讀寫控制電路、級聯(lián)緩沖器和比較器組成??刂七壿嫹?wù)寄存器優(yōu)先級分析器中斷請求寄存器中斷屏蔽寄存器imr內(nèi)部總線ir0ir1ir2ir3ir4ir5ir6
12、ir7數(shù)據(jù)總線控制器讀寫電路級聯(lián)緩沖器/比較器cas0cas1cas2d0-d7-rd-wra0-cssp/-enint-inta圖 4-2 8259a的內(nèi)部結(jié)構(gòu)對8259a編程和初始化的時候,首先要寫初始化命令字icw1-icw4。寫icw1以確定中斷請求信號類型,清除中斷屏蔽寄存器,進(jìn)行中斷優(yōu)先級排隊(duì)和確定系統(tǒng)是用單片還是多片。寫icw2用來定義中斷向量的高五位類型碼。icw3可以定義主片8259a中斷請求線上ir0-ir7有無級聯(lián)的8259a從片。寫icw4用來定義8259a工作時用8085模式還是8088模式,以及中斷服務(wù)寄存器復(fù)位方式等。初始化命令字寫完以后,要寫8259a的控制命令
13、字,它包括ocw1-ocw3。寫ocw1可以設(shè)置或清除對中斷源的屏蔽。寫ocw2設(shè)置優(yōu)先級是否進(jìn)行循環(huán)、循環(huán)的方式和中斷結(jié)束的方式。8259a復(fù)位時自動設(shè)置ir0優(yōu)先權(quán)最高,ir7優(yōu)先權(quán)最低。寫ocw3用來設(shè)置查詢方式和特殊屏蔽方式,并可以讀取8259a中斷寄存器的當(dāng)前狀態(tài)。在本系統(tǒng)中,使用8259a的循環(huán)等待中斷工作方式。4.3 8255a可編程并行接口芯片8255a是一種可編程的芯片,它采用雙列直插封裝,用5v電源供電。內(nèi)部有3個8位的i/0端口:a口、b口和c口。這三個端口也可以分為各有12位的兩組:a組和b組。a組包含a口8位和c口的高四位,b組包含b口8位和c口的低四位;a組控制和b
14、組控制用于實(shí)現(xiàn)方式選擇操作;讀寫控制邏輯用于控制芯片內(nèi)部寄存器的數(shù)據(jù)和控制字經(jīng)數(shù)據(jù)總線緩沖器送入各組接口寄存器中。由于8255a數(shù)據(jù)總線緩沖器是雙向三態(tài)8位驅(qū)動器,因此可以直接和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。它通過對控制寄存器寫入
15、不同的方式選擇控制字來決定其三種不同的工作方式。方式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不同,由控制字來決定它是作為輸入還是輸出。c口的相應(yīng)位用于寄存數(shù)據(jù)傳送中所需的狀態(tài)信號和控制信息。方式2為雙向輸入輸出方式。本
16、方式只有a組可以使用。此時a口為輸入輸出雙向口,c口中的5位(pc3-pc7)作為a口的控制位。在本系統(tǒng)中,8255a的三個端口均工作于方式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í)驗(yàn)箱的數(shù)碼管顯示屏上顯示剩余的時間。當(dāng)時間遞減到0的時候,改變led燈的狀態(tài),并刷新顯示屏顯示的時間。為了實(shí)現(xiàn)以上功能需求,本系統(tǒng)需要12個led指示燈,來分別代表1、3方向(東西),2、4方向(南北);兩個雙位的數(shù)碼管顯示屏,用來顯示1、3路口和2、4路口剩余的時間。為了實(shí)時地更
17、新數(shù)碼管顯示屏上的數(shù)字,需要使用8255a可編程芯片來即時地改變顯示屏每個筆劃的電平高低,從而準(zhǔn)確地將需要顯示的數(shù)字顯示在數(shù)碼管顯示屏上。由于交通燈需要按秒進(jìn)行計(jì)數(shù),所以需要一個均勻地時鐘發(fā)生器。8253a芯片是個功能豐富、使用簡單的定時/計(jì)數(shù)器。它可以根據(jù)需要設(shè)置不同的顯示初值,從而產(chǎn)生所需頻率的時鐘脈沖,為系統(tǒng)提供計(jì)時和驅(qū)動其他事件的發(fā)生。8259a中斷控制器芯片可以在收到8253a發(fā)出的時鐘脈沖時,產(chǎn)生定時的中斷,在中斷服務(wù)程序中,更新顯示緩沖區(qū),并調(diào)用8255a芯片來執(zhí)行相關(guān)程序,從而更新led燈和數(shù)碼管顯示屏。本系統(tǒng)使用集成的電路和實(shí)驗(yàn)環(huán)境,以方便進(jìn)行電路的連接和測試,同時減少由于電
18、路的復(fù)雜性而產(chǎn)生的錯誤。5.1.2 電路連接設(shè)計(jì)本系統(tǒng)所使用到的硬件包括8253a芯片、8259a芯片、8255a芯片、led指示燈和數(shù)碼管顯示屏。在電路連接的時候,將8255a芯片的pc口的pc5、pc4接紅燈燈,pc3、pc2接綠燈,pc1、pc0接黃燈。通過改變8255a的pc口的值來實(shí)時地控制每個led燈的亮滅,從而改變十字路口的交通狀態(tài)。將8253a的clk0插孔連接至1mhz的分頻輸出插孔t4。分頻輸出插孔所輸出的頻率是將系統(tǒng)的主頻分解為一定的頻率,以供其他硬件或者軟件使用。8253a從分頻插孔得到1mhz的固定頻率,再根據(jù)芯片內(nèi)部設(shè)定的計(jì)數(shù)初值,從而產(chǎn)生需要頻率的時鐘脈沖,由ou
19、t0口輸出,供其他芯片使用。在這里out0接clk2。將8253a的out2插孔連接至8259a的irq3插孔上。8259a的irq3中斷口每隔固定的時間便會收到8253a發(fā)送過來的時鐘脈沖,作為中斷源來執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序中,完成更新數(shù)碼管顯示值和改變交通燈狀態(tài)的功能。硬件的連接見圖5-1和圖5-2。d0 t0outd1 gate0d2 t0clkd3 gate2d4 t2outd5 t2clkd6d7 8253a out1 cs rd wrgate2 a0clk1 a1d0d1d2d3d4d5d6d7vcctclk1t0outvcct0clkckvccub318253tout1
20、cs3ioriowadd0add11mhzir0 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)電路
21、圖8255a和led燈的連接圖5.2軟件設(shè)計(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ì)方法很適合用來開發(fā)匯編語言程序,因?yàn)閰R編語言的特性決定了其無法使用面向?qū)ο蟮某绦蜷_發(fā)方法;使用瀑布程序開發(fā)模型,從開始的時候把系統(tǒng)的需求分析透徹,對系統(tǒng)的功能和各個模塊進(jìn)行清晰的規(guī)劃,從而縮短系統(tǒng)開發(fā)所用的時間。為了完成系統(tǒng)的功能,系統(tǒng)的程序部分應(yīng)包含以下幾個模塊(見圖5-3)。初始化模塊用來初始化各個芯片,分為以下幾個步
22、驟:(1)初始化數(shù)據(jù):t_1為1、3方向(東西)時間顯示(如 5秒);t_2為2、4方向(南北)的時間顯示。初值可同設(shè)為5秒。(2)初始化8255a的工作方式:使a、b、c三個端口均工作于方式0,且為輸出口;dvcc實(shí)驗(yàn)臺8255口地址:ff28hff2bh(3)初始化8253a芯片:選用方波發(fā)生器方式,并設(shè)定其使用通道0和2進(jìn)行工作;dvcc實(shí)驗(yàn)臺8253口地址:00400043h(4)初始化8259a:設(shè)定其工作方式為單片、邊沿觸發(fā)、要寫icw4、循環(huán)等待中斷方式。dvcc實(shí)驗(yàn)臺8259口地址:00600061h設(shè)置中斷向量表 寫2號、3號中斷向量:intreeup2、intreeup3。
23、中斷處理模塊:(1)intreeup3是主要的中斷服務(wù)程序, 8253a每發(fā)來一次時鐘脈沖便產(chǎn)生一次中斷,兩個路口所亮的燈對應(yīng)的顯示數(shù)值減一。并輸出完成顯示數(shù)值的更新使時間緩沖區(qū)中的時間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行l(wèi)ed燈狀態(tài)的切換(2)其中intreeup2是增加行人手動按鈕。實(shí)現(xiàn)可手動干預(yù)的(交通事故、步行可及時通行的)交通燈自動控制系統(tǒng)有手動干預(yù)(按鈕按下)時,交通燈立即處于該狀態(tài):兩個方向均紅燈亮(以便讓行人及時通過)。10秒后,交通恢復(fù)到人工干預(yù)前狀態(tài),繼續(xù)按正常狀態(tài)循環(huán)切換。顯示模塊(disp)使用8255a將顯示緩沖區(qū)的字
24、符逐位顯示在數(shù)碼管顯示屏上,在中斷請求沒有到來的時候,根據(jù)交通燈所處的狀態(tài),點(diǎn)亮相應(yīng)的led燈;有中斷請求時,調(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)行的時候,初始化程序,給初始顯示區(qū)和電平錯誤顯示區(qū)賦初值,顯示相應(yīng)的字符;定義數(shù)值對應(yīng)的顯示字符,便于轉(zhuǎn)換程序取到時間數(shù)值對應(yīng)的字符。接著對8253a、8255a和8259a進(jìn)行初始化。定義8253a使用通道0和2,工作于方式3,其計(jì)數(shù)初值為3c50,每隔2
25、0ms向8259a發(fā)出一個時鐘脈沖;8255a的a、b、c三個端口均工作于輸出方式;8259a工作于循環(huán)等待中斷方式。進(jìn)入顯示程序(disp)使用8255a將顯示緩沖區(qū)的字符逐位顯示在數(shù)碼管顯示屏上,在中斷請求沒有到來的時候,根據(jù)交通燈所處的狀態(tài),點(diǎn)亮相應(yīng)的led燈。當(dāng)有中斷的時候,則轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序,本系統(tǒng)主要為intreeup3程序。8253a每發(fā)來一次時鐘脈沖便產(chǎn)生一次中斷。intreeup3程序首先關(guān)閉中斷,兩個路口所亮的燈對應(yīng)的顯示數(shù)值減一。并輸出以完成顯示數(shù)值的更新使時間緩沖區(qū)中的時間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行l(wèi)ed
26、燈狀態(tài)的切換。最后打開中斷,并中斷返回。開始初始化設(shè)置中斷控制器工作方式中斷允許狀態(tài)循環(huán)切換,顯示數(shù)字中斷入口保護(hù)現(xiàn)場四個方向的紅燈亮30秒輸出中斷結(jié)束命令中斷返回恢復(fù)現(xiàn)場圖5-4 主程序框圖 圖5-5 中斷程序框圖5.2.3 重要代碼分析(1)中斷服務(wù)程序intreeup3是本系統(tǒng)的程序最核心的子程序。它用來計(jì)算收到8353a發(fā)來的中斷,8253a每發(fā)來一次時鐘脈沖便產(chǎn)生一次中斷,兩個路口所亮的燈對應(yīng)的顯示數(shù)值減一。并輸出完成顯示數(shù)值的更新使時間緩沖區(qū)中的時間減1,所以數(shù)碼管顯示屏上的數(shù)字才能夠不斷的減少。然后判斷其數(shù)值是否減到0,若0,則進(jìn)行l(wèi)ed燈狀態(tài)的切換,以下是該程序的代碼分析,并注
27、有詳細(xì)的功能說明。中斷服務(wù)程序intreeup3: cli ;處理中斷時先關(guān)中斷 push ax ;保存堆棧 push bx push dx sti ;保存現(xiàn)場后開中斷以可以實(shí)現(xiàn)中斷嵌套 ; 1、3方向(東西) dec t_1 ;對當(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 ;測試當(dāng)前并口狀態(tài) jnz red1 test al,08h jnz
28、yellow1 test al,20h jnz 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 ; 對新狀態(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 ; 對新狀態(tài)賦顯示初值 jmp right green1:mov dx,ioc ; 1、3方向(東西)綠燈 or al,08h
29、 and al,1dh out dx,al mov c,al ;保存c口狀態(tài) mov t_1,0fh ; 對新狀態(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)返回時2、4方向從新跳到紅燈jz red2 ; (同時,1、3方向?yàn)榫G燈) test al,10h jnz green2 red2:mov dx,ioc or al,10h
30、and al,3ah out dx,al 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
31、 al,t_2 mov ah,t_2 and 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 ret
32、bcakyledsta: mov al,c and al,03h jnz yledflash jmp retbcak ;= 時間小于等于3時 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 ;短延時 mov al,c ;燈亮 out dx,al call delay ;短延時 ; loop yledflash ;循環(huán) ; pop dx pop cx jmp retbcak ;=;短延時 de
33、lay: 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)的代碼使用8086匯編語言編寫,所以代碼編寫環(huán)境可以使用任何文本編輯器。如系統(tǒng)自帶的記事本、dos下的編輯工具edit和文本編輯工具ultraedit等。本系統(tǒng)使用了dvcc-598jh+實(shí)驗(yàn)箱附帶的dv
34、88聯(lián)機(jī)軟件。它可以讀取其他編輯軟件生成的masm格式的匯編語言文件(*.asm),也可以作為匯編代碼的編輯、測試、運(yùn)行環(huán)境。在顯示代碼的時候,可以把常用的匯編指令顯示為藍(lán)色,數(shù)值顯示為紅色,注釋顯示為綠色,從而使論文清晰易讀,并容易發(fā)現(xiàn)代碼中的錯誤。dv88聯(lián)機(jī)軟件同樣可以作為系統(tǒng)的運(yùn)行環(huán)境。系統(tǒng)運(yùn)行的時候需要將asm源程序編譯產(chǎn)生的obj文件傳送到實(shí)驗(yàn)箱,由實(shí)驗(yàn)箱上的處理器和各個芯片負(fù)責(zé)執(zhí)行。6.2 系統(tǒng)硬件環(huán)境交通燈控制系統(tǒng)采用的dvcc-598jh+通用微機(jī)原理及接口實(shí)驗(yàn)系統(tǒng),集成了8253a計(jì)數(shù)/定時器芯片、8255a可編程并行接口芯片和8259a中斷控制器芯片,并把大部分的引腳進(jìn)行
35、了封裝,方便直接進(jìn)行使用;并設(shè)有12個led顯示燈;系統(tǒng)分頻器可以產(chǎn)生特定頻率的時鐘脈沖;固定的導(dǎo)線接口,方便使用導(dǎo)線把各芯片進(jìn)行連接;并設(shè)有鍵盤,可以隨時控制程序的運(yùn)行,方便進(jìn)行調(diào)試。實(shí)驗(yàn)箱使用串行口連接線與pc機(jī)的串口相連,然后使用dv88聯(lián)機(jī)軟件與實(shí)驗(yàn)箱進(jìn)行連接并傳送運(yùn)行的程序。6.3 系統(tǒng)運(yùn)行步驟系統(tǒng)的代碼編寫完畢的時候,便可以進(jìn)行程序的聯(lián)機(jī)調(diào)試了。將實(shí)驗(yàn)箱的電源線連接好,使用串口通信線將實(shí)驗(yàn)箱上的串口與pc機(jī)上的串口相連。將各個芯片和led燈按照硬件連接設(shè)計(jì)圖上的圖示進(jìn)行連接。打開實(shí)驗(yàn)箱的電源,數(shù)碼管顯示屏上顯示“p.”,提示實(shí)驗(yàn)箱初始化成功。在pc機(jī)上打開dv88聯(lián)機(jī)軟件,調(diào)用編輯
36、好的程序代碼。首先進(jìn)行編譯,系統(tǒng)會自動調(diào)用masm程序?qū)Υa進(jìn)行編譯。若沒有提示錯誤,便可以點(diǎn)擊連接按鈕,調(diào)用link程序把編譯生成的obj文件進(jìn)行連接,生成exe文件。再點(diǎn)進(jìn)調(diào)試按鈕,把生成的可執(zhí)行文件傳送到實(shí)驗(yàn)箱,進(jìn)行調(diào)試狀態(tài),此時屏幕會顯示實(shí)驗(yàn)箱各個寄存器的值。最后點(diǎn)擊連續(xù)運(yùn)行按鈕,實(shí)驗(yàn)箱上的數(shù)碼顯示管和led燈便會按照設(shè)計(jì)的要求進(jìn)行工作。在運(yùn)行的過程中可以隨時按實(shí)驗(yàn)箱上的reset鍵,中斷程序的執(zhí)行,以便進(jìn)行代碼的修改或者結(jié)束系統(tǒng)的運(yùn)行。6.4 系統(tǒng)測試結(jié)果按照表2-1中交通燈四個狀態(tài)所對應(yīng)的秒數(shù),在程序中為各個狀態(tài)子程序設(shè)定相應(yīng)的時間初值。測試運(yùn)行的結(jié)果如下:開始運(yùn)行時,系統(tǒng)在狀態(tài)一
37、下工作,兩個顯示屏顯示剩余時間為5秒,并不斷遞減,同時led燈的2、4路口的紅燈點(diǎn)亮,1、3路口的黃燈點(diǎn)亮;當(dāng)狀態(tài)一的剩余時間減至零的時候,系統(tǒng)自動切換到狀態(tài)二,2、4路口顯示屏顯示剩余時間變?yōu)?5秒并遞減,1、3路口顯示屏顯示剩余時間變?yōu)?0秒并遞減,同時1、3路口的紅燈和2、4路口的綠燈點(diǎn)亮;狀態(tài)二結(jié)束時,系統(tǒng)切換到狀態(tài)三,兩個顯示屏的剩余時間變更為5秒,1、3路口的紅燈和2、4路口的黃燈點(diǎn)亮;狀態(tài)三結(jié)束時,進(jìn)入狀態(tài)四,2、4路口顯示屏顯示剩余時間變?yōu)?0秒并遞減,1、3路口顯示屏顯示剩余時間變?yōu)?5秒并遞減,同時1、3路口的綠燈點(diǎn)亮,2、4路口的紅燈點(diǎn)亮。狀態(tài)四結(jié)束時,自動切換到狀態(tài)一循
38、環(huán)執(zhí)行。參考文獻(xiàn)1 季福坤:計(jì)算機(jī)組織與體系結(jié)構(gòu)m,中國水利水電出版社2006年版2 李繼燦:微型計(jì)算機(jī)系統(tǒng)與接口m,清華大學(xué)出版社2005年版3楊立:微型計(jì)算機(jī)系統(tǒng)與接口m,中國鐵道出版社2009年版4dvcc系列單片機(jī)微機(jī)仿真實(shí)驗(yàn)系統(tǒng)實(shí)驗(yàn)指導(dǎo)書m,啟東計(jì)算機(jī)廠有限公司5周秀清:微型計(jì)算機(jī)原理與接口技術(shù)m,中國科學(xué)技術(shù)大學(xué)出版社.6 紅綠燈控制系統(tǒng)的設(shè)計(jì)c, 百度文庫心得 體會通過這次課程設(shè)計(jì),加強(qiáng)了我們動手、思考和解決問題的能力.雖然花了很多的時間,但學(xué)到了很多東西.做課程設(shè)計(jì)的時候,查閱了很多課本、資料書,增強(qiáng)了自己對知識的理解,很多以前不是很懂的問題現(xiàn)在都有了更高層次的理解. 通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生交流會策劃方案(8篇)
- 2025年材料用過濾袋合同采購流程
- 2025年醫(yī)用耗材集中采購協(xié)議
- 2025年文物遺址保護(hù)服務(wù)項(xiàng)目規(guī)劃申請報(bào)告
- 2025年舞蹈學(xué)校教職員工勞動合同
- 2025年貴金屬靶材項(xiàng)目申請報(bào)告模板
- 2025年企業(yè)互助共享協(xié)議
- 2025年單位二手商業(yè)房產(chǎn)出售合同范本
- 2025年公司員工競業(yè)限制協(xié)議范例
- 2025年組合開關(guān)項(xiàng)目提案報(bào)告
- 全介質(zhì)自承式架空光纜(ADSS)-設(shè)計(jì)和制造專題研討教學(xué)課件
- 義工財(cái)務(wù)管理制度范文
- 西安旅游景點(diǎn)介紹PPT模板(推薦)
- 公司實(shí)際經(jīng)營地與公司注冊地不一致的說明
- 電氣控制線路的設(shè)計(jì)和元器件選擇
- 貴州省工傷待遇申請表(綜合柜員)
- 《發(fā)展?jié)h語(第二版)中級綜合(Ⅰ)》第8課+課件
- GB/T 18268.1-2010測量、控制和實(shí)驗(yàn)室用的電設(shè)備電磁兼容性要求第1部分:通用要求
- GB 5009.228-2016食品安全國家標(biāo)準(zhǔn)食品中揮發(fā)性鹽基氮的測定
- 多維完美主義量表(HMPS)
- 人教版高一物理必修二第六章《圓周運(yùn)動》課后練習(xí)(有答案解析)
評論
0/150
提交評論