微機(jī)原理與接口技術(shù)第11章-實(shí)訓(xùn)課件_第1頁
微機(jī)原理與接口技術(shù)第11章-實(shí)訓(xùn)課件_第2頁
微機(jī)原理與接口技術(shù)第11章-實(shí)訓(xùn)課件_第3頁
微機(jī)原理與接口技術(shù)第11章-實(shí)訓(xùn)課件_第4頁
微機(jī)原理與接口技術(shù)第11章-實(shí)訓(xùn)課件_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第11章 實(shí)訓(xùn)實(shí)訓(xùn)一 排序程序設(shè)計(jì)實(shí)訓(xùn)目的1熟悉8086匯編語言程序的運(yùn)行環(huán)境以及調(diào)試工具DEBUG有關(guān)命令的功能與操作方法。2熟悉分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)以及子程序調(diào)用等基本結(jié)構(gòu)的程序設(shè)計(jì)過程和技巧。3了解綜合程序的設(shè)計(jì)、編寫及調(diào)試過程。實(shí)訓(xùn)內(nèi)容 把一組字?jǐn)?shù)據(jù)置入存儲(chǔ)器的某一連續(xù)的存儲(chǔ)區(qū)中,使存儲(chǔ)區(qū)的長度就是這組數(shù)據(jù)的個(gè)數(shù)。編寫一程序,用下沉法對該數(shù)據(jù)區(qū)中數(shù)據(jù)按增序排序,結(jié)果放在原數(shù)據(jù)區(qū)中。設(shè)計(jì)思想 從第1個(gè)數(shù)開始,依次把相鄰的兩個(gè)數(shù)進(jìn)行比較,即第1個(gè)數(shù)與第2個(gè)數(shù)比較,若第1個(gè)數(shù)大于第2個(gè)數(shù),則兩者交換,否則,兩數(shù)的位置不變。然后,把第2個(gè)數(shù)與第3個(gè)數(shù)比較,若第2個(gè)數(shù)大于第3個(gè)數(shù),則兩者交換,否則

2、,兩數(shù)的位置不變。第N-1次是把第N-1個(gè)數(shù)與第N個(gè)數(shù)比較,若第N-1個(gè)數(shù)大于第N個(gè)數(shù),則兩者交換,否則,兩數(shù)的位置不變。對于這N個(gè)數(shù),經(jīng)過第1遍的N-1次比較后,最大數(shù)將被排在第N個(gè)位置,即最大數(shù)被排在最后。 對剩下的N-1個(gè)數(shù)重復(fù)中的過程,找出N-1個(gè)數(shù)中的最大數(shù),并把該最大數(shù)放在第N-1個(gè)位置。 重復(fù),經(jīng)過N-1遍后排序后,這N個(gè)數(shù)將被全部排序好。實(shí)訓(xùn)步驟1根據(jù)程序設(shè)計(jì)思想編寫源程序。2在EDIT編輯器下輸入源程序,并保存程序。3用MASM.EXE編譯源程序,編譯無錯(cuò)后,生成相應(yīng)的OBJ目標(biāo)文件。用LINK. EXE 連接OBJ文件,生成可執(zhí)行的EXE文件。4運(yùn)行可執(zhí)行文件。根據(jù)需要,可

3、在DOS提示符下直接通過文件名的方式運(yùn)行程序,或者是用DEBUG將可執(zhí)行的EXE文件調(diào)入內(nèi)存后,用G命令運(yùn)行。例:C: DEBUG 文件名. EXE -U ;先用反匯編來查看源程序裝入的地址 : -G=xxxx:xxxx ;從程序裝入的地址處,開始運(yùn)行程序5使用DEBUG的有關(guān)命令,查看程序結(jié)果。實(shí)訓(xùn)總結(jié) 假設(shè)待排序的數(shù)共有10個(gè),它們分別是0055H,0033H,0066H, 0077H,0099H, 0011H, 0022H, 0088H, 0044H, 0000H,放在首地址為DATA的一組存儲(chǔ)單元中。程序執(zhí)行結(jié)果應(yīng)為0000H,0011H, 0022H,0033H,0044H,0055

4、H,0066H, 0077H,0088H, 0099H。使用DEBUG的有關(guān)命令查看程序執(zhí)行后,該存儲(chǔ)區(qū)中的數(shù)據(jù)是否按升序有序,若不是,查找原因,修改程序,直至得到正確的結(jié)果為止。 給出的程序清單是在待排序的數(shù)據(jù)是已知的情況,即共有10個(gè)數(shù)。在數(shù)據(jù)段中完全可以采用($-DATA)/2求出待排序數(shù)據(jù)的個(gè)數(shù),實(shí)現(xiàn)未知待排序數(shù)據(jù)個(gè)數(shù)的排序。參考程序 接下段接上段實(shí)訓(xùn)二 8259A外部中斷實(shí)訓(xùn)目的 1熟悉8088/86與8259A的連接方法。 2進(jìn)一步掌握中斷控制器8259A的工作原理,進(jìn)一步了解中斷屏蔽寄存器和中斷服務(wù)寄存器的功能和使用方法。 3熟悉中斷服務(wù)程序的編寫過程及技巧。實(shí)訓(xùn)內(nèi)容 用8088

5、/86控制8259A可編程中斷控制器,實(shí)現(xiàn)對外部中斷的響應(yīng)和處理。要求程序中對每次中斷進(jìn)行計(jì)數(shù),并將計(jì)數(shù)結(jié)果用74LS273輸出到LED顯示出來。實(shí)訓(xùn)設(shè)計(jì)過程 18259A硬件線路的設(shè)計(jì) 根據(jù)實(shí)際要求,設(shè)計(jì)如圖11-2所示的硬件連接線路,使用實(shí)驗(yàn)板上的脈沖發(fā)生電路產(chǎn)生的脈沖信號作為中斷請求信號與IR0相連。當(dāng)按下脈沖按鈕時(shí),脈沖發(fā)生電路就會(huì)產(chǎn)生一個(gè)正脈沖,使IR0=1,即發(fā)生了外部中斷。圖11-2 8259A外部中斷連線圖 2中斷計(jì)數(shù)輸出硬件線路的設(shè)計(jì) 中斷計(jì)數(shù)可采用軟件計(jì)數(shù)的方式實(shí)現(xiàn),計(jì)數(shù)結(jié)果輸出可采用鎖存儲(chǔ)器74LS273實(shí)現(xiàn)。把74LS273的數(shù)據(jù)輸入線D1D8與CPU的低8位數(shù)據(jù)線相連

6、,74LS273的數(shù)據(jù)輸出線Q1Q8與8個(gè)指示燈LED0LED7相連。CPU通過OUT指令把中斷計(jì)數(shù)值輸出到74LS273并鎖存,同時(shí)中斷計(jì)數(shù)值在74LS273輸出端輸出,在LED0LED7顯示出來,其硬件連線如圖11-3所示 圖11-3 中斷計(jì)數(shù)輸出連接電路圖 程序設(shè)計(jì)思想與程序流程 8259A的初始化 ICW1=13H,即單片8259A,中斷請求信號為上升沿觸發(fā),需要寫如ICW4。ICW2=20H,即IR0的中斷類型號為20H。ICW4=01H,即與8086/8088相連,工作在正常EOI方式,非緩沖和全嵌套方式。OCW1=0FEH,即屏蔽除IR0之外的所有中斷請求。設(shè)259A的端口地址為

7、0A00H和0A001H,74LS273端口地址為8000H。在不同的實(shí)驗(yàn)系統(tǒng)中,芯片的地址由與CPU地址線的連接方式確定;在同一個(gè)系統(tǒng)中,端口地址是固定的。 設(shè)置中斷向量表具體實(shí)現(xiàn)過程見程序清單。 繪制主程序和中斷服務(wù)程序的流程圖主程序和中斷服務(wù)程序的流程如圖11-4所示。 編寫主程序和中斷服務(wù)程序主程序和中斷服務(wù)程序見程序清單。實(shí)訓(xùn)步驟 1按照圖11-2和圖11-3在實(shí)驗(yàn)板上連接硬件線路。2在EDIT編輯器下輸入源程序,并保存程序。3用MASM.EXE編譯源程序,編譯無錯(cuò)后,生成相應(yīng)的OBJ目標(biāo)文件。用LINK. EXE 連接OBJ文件,生成可執(zhí)行的EXE文件。4運(yùn)行可執(zhí)行程序。在執(zhí)行程序

8、的過程中,按下脈沖開關(guān),產(chǎn)生中斷。5觀察實(shí)訓(xùn)結(jié)果。如果指示燈LED0LED7顯示結(jié)果與按下脈沖開關(guān)次數(shù)相同,說明實(shí)訓(xùn)結(jié)果正確,否則,需要查找出錯(cuò)原因,并排除之。實(shí)訓(xùn)總結(jié)本實(shí)訓(xùn)主要容易出現(xiàn)以下兩種錯(cuò)誤結(jié)果: 1中斷次數(shù)與顯示值不一致。導(dǎo)致這種錯(cuò)誤的主要原因是由于脈沖按鈕的抖動(dòng)造成的,可通過軟件去抖動(dòng)的方法給予解決。 2中斷服務(wù)程序不被執(zhí)行。導(dǎo)致這種錯(cuò)誤的主要原因一是中斷控制電路的設(shè)計(jì)或連接有問題,導(dǎo)致CPU確實(shí)沒有接到中斷請求信號,二是中斷向量與中斷服務(wù)程序的入口地址在填寫中斷向量表時(shí)不一致。可通過檢查8259A控制字、連線以及中斷向量表的設(shè)置等因素給予排除。程序清單 接下段接上端接下端接上表實(shí)

9、訓(xùn)三 8255輸入/輸出實(shí)訓(xùn)目的 1熟悉8255芯片結(jié)構(gòu)及編程方法。 2熟悉8255A的初始化過程和方式控制字的設(shè)置過程及方法。 3了解通過8255A并行接口傳輸數(shù)據(jù)控制LED發(fā)光二極管的亮滅的方法。實(shí)訓(xùn)內(nèi)容 利用8255可編程并行口芯片,實(shí)現(xiàn)數(shù)據(jù)輸入/輸出功能,實(shí)訓(xùn)中用8255PA口作輸出,PB口作輸入。可編程通用接口芯片8255A有三個(gè)八位的數(shù)據(jù)端口,它有三種工作方式。本實(shí)訓(xùn)采用的是方式0:PA,PC口輸出,PB口輸入。實(shí)訓(xùn)電路及連線 實(shí)訓(xùn)電路的連接如圖11-5所示。設(shè)8255A的控制寄存器地址為8003H,PA口地址為8000H, PB口地址為8001H,PC口地址為8002H。 PA0

10、-PA7(PA口)接L0-L7(LED) PB0-PB7(PB口)接S0-S7(開關(guān)量) 再接上數(shù)據(jù)線和讀/寫信號,地址線只接 A0和A1即可,連接RESET信號,以便8255A可靠復(fù)位。圖11-5 8255A輸入/輸出連線圖 實(shí)訓(xùn)框圖 圖11-6 8255A輸入/輸出程序流程 實(shí)訓(xùn)步驟 1按照圖11-5在實(shí)驗(yàn)板上連接硬件線路。 2 在EDIT編輯器下輸入源程序,并保存程序。 3用MASM.EXE編譯源程序,編譯無錯(cuò)后,生成相應(yīng)的OBJ目標(biāo)文件。用LINK. EXE 連接OBJ文件,生成可執(zhí)行的EXE文件。 4運(yùn)行可執(zhí)行程序。在執(zhí)行程序的過程中,搬動(dòng)開關(guān)S0-S7,使B口輸入不同的數(shù)據(jù)。 5觀

11、察實(shí)訓(xùn)結(jié)果。如果指示燈LED0LED7顯示結(jié)果與開關(guān)S0-S7的狀態(tài)一致,說明實(shí)訓(xùn)結(jié)果正確,否則,需要查找出錯(cuò)原因,并排除之。實(shí)訓(xùn)總結(jié) 本實(shí)訓(xùn)的B口輸入數(shù)據(jù),A接收數(shù)據(jù),然后送LED顯示,可能會(huì)出現(xiàn)數(shù)據(jù)不一致情況,其原因可能是B口輸入數(shù)據(jù)連線錯(cuò)或A接收數(shù)據(jù)連線錯(cuò)或送LED顯示連線錯(cuò),也可能是對8255A初始化不正確,導(dǎo)致結(jié)果有誤。程序清單 接下段接上段實(shí)訓(xùn)四 8251A串行通訊實(shí)訓(xùn)目的 1掌握8088/86串行口通信的方法。 2了解實(shí)現(xiàn)串行通訊的硬環(huán)境、數(shù)據(jù)格式的協(xié)議、數(shù)據(jù)交換的協(xié)議。 3學(xué)習(xí)串行口通訊程序編寫方法。實(shí)訓(xùn)內(nèi)容 利用8088/86CPU控制8251A可編程串行通信控制器,將一組連

12、續(xù)存儲(chǔ)區(qū)域的數(shù)據(jù),通過8251A傳送出去并予以接收,把接收的數(shù)據(jù)存儲(chǔ)在另一個(gè)存儲(chǔ)區(qū)域中。 實(shí)訓(xùn)電路 實(shí)訓(xùn)電路的連接如圖11-7所示。在實(shí)訓(xùn)時(shí)把同一片8251A的RxD與TxD直接相連,既實(shí)現(xiàn)數(shù)據(jù)的發(fā)送,又實(shí)現(xiàn)數(shù)據(jù)的接收。圖11-7 8251A的數(shù)據(jù)收發(fā)連線圖實(shí)訓(xùn)框圖 本實(shí)訓(xùn)共分3個(gè)部分,即主程序、串行發(fā)送和串行接收,它們的程序流程如圖11-8所示圖11-8 8251A收發(fā)數(shù)據(jù)程序流程 實(shí)訓(xùn)步驟 1按照圖11-8在實(shí)驗(yàn)板上連接硬件線路。 2在EDIT編輯器下輸入源程序,并保存程序。 3用MASM.EXE編譯源程序,編譯無錯(cuò)后,生成相應(yīng)的OBJ目標(biāo)文件。用LINK. EXE 連接OBJ文件,生成可

13、執(zhí)行的EXE文件。 4運(yùn)行可執(zhí)行程序。在執(zhí)行程序的過程中,按下脈沖開關(guān),產(chǎn)生中斷。 5觀察實(shí)訓(xùn)結(jié)果。如果指示燈LED0LED7顯示結(jié)果與開關(guān)S0-S7的狀態(tài)一致,說明實(shí)訓(xùn)結(jié)果正確,否則,需要查找出錯(cuò)原因,并排除之。實(shí)訓(xùn)總結(jié) 本實(shí)訓(xùn)會(huì)出現(xiàn)指示燈LED0LED7顯示結(jié)果與開關(guān)S0-S7的狀態(tài)不一致錯(cuò)誤,其原因可能是連接線路有誤,或8251A初始化有誤,或程序有誤。程序清單 接下段接上段接下段接上段實(shí)訓(xùn)五 8253計(jì)數(shù)器 實(shí)訓(xùn)目的 1學(xué)習(xí)8253可編程定時(shí)器/計(jì)數(shù)器定時(shí)方法。 2學(xué)習(xí)8253多級串聯(lián)實(shí)現(xiàn)大時(shí)間常數(shù)的定時(shí)方法。 3學(xué)習(xí)8086控制8253可編程定時(shí)器的方法。 實(shí)訓(xùn)內(nèi)容 用8253對標(biāo)準(zhǔn)

14、脈沖信號進(jìn)行計(jì)數(shù),就可以實(shí)現(xiàn)定時(shí)功能。用板上的1MHz做為標(biāo)準(zhǔn)信號,將8253可編程計(jì)數(shù)器/定時(shí)器的時(shí)間常數(shù)設(shè)在1000000次,就可以在定時(shí)器的管腳上輸出1秒鐘高/1秒鐘低的脈沖信號。因?yàn)?253每個(gè)計(jì)數(shù)器只有十六位,要用兩個(gè)計(jì)數(shù)器才能實(shí)現(xiàn)一百萬次的計(jì)數(shù),實(shí)現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn)。實(shí)訓(xùn)電路及連線 圖11-9 8253計(jì)數(shù)硬件連線圖 實(shí)訓(xùn)設(shè)計(jì)思想 由于本實(shí)訓(xùn)定時(shí)常數(shù)過大,需要用多級串聯(lián)方式。本實(shí)訓(xùn)采用兩級計(jì)數(shù)器串聯(lián)。定時(shí)常數(shù)分別為100和10000。將計(jì)數(shù)器1的輸出接到計(jì)數(shù)器0輸入。計(jì)數(shù)器0的輸出接到LED0。計(jì)數(shù)器0和計(jì)數(shù)器1都工作于方式3,16位二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值分別為10000

15、和100。 計(jì)數(shù)器工作于方式3時(shí),CPU寫入控制字后,OUT變?yōu)楦唠娖剑瑢懲暧?jì)數(shù)值后自動(dòng)開始計(jì)數(shù),輸出保持高電平。當(dāng)計(jì)數(shù)到一半時(shí),輸出變?yōu)榈碗娖?。?jì)數(shù)到0時(shí),輸出又變?yōu)楦唠娖?,重新開始計(jì)數(shù)。OUT輸出端輸出連續(xù)的方波。可以把OUT接視波器直接觀察輸出波形,也可以把輸出端LED,通過觀察LED的亮滅情況,了解實(shí)訓(xùn)結(jié)果。 實(shí)訓(xùn)步驟 1按照圖11-9連接線路。 2在EDIT編輯器下輸入源程序,并保存程序。 3用MASM.EXE編譯源程序,編譯無錯(cuò)后,生成相應(yīng)的OBJ目標(biāo)文件。用LINK. EXE 連接OBJ文件,生成可執(zhí)行的EXE文件。 4運(yùn)行可執(zhí)行程序。通過LED0觀察OUT0的輸出。實(shí)訓(xùn)總結(jié) 本

16、實(shí)訓(xùn)可能會(huì)出現(xiàn)LED0的亮滅情況與OUT0的輸出不一致,原因可能是對8253初試化、時(shí)間常數(shù)計(jì)算以及程序有錯(cuò)造成的。程序流程圖 圖11-10 8253實(shí)訓(xùn)流程圖程序清單 實(shí)訓(xùn)六 交通燈控制實(shí)訓(xùn)目的1通過實(shí)驗(yàn)進(jìn)一步加深對并行接口的認(rèn)識。2熟悉利用查詢方式,檢查外設(shè)所處狀態(tài),確定對事件處理的方法。實(shí)訓(xùn)內(nèi)容1.用8255A作為并行口,通過并行口實(shí)現(xiàn)對交通燈的控制。交通燈用兩組紅、黃、綠發(fā)光二極管代表,它們分別用作主干道和支路的交通信號燈。2.把機(jī)內(nèi)時(shí)鐘源計(jì)數(shù)值和以開關(guān)模似的特種車輛到達(dá)傳感器信號作為條件,實(shí)現(xiàn)交通燈狀態(tài)的自動(dòng)轉(zhuǎn)換。3.在不改變硬件結(jié)構(gòu)的情況下,再創(chuàng)造一種兩個(gè)方向都不通行的人行狀態(tài)。設(shè)

17、計(jì)分析 假設(shè)實(shí)驗(yàn)環(huán)境是為某個(gè)十字路口設(shè)計(jì)一個(gè)交通燈自動(dòng)控制系統(tǒng),該路口由一條主干道和一條支路交叉而成。根據(jù)統(tǒng)計(jì),主干道的交通流量為支路的兩倍。實(shí)驗(yàn)的要求是: 1正常情況下,兩條路輪流放行,且主干道的放流時(shí)間為支路的兩倍。信號轉(zhuǎn)換時(shí),按照以下規(guī)律顯示: 從通行變?yōu)橥V箷r(shí),按綠黃紅次序變化; 從停止變?yōu)橥ㄐ袝r(shí),按紅閃動(dòng)綠次序變化; 主干道與支路的顯示必須保證它們是交叉進(jìn)行的。 2當(dāng)路上出現(xiàn)特種車輛(如警車、消防車等)時(shí),該路口應(yīng)將它立即放行,并使另一方向停止。如果兩個(gè)方向同時(shí)出現(xiàn)特種車輛的通行要求時(shí),應(yīng)使主干道的車輛先放行。 由于所需控制的外部設(shè)備不多,作為控制用的輸出端只要一個(gè)并行就夠了。而作為狀態(tài)輸入的端口,雖然信號并不多,但仍要占用一個(gè)并行口。下面的例子中,A口用作輸入,其中K0作為主干道有特種車輛,K1則對應(yīng)支路的情況。對A口的狀態(tài)由CPU定時(shí)讀取,進(jìn)行判斷,確定是否需要改變路口的通行狀況。從這個(gè)分析看,這個(gè)實(shí)驗(yàn)的主要工作集中在軟件上。參考電路及調(diào)試 對硬件的調(diào)試可以分為兩步進(jìn)行。首先,用靜態(tài)電壓測量的方法,保證芯片的各引腳有正常的工作電壓。接著用DEBUG給相應(yīng)的端口寫入必要的初始化程序,并使B口輸出不同的效

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論