匯編課程設(shè)計_第1頁
匯編課程設(shè)計_第2頁
匯編課程設(shè)計_第3頁
匯編課程設(shè)計_第4頁
匯編課程設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、湖湖南南農(nóng)農(nóng)業(yè)業(yè)大大學(xué)學(xué)課課程程設(shè)設(shè)計計報報告告學(xué) 院:信息科學(xué)技術(shù)學(xué)院 班 級:2007 級信工 2 班姓 名:李新花 學(xué) 號:200741843221課程設(shè)計題目:模擬交通燈課程名稱:匯編語言與微機(jī)原理輔導(dǎo)老師:解志堅評閱成績:評閱意見:成績評定教師簽名:日期: 年 月 日目目 錄錄 模擬交通燈模擬交通燈概述此模擬交通燈,是在 TNDMD 教學(xué)系統(tǒng)上實現(xiàn)的。所使用的芯片主要有 8253定時計數(shù)器、8255A 并行接口電路芯片、8259A 中斷控制器等。通過紅綠 SW-LED 顯示不同的二極管亮滅組合來表示模擬交通燈的運(yùn)行情況,并通過液晶顯示屏顯示倒計時,其計時精確度為 1S。一、設(shè)計內(nèi)容與

2、要求 如右圖,在十字交叉路口設(shè)置交通燈和倒計時牌,東邊與西邊顯示完全一樣,南邊與北邊的顯示完全一樣,只需設(shè)計東邊和南邊。a) 考慮東往西,南往北兩個直行方向和左拐情況;直行、左拐和禁止時間比例為 0.80.21;b) 要求以 8253 產(chǎn)生秒(或更長間隔)信號,送 8259(IRQ7)中斷及計數(shù),南口和北口設(shè)置各設(shè)置直行和左拐兩組紅綠燈(利用紅綠 LED 顯示)和倒計時牌顯示(利用 4 個數(shù)碼管或液晶顯示屏分兩組顯示) ;c) 注意東口和南口之間禁止通行時間等于左拐與直行通行時間之和。 顯顯示示牌牌開開始始倒倒計計時時左左拐拐紅紅燈燈滅滅顯顯示示牌牌倒倒計計時時為為零零顯顯示示牌牌開開始始倒倒

3、計計時時左左拐拐綠綠燈燈亮亮顯顯示示牌牌開開始始倒倒計計時時左左拐拐紅紅燈燈亮亮綠綠燈燈滅滅顯顯示示牌牌倒倒計計時時為為零零禁禁止止通通行行直直行行通通行行左左拐拐通通行行顯顯示示牌牌倒倒計計時時為為零零直直行行紅紅燈燈亮亮綠綠燈燈滅滅紅紅燈燈全全亮亮綠綠燈燈全全滅滅直直行行紅紅燈燈滅滅綠綠燈燈亮亮二、設(shè)計思想本程序是在 TDNMD 教學(xué)系統(tǒng)上實現(xiàn)的,要使用匯編語言進(jìn)行編寫,整體設(shè)計思路是:由于要實現(xiàn)前敘的實驗要求,本程序要達(dá)到以下基本功能:秒信號的產(chǎn)生:北東西南現(xiàn)實生活中的交通燈都是有倒計時的,因此本設(shè)計需要一個秒信號,而在TDNMD 上 8253 定時計數(shù)器可以實現(xiàn)這個功能,由于 8253

4、 的 OUT 輸出頻率為1.19MHZ,若使其計數(shù)初值為 1190000,剛好每秒產(chǎn)生一個脈沖。而 8253 的每個計數(shù)器都是 16 位的,無法存入這個值,兩個計數(shù)器級聯(lián)就可以實現(xiàn):讓 0通道的 OUT0 連接 8259 的 IRQ0,再有 OUT0 連 2 通道的 CLK2,使 OUT2 的輸出秒信號,OUT2 連接 8259 的 IRQ7,GATE2 接正 5V 電壓。其中計數(shù)器 0 的計數(shù)初值設(shè)計為 1190,而計數(shù)器 2 的計數(shù)初值為 1000,則 OUT2 每秒輸出一個脈沖方波信號。倒計時的顯示:利用 TDNMD 系統(tǒng)的液晶顯示屏,來顯示倒計時。由于考慮到東,南兩個方向的通行顯示,所

5、以我們設(shè)計了兩個倒計時,一個用來顯示東邊方向的倒計時的情況,另一個用來顯示南邊方向倒計時的情況。為了模擬的方便,設(shè)計了直行時間為 24 秒,左拐時間為 6 秒,禁行時間為 30 秒。通過 8253 的IRQ7 產(chǎn)生一次中斷,調(diào)用中斷服務(wù)程序顯示倒計時,每秒減一。東邊通行時:時間從 24 減到 0,然后是 6 秒的左拐時間。南邊的情況一樣。東,南兩個方向的時間都分別顯示在液晶顯示屏上紅綠燈的顯示與改變:在 TDNMD 系統(tǒng)上有 LED 紅綠發(fā)光二極管,上面有 4 個紅燈和 4 個綠燈,且有 8 個對應(yīng)的引腳,我們可以利用 8255 的 B 端口寫數(shù)據(jù)就可以控制 8 個燈的亮滅。在本次課程設(shè)計中,

6、為了模擬各種情況,我們把 8 個燈分成兩組:東組有:1,2,5,6 四盞燈;南組有:3,4,7,8 四盞燈。其中東直行時各盞燈的亮滅情況是 00011110(0為亮, 1為滅) ;東左拐時是:00101101;南直行時是 01001011;南左拐時是:10000111。通過 8253 來定時驅(qū)動各種情況的切換三、設(shè)計所用芯片及工作原理本課程設(shè)計所用的芯片主要有 8253 定時計數(shù)器,8255A 并行接口電路芯片,8259A 中斷控制器等,它們的工作原理分別如下:(一)8253 定時計數(shù)器8253 可編程定時計數(shù)器是 INTEL 公司生產(chǎn)的的通用外圍芯片之一。它有三個獨(dú)立的十六位計數(shù)器,計數(shù)頻率

7、范圍為 02MHZ,它所有的計數(shù)方式和操作方式都可以通過編程控制。1.8253 的功能是:(1)延時終端;(2)可編程頻率發(fā)生器;(3)事件發(fā)生器;(4)倍率器;(5)實時時鐘;(6)數(shù)字單穩(wěn);(7)復(fù)雜的電機(jī)控制器2.計數(shù)器 0,計數(shù)器 1,計數(shù)器 2;這 3 個計數(shù)器相互獨(dú)立,各自可按不同的方式工作。計數(shù)器的內(nèi)部結(jié)構(gòu)如前所述,每個計數(shù)器包含一個 16 位的初始寄存器,一個計數(shù)執(zhí)行部件哥一個鎖存器。計數(shù)執(zhí)行部件從初始值寄存器中獲得計數(shù)初值,便進(jìn)行減 1 計數(shù),此時,鎖存器跟隨計數(shù)執(zhí)行部件的內(nèi)容而變化,當(dāng)有一個鎖存器命令來到時,鎖存器便鎖定當(dāng)前計數(shù),直到被讀走以后,又跟隨計數(shù)執(zhí)行部件的動作。各

8、計數(shù)器的外部輸入輸出信號:計數(shù)器 0:CLK0計數(shù)器 0 的時鐘輸入。GATE0計數(shù)器 0 的門脈沖控制輸入。OUT0計數(shù)器 0 的輸出。2計數(shù)器 1:CLK1計數(shù)器 1 的時鐘輸入。GATE1計數(shù)器 1 的門脈沖控制輸入。OUT1計數(shù)器 1 的輸出。計數(shù)器 2:CLK2計數(shù)器 2 的時鐘輸入。GATE2計數(shù)器 2 的門脈沖控制輸入。OUT2計數(shù)器 2 的輸出。讀/寫邏輯電路讀寫電路從控制總線接收輸入信號,經(jīng)過組合,產(chǎn)生 8253 各部分的控制。具體為:A1,A0用來對三個計數(shù)器和控制寄存器進(jìn)行尋址RD讀信號。當(dāng) RD 為低電平有效,此時,表示 CPU 正在對 8253 的一個計數(shù)器進(jìn)行讀操作

9、。 WR寫信號。當(dāng) WR 低電平有效時,此時,表示示 CPU 正在對 8253 的一個計數(shù)器進(jìn)行寫操作。CS片選信號。只有在 CS 為持續(xù)低電平的情況下,RD 哥 WR 才會收到確認(rèn),否則會被忽略。4工作方式:方式 0:計數(shù)結(jié)果產(chǎn)生中斷方式 1:可重復(fù)觸發(fā)的單穩(wěn)態(tài)觸發(fā)器方式 2:分頻器方式 3:方波發(fā)生器方式 4:軟件觸發(fā)的選通信號發(fā)生器方式 5:硬件觸發(fā)的選通信號發(fā)生器(二)8255A 并行接口電路芯片8255 可編程外圍接口芯片是 INTEL 公司生產(chǎn)的通用 I/O 接口芯片,它具有 A,B,C 三個并行接口,用+5V 單電源供電,能在一下三個方式下工作:方式 0:基本輸入輸出方式;方式

10、1:選通輸入輸出方式;方式 2:雙向選通工作方式。數(shù)據(jù)端口 A,B,C共提供 24 條數(shù)據(jù)線,與外設(shè)相連接,可以用軟件將它們分別編程為輸入輸出端口:端口 A1 個 8 位數(shù)據(jù)輸入鎖存器:PA 作輸入時,有鎖存功能。1 個 8 位的數(shù)據(jù)輸出鎖存器緩沖器:PA 作輸出時,有鎖存功能端口 B1 個 8 位數(shù)據(jù)輸入鎖存器:PB 作輸入時,沒有鎖存功能。1 個 8 位的數(shù)據(jù)輸出鎖存器緩沖器:PB 作輸出時,有鎖存功能端口 C1 個 8 位數(shù)據(jù)輸入鎖存器:PC 作輸入時,沒有鎖存功能。1 個 8 位的數(shù)據(jù)輸出鎖存器緩沖器:PC 作輸出時,有鎖存功能2.A 組控制和 B 組控制8255A 在使用時,PA 和

11、 PB 常作為獨(dú)立的輸入輸出端口,端口 C 則配合PA,PB 的工作。因此 PA,PB,PC 分為兩組。3.讀寫控制器該部分控制 8255 與 CPU 的數(shù)據(jù)傳輸,它接收 CS,A1,A0,WR,RD 及RESET 信號(三)8259A 中斷控制器中斷控制器 8259A 是 INTEL 公司專門為控制優(yōu)先級中斷而設(shè)計開發(fā)的芯片,其內(nèi)部結(jié)構(gòu)邏輯主要由以下三部分組成:(1)邏輯控制(2)中斷優(yōu)先權(quán)判優(yōu)先及屏蔽(3)輔助電路,編程結(jié)構(gòu)由三組共 10 個寄存器構(gòu)成,每個寄存器均為 8 位1.寄存器分類情況:第一組:IRR,PR,ISR第二組:ICW1 ,ICW2,ICW3, ICW4第三組:OCW!,

12、OCW2,OCW32.8259 的功能(1)一個 8259 可管理 8 個中斷請求,并把當(dāng)前優(yōu)先級最高的中斷請求送到 CPU 的 INTR 端(2)當(dāng) CPU 響應(yīng)中斷時,為 CPU 提供中斷向量表(3)8 個外部中斷優(yōu)先級排列方式,可以通過對 8259 編程進(jìn)行指定,也可以通過編程屏蔽某些中斷請求,或者通過編程改變中斷向量表(4)允許 9 片 8259 級聯(lián),構(gòu)成 64 級中斷系統(tǒng)四、系統(tǒng)連線圖計計數(shù)數(shù)器器01.19MHz5VCLK0GATE0OUT0OUT0連連接接8259的的IRQ0引引腳腳計計數(shù)數(shù)器器25VCLK2GATE2OUT2圖圖1、計計數(shù)數(shù)器器8253的的0、2通通道道級級聯(lián)聯(lián)

13、8259IRQ78255PB0 PB7SW-LEDUNITD0D7、 、 、 、 、 、 、 圖 2 LED 二極管與 8255 的連接線五、連線圖說明 圖 1 為 8253 的 0、2 通道級聯(lián)的實驗圖,但是這個系統(tǒng)已經(jīng)連好了,我只需連接 OUT2 到 8259 的 IRQ7,GATE2 連接+5V。 圖 2 為 8255 芯片 B 端口的 8 個端口 PB0PB7 與 SWLED 的 D0D7 連接,通過 B 端口的輸出來控制二極管的顯示情況。 六、程序流程圖 流程圖說明:先進(jìn)行個芯片的初始化,如 8253 和 8255 的初始化,8259的 IRQ7 設(shè)置向量表開屏蔽。隨后就是主程序和中

14、斷服務(wù)程序。主程序:先是東直行,再東左拐,加起來的時間和是南禁止通行的時間。之后轉(zhuǎn)換為南邊通行,與東邊類似。中斷服務(wù)程序:進(jìn)行顯示倒計時,分兩組顯示,低位顯示的是東邊的倒計時,高位顯示的是南邊的倒計時。 模擬交通燈流程圖 七、程序源代碼82538253 的初始化的初始化MOV AL,37H ;給計數(shù)器 0 寫控制字(00110111)OUT 43H,ALMOV AX 1190H ;.賦計數(shù)初值OUT 40H,AL ;低八位的存儲MOV AL,AHOUT 40H,AL ;高八位的存儲MOV AL,B7H ;給計數(shù)器 2 寫控制字(10110111)OUT 43H,AL MOV AX 1000H

15、;.賦計數(shù)初值OUT 42H AL ;低八位的存儲MOV AL,AHOUT 42H,AL ;高八位的存儲82558255 的初始化的初始化MOV AL,80H ;8255 的初始化OUT 63H,AL82598259 向量表設(shè)置向量表設(shè)置PUSH DS;保存數(shù)據(jù)段MOV AX,0000HMOV DS,AX ;數(shù)據(jù)段清零MOV AX,OFFSET IRQ7 ;取中斷程序的入口地址(相對地址)ADD AX,2000H ;加裝載時 IP=2000H 地址(絕對地址)MOV SI,003CHMOV WSI,AX ;填偏移地址MOV SI,003EHMOV AX,0000H ;填段地址MOV WSI,A

16、XIRQ7IRQ7 開屏蔽開屏蔽IN AL,21HAND AL,7FH ;開 8259 中斷 7OUT 21H,ALSTI主程序主程序START:START:MOV CL,18H ;東直行 24 秒MOV CH,1EH ;南禁行 30 秒MOV AL,1EH ;東直行指示燈情況OUT 61,ALSTI A:A:CMP CL,00HJNZ A 6MOV CL,CH ;東左拐 6 秒MOV AL,2DH ;東左拐指示燈情況OUT 61,ALSTID D:CMP CX,0000JNZ DMOV CL,1EH ;東禁行 30 秒MOV CH,18H ;南直行 24 秒MOV AL,4BH ;南直行指示

17、燈情況OUT 61,ALSTIB:B:CMP CH,00HJNZ BMOV CH,CL ;南左拐 6 秒MOV AL,87H ;南左拐指示燈情況OUT 61,ALC:C:CMP CH,00HJNZ CJMP STARTIRQ7IRQ7: ;IRQ7 中斷服務(wù)程序MOV AX,0001HINT 10 ;DOS 的 10 號功能調(diào)用,在顯示器上顯示MOV BL,0AHMOV AH,00HMOV AL,CLDIV BL ;低八位是商,高八位是余數(shù)MOV DX,AXMOV AL,DLADD AL,30H ;轉(zhuǎn)換為 10 進(jìn)制出來顯示MOV AH,01HINT 10 MOV AL,DHADD AL,30

18、H ;轉(zhuǎn)換為 10 進(jìn)制出來顯示MOV AH,01HINT 10DEC CL ;CL 減 1MOV AX,0120HINT 10 ;顯示空格MOV BL,0AHMOV AH,00HMOV AL,CH 7 DIV BL ;低八位是商,高八位是余數(shù)MOV DX,AXMOV AL,DLADD AL,30H ;轉(zhuǎn)換為 10 進(jìn)制出來顯示MOV AH,01HINT 10 MOV AL,DHADD AL,30H ;轉(zhuǎn)換為 10 進(jìn)制出來顯示MOV AH,01HINT 10DEC CH ;CH 減 1MOV AL,20H ;中斷結(jié)束命令OUT 20H, ALIRET ;中斷返回8、設(shè)計過程中遇到的問題及解決

19、方法 在這次實驗中,我跟搭檔總共花了兩天的時間去做模擬交通燈,在實驗中遇到了很多的問題,但是我們都努力的去思考,終于把問題都解決了。下面是我實驗中所遇到的問題及解決方法: 1、由于這個不是在電腦上面去敲打程序,是在 TDNMD 教學(xué)系統(tǒng),這個給我們添加了很大的難度,所以做實驗前不能僅在腦子里想,一定要付諸行動。第一天我們在實驗室中由于沒有把實驗的原理跟程序弄清楚,因此沒有做出任何結(jié)果。于是我們回到寢室后去搜索了我們所要做實驗所需的資料,并把實驗的整個程序都整合出來,這樣后在第二天我們做實驗,我們就很有目的,做起實驗來就很有效果。 2、在編寫實驗中,我們發(fā)現(xiàn)了程序中的很多錯誤,一一改正。例如:在

20、進(jìn)行 IRQ7 的中斷服務(wù)程序的把 16 進(jìn)制轉(zhuǎn)換為 10 進(jìn)制顯示的程序中: MOV AH,00H MOV AL,CL DIV 0AH 敲打時總是出現(xiàn)錯誤,后來我們覺得在 DIV 的除數(shù)時必須先賦值給一個寄存器才能實現(xiàn),于是我們修改為 MOV BL,0AH MOV AH,00H MOV AL,CL DIV BL 就實現(xiàn)了我們所要的結(jié)果;還有在進(jìn)行模擬交通燈的循環(huán)顯示時,總是不能實現(xiàn)東左拐,它的那 6 秒時間無故的消失了,直接從東直行到了南直行。它原先的代碼為: A:A: CMP CL,00H JNZ A MOV CL,CH ;東左拐 6 秒 MOV AL,2DH ;東左拐指示燈情況 OUT

21、61,AL 8 CLI MOV CL,1EH ;東禁行 30 秒 MOV CH,18H ;南直行 24 秒 MOV AL,4BH ;南直行指示燈情況 OUT 61,AL于是我們覺得東左拐時沒有被 IRQ7 中斷使用,但是我們起先也不知道從何改,我們連續(xù)敲了很多次的代碼,總是出現(xiàn)一樣的問題,于是沒辦法,我們就嘗試把代碼改成這樣: A:A: CMP CL,00H JNZ A MOV CL,CH ;東左拐 6 秒 MOV AL,2DH ;東左拐指示燈情況 OUT 61,AL STI D D: CMP CX,0000 JNZ D MOV CL,1EH ;東禁行 30 秒 MOV CH,18H ;南直行 24 秒 MOV AL,4BH ;南直行指示燈情況 OUT 61,AL改完后,竟然都能夠?qū)崿F(xiàn)模擬交通燈的循環(huán)模式,我們都很高興。于是我們對這個的解釋:未改前,沒有去調(diào)用中斷服務(wù)程序,直接到了南直行,改了之后,就循環(huán)的都調(diào)用了中斷服務(wù)程序。3、在做實驗時,要認(rèn)真去敲打代碼,并在敲打過程中要帶著頭腦去,這樣才能發(fā)現(xiàn)程序的錯誤,好幾次我都沒發(fā)現(xiàn)一些小錯誤,我的搭檔認(rèn)真去敲打時,發(fā)現(xiàn)了細(xì)微的錯誤,使陳恭又進(jìn)了一步。所以我的結(jié)論是在敲打代碼時,不僅要用心也要用腦。4、由于我們是用顯示器去顯示倒計時的,沒有使用 8255 去驅(qū)動數(shù)碼管去實現(xiàn)倒計時,這是我們現(xiàn)在沒有解決的問題。這個

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論