365天倒計(jì)時(shí).doc_第1頁(yè)
365天倒計(jì)時(shí).doc_第2頁(yè)
365天倒計(jì)時(shí).doc_第3頁(yè)
365天倒計(jì)時(shí).doc_第4頁(yè)
365天倒計(jì)時(shí).doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余35頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

,計(jì)算機(jī)原理及接口技術(shù)課程設(shè)計(jì)報(bào)告 題 目 倒計(jì)時(shí)牌的設(shè)計(jì) 學(xué) 院 電子與控制工程學(xué)院 專(zhuān) 業(yè) 建筑設(shè)施智能技術(shù) 班 級(jí) xxxxxxxxx 學(xué)生姓名 xxxxxx 學(xué) 號(hào) xxxxxxxx 2011 年 12月19日至12月30日 共2周 指導(dǎo)教師 xxxxxxxxxxx 課程設(shè)計(jì)任務(wù)書(shū)一、設(shè)計(jì)目的1、培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)的能力,提高學(xué)生解決實(shí)際問(wèn)題的能力;2、培養(yǎng)學(xué)生查閱資料,使用工程設(shè)計(jì)標(biāo)準(zhǔn)、手冊(cè)及編寫(xiě)設(shè)計(jì)技術(shù)的能力;3、培養(yǎng)學(xué)生初步掌握設(shè)計(jì)開(kāi)發(fā)產(chǎn)品的能力,了解微機(jī)控制系統(tǒng)的一般設(shè)計(jì)方法;4、提高學(xué)生的計(jì)算機(jī)繪圖能力。二、設(shè)計(jì)要求(不能采用專(zhuān)用芯片):(1)顯示倒計(jì)時(shí)天數(shù)以及小時(shí)、分鐘、秒(各2位)。(2)參數(shù)可手動(dòng)設(shè)置(3)每當(dāng)剩余時(shí)間為整數(shù)個(gè)小時(shí)時(shí),聲光報(bào)警提示 前言微機(jī)原理和接口技術(shù)是一門(mén)實(shí)踐性強(qiáng)的學(xué)科,其中很多的原理、規(guī)則、現(xiàn)象等僅僅靠學(xué)習(xí)教科書(shū)是無(wú)法完全掌握的,必須通過(guò)實(shí)踐才能比較直觀(guān)和深刻的理解。在進(jìn)行課程設(shè)計(jì)的過(guò)程中,可以讓學(xué)生體驗(yàn)分析問(wèn)題、提出解決方案、通過(guò)編程等手段實(shí)現(xiàn)解決方案、不斷調(diào)試最終達(dá)到設(shè)計(jì)要求的全過(guò)程,從而幫助學(xué)生系統(tǒng)地掌握微機(jī)原理的接口技術(shù)的相關(guān)知識(shí),達(dá)到將知識(shí)融會(huì)貫通的目的。本次設(shè)計(jì)的基于單片的倒計(jì)時(shí)器相較傳統(tǒng)機(jī)械式倒計(jì)時(shí)器具有可以靈活可調(diào)、性?xún)r(jià)比高等優(yōu)點(diǎn),有在現(xiàn)實(shí)生活中得到廣泛應(yīng)用的發(fā)展?jié)摿?。本課程設(shè)計(jì)由xxx和xxx共同設(shè)計(jì)。 摘要本次設(shè)計(jì)采用的是8255A、8253、5255、數(shù)碼管以及按鍵開(kāi)關(guān)組成的一個(gè)實(shí)現(xiàn)具有天、時(shí)、分、秒倒計(jì)功能的倒計(jì)時(shí)器。電路具有時(shí)間顯示功能,能在八位數(shù)碼管每隔1秒鐘,計(jì)時(shí)器減1。有外部鍵盤(pán)能輸入初始值,在倒計(jì)時(shí)為整數(shù)小時(shí)出現(xiàn)聲光報(bào)警 目 錄第一章 設(shè)計(jì)簡(jiǎn)介61 設(shè)計(jì)思想62 設(shè)計(jì)參考63 設(shè)計(jì)原理64、倒計(jì)時(shí)的硬件框圖7第二章 詳細(xì)設(shè)計(jì)81、主程序模塊82、定時(shí)模塊83、中斷處理模塊84、小鍵盤(pán)模塊85、LED顯示模塊 96、電路圖 9第三章 設(shè)計(jì)所用芯片簡(jiǎn)介12一、設(shè)計(jì)所用設(shè)備12二、設(shè)計(jì)所用芯片結(jié)構(gòu)121、8253芯片 122、8255芯片143、8259芯片154、8086CPU17第四章 設(shè)計(jì)流程圖20第五章 程序清單 23 鳴謝 37參考文獻(xiàn) 37心得與體會(huì)37評(píng)語(yǔ) 39第1章 設(shè)計(jì)簡(jiǎn)介1、設(shè)計(jì)思想概述本系統(tǒng)設(shè)計(jì)以8086微處理器作為CPU,用8253做定時(shí)計(jì)數(shù)器產(chǎn)生時(shí)鐘脈沖,8255做可編程并行接口顯示時(shí)鐘和鍵盤(pán)電路,8259做中斷控制器產(chǎn)生中斷,接LED顯示倒計(jì)時(shí)天數(shù)以及小時(shí)、分鐘、秒(各2位)和擴(kuò)展調(diào)整鍵盤(pán)。2、設(shè)計(jì)參考本程序中有幾個(gè)要點(diǎn):(1) 設(shè)計(jì)一個(gè)1s時(shí)鐘,作為時(shí)間的基準(zhǔn)??赏ㄟ^(guò)定時(shí)器來(lái)實(shí)現(xiàn),由于定時(shí)限制,我們可以設(shè)定定時(shí)時(shí)鐘為50ms中斷一次,然后用一個(gè)計(jì)數(shù)器計(jì)數(shù)20次。(2) 由于實(shí)際應(yīng)用中要求顯示為十進(jìn)制數(shù),而在程序中處理的數(shù)據(jù)都為十六進(jìn)制,因此在程序中要對(duì)顯示緩沖區(qū)的數(shù)據(jù)進(jìn)行十進(jìn)制調(diào)整。(3)在設(shè)計(jì)時(shí),LED顯示應(yīng)1秒跳動(dòng)一次。(4)當(dāng)計(jì)時(shí)器倒計(jì)時(shí)為零時(shí),即定時(shí)時(shí)間到,顯示為零,同時(shí)發(fā)出聲光報(bào)警信號(hào)。3、設(shè)計(jì)原理利用定時(shí)器8253、8255和8259以及鍵盤(pán)和數(shù)碼顯示電路,設(shè)計(jì)一個(gè)倒計(jì)時(shí)牌,由8253中斷定時(shí),小鍵盤(pán)控制倒計(jì)時(shí)牌的啟停及初始值的預(yù)置。在此系統(tǒng)中,8253的功能是定時(shí),接入8253的CLK信號(hào)為周期性時(shí)鐘信號(hào)。8253采用計(jì)數(shù)器0,工作于方式2,使8253的OUT0端輸出周期性的負(fù)脈沖信號(hào)。即每隔1min,8253的OUT0端就會(huì)輸出一個(gè)負(fù)脈沖的信號(hào),此信號(hào)接8259的IR2,當(dāng)中斷到60次數(shù)后,CPU即處理,使液晶顯示器上的時(shí)間發(fā)生變化。其中8259只需初始化ICW1,其功能是向8259表明IRx輸入是電瓶觸發(fā)方式還是上升沿觸發(fā)方式,是單片8259還是多片8259。8259接收到信號(hào)后,產(chǎn)生中斷信號(hào)送CPU處理。電子日歷的顯示格式年:天、時(shí)、分、秒,且循環(huán)顯示要求設(shè)計(jì)一個(gè)定時(shí)顯示裝置,用八個(gè)數(shù)碼管顯示時(shí)間,用小鍵盤(pán)控制計(jì)時(shí),設(shè)置和顯示時(shí)間。系統(tǒng)一運(yùn)行就從99天23時(shí)59分59秒開(kāi)始計(jì)時(shí),并在數(shù)碼管上顯示當(dāng)前值,而且,可以用鍵盤(pán)設(shè)置當(dāng)前時(shí)間?;竟ぷ髟恚好?秒對(duì)寄存器的內(nèi)容減一,當(dāng)減60次時(shí),分減一,秒恢復(fù)到59;當(dāng)分減60次時(shí),時(shí)減一,分恢復(fù)到59;當(dāng)時(shí)減24次時(shí),天減一,時(shí)恢復(fù)到23;八個(gè)數(shù)碼管動(dòng)態(tài)顯示天、時(shí)、分、秒的當(dāng)前值,并3s一次循環(huán)切換顯示倒計(jì)時(shí)。4、倒計(jì)時(shí)的硬件框圖框圖如下:8個(gè)數(shù)碼管顯示電路 8255 控制電路聲光報(bào)警第二章 詳細(xì)設(shè)計(jì) 系統(tǒng)分為5個(gè)功能模塊,分別為:主程序模塊,定時(shí)模塊,中斷模塊,小鍵盤(pán)控制模塊,LED顯示模塊。1、主程序模塊 主控模塊是其心模塊,對(duì)8253、8255和8259進(jìn)行初始化,設(shè)置中斷向量,掃描鍵盤(pán)根據(jù)按鍵值作相應(yīng)的處理。主要由軟件實(shí)現(xiàn)。它的主要功能是調(diào)用其它模塊對(duì)系統(tǒng)工作進(jìn)行協(xié)調(diào),讀小鍵盤(pán)輸入鍵值并執(zhí)行要做的工作。2、定時(shí)模塊 定時(shí)模塊是為8259提供中斷請(qǐng)求信號(hào)的。由一片8253實(shí)現(xiàn),選用定時(shí)器0,工作在方式2,顯示應(yīng)1秒跳動(dòng)一次,其輸出信號(hào)可作為8259的中斷請(qǐng)求信號(hào)。3、中斷處理模塊 中斷模塊實(shí)現(xiàn)動(dòng)態(tài)顯示的,硬件為一片8259,由于中斷請(qǐng)求信號(hào)為每1秒一次,中斷程序該為時(shí)間按秒增加,并顯示,只要開(kāi)中斷,便可實(shí)現(xiàn)每過(guò)1秒秒顯示減一,從而達(dá)到動(dòng)態(tài)顯示的效果。4、小鍵盤(pán)模塊 小鍵盤(pán)模塊送入主控模塊的子功能模塊。由軟件和硬件實(shí)現(xiàn),硬件上由小鍵盤(pán)和8255互連,將小鍵值由8255送入主控模塊。軟件上使用行掃描法獲得鍵值并送回主控模塊。本課題只考慮去抖動(dòng)。執(zhí)行一個(gè)約10ms的延時(shí)程序后再掃描鍵盤(pán),若F0=1表示真正有鍵按下,從而消除了抖動(dòng)影響。5、LED顯示模塊 顯示模塊是將顯示緩沖區(qū)的數(shù)值送到LED顯示的功能模塊,顯示緩沖區(qū)是由八個(gè)字節(jié)構(gòu)成,分別保存天的高位和低位,時(shí)的高位和低位,分的高位和低位,秒的高位和低位。硬件上由八個(gè)LED構(gòu)成,軟件上由掃描顯示的方法實(shí)現(xiàn)。其中,由于實(shí)際應(yīng)用中要求顯示為十進(jìn)制數(shù),而在程序中處理的數(shù)據(jù)都為十六進(jìn)制,因此在程序中要對(duì)顯示緩沖區(qū)的數(shù)據(jù)進(jìn)行十進(jìn)制調(diào)整。 6、電路圖圖1 總電路圖圖2 顯示模塊和聲光報(bào)警模塊電路圖3 小鍵盤(pán)模塊電路圖4 定時(shí)模塊和中斷處理模塊電路 圖5 聲光報(bào)警模塊電路。第三章 設(shè)計(jì)所用芯片簡(jiǎn)介一、設(shè)計(jì)所用設(shè)備8253定時(shí)器:用于產(chǎn)生秒脈沖,其輸出信號(hào)可作為中斷請(qǐng)示信號(hào)送IRQ2。8255并行接口:用做接口芯片,和小鍵盤(pán)相連。8259中斷控制器:用于產(chǎn)生中斷。8086CPU:作為微處理器。LED:八個(gè)LED燈用于顯示天、時(shí)、分、秒倒計(jì)時(shí)牌。發(fā)光二極管、小喇叭:用于實(shí)現(xiàn)聲光報(bào)警。小鍵盤(pán):用16鍵控制設(shè)置。二、設(shè)計(jì)所用芯片結(jié)構(gòu)1、8253芯片(1)內(nèi)部結(jié)構(gòu)及引腳8253可編程定時(shí)/計(jì)數(shù)器是Intel公司生產(chǎn)的通用外圍芯片之一,有3個(gè)獨(dú)立的十六位計(jì)數(shù)器,技術(shù)頻率范圍為02MHZ,它所有的技術(shù)方式和操作方式都通過(guò)編程控制。(2)8253的功能用途是:1、延時(shí)中斷 2、可編程頻率發(fā)生器 3、事件計(jì)數(shù)器 4、二進(jìn)倍頻器 5、實(shí)時(shí)時(shí)鐘6、數(shù)字單穩(wěn)7、復(fù)雜的電機(jī)控制器(3)8253有六種工作方式: 1、 方式0:計(jì)數(shù)結(jié)束中斷 2、方式1:可編程頻率發(fā)生器 3、方式2:頻率發(fā)生器4、方式3:方波頻率發(fā)生器 圖6 8253引腳圖5、方式4:軟件觸發(fā)的選通信號(hào)6、方式5:硬件觸發(fā)的選通信號(hào)(4)8253引腳圖如圖示,各引腳功能如下。D7D0八條雙向數(shù)據(jù)線(xiàn);WR(低電平有效)寫(xiě)輸入信號(hào); RD(低電平有效)讀輸入信號(hào);CS(低電平有效)片選輸入信號(hào);A0、A1片內(nèi)寄存器地址輸入信號(hào);CLK計(jì)數(shù)輸入,用于輸入定時(shí)基準(zhǔn)脈沖或計(jì)數(shù)脈沖;OUT輸出信號(hào),以相應(yīng)的電平指示計(jì)數(shù)的完成,或輸出脈沖波形;GATE選通輸入(門(mén)控輸入),用于啟動(dòng)或禁止計(jì)數(shù)器的操作,以使計(jì)數(shù)器和計(jì)測(cè)對(duì)象同步。表1 8253端口地址表(5)8253端口地址信號(hào)線(xiàn)寄存器編址IOY20#計(jì)數(shù)器40H1#計(jì)數(shù)器41H2#計(jì)數(shù)器42H控制寄存器43H2、8255芯片(1)內(nèi)部結(jié)構(gòu)及引腳8255可編程外圍接口芯片是Intel公司生產(chǎn)的通用并行I/O接口芯片,它具有A、B、C三個(gè)并行接口,用+5V單電源供電,能在以下三種工作方式下工作:方式0基本輸入/輸出方式方式1選通輸入/輸出方式 方式2雙向選通輸入/輸出方式(2)8255引腳圖如圖3.2示,各引腳功能如下。D7D0與CPU側(cè)連接的八條雙向數(shù)據(jù)線(xiàn);WR(低電平有效)寫(xiě)輸入信號(hào);RD(低電平有效)讀輸入信號(hào);CS(低電平有效)片選輸入信號(hào);A0、A1片內(nèi)寄存器選擇輸入信號(hào);PA7PA0A口外設(shè)雙向數(shù)據(jù)線(xiàn);PB7PB0B口外設(shè)雙向數(shù)據(jù)線(xiàn);PC7PC0C口外設(shè)雙向數(shù)據(jù)線(xiàn);RESET復(fù)位輸入信號(hào) (3)8255端口地址表2 8255端口地址表信號(hào)線(xiàn)寄存器編址IOY3A口60HB口61HC口62H控制寄存器63H3、8259芯片(1)內(nèi)部結(jié)構(gòu)及引腳中斷控制器8259A是Intel公司專(zhuān)為控制優(yōu)先級(jí)中斷而設(shè)計(jì)開(kāi)發(fā)的芯片。它將中斷源優(yōu)先排隊(duì)、辨別中斷源以及提供中斷矢量的電路集中于一片中。因此無(wú)需附加任何電路,只需對(duì)8259A編程,就可以管理8級(jí)中斷,并選擇優(yōu)先模式和中斷請(qǐng)求方式,即中斷結(jié)構(gòu)可以由用戶(hù)編程來(lái)設(shè)定。在MD微機(jī)系統(tǒng)中,8259芯片工作于單片方式。8259引腳圖如圖3.3,各引腳功能如下。D7D0八條雙向數(shù)據(jù)線(xiàn); 圖8259引腳圖WR(低電平有效)寫(xiě)輸入信號(hào); A0地址信號(hào); RD(低電平有效)讀輸入信號(hào); CS(低電平有效)片選輸入信號(hào); INTA(低電平有效)中斷響應(yīng)信號(hào);CAS0CAS2級(jí)聯(lián)信號(hào),形成一條專(zhuān)用8259A總線(xiàn),以便多片8259A的級(jí)聯(lián);SP/EN從編程/允許級(jí)聯(lián)。在緩沖方式中,可用做輸出信號(hào)以控制總線(xiàn)緩沖器的接收和發(fā)送。在非緩沖方式中,作為輸入信號(hào)用于表示主片還是從片; IR0IR7外部中斷請(qǐng)求輸入線(xiàn)。要求輸入的中斷請(qǐng)求信號(hào)是由低電平到高電平的上升沿(并保持高電平到CPU響應(yīng)時(shí)為止)或者是高電平。(2)8259中斷矢量地址與中斷信號(hào)之間的關(guān)系如表3所示:表3 8259中斷矢量表中斷序號(hào)01234567功能調(diào)用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FH說(shuō)明時(shí)鐘鍵盤(pán)可用可用串行口可用可用可用4、8086CPU8086微處理器的主要特點(diǎn):8086為16位微處理器,數(shù)據(jù)總線(xiàn)16位,地址總線(xiàn)20位,可尋址1MB存儲(chǔ)空間,時(shí)鐘頻率為510MHz。8086 CPU的內(nèi)部結(jié)構(gòu)由執(zhí)行單元EU(execution unit)和總線(xiàn)接口部件BIU(bus interface unit)兩部分組成。8086COU外部引腳圖如圖所示。 圖9 8086CPU外部引腳圖 AD7AD0八條地址/數(shù)據(jù)復(fù)用線(xiàn);A15A8單一的地址線(xiàn);SS0狀態(tài)信號(hào)線(xiàn)。該引腳在最大工作方式下保持高電平,在最小方式下等效于最大方式下S0的作用,它與IO/M、DT/R組合以確定當(dāng)前的總線(xiàn)周期;A19/S6A16/S3地址/狀態(tài)總線(xiàn);MN/MX最小/最大方式控制;RD讀控制;TEST等待測(cè)試控制;READY等待狀態(tài)控制;NMI不可屏蔽中斷請(qǐng)求;INTR可屏蔽中斷請(qǐng)求;CLK系統(tǒng)時(shí)鐘;Vcc+5V電源;GND接地。8086微處理器的工作方式:(1) 最小工作方式。當(dāng)8086CPU的MN/MX引腳接+5V電源時(shí),8086CPU工作于最小方式,用于構(gòu)成小型的單處理機(jī)系統(tǒng)。(2) 最大工作方式。當(dāng)8086CPU的MN/MX引腳接地時(shí),8086CPU工作于最大方式,用于構(gòu)成多處理機(jī)和協(xié)處理機(jī)系統(tǒng)。最小方式信號(hào): HOLD保持請(qǐng)求; HLDA保持響應(yīng); WR寫(xiě)控制; IO/MIO/存儲(chǔ)器控制; DT/R數(shù)據(jù)發(fā)送/接收; DEN數(shù)據(jù)允許; ALE地址鎖存允許; INTA中斷響應(yīng);最大方式信號(hào):RQ/GT1,0請(qǐng)求/允許總線(xiàn)訪(fǎng)問(wèn)控制;LOCK總線(xiàn)優(yōu)先權(quán)鎖定控制S2S1S0總線(xiàn)周期狀態(tài);QS1、QS0指令隊(duì)列狀態(tài);第四章 設(shè)計(jì)流程圖1、 主程序流程 開(kāi) 始 對(duì)8259初始化 填中斷向量表 初始化8253 、 8255 顯示時(shí)刻 功能鍵是否按下 N Y 進(jìn)入時(shí)刻設(shè)置狀態(tài) N 確認(rèn)鍵是否按下 YY Y2、時(shí)間程序更改流程圖開(kāi)始 秒的個(gè)位為0 秒的個(gè)位減1 N 秒的個(gè)位賦9 Y RET 秒的十位減1秒的十位為0為0 N 秒的十位賦5 Y N 分的個(gè)位減1分的個(gè)位為0 RET分的個(gè)位賦9 Y N 分的十位減1分的十位為0 RET Y 分的十位賦5 時(shí)的個(gè)位為0為0 N 時(shí)的個(gè)位減1 Y 時(shí)的十位為0 N 時(shí)的十位減1 Y 時(shí)的個(gè)位賦9 時(shí)的個(gè)位賦3 RET 時(shí)的十位賦2天的個(gè)位為0 天的個(gè)位減1 N 天的個(gè)位賦9 RET Y 天的十位為0為0全部位賦0,計(jì)時(shí)結(jié)束3、鍵盤(pán)掃描程序流程圖; 第5章 程序清單程序設(shè)計(jì):DATA SEGMENTSEC DB 00HMIN DB 00HHOUR DB 00HDAY DB 00HLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H,79H,00HPORTSEG EQU 211HPORTBIT EQU 210HPORT1 EQU 10H,11H,12H,13H,14H,15H,16H,17HCOUNT1 DB 00HVAR DB 00HA_ICW1_8259 EQU 20HA_ICW2_8259 EQU 21HA_ICW4_8259 EQU 21HA_OCW2_8259 EQU 20HD_ICW1_8259 EQU 13H ;ICW1 上升沿,單片,寫(xiě)ICW4D_ICW2_8259 EQU 08H ;IR0中斷向量碼為08HD_ICW4_8259 EQU 01H ;非自動(dòng)EOI方式A_CNT0_8253 EQU 200HA_CNT1_8253 EQU 201H A_CONL_8253 EQU 43H D_CNT0_8253 EQU 2000 ;CNT0為2000,主頻2MHZ時(shí)定時(shí)為1msD_CNT1_8253 EQU 2000 ;CNT1為2000,主頻2MHZ時(shí)定時(shí)為1msD_CONL0_8253 EQU 34H ;CNT0為16位數(shù)據(jù),工作方式2,二進(jìn)制D_CONL1_8253 EQU 74H ;CNT1為16位數(shù)據(jù),工作方式2,二進(jìn)制D_CONL0_8253 EQU 36H ;CNT0為16位數(shù)據(jù),工作方式2,二進(jìn)制COUNT DD 0000H ;1s計(jì)數(shù)A_PA_8255 EQU 218H A_PB_8255 EQU 219HA_PC_8255 EQU 21BHA_CONL_8255 EQU 21CH D_CONL_8255 EQU 11H ;A口方式0輸入,B口方式0輸出DATA ENDS ;*堆棧段初始化*STACK SEGMENT DW 64 DUP(?)STACK ENDS胡平 2011/12/29 21:36:57;*代碼段*CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA ;段寄存器初始化 MOV DS,AX PUSH DS;當(dāng)前用戶(hù)DS段入棧保存 MOV AX,0000H MOV DS,AX;修改DS=0000H,指向中斷矢量表所在段 MOV AX,OFFSET IR0 ;取出中斷處理子程序的入口偏移地址(以0為基準(zhǔn)) ADD AX,2000H ;修正,實(shí)際地址=裝入地址的偏移量+相對(duì)于0起始的偏移量 MOV SI,0020H;IR0中斷矢量號(hào)為08H,處于矢量表的20H23H MOV SI,AX;將偏移地址裝入矢量表 MOV AX,0000H MOV SI,0022H POP DS;恢復(fù)用戶(hù)數(shù)據(jù)段DS;-初始化8259- MOV AL,D_ICW1_8259 ;寫(xiě)入ICW1,上升沿觸發(fā),寫(xiě)ICW4 MOV DX,A_ICW1_8259 OUT DX,AL MOV AL,D_ICW2_8259 ;寫(xiě)入ICW2,設(shè)置IR0的中斷向量碼為08H,IR7中斷向量碼為0FH MOV DX,A_ICW2_8259 OUT DX,AL MOV AL,D_ICW4_8259 ;寫(xiě)入ICW4,非自動(dòng)EOI MOV DX,A_ICW4_8259 OUT DX,AL ;-初始化8253- MOV DX,A_CONL_8253 MOV AL,D_CONL0_8253 OUT DX,AL MOV AL,D_CONL1_8253 OUT DX,AL MOV DX,A_CNT0_8253 MOV AX,D_CNT0_8253 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,A_CNT1_8253 MOV AX,D_CNT1_8253 OUT DX,AL MOV AL,AH OUT DX,AL STI ;開(kāi)中斷;-初始化8255- MOV AL,D_CONL_8255 ;寫(xiě)入8255方式控制字,A口方式0輸出,C口高4位輸入,B口方式0輸出,C口低4位輸出 MOV DX,A_CONL_8255 OUT DX,AL;*主函數(shù)體循環(huán)* NEXT:PUSH AX PUSH BX PUSH CX PUSH DX XOR AX,AX XOR DX,DX MOV AL,SEC y1: DEC AL jnz y1 mov al,min dec al mov min,al JNZ YY2 MOV AL,HOUR DEC AL MOV HOUR,AL JNZ YY3 MOV AL,DAY DEC AL MOV AL,HOUR JNZ YY4 MOV AL,DAY DEC AL MOV DAY,AL JNZ YY5 JMP Y1 yy2: mov cl ,3Ch mov sec,cl JMP Y1yy3:mov cl,3Ch mov min,cl mov bl,3Ch mov al,bl jmp y1yy4:mov cl,3Ch mov min,cl mov bl,3Ch mov al,bl mov dl,18h mov HOUR,dl jmp y1yy5: mov cl,3bh mov min,cl mov bl,3bh mov al,bl mov dl,3bh mov hour,dl jmp y1 POP AX POP BX POP CX POP DX ENDS NEXT ;*按鍵讀入鍵盤(pán)* KEY: MOV DX,PORT1 ;從開(kāi)關(guān)按鍵鍵端口讀入數(shù)據(jù)KN: IN AL,DX PUSH AX AND AL ,01H ;檢測(cè)輸入口是否按下鍵的 JZ ZH INC BL MOV COUNT1,BL POP AX XOR AX,AX XOR BX,BX JMP NEXT ZH: JMP KWKW: MOV DX,PORT1+1 ;*數(shù)碼管顯示子函數(shù)*DISPLAY PROC PUSH AX PUSH DX PUSH BX PUSH CX MOV BX,OFFSET LED ;斷碼指針傳送BX MOV CX,0008 MOV SI,OFFSET COUNT1 MOV AH,01H ;位碼只想第一位DISPLAY1: CLD LODSB XLAT MOV DX,PORTSEG ;輸出段碼 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,PORTBIT ;輸出位碼 OUT DX,AL MOV AL,AH OUT DX,AL SHL AH,1 OUT DX,AL LOOP DISPLAY1 ;依次顯示共八位 POP CX RET;*報(bào)警子函數(shù)*WARNING PROC PUSH AX PUSH DX MOV AX,COUNT ;每1S翻轉(zhuǎn)一次 CMP AX,35995 ;剩余5s JAE SOUND ;=35995s,即剩余不足5s時(shí)報(bào)警 JB SILENT ;35995s則不報(bào)警 SOUND: MOV AL,01H ;C口按位操作,C0口置1 MOV DX,A_CONL_8255 OUT DX,AL SILENT: MOV AL,00H ;C口按位操作,C0口置0 MOV DX,A_CONL_8255 OUT DX,AL POP AX POP DX RETWARNING ENDP ;*IR0中斷服務(wù)子程序(定時(shí))* IR0: PUSH AX PUSH DX XOR AX,AX MOV AX,COUNT ;COUNT每1s翻轉(zhuǎn)一次 CMP AX,36000 JAE WARNING JMP OVEROVER: MOV AL,20H ;一般EOI命令,全嵌套方式,IR1復(fù)位 MOV DX,A_

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論