版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 一、設(shè)計要求1</b></p><p><b> 二、設(shè)計目的1</b></p><p> 三、設(shè)計的具體實現(xiàn)2</p><p><b> 1、系統(tǒng)概述2</b&g
2、t;</p><p> 2、硬件電路的實現(xiàn)3</p><p> 3、軟件程序設(shè)計5</p><p> 4、完整的匯編程序:10</p><p> 四、展望與結(jié)論13</p><p> 五、心得體會與建議14</p><p><b> 六、附錄16</b&g
3、t;</p><p><b> 1、程序代碼16</b></p><p> 2、設(shè)計原理圖20</p><p><b> 七、參考文獻(xiàn)21</b></p><p><b> 電子鐘的設(shè)計報告</b></p><p><b> 一
4、、設(shè)計要求</b></p><p> 利用可編程定時\計數(shù)器、中斷控制器、可編程并行接口芯片和七段數(shù)碼管設(shè)計電子時鐘。</p><p> 設(shè)計要求:1 顯示內(nèi)容時、分、秒(或分、秒);</p><p> 2 每秒更新一次顯示; </p><p> 3 顯示格式自行確定;</p><p><b&
5、gt; 二、設(shè)計目的</b></p><p> 1、熟練掌握80x86/88教學(xué)系統(tǒng)的基本操作和調(diào)試程序的各種指令。</p><p> 2、熟悉編程及調(diào)試程序的方法,所學(xué)知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。</p><p> 3、掌握8259中斷控制器的工作原理和應(yīng)用編程方法,練習(xí)編寫中斷程序的方法。</p>&l
6、t;p> 4、掌握8255的各種工作方式及其應(yīng)用編程。</p><p> 5、掌握8253定時\計數(shù)器的工作原理、工作方式及其應(yīng)用編程。</p><p> 6、練習(xí)LED-KEYBOARD UNIT的使用方法和數(shù)碼管的顯示編程方法。</p><p><b> 三、設(shè)計的具體實現(xiàn)</b></p><p>&l
7、t;b> 1、系統(tǒng)概述</b></p><p> 設(shè)計思想如下:從外接口電路可以看到,8086系統(tǒng)要對外設(shè)進(jìn)行服務(wù),即顯示輸出,目的是把時間信息顯示給用戶。另外,電子鐘的各個計數(shù)器功能也應(yīng)由程序?qū)崿F(xiàn),當(dāng)然計數(shù)器的的運(yùn)行也和CPU對外設(shè)訪問的操作時同時進(jìn)行的。</p><p> 這樣系統(tǒng)同時運(yùn)行如下兩個任務(wù):電子鐘的計數(shù)操作、顯示。</p><p&
8、gt; 為了方便程序設(shè)計和程序調(diào)試,我們把系統(tǒng)設(shè)置為中斷結(jié)構(gòu):主程序為中斷程序?qū)嵭酗@示和電子鐘計數(shù)。這里要強(qiáng)調(diào)的是,本系統(tǒng)中采用定時中斷,即每隔5ms產(chǎn)生一次中斷,這樣此中斷信號就可以作為電子鐘的時基信號。我們可以在中斷程序中安排一個計數(shù)器,當(dāng)其計數(shù)到達(dá)200時,產(chǎn)生秒信號來觸發(fā)秒、分和小時計數(shù),從而模擬電子鐘內(nèi)部工作過程。</p><p> 為充分利用8086資源,簡化電路,我們采用三片可編程芯片,它們分別
9、是并行接口芯片8255、計數(shù)器\定時器8253及中斷控制器8259。其中8255作為顯示器接口,8253作為時基信號發(fā)生器,其時間信號作為8259的中斷輸入。系統(tǒng)框圖如下:</p><p><b> 2、硬件電路的實現(xiàn)</b></p><p><b> 8259芯片介紹</b></p><p> 中斷控制器8259A
10、 是專門為控制優(yōu)先級中斷而設(shè)計開發(fā)的芯片。它將中斷源優(yōu)先排隊、辨別中斷源以及提供中斷矢量的電路集于一片中。因此無需附加任何電路,只需對8259A進(jìn) 行編程,就可以管理8級中斷,并選擇優(yōu)先模式和中斷請求方式,即中斷結(jié)構(gòu)可以由用戶編程來設(shè)定。同時,在不需要增加其他電路的情況下,通過多片8259A 的級連,能構(gòu)成多達(dá)64級的矢量中斷系統(tǒng)。</p><p> 8259的主要功能如下:</p><p&
11、gt; ?、僖黄?259A可以接受并管理8級可屏蔽中斷請求,通過9片8259A級聯(lián)可擴(kuò)展至64級可屏蔽中斷優(yōu)先控制。</p><p> ?、趯γ恳患壷袛喽伎梢酝ㄟ^程序來屏蔽或允許。</p><p> ?、墼谥袛囗憫?yīng)周期,8259A可為CPU提供相應(yīng)的中斷類型碼。</p><p> ④具有多種工作方式,并可通過編程來加以選擇。通過初始化編程向8259A寫入相應(yīng)的初始
12、化命令I(lǐng)CW,可以使芯片處于一個規(guī)定的基本工作方式,并在此方式下進(jìn)行工作。8259A的初始化命令字共有4個ICW1-ICW4,進(jìn)行初始化時要求ICW1-ICW4按一定的順序?qū)懭搿?lt;/p><p><b> 8253芯片介紹</b></p><p> 8253是NMOS工藝制成的可編程計數(shù)器/定時器,有幾種芯片型號,外形引腳及功能是兼容的,只是工作的最高計數(shù)速率有所
13、差異,例如8253(2.6MHz),8253-5(5MHz) 8253內(nèi)部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機(jī)構(gòu)完全相同。每個計數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制 字,互相之間工作完全獨(dú)立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù) 器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件CE和一個
14、輸出鎖存器OL。</p><p><b> 8255芯片介紹</b></p><p><b> 8255特性</b></p><p> (1)一個并行輸入/輸出的LSI芯片,多功能的I/O器件,可作為CPU總線與外圍的接口。</p><p> (2)具有24個可編程設(shè)置的I/O口,即使3組8
15、位的I/O口為PA口,PB口和PC口.它們又可分為兩組12位的I/O口,A組包括A口及C口 (高4位,PC4~PC7),B組包括B口及C口(低4位,PC0~PC3).A組可設(shè)置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I /O3種模式;B組只能設(shè)置為基本I/O或閃控式I/O兩種模式,而這些操作模式完全由控制寄存器的控制字決定。</p><p><b> 8255引腳功能:</b&
16、gt;</p><p> RESET:復(fù)位輸入線</p><p> CS:芯片選擇信號線</p><p><b> RD:讀信號線</b></p><p><b> WR:寫入信號</b></p><p> D0~D7:三態(tài)雙向數(shù)據(jù)總線</p><
17、;p> PA0~PA7:端口A輸入輸出線</p><p> PB0~PB7:端口B輸入輸出線</p><p> PC0~PC7:端口C輸入輸出線</p><p> A0,A1:地址選擇線</p><p><b> 3、軟件程序設(shè)計</b></p><p> 、顯示接口及其驅(qū)動程序
18、</p><p> 顯示接口的功能是顯示時間,采用掃描顯示技術(shù)。8255的A端口作為段信號通道,提供要顯示數(shù)據(jù)的段碼;8255的B端口作為位信號通道,用來決定當(dāng)前要顯示數(shù)據(jù)的位置。</p><p> 為了把顯示程序安排在中斷服務(wù)子程序中,設(shè)置一個字型變量DISP_PT,其功能是指示當(dāng)前要顯示的第幾位。比如,DISP_PT=0表示LED0七段數(shù)碼管顯示,DISP_PT=1表示LED1數(shù)碼
19、管顯示,等等。這里稱DISP_PT為顯示指針。再定義一個顯示緩沖區(qū)DISPBUF,用戶把欲顯示的數(shù)據(jù)存入DISPBUF數(shù)組,顯示時,程序根據(jù)顯示指針DISP_PT的內(nèi)容,逐一從DISPBUF中取出要顯示的數(shù)據(jù),通過查表轉(zhuǎn)換為段碼送給七段數(shù)碼顯示器。</p><p> 顯示驅(qū)動的流程圖如下所示,標(biāo)號i就是顯示指針DISP_PT。</p><p><b> 驅(qū)動程序如下:<
20、/b></p><p> DISP PROC</p><p> MOV SI,DISP_PT</p><p> MOV AL,[SI+DISBUF]</p><p> MOV BX,OFFSET TABLE</p><p><b> XLAT </b>
21、;</p><p> OUT 80H,AL</p><p> MOV AL,1</p><p> MOV CX,DISP_PT</p><p> CMP CL,0</p><p> JZ DISP1</p><p> SHL AL,CL</p
22、><p> DISP1: OUT 82H,AL</p><p> INC DISP_PT</p><p> CMP DISP_PT,6</p><p> JNZ DISP2</p><p> MOV DISP_PT,0</p><p> DIS
23、P2: RET</p><p> DISP ENDP</p><p> 定時邏輯電路及8259編程</p><p> 在本試驗系統(tǒng)中,采用可編程定時\計數(shù)器8253產(chǎn)生定時信號。8253的通道0時鐘輸入端CLK0接2MHz信號,輸出端OUT0作為定時信號。系統(tǒng)還采用一片中斷控制芯片8259作為外部中斷邏輯,它把8253提供的定時
24、信號轉(zhuǎn)換為中斷請求信號。要求沒隔5ms產(chǎn)生一次中斷,哎中斷過程中,模為200的毫秒計數(shù)器變量MILLISD加1,當(dāng)加到200時,MILLISD清零,產(chǎn)生秒信號。</p><p> 由于8253通道0提供中斷輸入信號,因此8253的通道0應(yīng)工作在方式0,即計數(shù)結(jié)束產(chǎn)生中斷信號。由于每隔5ms產(chǎn)生一次中斷,而CLK0接2MHz信號,其周期為0.5us,所以通道0的計數(shù)初值為:</p><p>
25、; 這樣8253通道0的初始化子程序8253_INIT的編寫如下:</p><p> 8253_INIT PROC</p><p> MOV AL,0011000B</p><p> OUT 8EH,AL</p><p> MOV AL,10H</p><p> OUT
26、88H,AL</p><p> MOV AL,27H</p><p> OUT 88H,AL</p><p><b> RET</b></p><p> 88253_INIT ENDP</p><p> 現(xiàn)在討論8259的編程:</p><p>
27、; 在初始化8259時,寫入初始命令字的順序一定是:ICW1、ICW2、ICW3、ICW4。由于8259有一個狀態(tài)機(jī)控制對寄存器的訪問,不正確的初始化順序?qū)斐僧惓3跏蓟?lt;/p><p> ?。?)ICW1的選擇:</p><p> ICW1主要有兩個功能:一是決定中斷輸入信號的觸發(fā)方式,如是電平觸發(fā)還是沿觸發(fā);二是外部中斷系統(tǒng)是單片8259還是級聯(lián)8259.其中D1=1表示系統(tǒng)中
28、僅用單片8259A,D1=0則8259A有級聯(lián)。D3=1,8259A的中斷請求輸入信號為高電平有效的電平觸發(fā)方式;D3=0,8259A的中斷輸入信號為上升沿有效的邊緣觸發(fā)方式。</p><p> 在本實驗中,外部中斷系統(tǒng)僅有一片8259完成,并設(shè)置8259A的中斷請求輸入信號為上升沿有效的邊緣觸發(fā)方式,因此ICW1應(yīng)為00010011B。</p><p> (2)ICW2的選擇:<
29、;/p><p> ICW2只有一個功能—預(yù)置本片8259的中斷類型號。中斷類型號的高5位D7—D3由用戶指定,低3位D2—D0由8259A的中斷請求輸入端IR7—IR0的編碼決定。在本實驗中,設(shè)8259的中斷類型號分布為70H—77H,因此ICW2應(yīng)為01110000B。</p><p> ?。?)ICW3的選擇:</p><p> 由于ICW3只有在8259A級聯(lián)
30、的情況下使用,而本實驗僅用一片8259,所以初始化控制字ICW3。</p><p> ?。?)ICW4的選擇:</p><p> ICW4的功能有兩個:一是中斷嵌套方式選擇,二是中斷結(jié)束方式選擇。</p><p> D1位AEOI用來定義該8259A是否采用自動中斷結(jié)束方式。D1=1為自動EOI,D1=0為非自動EOI。本實驗取非自動EOI,這也是最常用的一種方
31、式,所以取D1為0。</p><p> D2位和D3位的選用相關(guān),如果D3=1,表示緩沖方式,而D3=0表示非緩沖方式,在一般應(yīng)用中,非緩沖方式是常用的方式,本實驗采用這種方式,因此D3=0,而當(dāng)D3=0時,D2無意義,因此D2=0。</p><p> D4位指定級聯(lián)方式下是否采用特殊完全嵌套方式來管理中斷,D4=1為特殊完全嵌套方式,D4=0為非特殊完全嵌套方式。由于本實驗采用單片8
32、259,所以采用非特殊完全嵌套方式,即D4=0。綜上所述,ICW4應(yīng)為00000001B。</p><p> 至于8259的操作命令字,常用的有兩個:OCW1、OCW2。OCW1用來實現(xiàn)屏蔽功能,格式比較簡單;OCW2用于控制中斷結(jié)束、優(yōu)先權(quán)循環(huán)等操作,對于在ICW4取非自動EOI,OCW2一般取20H。</p><p> 這樣8259初始化子程序如下:</p><
33、p> 8259_INIT PROC</p><p> MOV AL,13H</p><p> OUT 90H,AL</p><p> MOV AL,70H</p><p> OUT 92H,AL</p><p> MOV AL,01H</p><p&
34、gt; OUT 92H,AL</p><p> MOV AL,10111111B</p><p> OUT 92H,AL</p><p><b> RET</b></p><p> 8259_INIT ENDP</p><p> 中斷入口地址表設(shè)置子程序FILL
35、_ADR:</p><p> 已知中斷類型號是75H,設(shè)中斷服務(wù)子程序名為INTPROC。填寫中斷入口地址表程序如下:</p><p> FILL_ADR PROC</p><p> MOV AX,0000H</p><p> MOV DS,AX</p><p> MOV SI,76H*4
36、</p><p> MOV [SI+0],OFFSET INT76</p><p> MOV [SI+2],SEG INT76</p><p><b> RET</b></p><p> FILL_ADR ENDP</p><p> 4、完整的匯編程序:</p>
37、;<p> 主程序流程圖如下所示:</p><p> 中斷服務(wù)子程序主要完成顯示及電子鐘的秒、分、時計數(shù)器的計數(shù),同時還要完成對8253的再一次初始化,為下一個5ms后的中斷信號的產(chǎn)生創(chuàng)造條件。</p><p> 現(xiàn)在對程序的結(jié)構(gòu)和編程技巧再補(bǔ)充說明一下:</p><p> ?。?)程序的結(jié)構(gòu)設(shè)計為中斷驅(qū)動,中斷程序在后臺進(jìn)行顯示及電子鐘內(nèi)部的秒
38、、分、時計數(shù)器的計數(shù)工作。后臺的秒、分、時計數(shù)器程序把其內(nèi)容存入DISPBUF,而顯示子程序從DISPBUF中取出數(shù)據(jù)通過段碼轉(zhuǎn)換顯示時間或用戶置數(shù)內(nèi)容。</p><p> (2)系統(tǒng)在運(yùn)行時,每隔5ms中斷一次。CPU響應(yīng)中斷后,中斷服務(wù)程序調(diào)用顯示子程序完成一次顯示(一次顯示僅顯示一位數(shù)碼管),顯示時間持續(xù)5ms。這樣6次中斷才能完成6位數(shù)碼管的顯示,實現(xiàn)秒、分、時的一幀完整的輸出需30ms。</p&
39、gt;<p> (3)秒、分、時計數(shù)器的計數(shù)實現(xiàn)。為了顯示輸出方便,秒、分、時計數(shù)器的數(shù)據(jù)格式是擴(kuò)展BCD碼。在BCD的加法運(yùn)算中,其運(yùn)算結(jié)果必須用DAA指令調(diào)整,但擴(kuò)展的BCD碼在進(jìn)行算術(shù)也能算時是無法用DAA進(jìn)行調(diào)整的。這里我們巧妙的用ASCII碼加法調(diào)整指令A(yù)AA實現(xiàn)了秒、分、時計數(shù)器的計數(shù)。AAA指令用在非壓縮BCD數(shù)加法操作后,操作數(shù)隱含在AL中。調(diào)整過程如下:a.如果AL寄存器的低4位在0—9之間,且AF為0
40、,則跳過第b步執(zhí)行第c步;b.如果AL寄存器的低4位在0AH—0FH之間或AF為1,則AL寄存器的內(nèi)容加06H,同時AH寄存器內(nèi)容加1,且將AF置1;c.AL寄存器的高4位清零;d.AF位的值送CF。</p><p> ?。?)利用合成操作符FTR定義字型變量秒、分、時計數(shù)器的說明。為了顯示輸出方便,秒、分、時計數(shù)器直接使用緩沖器DISPBUF。由DISPBUF是字節(jié)型數(shù)組,不能直接進(jìn)行諸如“MOV AX,SEC
41、OND”之類指令的操作,為此我們利用合成操作符PTR,把DISPBUF分成三個字型變量,同時又利用等值語句EQU,把操作過程賦予名字SECOND、MINUTE和HOUR。</p><p><b> 四、展望與結(jié)論</b></p><p> 微機(jī)原理與接口技術(shù)是一門很有趣的課程,任何一個計算機(jī)系統(tǒng)都是一個復(fù)雜的整體,學(xué)習(xí)計算機(jī)原理是要涉及到整體的每一部分。討論某一部
42、分原理時又要涉及到其它部分的工作原理。這樣一來,不僅不能在短時間內(nèi)較深入理解計算機(jī)的工作原理,而且也很難孤立地理解某一部分的工作原理。所以,在循序漸進(jìn)的課堂教學(xué)過程中,我總是處于“學(xué)會了一些新知識,弄清了一些原來保留的問題,又出現(xiàn)了一些新問題”的循環(huán)中,直到課程結(jié)束時,才把保留的問題基本搞清楚。</p><p> 學(xué)習(xí)該門課程知識時,其思維方法也和其它課程不同,該課程偏重于工程思維,具體地說,在了解了微處理器各
43、種芯片的功能和外部特性以后,剩下額是如何將它們用于實際系統(tǒng)中,其創(chuàng)造性勞動在于如何用計算機(jī)的有關(guān)技術(shù)和廠家提供的各種芯片,設(shè)計實用的電路和系統(tǒng),再配上相應(yīng)的應(yīng)用程序,完成各種實際應(yīng)用項目。</p><p> 這次課程設(shè)計,首先,讓我學(xué)習(xí)和掌握計算機(jī)中常用接口電路及8255A的應(yīng)用和設(shè)計技術(shù),充分認(rèn)識理論知識對應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識與應(yīng)用相結(jié)合的實踐和鍛煉。通過實踐,進(jìn)一步加深了對專業(yè)知識和理論
44、知識學(xué)習(xí)的認(rèn)識和理解,使自己的設(shè)計水平和對所學(xué)的知識的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。</p><p> 本次設(shè)計給我最大的收獲就是動手能力的重要性,實踐和理論上是有差距的,理論與實際相結(jié)合是很重要的。只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨(dú)立思考的能力。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)
45、過的知識理解得不夠深刻,掌握得不夠牢固。動手試驗也讓自己對書本知識有了更深刻的認(rèn)識,把書本知識真正的轉(zhuǎn)化為自己所掌握的東西,能加以利用。</p><p> 總之,這次課程設(shè)計對于我們有很大的幫助,通過課程設(shè)計,我更加深入地理解了,微機(jī)原理課程上講到的各種芯片的功能,以及引腳的作用,同時加深了對于主要芯片的應(yīng)用的認(rèn)識,同時在試驗室的環(huán)境里熟悉了匯編程序的編寫過程和運(yùn)行過程,最后還提高了自己的動手能力。</p
46、><p><b> 五、心得體會與建議</b></p><p> 通過對數(shù)字鬧鐘的匯編實現(xiàn),對硬件特別是8253A,8255并行口的原理和實現(xiàn)都有了很深的了解。更加深了對匯編語言的使用。</p><p> 可以說整個文件中最麻煩的就是進(jìn)位條件的判斷,編程中經(jīng)常犯想當(dāng)然的錯誤。另外對于中斷服務(wù)子程序的類型設(shè)置問題,由于以前對這個概念的理解留于表
47、面,編程中出現(xiàn)了不少奇怪的錯誤。再調(diào)試中嘗試使用了分割法,對錯誤模塊進(jìn)行定位,再進(jìn)行排查。</p><p> 在算法實現(xiàn)上要有一定的思路要更能體現(xiàn)設(shè)計的目的。同時上機(jī)調(diào)試也是十分重要的,在調(diào)試的過程中能夠不斷的發(fā)現(xiàn)在編寫算法時應(yīng)該注意的一些細(xì)節(jié)和算法語句的非法使用,在調(diào)試過程中通過對算法的不斷測試、更正、擴(kuò)充功能、修飾細(xì)節(jié),使算法程序不斷的得到完善。</p><p> 通過這次的課程設(shè)
48、計使我認(rèn)識到要將微機(jī)原理這門計算機(jī)專業(yè)的課學(xué)好不僅僅是要把書上的基本知識學(xué)好而且還要不斷進(jìn)行實踐,將所學(xué)的跟實踐操作結(jié)合起來才能更好地鞏固所學(xué),才能提高自己實踐能力.通過這次的設(shè)計使我認(rèn)識到只停留在表面理解問題是很難使問題得到很好的解決的,實踐能力與理論知識同樣重要。可以說此課程設(shè)計的理論難度并不大,但是若要深入發(fā)掘其中的東西,并且實際去編程實現(xiàn),就遇到了相當(dāng)大的難度。因為與之涉及的很多方面并沒有學(xué)過,需要自己去自學(xué)和實踐檢驗。<
49、/p><p> 所以在以后的學(xué)習(xí)中一方面我要不斷的鞏固自己所學(xué)的理論知識,一方面還要多參加實際操作工作以便提高自己的實際操作能力。</p><p><b> 六、附錄</b></p><p><b> 1、程序代碼</b></p><p> DATA SEGMENT</p&g
50、t;<p> TAB DB 3FH,06H,5BH,4FH</p><p> DB 66H,6DH,7DH,07H</p><p> DISPBUFF DB 6 DUP(0)</p><p> DISP_PT DW 0</p><p> MILLISD DB 0</p
51、><p> SECOND EQU WORD PTR DISPBUF</p><p> MINUTE EQU WORD PTR DISPBUF+2</p><p> HOUR EQU WORD PTR DISPBUF+4</p><p> DATA ENDS</p><
52、p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DSATA</p><p> START: CLI</p><p> CALL FILL_ADR</p><p> MOV AL,10001000B</p><p> OUT
53、 86H,AL</p><p> CALL 8259_INIT</p><p> CALL 8253_INIT</p><p> MOV AX,DATA</p><p> MOV DS,AX</p><p> MOV DISP_PT,0</p><p> MO
54、V RUN_FLAG,0</p><p><b> STI</b></p><p> INTPROC PROC FAR</p><p><b> CLI</b></p><p><b> PUSHF</b></p><p><
55、;b> PUSH AX</b></p><p><b> PUSH BX</b></p><p><b> PUSH CX</b></p><p><b> PUSH DX</b></p><p><b> PUSH S
56、I</b></p><p><b> PUSH DI</b></p><p> CALL 8253_INIT</p><p> CMP RUM_FLAG,0</p><p> JZ INTPROC1</p><p> INC MILLISD&l
57、t;/p><p> CMP MILLISD,200</p><p> JZ INTPROC1</p><p> MOV MILLISD,0</p><p> MOV AX,SECOND</p><p> ADD AL,01</p><p><b>
58、; AAA</b></p><p> MOV SECOND,AX</p><p> CMP AX,0600H</p><p> JNZ INTPROC1</p><p> MOV SECOND,0</p><p> MOV AX,MINUTE</p><
59、;p> ADD AL,01</p><p><b> AAA</b></p><p> MOV MINUTE,AX</p><p> CMP AX,0600H</p><p> JNZ INTPROC1</p><p> MOV MINUTE,0<
60、;/p><p> MOV AX,HOUR</p><p> ADD AL,01</p><p><b> AAA</b></p><p> MOV HOUR,AX</p><p> CMP AX,0204H</p><p> JNZ IN
61、TPROC1</p><p> MOV HOUR,0</p><p> INTPROC1: CALL DISP</p><p> MOV AL,20</p><p> OUT 90H,AL</p><p><b> POP DI</b></p>&
62、lt;p><b> POP DX</b></p><p><b> POP CX</b></p><p><b> POP BX</b></p><p><b> POP AX</b></p><p><b>
63、; STI</b></p><p><b> IRET</b></p><p> INTPROC ENDP</p><p> DISP PROC</p><p> MOV SI,DISP_PT</p><p> MOV AL,[SI+DISBUF]
64、</p><p> MOV BX,OFFSET TABLE</p><p><b> XLAT </b></p><p> OUT 80H,AL</p><p> MOV AL,1</p><p> MOV CX,DISP_PT</p><p&g
65、t; CMP CL,0</p><p> JZ DISP1</p><p> SHL AL,CL</p><p> DISP1: OUT 82H,AL</p><p> INC DISP_PT</p><p> CMP DISP_PT,6</p>
66、;<p> JNZ DISP2</p><p> MOV DISP_PT,0</p><p> DISP2: RET</p><p> DISP ENDP</p><p> FILL_ADR PROC</p><p> MOV AX,0000H&l
67、t;/p><p> MOV DS,AX</p><p> MOV SI,76H*4</p><p> MOV [SI+0],OFFSET INT76</p><p> MOV [SI+2],SEG INT76</p><p><b> RET</b></p>&
68、lt;p> FILL_ADR ENDP</p><p> 8259_INIT PROC</p><p> MOV AL,13H</p><p> OUT 90H,AL</p><p> MOV AL,70H</p><p> OUT 92H,AL</p>&
69、lt;p> MOV AL,01H</p><p> OUT 92H,AL</p><p> MOV AL,10111111B</p><p> OUT 92H,AL</p><p><b> RET</b></p><p> 8259_INIT ENDP&
70、lt;/p><p> 8253_INIT PROC</p><p> MOV AL,0011000B</p><p> OUT 8EH,AL</p><p> MOV AL,10H</p><p> OUT 88H,AL</p><p> MOV A
71、L,27H</p><p> OUT 88H,AL</p><p><b> RET</b></p><p> 88253_INIT ENDP</p><p> CODE ENDS</p><p> END START</p><
72、p><b> 2、設(shè)計原理圖</b></p><p><b> 參考文獻(xiàn)</b></p><p> 1.陳繼紅·微機(jī)原理及應(yīng)用·高等教育出版社·2011.1</p><p> 2.彭 虎·微機(jī)原理與接口技術(shù)學(xué)習(xí)指導(dǎo)·電子工業(yè)出版社·2008.4&l
73、t;/p><p> 3.王成耀·匯編語言程序設(shè)計·機(jī)械工業(yè)出版社·2004.5</p><p> 4.戴梅萼·微型計算機(jī)技術(shù)及應(yīng)用·清華大學(xué)出版社·2003.5</p><p> 5.陸紅偉·微機(jī)原理實驗與課程設(shè)計指導(dǎo)書·中國電力出版社·2006.7</p>&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理-電子鐘課程設(shè)計
- 微機(jī)原理課程設(shè)計--智能電子鐘
- 【微機(jī)原理課程設(shè)計】電子鐘的設(shè)計
- 微機(jī)原理課程設(shè)計----簡單電子鐘設(shè)計
- 微機(jī)原理-多功能電子鐘課程設(shè)計
- 微機(jī)原理課程設(shè)計---電子鐘的設(shè)計報告
- 微機(jī)接口課程設(shè)計(電子鐘)
- 微機(jī)接口電子鐘課程設(shè)計報告
- 電子鐘課程設(shè)計報告——微機(jī)原理與接口技術(shù)
- 電子鐘課程設(shè)計----數(shù)字電子鐘的設(shè)計
- eda電子鐘課程設(shè)計----電子鐘的設(shè)計
- 電子鐘課程設(shè)計
- 電子鐘課程設(shè)計--多功能電子鐘
- 電子鐘課程設(shè)計
- 電子鐘課程設(shè)計
- 單片機(jī)原理課程設(shè)計--電子鐘
- eda課程設(shè)計-電子鐘
- 自動電子鐘課程設(shè)計
- 數(shù)字電子鐘課程設(shè)計
- 課程設(shè)計-- 智能電子鐘
評論
0/150
提交評論