版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 微機原理與接口技術(shù)</b></p><p><b> 課程設(shè)計報告</b></p><p> 設(shè)計名稱: 電子表設(shè)計 </p><p> 專 業(yè): 計算機原理與接口技術(shù) </p><p> 班 級: xxxxxxx
2、 </p><p> 姓 名: XXX </p><p> 學(xué) 號: XXXXXXXXX </p><p> 指導(dǎo)教師: XXXXXXXX </p><p> 2014年 11 月 27 日</p><p&g
3、t;<b> 目 錄</b></p><p> 摘要................................................................2</p><p> 一、 設(shè)計目的及要求.................................................3</p><p>
4、 1.1設(shè)計任務(wù)......................................................3</p><p> 1.2設(shè)計功能..................................................... 3</p><p> 1.3課程設(shè)計方式及基本要求..................................
5、......3</p><p> 1.3.1 實驗方式..................................................3</p><p> 1.3.2 基本要求..................................................3 </p><p> 1.4設(shè)計所用元件.........
6、.........................................4</p><p> 二、 設(shè)計題目及思想.................................................4</p><p> 2.1設(shè)計原理......................................................4</p>
7、<p> 2.2主要模塊.......................................................5</p><p> 2.3芯片初始化....................................................7</p><p> 2.4程序流程圖.............................
8、.......................9</p><p> 2.5硬件接線圖...................................................11</p><p> 三、 調(diào)試結(jié)果..................................................... 13</p><p> 四、
9、課程設(shè)計總結(jié)...................................................16</p><p> 4.1遇到問題及解決方案............................................16</p><p> 4.2 課程設(shè)計心得體會.............................................
10、16</p><p><b> 參考文獻</b></p><p><b> 附錄</b></p><p><b> 摘要</b></p><p> 匯編語言是計算機能夠提供給用戶使用的最快而又最有效的語言, 也是能夠利用計算機所有硬件特性并能直接控制硬件的唯一語言。因而
11、,對程序的空間和時間的要求很高的場合,匯編語言的應(yīng)用是必不可少的。至于很多需要直接控制 硬件的應(yīng)用場合,則更是非用匯編語言不可了。隨著科學(xué)技術(shù)迅速發(fā)展,理工科大學(xué)生不僅需要掌握計算機方面的基本理論知識,而且還需要掌握基本的實驗技 能及一定的科學(xué)研究能力。 </p><p> 通過課程設(shè)計,使學(xué)生鞏固和加深微型計算機原理理論知識, 通過實踐進一步加強學(xué)生獨立分析問題和解決問題的能力、綜合設(shè)計及 創(chuàng)新能力的培養(yǎng),同
12、時注意培養(yǎng)學(xué)生實事求是、嚴(yán)肅認真的科學(xué)作風(fēng)和良好的實驗習(xí)慣,為今后工作打下良好的基礎(chǔ)。鑒于匯編語言的廣泛用途及其在當(dāng)代計算機界的重要作用,本人利用學(xué)的知 識,在同學(xué)門的幫助下,花費大量時間,完成了關(guān)于電子表的系統(tǒng)設(shè)計。這個系統(tǒng)是應(yīng)用于電腦中的小應(yīng)用程序,可是顯示電腦中的時間。很多地方都會有個時鐘顯示,其中大多是應(yīng)用了類似這樣的方法。</p><p> 關(guān)鍵詞:匯編語言微機原理接口技術(shù)時鐘顯示</p&
13、gt;<p><b> 一、設(shè)計目的及要求</b></p><p><b> 1.1設(shè)計任務(wù): </b></p><p> 隨著科學(xué)技術(shù)迅速發(fā)展,理工科大學(xué)生不僅需要掌握計算機方面的基本理論知識,而且還需要掌握基本的實驗技能及一定的科學(xué)研究能力。</p><p> 通過課程設(shè)計,使學(xué)生鞏固和加深微型計
14、算機原理理論知識,通過實踐進一步加強學(xué)生獨立分析問題和解決問題的能力、綜合設(shè)計及創(chuàng)新能力的培養(yǎng),同時注意培養(yǎng)學(xué)生實事求是、嚴(yán)肅認真的科學(xué)作風(fēng)和良好的實驗習(xí)慣,為今后工作打下良好的基礎(chǔ)。計算機原理與接口課程課程設(shè)計結(jié)合教學(xué)內(nèi)容,從應(yīng)用的角度出發(fā),進行三類課程設(shè)計,分別分為:匯編語言程序設(shè)計、微機標(biāo)準(zhǔn)接口課程設(shè)計和接口技術(shù)課程設(shè)計。</p><p> ?。?)通過設(shè)計電子表,掌握中斷的使用方法。 </p>
15、<p> (2)掌握基本的顯存讀寫技術(shù)。 </p><p> ?。?)學(xué)會在屏幕上以七段數(shù)碼管的形式顯示本機時間的方法。 </p><p> (4)學(xué)會用匯編語言編寫一個完整的程序,提高自己的動手操作能力。 </p><p> ?。?)學(xué)習(xí)程序設(shè)計的基本思路和方法,培養(yǎng)分析問題、解決問題的能力。</p><p><b&
16、gt; 設(shè)計功能:</b></p><p> 1.電子表,具有時、分、秒24小時制的運行,并可以在8位數(shù)碼管上顯示。</p><p> 2電子表具有啟動鍵、停止鍵、初始化、蜂鳴、按點報時、暫停跳轉(zhuǎn)CSU--CSU。</p><p> 1.3 課程設(shè)計方式與基本要求</p><p> 1.3.1 實驗方式:</p&
17、gt;<p> 微機原理與接口技術(shù)課程設(shè)計共2周,要求學(xué)生做出設(shè)計方案(硬件線路圖、程序框圖)并提交指導(dǎo)教師檢查確認。然后進行硬件連接、軟件調(diào)試、得出結(jié)果,由指導(dǎo)教師檢查是否達到設(shè)計要求,最后撰寫報告。根據(jù)通信工程專業(yè)學(xué)生的實際情況,課程設(shè)計的指導(dǎo)思想是:對于學(xué)習(xí)成績好、動手能力強的學(xué)生,讓他們有充分發(fā)揮的余地;對于大多數(shù)學(xué)生務(wù)必完成設(shè)計要求;對于少數(shù)學(xué)習(xí)稍差的學(xué)生只需完成基本要求?;谶@一原則給出了3~5個題目,每一個
18、題目的大小、難易可以伸縮,由學(xué)生自選。</p><p> 1.3.2 基本要求:</p><p> 電子表以時、分、秒的形式實時顯示當(dāng)前時間。掌握 8255、8259、8253 芯片使用方法和編程方法,通過本次課程設(shè)計,學(xué)以致用,進一步理解所學(xué)的相關(guān)芯片的原理、內(nèi)部結(jié)構(gòu)、使用方法 等,學(xué)會相關(guān)芯片實際應(yīng)用及編程,系統(tǒng)中采用 8088 微處理器完成了電子鐘的小 系統(tǒng)的獨立設(shè)計。同時并了
19、解綜合問題的程序設(shè)計掌握實時處理程序的編制和調(diào) 試方法,掌握一般的設(shè)計步驟和流程,使我們以后搞設(shè)計時邏輯更加清晰。</p><p> 1.熟練掌握匯編語言的程序設(shè)計;</p><p> 熟練掌握各種編程接口芯片的編程應(yīng)用</p><p> 3.通過實驗方法掌握各種電路綜合分析與設(shè)計方法。</p><p> 1.4 設(shè)計所用元件<
20、;/p><p> 設(shè)備是武漢恒科電子教學(xué)儀器有限公司的超想—3000TB綜合實驗/仿真系統(tǒng)。配合PC機構(gòu)成實驗環(huán)境。</p><p> 8253 定時器:用于產(chǎn)生秒脈沖,其輸出信號可作為中斷請示信號送 IRQ2。 </p><p> 8279 接口芯片:實現(xiàn)鍵盤輸入和顯示輸出。 </p><p> 8259 中斷控制器:用于產(chǎn)生中斷。&l
21、t;/p><p> 8255 并行控制器:觸發(fā)LED燈閃爍和蜂鳴器揚聲。</p><p> 數(shù)碼管:六個 LED 用于顯示時:分:秒值。</p><p> 發(fā)光二極管:閃爍報時。</p><p><b> 蜂鳴器:揚聲報時。</b></p><p> 二、 設(shè)計題目及思想</p>
22、<p> 2.1 設(shè)計原理:</p><p> 計算機原理與接口技術(shù)是通信工程專業(yè)的一門專業(yè)基礎(chǔ)課程,學(xué)生需要掌握RAM擴充、8253計數(shù)器/定時器、8255并行口、8251串行口、8259中斷控制器、D/A數(shù)模轉(zhuǎn)換、A/D模數(shù)轉(zhuǎn)換、DMA、LED顯示等各個器件的性能和使用方法。課程設(shè)計的目地是綜合這些基礎(chǔ)知識,就具體問題讓學(xué)生做出軟、硬件解決方案并付諸實施,以培養(yǎng)解決實際問題的能力。<
23、/p><p> 本程序的主要設(shè)計原理是用主程序完成鍵盤按鍵的掃描,實現(xiàn)計時結(jié)果的數(shù)碼管顯示,實現(xiàn)秒與分之間的轉(zhuǎn)換。通過判斷鍵盤按鍵調(diào)用相應(yīng)功能程序段以實現(xiàn)相應(yīng)功能,即實現(xiàn)了啟動、暫停、復(fù)位功能,以及通過鍵盤進行十分、分、十秒、秒時間的手動設(shè)置功能。</p><p> 利用8253的定時器功能。8253的四個端口地址為48H,49H,4AH,4BH,本實驗采用8253的通道2,工作在方式3(
24、方波發(fā)生器方式)輸入CLK2為1MHZ。先給8253的初始值0C350H,循環(huán)記數(shù)。即一次記數(shù)完后,自動裝入初始值。輸出OUT2作為8259的輸入脈沖。8259有兩個口地址,本實驗為20H和21H,其中20H用來寫ICW1,21H用來寫ICW2、ICW4,本實驗中8259為單片,邊沿觸發(fā),采用3號中斷源,即IR3和8253輸出口OUT2相連,每過1/20秒接收到一個中斷,向8259發(fā)出中斷請求信號,如果電平信號不符合要求,則自動轉(zhuǎn)到7號
25、中斷,顯示"ERR",CPU響應(yīng)后,在中斷處理程序中,對中斷次數(shù)進行記數(shù),記滿20次,把時間緩沖區(qū)中的時間加1,并將其輸入到顯示緩沖區(qū),以便顯示器顯示更新后的時間。</p><p> 計數(shù)初值的計算:1/1000000*X=1/20 X=50000D=0C350H(用1MHZ信號產(chǎn)生1/20秒方波)。</p><p><b> 2.2 主要模塊 </
26、b></p><p><b> 系統(tǒng)各個模塊設(shè)計 </b></p><p><b> 系統(tǒng)總體設(shè)計 </b></p><p> 本系統(tǒng)設(shè)計的電子鐘以 8088 微處理器作為 CPU, 8253 做定時計數(shù)器產(chǎn)生時 用 鐘頻率,8279 做可編程并行接口顯示時鐘和鍵盤電路,8259 做中斷控制器產(chǎn)生中 斷。在此系
27、統(tǒng)中,8253 的功能是定時,接入 8253 的 CLK 信號為周期性時鐘信號。 8253 采用計數(shù)器 0,工作于方式 2,使 8253 的 OUT0 端輸出周期性的負脈沖信號。 即每隔 20ms, 8253 的 OUT0 端就會輸出一個負脈沖的信號, 此信號接 8259 的 IR2, 當(dāng)中斷到 50 次數(shù)后,CPU 即處理,使液晶顯示器上的時間發(fā)生變化。8255接受CS片選信號,計時到點數(shù)產(chǎn)生輸出。程序由以下模塊組成:系統(tǒng)共有 5 個
28、功能模塊,分別為,主控模塊,顯示模塊,定時模塊,并行接口模塊,中斷模塊。</p><p><b> 2、主控模塊 </b></p><p> 主控模塊是系的核心模塊,對 8253、8279 進行初始化,設(shè)置中斷向量,掃描 鍵盤根據(jù)按鍵值作相應(yīng)的處理。主要由軟件實現(xiàn)。它的主要功能是調(diào)用其它模塊 對系統(tǒng)工作進行協(xié)調(diào),它的主要功能是讀小鍵盤輸入鍵值并執(zhí)行要做的工作,如
29、果鍵值為 C 則將顯示初始值 00:00:00 置入顯示緩沖,并調(diào)用顯示模塊顯示。如 果鍵值為 G 則開中斷, (中斷程序為秒最低位加一) 。如果鍵值為 D 則關(guān)中斷,停 止動態(tài)顯示。如健值為 P 則連續(xù)六次調(diào)用小鍵盤模塊,將鍵值依次存入顯示緩沖。 并調(diào)用顯示模塊顯示。如果健值為 E,則終止程序,返回 DOS。</p><p><b> 3. 定時模塊 </b></p>&l
30、t;p> 定時模塊是為 8259 提供中斷請求信號的。由一片 8253 實現(xiàn),選用定時器 0#, 工作在方式 3,由于時鐘應(yīng)該 1 秒走動一次,所以輸出值應(yīng)為 1S,其輸出信號可作 為 8259 的中斷請求信號。 </p><p> 4. 中斷處理模塊 </p><p> 中斷模塊實現(xiàn)動態(tài)顯示的,硬件為一片 8259,由于中斷請求信號為每秒一次, 中斷程序該為時間按秒
31、增加,并顯示,只要開中斷,便可實現(xiàn)每秒顯示時間增加一 秒,從而達到動態(tài)顯示的效果。</p><p><b> 5 . 并行模塊</b></p><p> 并行模塊是8255是數(shù)據(jù)在多根傳輸線上一次以8位為單位進行傳輸。8255由數(shù)據(jù)總線緩沖器,讀/寫控制邏輯、A組和B 組控制電路以及3個數(shù)據(jù)端口(A 口、B 口和C口)等組成。</p><p&
32、gt;<b> 6. 顯示模塊</b></p><p> 顯示模塊是將顯示緩沖區(qū)的數(shù)值送到 LED 顯示的功能模塊,顯示緩沖區(qū)是由六 個字節(jié)構(gòu)成,分別保存小時的高位和低位,分鐘的高位和低位,秒鐘的高位和低位。 硬件上由六個 LED 構(gòu)成,軟件上由掃描顯示的方法實現(xiàn)。</p><p><b> 2.3 芯片初始化</b></p>
33、<p> 1.8253A定時/計數(shù)</p><p> 8253 A既可作定時器又可作計數(shù)器:</p><p> (1) 計數(shù): 計數(shù)器裝入初值后,當(dāng)GATE為高電平時,可用外部事件作為CLK 脈沖對計數(shù)值進行減1 計數(shù),每來一個脈沖減1,當(dāng)計數(shù)值減至0時,由OUT 端輸出一個標(biāo)志信號。</p><p> (2) 定時: 計數(shù)器裝入初值后,當(dāng)GAT
34、E為高電平時,由CLK 脈沖觸發(fā)開始自動計數(shù),當(dāng)計數(shù)到零時,發(fā)計數(shù)結(jié)束定時信號。</p><p> 除上述典型應(yīng)用外,8253A還可作頻率發(fā)生器、分頻器、實時鐘、單脈沖發(fā)生器等。</p><p><b> 8253A控制字</b></p><p> 2.8259單級中斷控制</p><p> 8259A編程及初始
35、化</p><p><b> 寫初始化命令字</b></p><p> 寫初始化命令字ICW1(A0=0),以確定中斷請求信號類型,清除中斷屏蔽寄存器,中斷優(yōu)先級排隊和確定系統(tǒng)用單片還是多片。</p><p> 中斷優(yōu)先級排隊和確定系統(tǒng)用單片還是多片。</p><p> 3. 8279顯示接口</p>
36、<p> 8279A的控制命令</p><p> (1) 鍵盤顯示器方式設(shè)置命令</p><p> * RESET后,設(shè)定為該種方式。</p><p> (2) 掃描頻率控制命令</p><p><b> 4.8255并行</b></p><p><b> 8
37、255A控制字</b></p><p> (1) 方式選擇控制字</p><p><b> 2.4 程序流程圖</b></p><p><b> 1.主程序流程圖</b></p><p><b> 2.電子表處理程序</b></p><p
38、><b> 2.5硬件接線圖</b></p><p><b> 實驗線路連接</b></p><p> 1.8253A芯片的CLK2引出插孔連分頻輸出插孔T1(1MHZ)。</p><p> 2. 8259A的IRQ3插孔和8253A的OUT2插孔相連。</p><p> 3.將82
39、79接口模塊上的插座DU(JB51)(a-h)用8芯線連接至數(shù)碼管模塊插座DU (a-h),8279接口模塊上插座BIT(JB53)連接至數(shù)碼管模塊插座BIT。</p><p> 4.8255 的片選CS插孔和8253A的Y2插孔相連,PC0-7和發(fā)光二極管相連,PC0和蜂鳴器相連。</p><p> 5.1MHz和開關(guān)K1 相連,開關(guān)K2 和8259A 的IR7相連。</p
40、><p><b> 三、 調(diào)試結(jié)果</b></p><p> 打開匯編軟件DVCC實驗系統(tǒng),設(shè)置正確的接口并且聯(lián)機進入程序匯編界面。</p><p> 按照電子表設(shè)計的硬件把線路一一連接正確。</p><p> 8253計數(shù)器接線情況</p><p> 8255并行接口接線情況</p
41、><p> 8259單級中斷接線情況</p><p> 數(shù)碼管位選與段選接線情況</p><p><b> K開關(guān)接線情況</b></p><p> 按照正確接線之后,再把程序通過DVCC匯編寫進去,編譯再次鏈接,然后調(diào)試無誤,點擊運行。數(shù)碼管會顯示初始時間00-59-40,8個發(fā)光二極管保持常亮,然后時間開始往下運
42、行,到01-00-00時,發(fā)光二極管同時閃爍并且蜂鳴器揚聲,該狀態(tài)持續(xù)一分鐘后自動停止;此外,撥動K 開關(guān),會調(diào)出CSU—CSU,并且時間暫停,重新?lián)芑厝?,則繼續(xù)運行時間。程序正確無誤,實驗效果良好,需要多次在不同的機子嘗試。</p><p><b> 四、 課程設(shè)計總結(jié)</b></p><p> 4.1遇到問題及解決方案</p><p>
43、 在設(shè)計中遇到不少的難題:</p><p> 在一開始按照指導(dǎo)書接線后沒有得到相應(yīng)的效果讓我十分的疑惑,也認真檢查了硬件的接線線路,后來得知是不一定每一個的儀器都能順利與主機鏈接上,后來經(jīng)過多次的多部機子調(diào)試后得到能成功運行代碼的平臺。</p><p> 在改進設(shè)計方案中,考慮過加入數(shù)字鍵盤進行時間校對,但從儀器的內(nèi)部接線方法上我暫時得不到可行的計劃,或許鍵盤確實能實現(xiàn)時間的校對;此
44、外,我發(fā)現(xiàn)8279有RESET的功能,不過從電路原理圖上找不到接線,沒法簡單得實現(xiàn)時間重置。</p><p> 為了解決時間暫停,我想到簡單的硬件操作,就是直接給脈沖接上低電平,使8253A的計數(shù)功能無法繼續(xù)進行,當(dāng)脈沖接回高電平則繼續(xù)計數(shù)。</p><p> 當(dāng)數(shù)碼管暫停后,為了讓效果更好,我加入了IRQ7中斷,本來該中斷是觸發(fā)錯誤電平,數(shù)碼管顯示Err,然后我把中斷屏蔽取消,并且給
45、DATA1本是存儲IRQ7的緩存數(shù)據(jù)改為新的代碼,讓其顯示CSU—CSU。</p><p> 在整點報時上,融入了8255,8255由DATA8的數(shù)值決定跳轉(zhuǎn)哪種狀態(tài),當(dāng)分鐘大于等于1分鐘,則是二極管常亮,當(dāng)分鐘小于等于0分鐘,則是二極管閃爍和蜂鳴器揚聲。</p><p> 4.2 課程設(shè)計心得體會</p><p> 在設(shè)計剛開始時,我們只是知道要用8253A
46、完成計數(shù),用8259與數(shù)碼管單元完成顯示功能,但是具體怎么實現(xiàn)的還不是很清楚。在接下來的一小段時間里,我們覺得無從下手,但通過自己耐心搜集資料,向老師和同學(xué)請教,慢慢理出了頭緒,也有了自己的設(shè)計思想和設(shè)計框架,并有了一定的實現(xiàn)方法。</p><p> 對于設(shè)計題目來說,并非那么得復(fù)雜,但要設(shè)計者將所學(xué)轉(zhuǎn)換成相應(yīng)的實際應(yīng)用卻并非一件容易的事情。本設(shè)計題目的設(shè)計思想是簡單的,只需要使用8255A完成計數(shù),用8259
47、與8279A數(shù)碼管單元完成顯示功能,并通過自己的理解附加一些功能片段來完成電子表的人性化功能設(shè)計,如電子表的校準(zhǔn)、電子表的開始、停止、清零等功能。</p><p> 在課程設(shè)計過程中,我深刻地體會到:《微機原理與接口技術(shù)》這門課程對于我們的要求不僅限于對書本知識的理解,更重要的是對書本知識的運用。除此之外,我們應(yīng)該在學(xué)習(xí)過程中充分發(fā)揮自己的想象力和創(chuàng)新意識,將對書本知識的理解與我們的創(chuàng)新意識相結(jié)合,設(shè)計出實用且
48、功能良好的實物。通過本次課程設(shè)計,也提高了我們的編程能力、協(xié)作能力和創(chuàng)新能力,為以后的學(xué)習(xí)打下了良好的基礎(chǔ)。</p><p><b> 參考文獻</b></p><p> [1]梁健武 ,《微機原理與接口技術(shù)》 中國水利水電出版社</p><p> [2] 宋杰 汪志宏 江敏,《微機原理與接口技術(shù)課程設(shè)計》機械工業(yè)出版社</p>
49、;<p> [3]范會敏 李晉惠,《微型計算機原理及接口技術(shù)應(yīng)用》 科學(xué)出版社</p><p> 附錄:電子表軟件代碼</p><p> CODE SEGMENT</p><p> ASSUME CS:CODE//指定代碼段為CS</p><p> INTPORT1 EQU 0020H/
50、/8259端口地址,EQU符號常量</p><p> INTPORT2 EQU 0021H//把地址定義為符號名</p><p> INTQ3 EQU INTERUPT3</p><p> INTQ7 EQU INTERUPT7</p><p> CONTPORT EQU 00DFH//82
51、79端口地址</p><p> DATAPORT EQU 00DEH</p><p> DATA1 EQU 0500H//數(shù)據(jù)段</p><p> DATA2 EQU 0508H</p><p> DATA3 EQU 0518H</p><p> DATA4 EQU 05
52、20H</p><p> DATA5 EQU 0528H</p><p> DATA6 EQU 0529H</p><p> DATA7 EQU 052AH//時</p><p> DATA8 EQU 052BH//分</p><p> DATA9 EQU 0
53、52CH//秒</p><p> DATA10 EQU 052EH</p><p> IOCONPT EQU 0073H//8255端口,控制寄存器端口地址</p><p> IOCPT EQU 0072H//C口</p><p> IOBPT EQU
54、 0071H//B口</p><p> IOAPT EQU 0070H//A口</p><p> ORG 1000H//目標(biāo)程序第一字節(jié)的入口地址,1000H為數(shù)據(jù)段劃分區(qū)間</p><p> START: CALL FORMAT//CALL調(diào)用子程序</p><p>
55、CLD//方向標(biāo)志位,DF復(fù)位,程序往下執(zhí)行</p><p> MOV DX,CONTPORT //8279初始化</p><p> MOV AL,00H//000為標(biāo)志位,鍵盤互鎖</p><p> OUT DX,AL ;KEYBORD DIS
56、PLY MODE</p><p> MOV AL,2AH//001為標(biāo)志位,分頻系數(shù)是10D</p><p> OUT DX,AL ;8279 CLOCK</p><p> MOV AL,0d0h//110為標(biāo)志位,清除FIFO狀態(tài)字</p><p&g
57、t; OUT DX,AL ;8279 CLEAR</p><p> MOV AL,90h//100為標(biāo)志位,顯示RAM,AI自增1</p><p> OUT DX,AL ;READ FIFO RAM COMMAND</p><p> MOV
58、 DX,004BH //8255初始化,是16位計數(shù)器,片選</p><p> MOV AL,0B6H//計數(shù)器2方式3先低后高二進制</p><p> OUT DX,AL</p><p> MOV DX,004AH//計數(shù)器2的端口地址</p><p> MOV AL,50
59、H</p><p> OUT DX,AL</p><p> MOV AL,0C3H</p><p> OUT DX,AL//裝載0C350H初值</p><p> MOV SI,DATA3//源操作數(shù)放到源變址寄存器</p><p> CALL LEDDI
60、SP</p><p> MOV AX,0H</p><p> MOV DS,AX</p><p> CALL WRINTVER</p><p> MOV AL,13H //8253初始化,邊沿觸發(fā)單片用ICW4</p><p> MOV DX,I
61、NTPORT1//命令寄存器地址</p><p> OUT DX,AL</p><p> MOV AL,08H//00001000B選中第3個,11為IRQ3</p><p> MOV DX,INTPORT2//IRQ3,寫ICW2</p><p> OUT DX,AL</p>
62、;<p> MOV AL,0BH//緩沖主片非自動處理器8086</p><p> OUT DX,AL//寫基本工作方式ICW4</p><p> MOV AL,77H//操作命令字OCW1,中斷屏蔽</p><p> OUT DX,AL//01110111B,0為中斷1為屏蔽<
63、/p><p> MOV AL,80H //8255初始化,寫控制字</p><p> MOV DX,IOCONPT</p><p> OUT DX,AL//A方式0,ABC口為輸出</p><p> MOV DX,IOCPT//C口</p>&l
64、t;p> MOV AL,0FFH//高電平,燈全亮</p><p> OUT DX,AL</p><p> WAITING: STI//開中斷,整點報時</p><p> IOLED0: MOV AL,0FFH//方式2,ABC為輸入</p><p>
65、 MOV DX,IOCPT</p><p> OUT DX,AL</p><p> CALL T1</p><p> MOV CX,2</p><p> MOV AL,0FFH</p><p> IOLED1: MOV DX,IOCPT<
66、/p><p> OUT DX,AL</p><p> AND AL,00H</p><p> PUSH CX</p><p> MOV CX,8FFFH</p><p> DELAY0: LOOP DELAY0</p><p> POP
67、 CX</p><p> LOOP IOLED1</p><p> CALL T2</p><p> JMP IOLED0</p><p> T1: CMP BYTE PTR DS:[DATA8],1H//>=1min燈亮</p><p&g
68、t; JNB T1</p><p> T2: CMP BYTE PTR DS:[DATA8],0H//<=0min燈閃蜂鳴</p><p> JB T2</p><p> WRINTVER: MOV AX,0H</p><p> MOV ES
69、,AX</p><p> MOV DI,002CH//002CH=44D=4*11,11為中斷類型</p><p> LEA AX,INTQ3//取中斷向量表IRQ3偏移地址到AX</p><p> STOSW//再把AX內(nèi)容放到ES:DI所指002CH</p><p> MOV AX,CS
70、//取中斷向量表IRQ3段地址</p><p><b> STOSW</b></p><p> MOV DI,003CH//003CH=60D=4*15,15為IRQ7中斷</p><p> LEA AX,INTQ7//類型號</p><p><b> STOSW</b&g
71、t;</p><p> MOV AX,CS</p><p><b> STOSW</b></p><p><b> RET</b></p><p> INTERUPT3:CLI //關(guān)中斷,CPU 開始執(zhí)行</p>
72、<p> MOV AL,DS:[DATA6]</p><p> INC AL//AL自增</p><p> MOV DS:[DATA6],AL//記錄中斷次數(shù)</p><p> CMP AL,14H//滿20次,往下執(zhí)行</p><p> JC PLAY
73、//有借位跳PLAY</p><p> MOV BYTE PTR DS:[DATA6],00H</p><p> MOV SI,DATA4//顯示把DATA4地址給SI</p><p> CALL LEDDISP</p><p> CALL NEWTIME</p><p
74、> CALL CONVERSALL</p><p> PLAY: MOV AL,20H//再讀一次中斷</p><p> MOV DX,INTPORT1//OCW2</p><p> OUT DX,AL</p><p><b> STI</b>
75、;</p><p><b> IRET</b></p><p> INTERUPT7: CLI//當(dāng)電平不符,自動跳Err</p><p> MOV SI,DATA1</p><p> CALL LEDDISP</p><p> MOV AL,2
76、0H</p><p> MOV DX,INTPORT1</p><p> OUT DX,AL</p><p><b> IRET</b></p><p> LEDDISP: MOV AL,90H//顯示RAM</p><p> MOV
77、DX,CONTPORT</p><p> OUT DX,AL</p><p> MOV CX,08H //與LOOP共用,循環(huán)8次</p><p> MOV BYTE PTR DS:[DATA5],07H//刷新數(shù)碼管</p><p><b> LED1:</b></p>
78、<p> MOV BL,DS:[DATA5]</p><p> MOV BH,0H</p><p> MOV AL,CS:[BX+SI]//051FH為段地址</p><p> MOV DX,DATAPORT</p><p> OUT DX,AL</p>&
79、lt;p> SUB BYTE PTR DS:[DATA5],01H//從051FH每次減1</p><p> LOOP LED1//直到0518H跳出循環(huán)</p><p> LED2:RET</p><p> FORMAT: MOV BX,0//DATA1,顯示CSU--CSU</p>
80、;<p> MOV WORD PTR DS:[BX+DATA1],6D3EH</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],4039H</p><p> ADD BX,2</p><p> MOV WORD PTR D
81、S:[BX+DATA1],3E40H</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],396DH</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],063FH//DATA2</p
82、><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],4F5BH</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],6D66H</p><p> ADD BX,2&l
83、t;/p><p> MOV WORD PTR DS:[BX+DATA1],077DH</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],6F7FH</p><p> ADD BX,2</p><p> MOV WOR
84、D PTR DS:[BX+DATA1],7C77H</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],5E39H</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],7179H</p&
85、gt;<p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],3F3FH//DATA3</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],3F40H</p><p> ADD
86、BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],403FH</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],3F3FH</p><p> ADD BX,2</p><p> MOV
87、 WORD PTR DS:[BX+DATA1],3F3FH//DATA4</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],3F40H</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1
88、],403FH</p><p> ADD BX,2</p><p> MOV WORD PTR DS:[BX+DATA1],3F3FH</p><p> MOV BYTE PTR DS:[DATA6],00D//DATA6-10</p><p> MOV BYTE PTR DS:[DATA7],11
89、H</p><p> MOV BYTE PTR DS:[DATA8],59H</p><p> MOV BYTE PTR DS:[DATA9],40H</p><p> MOV WORD PTR DS:[DATA10],DATA4</p><p> RET//遠返回</p>
90、;<p> CONVERS1: MOV BH,0H//只要個位</p><p> AND AL,0FH//主函數(shù)每次加1</p><p> MOV BL,AL//給低8位到BL</p><p> MOV AL,CS:[BX+DATA2]//從DATA2找到BX對應(yīng)數(shù)</p&
91、gt;<p><b> RET</b></p><p> CONVERS2: PUSH AX//保護原來AX寄存器存放的內(nèi)容</p><p> CALL CONVERS1</p><p> MOV BX,WORD PTR DS:[DATA10]</p><p>
92、 MOV DS:[BX],AL</p><p> ADD WORD PTR DS:[DATA10],01H//地址0520H+1</p><p> POP AX//AL重置為DATA9或8或7</p><p> PUSH CX//保護CX</p><p> MOV CL,4H&l
93、t;/p><p> SHR AL,CL//右移兩個數(shù)碼管,先移個位后十位</p><p> POP CX</p><p> CALL CONVERS1</p><p> MOV BX,WORD PTR DS:[DATA10]</p><p> MOV DS:[BX],A
94、L</p><p><b> RET</b></p><p> CONVERSALL: MOV AL,BYTE PTR DS:[DATA9]//秒</p><p> CALL CONVERS2</p><p> ADD WORD PTR DS:[DATA10],02H</p
95、><p> MOV AL,BYTE PTR DS:[DATA8]//分</p><p> CALL CONVERS2</p><p> ADD WORD PTR DS:[DATA10],02H</p><p> MOV AL,BYTE PTR DS:[DATA7]//時</p><
96、p> CALL CONVERS2</p><p> MOV WORD PTR DS:[DATA10],DATA4</p><p><b> RET</b></p><p> NEWTIME: CMP BYTE PTR DS:[DATA9],59H//判斷秒到59?</p><p
97、> JC ADD1</p><p> MOV BYTE PTR DS:[DATA9],0D</p><p> CMP BYTE PTR DS:[DATA8],59H//判斷分=59?</p><p> JC ADD2</p><p> MOV BYTE PTR DS:[DATA8]
98、,0D</p><p> CMP BYTE PTR DS:[DATA7],23H//判斷時=23?</p><p> JC ADD3</p><p> MOV BYTE PTR DS:[DATA7],0D</p><p> JMP OK</p><p> ADD1:
99、 MOV AL,BYTE PTR DS:[DATA9]//秒步進1</p><p> ADD AL,1D</p><p> DAA//十六進制調(diào)整消ABCDEF…</p><p> MOV BYTE PTR DS:[DATA9],AL</p><p> JMP OK</
100、p><p> ADD2: MOV AL,BYTE PTR DS:[DATA8]//分步進1</p><p> ADD AL,1D</p><p><b> DAA</b></p><p> MOV BYTE PTR DS:[DATA8],AL</p><
101、;p> JMP OK</p><p> ADD3: MOV AL,BYTE PTR DS:[DATA7]//時步進1</p><p> ADD AL,1D</p><p><b> DAA</b></p><p> MOV BYTE PTR DS:[
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機接口課程設(shè)計報告--數(shù)字鐘實驗
- 電子表設(shè)計(微機原理與接口技術(shù)課程設(shè)計)
- 數(shù)字電子課程設(shè)計---數(shù)字鐘
- 微機原理數(shù)字鐘課程設(shè)計報告
- 電力電子課程設(shè)計-- 數(shù)字鐘
- 微機接口課程設(shè)計(電子鐘)
- 電子鐘課程設(shè)計報告--數(shù)字鐘設(shè)計
- 電工電子課程設(shè)計---數(shù)字鐘設(shè)計
- 課程設(shè)計--智能電子數(shù)字鐘設(shè)計
- 課程設(shè)計---多功能電子數(shù)字鐘
- 數(shù)字電子電路課程設(shè)計---數(shù)字鐘
- 數(shù)字鐘課程設(shè)計
- 數(shù)字鐘課程設(shè)計
- 微機接口電子鐘課程設(shè)計報告
- 數(shù)字鐘課程設(shè)計
- 課程設(shè)計--多功能電子數(shù)字鐘
- 數(shù)字鐘課程設(shè)計
- 數(shù)字鐘課程設(shè)計
- 數(shù)字鐘課程設(shè)計
- 數(shù)字鐘課程設(shè)計
評論
0/150
提交評論