版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)》</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 姓 名: 學(xué) 號(hào): </p><p> 專 業(yè): 自動(dòng)化學(xué)院 實(shí) 驗(yàn) 室: 計(jì)算機(jī)硬件實(shí)驗(yàn)室 </p><p
2、> 組 別: 無 同組人員: 無 </p><p> 設(shè)計(jì)時(shí)間: 2013 年 5 月 17 日 —— 2013 年 6 月 8日</p><p> 評(píng)定成績: 審閱教師: </p><p> 目
3、 錄</p><p> 課程設(shè)計(jì)目的與要求……………………………………………3</p><p> 方案論證于原理設(shè)計(jì)……………………………………………3</p><p> 原理闡述及設(shè)計(jì)…………………………………………………4</p><p> 發(fā)難實(shí)現(xiàn)與測試…………………………………………………6</p>
4、<p> 分析與總結(jié)………………………………………………………7</p><p> 附錄……………………………………………………………….8</p><p> 一. 課程設(shè)計(jì)目的與要求</p><p><b> 設(shè)計(jì)目的:</b></p><p> 微機(jī)課程綜合設(shè)計(jì)用于檢驗(yàn)和提高學(xué)生在原理與接口綜合
5、應(yīng)用方面分析問題與解決問題的能力,同時(shí)也給學(xué)生提供更多、更好的訓(xùn)練機(jī)會(huì),課程給出了10 道微機(jī)硬件應(yīng)用綜合測試題。為完成每道測試題,至少需要選用TPC 微機(jī)實(shí)驗(yàn)裝置中三部分以上的硬件電路(還需將它們有機(jī)組合起來)并編制相應(yīng)的應(yīng)用。</p><p> 通過試驗(yàn)還能夠讓學(xué)生更好的了解所學(xué)知識(shí)在實(shí)際控制中的運(yùn)用,增加對(duì)本專業(yè)的認(rèn)識(shí)和學(xué)習(xí)興趣。</p><p><b> 設(shè)計(jì)要求:&
6、lt;/b></p><p> 1)基本要求 (難度系數(shù)1.0)</p><p> L7、L6、L5 作為南北路口的交通燈,L2、L1、L0 作為東西路口的交通燈。編程使六個(gè)燈按交通燈變</p><p> 化規(guī)律亮滅。要求進(jìn)行周期性重復(fù)控制:</p><p> (1) 南北路口的綠燈、東西路口的紅燈同時(shí)亮20 秒;</p&
7、gt;<p> (2) 南北路口的黃燈閃爍3 秒,同時(shí)東西路口的紅燈閃3 秒;</p><p> 微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)教程</p><p> (3) 南北路口的紅燈、東西路口的綠燈同時(shí)亮90 秒;</p><p> (4) 南北路口的紅燈、同時(shí)東西路口的黃燈亮閃爍3 秒;</p><p> (5) 在8 段LED 上同步
8、顯示倒計(jì)時(shí)。</p><p><b> 2)設(shè)計(jì)提示</b></p><p> (1) 要求精確計(jì)時(shí),采用實(shí)驗(yàn)系統(tǒng)8253 定時(shí)器中斷或主機(jī)8253 定時(shí)器;</p><p> (2) 利用軟件定時(shí)器。</p><p><b> 3)進(jìn)一步設(shè)計(jì)要求</b></p><p&
9、gt; (1) 8×8 點(diǎn)陣顯示當(dāng)前車流運(yùn)行方向, 上下對(duì)應(yīng)南北,左右對(duì)應(yīng)東西。綠色箭頭對(duì)應(yīng),紅色箭頭對(duì)應(yīng)</p><p><b> 黃燈狀態(tài);</b></p><p> (2) 允許南北向路口設(shè)置人工按鈕, 請(qǐng)求行人提前過街, 如東西綠燈已亮40 秒則按鈕后10 秒南北綠</p><p> 燈亮,否則按鈕后40 秒南北綠燈亮
10、;</p><p> (3) 考慮其他復(fù)雜情況。</p><p> 二.方案論證與原理設(shè)計(jì)</p><p> 1)在考慮程序的整體要求和框架后,決定把程序總共分為四個(gè)模塊,分別為交通燈顯示模塊,數(shù)碼管顯示的模塊,中斷程序模塊,中斷初始化模塊。</p><p> 交通燈顯示模塊是整個(gè)程序的主模塊,其主要功能就是判斷交通狀態(tài)的運(yùn)行方向和顯
11、示模式,還有顯示的時(shí)間長短,并且還有人工緊急按鈕的功能。顯示模塊則由交通燈狀態(tài)來判斷并在數(shù)碼管上顯示倒計(jì)時(shí)。中斷則主要用作計(jì)時(shí)。中斷初始化程序用來初始化9054和一些基本的置取中斷向量的功能。</p><p><b> 2)各模塊的實(shí)現(xiàn)</b></p><p> 交通燈模塊通過一個(gè)全局變量irq_times來計(jì)時(shí),通過中斷服務(wù)子程序來改變它,在該模塊中通過判斷該變
12、量的值去選擇程序流程,并結(jié)合開關(guān)量來判斷人工按鈕有無按下。并在不同 流程去顯示交通燈和流向問題。并且調(diào)用數(shù)碼管顯示程序。 </p><p> 數(shù)碼管顯示模塊,通過irq_times來判斷并顯示。</p><p> 中斷服務(wù)模塊每調(diào)用一次說明已經(jīng)過去一秒鐘,則irq_times變化一次</p>
13、<p> 1.可編程定時(shí)/計(jì)數(shù)器8253</p><p> 定時(shí)/計(jì)數(shù)器8253主要是用于定時(shí)1s,觸發(fā)中斷把全局變量減一。電路連線是CLOCK0接1MHZ,分頻后頻率為1KHz,OUT0接中斷CLKCK1,分頻后為1HZ,OUT1接IRQ,每一秒觸發(fā)一次中斷,GATE0,GATE1接5v。計(jì)數(shù)器的初值應(yīng)都是1000;</p><p> 2.8255并行接口單元</p
14、><p> 8255主要是用于數(shù)碼管和發(fā)光二極管的數(shù)據(jù)輸出。所以用8255A口高三位和低三位接6個(gè)發(fā)光二極管,B口接數(shù)碼管的數(shù)據(jù)端,C口低兩位接數(shù)碼管位控制,最高位接開關(guān)K1</p><p><b> 3.點(diǎn)陣使用</b></p><p> 由于提高要求需要顯示上下箭頭,所以使用8*8點(diǎn)陣顯示箭頭。由地址譯碼電路的地址控制點(diǎn)陣。</p&
15、gt;<p><b> 4 微機(jī)控制器</b></p><p> 程序在純Dos下運(yùn)行</p><p> 三.詳細(xì)(機(jī)理)設(shè)計(jì)</p><p> 1) 軟件流程圖(總流程圖)</p><p> 本設(shè)計(jì)的軟件設(shè)計(jì)的思路:通過軟件編程使8253輸出定時(shí)信號(hào)申請(qǐng)中斷,在中斷服務(wù)程序中改變?nèi)钟?jì)數(shù)變量。在
16、主程序體中通過判斷全局變量的值來控制程序流向。</p><p> 圖表 1交通燈系統(tǒng)總流程圖</p><p><b> 2) 中斷模塊</b></p><p> 進(jìn)入中斷后,關(guān)閉中斷,然后壓棧,顯示提示信息,最后處理數(shù)據(jù)</p><p> 算法實(shí)現(xiàn):利用irq_times全局變量減一來實(shí)現(xiàn)倒計(jì)時(shí)。</p&g
17、t;<p> 3) LED顯示程序:本設(shè)計(jì)只用到了2個(gè)LED,只要將時(shí)間轉(zhuǎn)換為相應(yīng)的段碼。先輸出位碼,再輸出段碼,循環(huán)輸出就可以動(dòng)態(tài)顯示。將LED作偏移碼,利用XLAT,很簡單就可以實(shí)現(xiàn)譯碼。 </p><p> 4) 硬件連接圖 IRQ</p><p> 四. 方案實(shí)現(xiàn)與測試(或調(diào)試)</p>
18、<p> 首先根據(jù)設(shè)計(jì)思路,選擇采用8253和8255芯片,使用較為復(fù)雜的中斷。然后調(diào)試硬件,確定位選、芯片等工作正常。這可以通過手動(dòng)輸入控制字,進(jìn)行簡單輸入輸出實(shí)現(xiàn)。然后確定8253、8255芯片的地址,開始軟件編程。</p><p> 軟件編程首先完成整體的邏輯框架,然后具體編寫子程序。剛開始時(shí)采用軟件延時(shí),優(yōu)先調(diào)試8255。采用8255的A、B口的0方式,A、B口的變化將反映在八段碼和LE
19、D燈上。子程序的編寫即將設(shè)計(jì)好的算法轉(zhuǎn)換為程序流,用程序流的方向?qū)崿F(xiàn)選擇,用調(diào)用子程序?qū)崿F(xiàn)具體操作。 然后加入8253的硬件中斷加以調(diào)整全局計(jì)數(shù),將OUT1連至IRQ,通過查詢PC7口的狀態(tài)進(jìn)行判斷人工按鈕有無按下。由于前面8255已經(jīng)調(diào)好,所以8253的調(diào)試比較順利。</p><p> 最終將全部硬件連線接好,進(jìn)行整機(jī)聯(lián)調(diào)。當(dāng)中發(fā)現(xiàn)許多問題,有編譯問題,但在調(diào)整后都編譯通過了,對(duì)軟件進(jìn)行單步,這時(shí)由于有現(xiàn)象,
20、進(jìn)行軟件調(diào)試的時(shí)候也更有針對(duì)性。通過設(shè)置斷點(diǎn),逐步跟蹤寄存器值,調(diào)試時(shí)發(fā)現(xiàn)在中斷程序返回時(shí)始終是不對(duì)的,這導(dǎo)致一運(yùn)行程序就會(huì)跑飛。無論如何都排查不了這個(gè)問題,一般這種問題都是由于堆棧不平衡引起的,但檢查程序并未發(fā)現(xiàn)有堆棧錯(cuò)誤。最終在一個(gè)偶然的瞬間我把主程序中的幾句用來顯示提示信息的語句刪除后發(fā)現(xiàn)程序這次可以正確運(yùn)行了,最后發(fā)現(xiàn)在中斷外面運(yùn)用INT21功能號(hào)為9的中斷顯示字符串會(huì)導(dǎo)致中斷返回不了的問題。在最后調(diào)好這問題后運(yùn)行程序達(dá)到了理想
21、的目的與與要求,實(shí)現(xiàn)的拓展功能。 </p><p><b> 實(shí)物連接圖:</b></p><p><b> 五.分析與總結(jié)</b></p><p> 1)題目要求要用到8255經(jīng)確定時(shí),所以考慮到用中斷來實(shí)現(xiàn)這個(gè)功能要求。</p><p> 3)由于想到各種顯示輸出需要很多鎖存,而8255
22、卻可以很好地解決這個(gè)問題,于是就用8255實(shí)現(xiàn),而且8255C口的高四位與低四位輸入輸出不一樣,這位人工按鈕提供方便。</p><p> 2) 編程中遇到的很多是邏輯問題.另一個(gè)遇到的問題就是跳轉(zhuǎn)語句超出范圍的錯(cuò)誤,這個(gè)錯(cuò)誤的解決是通利用兩個(gè)跳轉(zhuǎn)實(shí)現(xiàn)(一個(gè)條件一個(gè)無條件)。</p><p> 3) 我的主程序是用來控制程序流向的,但其實(shí)也包括了程序顯示的一部分任務(wù),其中不同的流向中就用
23、不同的顯示方案,這樣也簡化了顯示子程序的任務(wù)。使得程序編寫比較方便和控制。</p><p> 4) 對(duì)終端的初始化是主要參考實(shí)驗(yàn)書上的中斷試驗(yàn)程序。</p><p> 5)中斷調(diào)試時(shí)由于要進(jìn)入純DOS所以比較麻煩,所以調(diào)試也比較耗時(shí)間,最主要的問題是該種中斷問題很少遇到,要不是最后自己出于簡化程序來找錯(cuò)誤的思想,可能就根本發(fā)現(xiàn)不了在中斷的外邊用顯示功能回事中斷的返回出問題,導(dǎo)致程序跑飛
24、掉。</p><p> 6)交通燈的這個(gè)題目狀態(tài)還好不多,但由于中斷的引入使得程序變得復(fù)雜,但其實(shí)也就是初始化和退出程序比較復(fù)雜,而對(duì)于主程序來說沒有多大影響,還有就是對(duì)調(diào)試用較高的要求。這個(gè)題目做下來還是有不少收獲的,至少經(jīng)驗(yàn)上要多了一些。</p><p><b> 參考書目:</b></p><p> 楊素行等,《微型計(jì)算機(jī)系統(tǒng)原理及
25、應(yīng)用》,北京,清華大學(xué)出版社,2009年</p><p> 東南大學(xué)微機(jī)系統(tǒng)與接口課程組,《微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)教程試用版3.0》,南京,東南大學(xué)出版社,2010年</p><p><b> 附錄.代碼程序</b></p><p> ioport equ 0ec00h-0280h</p><p> iopor
26、t_82530 equ ioport+0280h ;8253io地址</p><p> ioport_82531 equ ioport+0281h</p><p> ioport_82533 equ ioport+0283h</p><p> io82550 equ ioport+0290h</p><p>
27、; io82551 equ ioport+0291h;8255io地址</p><p> io82552 equ ioport+0292h</p><p> io82553 equ ioport+0293h</p><p> ioportCequ ioport+0298h</p><p>
28、ioportRrequ ioport+02a0h;點(diǎn)陣控制地址</p><p> ioportRy equ ioport+02a8h</p><p> int_vect EQU 72H ;中斷0-7 的向量為:08h-0fh,中斷8-15 的向量為:70h-77h</p><p> irq_mask_2_7 equ 11111011b ;中斷掩碼,中
29、斷0-7 時(shí)從低至高相應(yīng)位為零,中斷8-15 時(shí)第2 位為零</p><p> irq_mask_9_15 equ 11111011b;中斷0-7 時(shí)全一,中斷8-15 時(shí)從低至高相應(yīng)位零</p><p> ioport_cent equ 0e800h ;tpc 卡中9054 芯片的io 地址</p><p> data segment</p>
30、<p> csreg dw ?</p><p> ipreg dw ? ;舊中斷向量保存空間</p><p> irq_times dw ? ;中斷計(jì)數(shù)</p><p> buffer0 db 00h,01h,02h,03h,04h,05h,06h,07h</p><p> buffer1 db 10h,38h,10h,1
31、0h,10h,20h,7eh,20h</p><p> gewei dw 0</p><p> shiwei dw 0</p><p> Led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;碼</p><p> msg1 db 0dh,0ah,'display',0dh,0ah
32、,'$'</p><p> msg3 db 0dh,0ah,'interrupt !!!!!! ',0dh,0ah,'$'</p><p><b> data ends</b></p><p> stacks segment stack</p><p> db 25
33、6 dup (?)</p><p> stacks ends</p><p> code segment</p><p> assume cs:code,ds:data,ss:stacks,es:data</p><p> main proc far ;Enable Local Interrupt Input</p>&
34、lt;p><b> start:cli</b></p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p><b> mov es,ax</b></p><p> mov ax,stacks</p>
35、<p><b> mov ss,ax</b></p><p> mov dx,ioport_cent+68h ;設(shè)置 tpc 卡中9054 芯片io 口,使能中斷</p><p><b> in ax,dx</b></p><p> or ax,0900h</p><p>&l
36、t;b> out dx,ax</b></p><p> mov al,int_vect ;保存原中斷向量</p><p> mov ah,35h</p><p><b> int 21h</b></p><p><b> mov ax,es</b></p>
37、<p> mov csreg,ax</p><p> mov ipreg,bx</p><p> mov ax,cs ;設(shè)置新中斷向量</p><p><b> mov ds,ax</b></p><p> mov dx,offset int_proc</p><p> mo
38、v al,int_vect</p><p> mov ah,25h</p><p><b> int 21h</b></p><p> in al, 21h ;設(shè)置中斷掩碼</p><p> and al, irq_mask_2_7</p><p> out 21h, al</p&
39、gt;<p> in al, 0a1h</p><p> and al, irq_mask_9_15</p><p> out 0a1h, al</p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p> ;以上為中斷
40、初始化部分</p><p> ;8253初始化部分</p><p> mov dx,ioport_82533</p><p> mov al,36h</p><p><b> out dx,al</b></p><p> mov dx,ioport_82530</p>&l
41、t;p> mov ax,1000</p><p><b> out dx,al</b></p><p><b> mov al,ah</b></p><p><b> out dx,al</b></p><p> mov dx,ioport_82533</
42、p><p> mov al,76h</p><p><b> out dx,al</b></p><p> mov dx,ioport_82531</p><p> mov ax,1000</p><p><b> out dx,al</b></p>&l
43、t;p><b> mov al,ah</b></p><p><b> out dx,al</b></p><p><b> ;8255初始化</b></p><p> mov dx,io82553</p><p> mov al,88h</p>
44、<p><b> out dx,al</b></p><p><b> sti;開中斷</b></p><p> beg: mov irq_times,36</p><p> go1:cmp irq_times,26</p><p><b> jl go2<
45、;/b></p><p> mov ax,irq_times</p><p><b> sub ax,26</b></p><p> call disp</p><p> mov al,24h;南北綠燈和東西紅燈亮10秒</p><p> mov dx,io82550
46、</p><p><b> out dx,al</b></p><p> mov cx,0008h</p><p> mov ah,01h</p><p> mov si,offset buffer0</p><p> d1:mov al,[si]</p><p&
47、gt; mov bx,offset buffer1;箭頭顯示橫向紅,列項(xiàng)綠</p><p><b> xlat</b></p><p> mov dx,ioportC</p><p><b> out dx,al</b></p><p><b> mov al,ah</
48、b></p><p> cmp 20h,ah</p><p><b> jb next0</b></p><p> mov dx,ioportRy</p><p><b> out dx,al</b></p><p> next1:mov dx,ioportR
49、r</p><p><b> shl,ah</b></p><p><b> inc si</b></p><p><b> push cx</b></p><p> mov cx,0fffh</p><p> loop1:loop 1oop1
50、</p><p><b> pop cx</b></p><p><b> loop d1</b></p><p><b> jmp lll</b></p><p> go2:cmp irq_times,23</p><p><b>
51、 jl go3</b></p><p> mov ax,irq_times</p><p><b> sub ax,23</b></p><p> call leddisp</p><p><b> mov al,0</b></p><p> mov
52、 dx,io82550</p><p><b> out dx,al</b></p><p> mov dx,ioportC</p><p><b> out dx,al</b></p><p> cmp irq_times,24</p><p><b>
53、 je turn</b></p><p><b> jmp go2</b></p><p> turn: mov al,44h;南北黃燈和東西紅燈閃3秒</p><p> mov dx,io82550</p><p><b> out dx,al</b></p&g
54、t;<p> mov cx,0008h</p><p> mov ah,01h</p><p> mov si,offset buffer0</p><p> d2:mov al,[si]</p><p> mov bx,offset buffer1;箭頭閃爍顯示橫向紅,列項(xiàng)綠</p><p
55、><b> xlat</b></p><p> mov dx,ioportC</p><p><b> out dx,al</b></p><p><b> mov al,ah</b></p><p> cmp 20h,ah</p><p&g
56、t;<b> jb next0</b></p><p> mov dx,ioportRy</p><p><b> out dx,al</b></p><p> next2:mov dx,ioportRr</p><p><b> shl,ah</b></p&g
57、t;<p><b> inc si</b></p><p><b> push cx</b></p><p> mov cx,0fffh</p><p> loop2:loop 1oop2</p><p><b> pop cx</b></p>
58、;<p><b> loop d2</b></p><p><b> jmp lll</b></p><p> beg_mid:jmp beg</p><p> go3:cmp irq_times,3</p><p><b> jl go4</b>&
59、lt;/p><p> mov ax,irq_times</p><p><b> sub ax,3</b></p><p> call leddisp ;南北紅燈東西綠燈亮20秒</p><p> mov al,81h</p><p> mov dx,io82550</p>
60、<p><b> out dx,al</b></p><p> mov cx,0008h</p><p> mov ah,01h</p><p> mov si,offset buffer0</p><p> d3:mov al,[si]</p><p> mov b
61、x,offset buffer1;箭頭顯示橫向綠,列項(xiàng)紅</p><p><b> xlat</b></p><p> mov dx,ioportC</p><p><b> out dx,al</b></p><p><b> mov al,ah</b></
62、p><p> cmp 20h,ah</p><p><b> jb next0</b></p><p> mov dx,ioportRr</p><p><b> out dx,al</b></p><p> next3:mov dx,ioportRy</p>
63、;<p><b> shl,ah</b></p><p><b> inc si</b></p><p><b> push cx</b></p><p> mov cx,0fffh</p><p> loop3:loop 1oop3</p>
64、<p><b> pop cx</b></p><p><b> loop d3</b></p><p> mov dx,io82553;中間人工按鍵時(shí)可以調(diào)整</p><p><b> in al,dx</b></p><p> and al,80h&
65、lt;/p><p> cmp al,80h</p><p> je qq ;按下時(shí)跳到qq</p><p><b> jmp lll</b></p><p> qq: cmp irq_times,13</p><p><b> jl qq1</b></p
66、><p> mov irq_times,8 ;根據(jù)題目要求東西已亮十秒則三秒后南北綠亮;則8秒后亮</p><p><b> jmp goon</b></p><p> qq1: mov irq_times,3</p><p><b> jmp goon</b></
67、p><p> goon: cmp irq_times,3</p><p><b> jl go4</b></p><p> mov ax,irq_times</p><p><b> sub ax,3</b></p><p> call leddisp</p
68、><p> mov al,81h</p><p> mov dx,io82550</p><p><b> out dx,al</b></p><p> mov cx,0008h</p><p> mov ah,01h</p><p> mov si,offset
69、 buffer0</p><p> dgoon:mov al,[si]</p><p> mov bx,offset buffer1;箭頭顯示橫向綠,列項(xiàng)紅</p><p><b> xlat</b></p><p> mov dx,ioportC</p><p><b>
70、 out dx,al</b></p><p><b> mov al,ah</b></p><p> cmp 20h,ah</p><p><b> jb next0</b></p><p> mov dx,ioportRr</p><p><b&
71、gt; out dx,al</b></p><p> nextgoon:mov dx,ioportRy</p><p><b> shl,ah</b></p><p><b> inc si</b></p><p><b> push cx</b><
72、/p><p> mov cx,0fffh</p><p> loopgoon:loop 1oopgon</p><p><b> pop cx</b></p><p> loop dgoon</p><p><b> mov ah,1</b></p>&l
73、t;p><b> int 16h</b></p><p><b> jnz exit</b></p><p> ;南北紅燈和東西綠燈亮20</p><p><b> jmp goon</b></p><p> go4:cmp irq_times,0</p
74、><p> jl beg_mid</p><p> mov ax,irq_times</p><p> call leddisp</p><p><b> mov al,0</b></p><p> mov dx,io82550 ;南北紅燈和東西黃燈閃3</p>
75、<p><b> out dx,al</b></p><p> mov dx,ioportC</p><p><b> out dx,al</b></p><p> cmp irq_times,1</p><p><b> je turn1</b><
76、;/p><p><b> jmp go4</b></p><p> turn1: mov al,82h</p><p> mov dx,io82550</p><p><b> out dx,al</b></p><p> mov cx,0008h</p>
77、;<p> mov ah,01h</p><p> mov si,offset buffer0</p><p> d4:mov al,[si]</p><p> mov bx,offset buffer1;箭頭顯示橫向綠,列項(xiàng)紅</p><p><b> xlat</b></p>
78、<p> mov dx,ioportC</p><p><b> out dx,al</b></p><p><b> mov al,ah</b></p><p> cmp 20h,ah</p><p><b> jb next0</b></p&g
79、t;<p> mov dx,ioportRr</p><p><b> out dx,al</b></p><p> next4:mov dx,ioportRy</p><p><b> shl,ah</b></p><p><b> inc si</b>
80、;</p><p><b> push cx</b></p><p> mov cx,0fffh</p><p> loop4:loop 1oop4</p><p><b> pop cx</b></p><p><b> loop d4</b>
81、;</p><p><b> jmp lll</b></p><p> lll: mov ah,1</p><p><b> int 16h</b></p><p> jnz exit ;按任意鍵退出</p><p><b
82、> jmp go1</b></p><p><b> exit: cli</b></p><p> mov bl, irq_mask_2_7 ;恢復(fù)中斷掩碼</p><p><b> not bl</b></p><p> in al, 21h</p>&l
83、t;p><b> or al, bl</b></p><p> out 21h, al</p><p> mov bl, irq_mask_9_15</p><p><b> not bl</b></p><p> in al, 0a1h</p><p>&l
84、t;b> or al, bl</b></p><p> out 0a1h, al</p><p> mov dx,ipreg ;恢復(fù)原中斷向量</p><p> mov ax,csreg</p><p><b> mov ds,ax</b></p><p> mov
85、ah,25h</p><p> mov al,int_vect</p><p><b> int 21h</b></p><p> mov dx,ioport_cent+68h ;設(shè)置 tpc 卡中9054 芯片io 口,關(guān)閉中斷</p><p><b> in ax,dx</b></
86、p><p> and ax,0f7ffh</p><p><b> out dx,ax</b></p><p> mov ax,4c00h</p><p><b> int 21h</b></p><p><b> main endp</b><
87、;/p><p> int_proc proc far ;中斷處理程序</p><p><b> cli</b></p><p><b> push ds</b></p><p><b> push ax</b></p><p><b>
88、push dx</b></p><p> mov ax,data</p><p><b> mov ds,ax</b></p><p> mov dx,offset msg2</p><p> mov ah,09h</p><p><b> int 21h</
89、b></p><p> dec irq_times;倒計(jì)時(shí)減少irq_times</p><p> mov al,20h ;Send EOI</p><p> out 0a0h,al</p><p> out 20h,al</p><p><b> pop dx</b></p
90、><p><b> pop ax</b></p><p><b> pop ds</b></p><p><b> sti</b></p><p><b> iret</b></p><p> int_proc endp<
91、;/p><p> disp proc near ;disp</p><p><b> push dx</b></p><p><b> push cx</b></p><p><b> push ax</b></p><p>
92、; mov ax,data</p><p><b> mov ds,ax</b></p><p> ; mov dx,offset msg1</p><p> ; mov ah,09h</p><p> ; int 21h ;設(shè)di為顯示緩沖區(qū)</p><p><b> mo
93、v bl,10</b></p><p><b> pop ax</b></p><p><b> div bl</b></p><p><b> mov dx,ax</b></p><p> and ax,00ffh</p><p>
94、 mov shiwei,ax</p><p> mov cl,08h</p><p><b> shr dx,cl</b></p><p> and dx,00ffh</p><p> mov gewei,dx</p><p> mov si,offset Led
95、;置led數(shù)碼表偏移地址為SI</p><p> add si,gewei ;求出對(duì)應(yīng)的led數(shù)碼</p><p> mov al,byte ptr [si]</p><p> mov dx,io82551 ;自8255b的口輸出 B port</p><p><b
96、> out dx,al</b></p><p> mov al,01h ; 使相應(yīng)的數(shù)碼管亮 C port</p><p> mov dx,io82552</p><p><b> out dx,al</b></p><p><b> mov bx
97、,0</b></p><p> delay:dec bx</p><p><b> jnz delay</b></p><p><b> mov al,0</b></p><p> mov dx,io82552</p><p><b> ou
98、t dx,al</b></p><p> delay2: dec bx</p><p> jnz delay2</p><p> mov si,offset led ;置led數(shù)碼表偏移地址為SI</p><p> add si,shiwei ;求出對(duì)應(yīng)的led數(shù)
99、碼</p><p> mov al,byte ptr [si]</p><p> mov dx,io82551 ;8255B的口輸出</p><p><b> out dx,al</b></p><p> mov al,2 ;使相應(yīng)的數(shù)碼管亮c口<
100、/p><p> mov dx,io82552</p><p><b> out dx,al</b></p><p><b> mov bx,1</b></p><p> delay1: dec bx</p><p> jnz delay1</p><
101、p><b> mov al,0</b></p><p> mov dx,io82552</p><p><b> out dx,al</b></p><p><b> pop cx</b></p><p><b> pop dx</b>&l
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)課程設(shè)計(jì)報(bào)告-交通燈
- 交通燈微機(jī)課程設(shè)計(jì)
- 交通燈-微機(jī)接口課程設(shè)計(jì)報(bào)告
- 微機(jī)原理課程設(shè)計(jì)報(bào)告交通燈
- 微機(jī)課程設(shè)計(jì)報(bào)告-交通燈系統(tǒng)設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)--交通燈
- 微機(jī)原理課程設(shè)計(jì)交通燈設(shè)計(jì)
- 微機(jī)接口課程設(shè)計(jì)--交通燈設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)--交通燈控制設(shè)計(jì)
- 微機(jī)原理課程報(bào)告交通燈
- 交通燈課程設(shè)計(jì)報(bào)告
- 交通燈課程設(shè)計(jì)報(bào)告
- 沈陽大學(xué)微機(jī)原理課程設(shè)計(jì)交通燈
- 微機(jī)接口課程設(shè)計(jì)--交通燈及其轉(zhuǎn)向燈設(shè)計(jì)
- 交通燈課程設(shè)計(jì)報(bào)告---交通燈控制器
- 課程設(shè)計(jì)交通燈設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)-交通燈設(shè)計(jì)報(bào)告
- 微機(jī)課程設(shè)計(jì)---交通燈控制系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告交通燈.doc
- 交通燈課程設(shè)計(jì)報(bào)告 (2)
評(píng)論
0/150
提交評(píng)論