用8088設(shè)計(jì)電子時(shí)鐘參考模板_第1頁(yè)
用8088設(shè)計(jì)電子時(shí)鐘參考模板_第2頁(yè)
用8088設(shè)計(jì)電子時(shí)鐘參考模板_第3頁(yè)
用8088設(shè)計(jì)電子時(shí)鐘參考模板_第4頁(yè)
用8088設(shè)計(jì)電子時(shí)鐘參考模板_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、利用8088設(shè)計(jì)電子時(shí)鐘的設(shè)計(jì)報(bào)告目 錄一、設(shè)計(jì)任務(wù)和要求2二、設(shè)計(jì)方案的選擇與論證3 2.1方案比較3 2.2方案選擇4三、程序設(shè)計(jì)計(jì)算與分析5 3.1實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法5 3.2電子鐘的時(shí)間顯示6 3.3硬件設(shè)計(jì)電路圖6 3.3.1主電路模塊6 3.3.2 LED顯示模塊7 3.3.3按鍵模塊8 3.3.4總體電路圖8 3.4硬件設(shè)計(jì)所用芯片介紹9 3.5、軟件設(shè)計(jì)13 3.5.1主程序流程框圖13 3.5.2鍵掃子程序流程框圖14 3.5.3中斷處理程序流程框圖15 3.6電子時(shí)鐘總體程序16四、總結(jié)及體會(huì)16五附錄17六參考文獻(xiàn)261 / 29一、設(shè)計(jì)任務(wù)和要求 時(shí)鐘就是一種對(duì)時(shí)間

2、進(jìn)行累計(jì)的工具,即計(jì)時(shí)。計(jì)時(shí)的本質(zhì)就是計(jì)數(shù),只不過(guò)這里的“數(shù)”的單位是時(shí)間單位,如果把一小片一小片計(jì)時(shí)單位累計(jì)起來(lái),就可獲得一段時(shí)間。因此,使用計(jì)數(shù)器對(duì)時(shí)鐘脈沖進(jìn)行計(jì)數(shù),就是時(shí)鐘實(shí)現(xiàn)的基本原理;再用LED數(shù)碼管顯示出來(lái),并設(shè)計(jì)出幾個(gè)按鍵用于對(duì)時(shí)鐘進(jìn)行調(diào)整,這樣,一個(gè)完整的時(shí)鐘就設(shè)計(jì)完成了。本次課程設(shè)計(jì)要求利用8253定時(shí)器設(shè)計(jì)一個(gè)具有時(shí)、分、秒顯示的電子時(shí)鐘,并定義一個(gè)啟動(dòng)鍵,當(dāng)按下該鍵的時(shí)候,時(shí)鐘從當(dāng)前的設(shè)定值(可以在緩沖區(qū)中設(shè)置)開始走時(shí)。同時(shí),再定義三個(gè)按鍵,分別對(duì)時(shí)、分、秒進(jìn)行校正??烧{(diào)整運(yùn)行的電子鐘具有三種工作狀態(tài):“P.”狀態(tài)、運(yùn)行狀態(tài)、調(diào)整狀態(tài)。 (1)“P.”狀態(tài):依靠上電進(jìn)入

3、,在此狀態(tài)下,按B, C, D鍵均無(wú)效,按A鍵有效,進(jìn)入運(yùn)行狀態(tài)。 (2)運(yùn)行狀態(tài):按奇數(shù)次A鍵進(jìn)入,在此狀態(tài)下,按B, C, D鍵均無(wú)效,只有按A鍵有效,按下A鍵后,退出運(yùn)行狀態(tài),進(jìn)入調(diào)整狀態(tài)。 (3)調(diào)整狀態(tài):按偶數(shù)次A鍵進(jìn)入,在此狀態(tài)下,按A, B, C, D鍵均有效。如按下A鍵,則退出調(diào)整狀態(tài),進(jìn)入運(yùn)行狀態(tài);按下B, C, D鍵,則分別對(duì)時(shí)、分、秒加1,調(diào)整結(jié)束后必須按A鍵,即可退出調(diào)整狀態(tài),進(jìn)入運(yùn)行狀態(tài)口 基本功能要求: “P.”穩(wěn)定地顯示在LED顯示器的最左端數(shù)碼管上,無(wú)A鍵按下(在“P.”狀態(tài)下,按下B, C, D鍵無(wú)效),則不進(jìn)入電子鐘的運(yùn)行狀態(tài),繼續(xù)顯示“P.”。 按下A鍵后

4、,電子鐘從當(dāng)前的設(shè)定值開始走時(shí)。 再次按下A鍵后,電子鐘退出運(yùn)行狀態(tài),進(jìn)入調(diào)整狀態(tài),利用B, C, D鍵把電子鐘的顯示時(shí)間修改為當(dāng)前實(shí)時(shí)時(shí)間,時(shí)間修改正確后可再次按下A鍵,電子鐘則退出調(diào)整狀態(tài),進(jìn)入運(yùn)行狀態(tài)。二、設(shè)計(jì)方案的選擇與論證2.1方案比較 方案一:利用AT89S52單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí):AT89S52的PO口和P2口外接LED數(shù)碼管構(gòu)成顯示器;P1口外接四個(gè)按鍵A, B, C, D構(gòu)成鍵盤電路。如圖2-1所示。 圖2-1 AT89S52單片機(jī)設(shè)計(jì)方案框圖 方案二:以8088微處理器作為CPU, 8253做定時(shí)計(jì)數(shù)器產(chǎn)生時(shí)鐘脈沖,8255

5、A做可編程并行接口,接LED顯示時(shí)鐘和擴(kuò)展調(diào)整按鍵。如圖2-2所示。 圖2-2以8088為CPU設(shè)計(jì)方案框圖2.2方案選擇 就方案一用單片機(jī)來(lái)設(shè)計(jì)電子時(shí)鐘,從主要芯片耗材上來(lái)說(shuō)比方案二要少,但是用單片機(jī)來(lái)設(shè)計(jì)電子時(shí)鐘,需要做的其他模塊,如單片機(jī)最小系統(tǒng),相對(duì)方案二要復(fù)雜很多,而且就程序上的編寫來(lái)說(shuō),方案二也比方案一簡(jiǎn)單。因此,本設(shè)計(jì)采用方案二來(lái)做。 三、程序設(shè)計(jì)計(jì)算與分析3.1實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法 利用8253的16位可編程定時(shí)/計(jì)數(shù)器及8088中斷系統(tǒng)實(shí)現(xiàn)時(shí)鐘計(jì)數(shù)。 (1)計(jì)數(shù)初值計(jì)算: 選用8253的定時(shí)/計(jì)數(shù)器1,把定時(shí)器設(shè)為工作方式2.輸入250kHz,輸出200Hz,定時(shí)時(shí)間為5毫

6、秒,則計(jì)數(shù)溢出200次即得時(shí)鐘計(jì)時(shí)最小單位一秒. (2)采用中斷方式進(jìn)行fly出次數(shù)累計(jì),計(jì)滿200次為秒計(jì)時(shí)(1秒); (3)從秒到分和從分到時(shí)的計(jì)時(shí)是通過(guò)累加和數(shù)值比較實(shí)現(xiàn)。 8253的初始化程序段:設(shè)置8253, t1,方式2,輸入250kHz,輸出200Hz。計(jì)數(shù)初值計(jì)算公式t=1/f*TC,t為設(shè)定時(shí)間,TC為計(jì)算初值。 mov dx,233h mov a1,74h;設(shè)置控制字 out dx,al mov dx,231h mov ax,1250;設(shè)置初值 out dx,al mov al,ah out dx,al3.2電子鐘的時(shí)間顯示 電子鐘的時(shí)鐘時(shí)間在六位數(shù)碼管上進(jìn)行顯示,因此,在

7、內(nèi)部RAN中設(shè)置顯示緩沖區(qū)共6個(gè)單元。電子鐘設(shè)置4個(gè)按鍵通過(guò)程序控制來(lái)完成電子鐘的啟、停及時(shí)間調(diào)整A鍵控制電子鐘的啟、停: B鍵調(diào)整時(shí) C鍵調(diào)整分D鍵調(diào)整秒3.3硬件設(shè)計(jì)電路圖3.3.1主電路模塊主電路模塊由8088, 8253, 8255A構(gòu)成,電路如圖所示。3-3-1主電路模塊電路3.3.2 LED顯示模塊顯示部分由6個(gè)LED組成,用8255A的A口作LED的段碼輸出口,B口作六個(gè)LED數(shù)碼管的位控輸出線。電路如圖3-3-23-3-2顯示模塊電路3.3.3按鍵模塊四個(gè)按鍵A, B, C, D分別完成各自功能,由8255A的C口控制。電路如圖3-3-33-3-3按鍵模塊電路3.3.4總體電路

8、圖 總體電路圖見(jiàn)附錄l3.4硬件設(shè)計(jì)所用芯片介紹1.8088的芯片引腳介紹在本系統(tǒng)中,8088工作在最小模式下。負(fù)責(zé)對(duì)8255A,8253等芯片進(jìn)行工作方式控制和數(shù)據(jù)處理,對(duì)時(shí)鐘信號(hào)進(jìn)行響應(yīng)并控制LED數(shù)碼管進(jìn)行顯示。1.AD7AD0(雙向。三態(tài))為低8位地址數(shù)據(jù)的復(fù)用引腳線。采用分時(shí)的多路轉(zhuǎn)換方法來(lái)實(shí)現(xiàn)對(duì)地址線和數(shù)據(jù)線的復(fù)用。在總線坐騎的T1狀態(tài)??梢?jiàn)對(duì)復(fù)用信號(hào)使用時(shí)間來(lái)加以劃分的。它要求在T1狀態(tài)線出現(xiàn)低8位地址時(shí),用地址鎖存器加以鎖存。這樣在隨后的T狀態(tài),即使這些線用作數(shù)據(jù)線,而低8位地址線的地址在個(gè)體卻被記錄保存下來(lái),并送到地址總線上。在DMA方式時(shí),這些引線被浮置為高阻狀態(tài)。 2.A

9、15A8(輸出,三態(tài))為8位地址線。在讀寫存儲(chǔ)器或外設(shè)端口的總線周期內(nèi),都作為地址線輸出高8位地址。在DMA方式時(shí),這些引線被浮置為高阻。3.A19/S6A16/S3(輸出。三態(tài))為地址狀態(tài)復(fù)用引腳線,在總線周期的T1狀態(tài),這些線表示為最高4位的地址線,在總線周期的其他T狀態(tài),這些線用作提供狀態(tài)信息,同樣需要地址鎖存器對(duì)T1狀態(tài)出現(xiàn)的最高4位地址加以鎖存。狀態(tài)信息S6總是為低電平,S5反映當(dāng)前允許中斷標(biāo)志的狀態(tài)。S4與S3一起指示當(dāng)前哪一個(gè)段寄存器被使用。 在DMA方式時(shí),這些引線被浮置為高阻。4.RD(輸出,三態(tài))讀信號(hào),當(dāng)其有效時(shí)表示正在對(duì)存儲(chǔ)器或IO端口進(jìn)行讀操作。若IOM為低電平,表示

10、讀取存儲(chǔ)器的數(shù)據(jù),若IOM為高電平,表示讀取IO端口的數(shù)據(jù)。在DMA方式時(shí),這些引線被浮置為高阻。5.READY(輸入)為準(zhǔn)備就緒信號(hào)。低電平有效。本信號(hào)由等待指令WAIT來(lái)檢查。我們知道當(dāng)CPU執(zhí)行WAIT指令時(shí),CPU處于等待狀態(tài),一旦檢測(cè)到TEST號(hào)為低,則結(jié)束等待狀態(tài),繼續(xù)執(zhí)行WAIT指令下面的指令。6.TEST(輸入)為檢測(cè)信號(hào),低電平有效。本信號(hào)由等待指令WAIT來(lái)檢查。我們知道當(dāng)CPU執(zhí)行WAIT指令時(shí),CPU處于等待狀態(tài),一旦檢測(cè)到TEST號(hào)為低,則結(jié)束等待狀態(tài),繼續(xù)執(zhí)行WAIT指令下面的指令。7.INTR(輸入)可屏蔽中斷請(qǐng)求信號(hào),高電平有效。CPU在執(zhí)行每條指令的最后一個(gè)T

11、狀態(tài)時(shí),去采樣INTR信號(hào),若發(fā)現(xiàn)有效,而中斷允許標(biāo)志IF有為1,則CPU在結(jié)束當(dāng)前指令周期后響應(yīng)中斷請(qǐng)求,轉(zhuǎn)去執(zhí)行中斷處理程序。8.NMI(輸入)非屏幕中斷請(qǐng)求信號(hào),為一個(gè)邊緣觸發(fā)信號(hào),不能由軟件加以屏蔽。只要在NMI線上出現(xiàn)由低到高的變化信號(hào),則CPU就會(huì)在當(dāng)前指令中,轉(zhuǎn)去執(zhí)行給屏蔽中斷處理程序。9.RESET(輸入)復(fù)位信號(hào),高電平有效,復(fù)位時(shí)該信號(hào)要求維持高電平值到4個(gè)時(shí)鐘周期,若使初次加電,則高電平信號(hào)至少要保持50us,復(fù)位信號(hào)的到來(lái),將立即結(jié)束CPU的當(dāng)前操作,內(nèi)部寄存器恢復(fù)到初始狀態(tài)。當(dāng)RESET信號(hào)從高電平回到低電平時(shí),即復(fù)位后進(jìn)入重新啟動(dòng)時(shí),CPU執(zhí)行從內(nèi)存FFFF0H處的

12、指令,通常在FFFF0H存放一條無(wú)條件轉(zhuǎn)移指令,轉(zhuǎn)移到系統(tǒng)程序的實(shí)際入口處。這樣只要系統(tǒng)被復(fù)位啟動(dòng),就自動(dòng)進(jìn)入系統(tǒng)程序。10.CLK(輸入) 時(shí)鐘信號(hào),它為CPU和總線控制電路提供基準(zhǔn)時(shí)鐘,對(duì)時(shí)鐘信號(hào)要求:13周期為高電平,23周期為低電平。8088的標(biāo)準(zhǔn)時(shí)鐘頻率為5MHz。11.電源和地 VCC為電源引線,單一的為+5V電源。引腳為1和20為兩條GND線,要求均要接地。12.IOM 訪問(wèn)存儲(chǔ)器或IO端口的控制信號(hào)。若IOM為高電平,則訪問(wèn)的是IO端口;若IOM為低電平,則訪問(wèn)的是存儲(chǔ)器。13.WR 寫信號(hào)。當(dāng)其有效時(shí)表示CPU正在對(duì)存儲(chǔ)器或IO端口進(jìn)行寫操作,具體對(duì)誰(shuí)進(jìn)行寫操作,有IOM信號(hào)

13、決定。本信號(hào)在總線周期的T2,T3。TW狀態(tài)有效。在DMA方式時(shí),此線被浮置為高阻。2. 8253芯片的內(nèi)部結(jié)構(gòu)及引腳8253有3個(gè)獨(dú)立的十六位計(jì)數(shù)器,計(jì)數(shù)頻率范圍為0-2.6MHz。它所有的計(jì)數(shù)方式和操作方式都通過(guò)編程控制。8253的功能用途是:(1)延時(shí)中斷;(2)可編程頻率發(fā)生器;(3)事件計(jì)數(shù)器;(4)二進(jìn)倍頻器;(5)實(shí)時(shí)時(shí)鐘;(6)數(shù)字單穩(wěn);(7)復(fù)雜的電機(jī)控制器。8253引腳圖以及功能說(shuō)明:圖3-4-1 8253引腳38255A芯片的內(nèi)部結(jié)構(gòu)及引腳8255A可編程外圍接口芯片是Intel公司生產(chǎn)的通用并行I/O接口芯片,它具有A, B, C三個(gè)并行接口,用+5V單電源供電,能在以

14、下三種工作方式下工作:方式0-基本輸入/輸出方式,方式1-選通輸入/輸出方式,方式2-雙向選通輸入/輸出方式。8255A引腳圖如圖4-6所示,各引腳功能如下:圖3-4-2 8255A引腳D7-DO與CPU連接的雙向數(shù)據(jù)線;WR(低電平有效)寫輸入信號(hào);RD(低電平有效)讀輸入信號(hào);CS(低電平有效)片選輸入信號(hào):A0, A1片內(nèi)寄存器選擇輸入信號(hào); PAOPA7 A口外PA7-PAO A口外設(shè)雙向數(shù)據(jù)線; PB7-PBO B口外設(shè)雙向數(shù)據(jù)線;PC7-PCO C口外設(shè)雙向數(shù)據(jù)線RESET復(fù)位輸入信號(hào) 3.5、軟件設(shè)計(jì)3.5.1主程序流程框圖圖3-5-1主程序流程框圖3.5.2鍵掃子程序流程框圖如

15、圖3-5-2所示圖3-5-2鍵掃子程序流程框圖3.5.3中斷處理程序流程框圖圖3-5-3中斷處理程序流程框圖3.6電子時(shí)鐘總體程序總程序見(jiàn)附錄2四、總結(jié)及體會(huì)隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,微機(jī)接口技術(shù)作為計(jì)算機(jī)技術(shù)的一門學(xué)科,它是一門應(yīng)用性、綜合性、實(shí)踐性都較強(qiáng)的課程,通過(guò)本次課程設(shè)計(jì)過(guò)程,我基本熟悉和掌握了微機(jī)系統(tǒng)的軟件、硬件設(shè)計(jì)的方法、設(shè)計(jì)步驟,是一次微機(jī)開發(fā)應(yīng)用方面的初步訓(xùn)練;通過(guò)本次課程設(shè)計(jì)使我熟練掌握了微機(jī)系統(tǒng)與接口擴(kuò)展電路的設(shè)計(jì)方法,并熟練應(yīng)用8088匯編語(yǔ)言編寫應(yīng)用程序和實(shí)際設(shè)計(jì)中的硬軟件調(diào)試方法和步驟,熟悉微機(jī)系統(tǒng)的硬軟件開發(fā)工具的使用方法。通過(guò)本次設(shè)計(jì),不但使我的專業(yè)知識(shí)得到鞏固

16、和開拓,而且能使我將所學(xué)與實(shí)踐聯(lián)系起來(lái),我對(duì)所學(xué)的知識(shí)有了更深刻的了解和掌握,使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。計(jì)算機(jī)技術(shù)的發(fā)展日新月異,其接口技術(shù)應(yīng)用十分廣泛,我不但要經(jīng)常跟蹤專業(yè)新技術(shù)、新動(dòng)態(tài),時(shí)刻走在時(shí)代的前列;還要注重積累經(jīng)驗(yàn),積累一些通用俗語(yǔ),才能使自己慢慢地融入專業(yè)之中,更快地進(jìn)入工作角色。此外,還要注重養(yǎng)成終身的學(xué)習(xí)習(xí)慣,擴(kuò)大自己的知識(shí)面,才能促進(jìn)自己不斷進(jìn)步。有了這次的設(shè)計(jì)經(jīng)驗(yàn),在以后的學(xué)習(xí)設(shè)計(jì)實(shí)踐過(guò)程中,我會(huì)繼續(xù)努力。五附錄附錄1附錄2電子時(shí)鐘程序

17、;8255A用作讀鍵盤信息;8253提供時(shí)鐘信號(hào);LED采用動(dòng)態(tài)顯示;8088工作在最小模式下stack 50data; 數(shù)據(jù)段buf db 0,0,0,0,0,0 ;顯示緩沖區(qū)led db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,80h;數(shù)碼管筆形碼0,1等hour db 08h ;時(shí)緩沖單元min db 30h ;分緩沖單元sec db 30h ;秒緩沖單元msec db 0 ;毫秒緩沖單元dex db 0 ;筆形碼索引值keytab dw 57FH,5BFH,5DFH,5EFH,5FEH,5FDH,5FBH,5F7H dw 67FH,6BFH,6D

18、FH,6EFH,6FEH,6FDH,6FBH,6F7H ;鍵盤編碼表keyend dw 7ffhagekey db 12 ;鍵齡oldkey dw 0 ;鍵碼字保存keynum db 0 ;鍵號(hào)keyok db 0 ;按鍵響應(yīng)標(biāo)記state db 0 ;系統(tǒng)狀態(tài),0一運(yùn)行態(tài);1一修改態(tài)keymd db 0 ;修改鍵標(biāo)記,B修改時(shí);C修改分;D修改秒stime db 0 ;時(shí)間設(shè)定單元,保存鍵盤輸入的時(shí)間代碼段code;主程序:;實(shí)現(xiàn)8253的設(shè)置,中斷向量的設(shè)置,檢測(cè)系統(tǒng)大鍵盤信號(hào),有按鍵就結(jié)束程序返回系統(tǒng)。main proc farstart: mov ax,data ;設(shè)置數(shù)據(jù)段和附加段

19、mov ds,ax mov es,ax cli;關(guān)中斷;設(shè)置8253, 計(jì)數(shù)器1,方式2,輸入250kHz,輸出200Hz mov dx,233h mov a1,74h ;設(shè)置控制字 out dx,al mov dx,231h mov ax,1250 ;設(shè)置初值 out dx,al mov al,ah out dx,al;保存原中斷向量 mov al,Obh mov ah,35h int 21hpush es ;保護(hù)現(xiàn)場(chǎng)push bxpush ds;設(shè)置新中斷向量mov dx, offset intpromov ax,seg intpromov ds,axmov a1,Obhmov ah,25

20、hint 21h;打開中斷屏蔽 pop ds in a1,21h and al,Of7h out 21h,a1 sti;開中斷;等持按鍵,返回系統(tǒng)wait: mov ah,l int lbh jz wait;回復(fù)中斷向量 pop dx ;恢復(fù)現(xiàn)場(chǎng) pop ds mov a1,Obh mov ah,25h int 21h;退出程序,返回系統(tǒng) mov ax,4e00h int 21h;中斷一f程序:;完成時(shí)鐘處理、鍵盤監(jiān)控和顯示功能intpro proc near push ds ;保存寄存器 push ax push cx axmov ax,data ;設(shè)置數(shù)據(jù)段和代碼段寄存器mov ds,ax

21、;不是修改狀態(tài)才走時(shí)鐘nush;時(shí)鐘處理模塊,以5毫秒為單位調(diào)整時(shí)、分秒。elk: inc msec ; 毫秒加1mov al,msecadd al,ldaamov sec,alcmp sec,60hjnz nextmov sec,0mov al,minadd al,ldaamov min,alcmp min,60hjnz nextmov min,0mov al,houradd al,ldaamov hour,alcmp hour,24hjnz nextmov hour,0;鍵盤監(jiān)控模塊next: dec agekeyjz nextljmp dspnextl: mov agekey,12mov

22、 dx,223h ;設(shè)置PA輸出,PB輸入mov a1,82h ;設(shè)置8255A控制字out dx,almov a1,0 ;A口輸出低電平,讀B口mov dx,220h out dx,almov dx,221hin al,dxmov bh,almov dx,223h ;設(shè)置PB輸出,PA輸入mov a1,90h ;設(shè)置8255A控制字out dx,almov al,0 mov dx,22lhout dx,almov dx,220hin al,dxmov bl,al and bx,7ffh ;去除鍵碼中無(wú)用位數(shù)cmp bx,7ffhjnz keyon ;有按鍵則進(jìn)入按鍵處理mov keyok,0

23、 ;無(wú)按鍵則清除響應(yīng)標(biāo)志退出按鍵處理jmp dspkeyon: cmp bx,oldkeyjz keyonl ;已經(jīng)去抖動(dòng)則直接處理按鍵mov agekey,4 ;有新按鍵則設(shè)置鍵齡退出中斷mov keyok,0mov oldkey,bxjmp dspkeyonl: cmp keyok,ljnz II ;按鍵已響應(yīng)則退出鍵盤處理jmp dspII: mov keyok,l ;設(shè)立按鍵響應(yīng)標(biāo)記 stdlea di,keyend ;指向鍵碼表mov ax,bx ;讀取鍵號(hào),地址遞減,cx的值為鍵號(hào) mov cx,17 ;串長(zhǎng)送寄存器cxrepne scasw ;不相等繼續(xù)查找,一旦相等退出je k

24、eyon2jmp dspkeyon2: mov keynum,cl ;保存鍵號(hào)cmp state,0 ;系統(tǒng)在修改態(tài)否?jne keyon3 ;跳到修改態(tài)的處理cmp keynum,0ah ;為A鍵否jne keybmov keymd,l ;作a鍵修改標(biāo)志mov hour,0aah ;時(shí)顯示為一mov state,l ;進(jìn)入修改態(tài)jmp dspkeyb: cmp keynum,Obh ;為B鍵否jne keycmov keymd,2 ;作b鍵修改標(biāo)志mov min,0aah ;分鐘異示為.mov state,l ;進(jìn)入修改態(tài)jmp dspkeyc: cmp keynum,Och ;為c鍵否je

25、 keycljmp dspkeycl: mov keymd,3 ;作c鍵修改標(biāo)志mov sec,0aahmov state,l ;秒顯示為.jmp dspkeyon3: cmp keynum,9 ;在修改態(tài),判斷是否為數(shù)字鍵jbe keys ;<=9則認(rèn)為是數(shù)字鍵jmp keyen ;否則判斷是否為確定鍵keyn: mov al,stime ;滋取輸入時(shí)間,十進(jìn)制格式 mov c1,4shl al,cl ;在確定以前最后輸入的兩個(gè)十進(jìn)制數(shù)有效or al,keynum mov stime,aljmp dspkeyen: cmp keynum,Ofh ;處理f鍵je keyenljmp ds

26、pkeyenl: mov state,0 ;恢復(fù)到運(yùn)行態(tài)cmp keymd,l ;將修改內(nèi)容送小時(shí)單元jne keyen2mov keymd,0 ;清除修改小時(shí)標(biāo)志cmp stime,24h ;判斷輸入時(shí)間是否>=24jb key-3mov hour,0 ;大于24時(shí),輸入為0mov stime,0 ;清除時(shí)間單元jmp dspkey-3: mov al,stimemov hour,al ;小于24時(shí),輸入設(shè)定時(shí)間mov stime,0 ;清除時(shí)間單元jmp dspkey-2: cmp keymd,2 ;將修改分鐘標(biāo)志jne keyen4mov keymd,0 ;請(qǐng)除修改分鐘標(biāo)志cmp stime,60hjb keyen5 mov min,0 mov stime,0jmp dspkeyen5: mov al,stime mov min,al mov stime,0jmp dspkeyen4: cmp keymd,3 ;將修改秒jne dspmov keymd,0cmp stime,60h ;判斷輸入時(shí)間是否>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論