基于8086的電子時(shí)鐘設(shè)計(jì)(彩色圖版)_第1頁
基于8086的電子時(shí)鐘設(shè)計(jì)(彩色圖版)_第2頁
基于8086的電子時(shí)鐘設(shè)計(jì)(彩色圖版)_第3頁
基于8086的電子時(shí)鐘設(shè)計(jì)(彩色圖版)_第4頁
基于8086的電子時(shí)鐘設(shè)計(jì)(彩色圖版)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 目 錄 112222 2 334 445 56677 7 77 7911 13 14 15專心-專注-專業(yè)摘要本設(shè)計(jì)以微機(jī)原理與接口技術(shù)為基礎(chǔ),以8086CPU為核心,利用INTER 8253可編程定時(shí)/計(jì)數(shù)器,通過引入時(shí)鐘發(fā)生器產(chǎn)生標(biāo)準(zhǔn)時(shí)鐘進(jìn)行精準(zhǔn)定時(shí);經(jīng)定時(shí)器產(chǎn)生中斷源,采用可編程中斷控制器8259A進(jìn)行中斷擴(kuò)展,用可屏蔽中斷方式進(jìn)行時(shí)間的采集;以可編程并行I/O接口芯片8255A擴(kuò)展接口,驅(qū)動(dòng)MSC1602液晶模塊進(jìn)行時(shí)間顯示。關(guān)鍵詞:微機(jī)原理;接口技術(shù);8086CPU;可屏蔽中斷;MSC1602液晶;可編程;INTER 8253定時(shí)/計(jì)數(shù)器;中斷控制器825

2、9A;并行I/O接口芯片8255AAbstractThis design take the microcomputer principle and the connection technology as a foundation, by the 8086CPU core, uses the INTER 8253 programmable fixed time/counters, produces the standard clock through the introduction clock generator to carry on fine fixed time; Produces t

3、he interrupt source after the timer, uses programmable interrupt controller 8259A to carry on the interrupt to expand, sends the maskable interrupt way to carry on the counting; By programmable parallel I/O the connection chip 8255A expansion connection, actuates the MSC1602 liquid crystal module to

4、 carry on the time demonstration.Key word: Microcomputer principle; Connection technology; 8086CPU; Maskable interrupt; MSC1602 liquid crystal; Programmable; INTER 8253 fixed time/counters; Interrupt controller 8259A; Parallel I/O connection chip 8255A第一章 電子鐘設(shè)計(jì)總體方案設(shè)計(jì)1.1 設(shè)計(jì)目的電子鐘是一種基于微電子技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置

5、,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。1.2 設(shè)計(jì)要求利用8253定時(shí)器設(shè)計(jì)一個(gè)具有時(shí)、分、秒顯示的電子時(shí)鐘,并定義一個(gè)啟動(dòng)鍵,當(dāng)按下該鍵時(shí)電子時(shí)鐘從當(dāng)前設(shè)定值開始走時(shí)。1.3 方案比較為實(shí)現(xiàn)設(shè)計(jì)要求,在8086微機(jī)系統(tǒng)中實(shí)現(xiàn)計(jì)時(shí)功能可有多種方式,同時(shí)實(shí)現(xiàn)顯示的方式也有多種,現(xiàn)主要比較計(jì)時(shí)方式中的中斷與非中斷方式,及顯示常用的LED顯示與液晶顯示。1.3.1 非中斷方式與中斷方式的比較在非中斷方式設(shè)計(jì)常使用的方式為查詢法,查詢法的設(shè)計(jì),可將定時(shí)/計(jì)數(shù)器8253的OUT引腳接至并行I/O擴(kuò)展芯片8255的PA,PB,PC的任一口上,C

6、PU通過不斷的檢測該引腳上的高低電平變化,來進(jìn)行計(jì)數(shù)。該方式的優(yōu)點(diǎn):實(shí)現(xiàn)思路相對簡單;由于不要引入中斷則可不用中斷擴(kuò)展芯片8259電路相對簡單;該方式的缺點(diǎn):由于CPU要不斷的去檢測單一引腳高低電平的變化,占用的時(shí)間比較長,利用率較低;與此同時(shí),CPU要進(jìn)行數(shù)據(jù)的運(yùn)算與控制數(shù)據(jù)的傳輸,如果二者沖突,可能會(huì)發(fā)生計(jì)時(shí)不準(zhǔn)的現(xiàn)象。中斷方式的設(shè)計(jì)思路,將定時(shí)/計(jì)數(shù)器8253的OUT腳接至中斷擴(kuò)展芯片8259的IR引腳上,定時(shí)器產(chǎn)生相同頻率的計(jì)數(shù)脈沖,形成中斷源。8259再通過INTR引腳向CPU發(fā)出中斷請求信號(hào),CPU通過中斷檢測進(jìn)行計(jì)數(shù)/計(jì)時(shí)。該方式的主要缺點(diǎn):由于芯片8259的引進(jìn),使電路相對復(fù)雜

7、;該方式的主要優(yōu)點(diǎn)是:用中斷的方式可以大大提高CPU的利用效率,同時(shí)可以在該系統(tǒng)上進(jìn)行更多功能的擴(kuò)展,同時(shí)用中斷的方式進(jìn)行計(jì)數(shù)/計(jì)時(shí),計(jì)時(shí)更加的準(zhǔn)確可靠?;谝陨系目紤]本設(shè)計(jì),采用電路稍微復(fù)雜,但可靠性強(qiáng),利用效率高的中斷方式。1.3.2 LED顯示與液晶顯的比較為完成本設(shè)計(jì)的要求,若采用LED則需6塊以上,可以采用二片8255來驅(qū)動(dòng)動(dòng)這六片LED進(jìn)行靜態(tài)顯示。也可以采用動(dòng)態(tài)掃描的方式,用一片8255加鎖存器(如74LS573)來進(jìn)行動(dòng)態(tài)顯示。若采用液晶顯示,則只需用一片8255芯片進(jìn)行接口的擴(kuò)展(具體擴(kuò)展方案將在下面進(jìn)行介紹),可以得到較為滿意的顯示效果,但操作的技巧性要求相對較高,成本相對

8、較高。不論從硬件電路驅(qū)動(dòng)的復(fù)雜性,還是從軟件設(shè)計(jì)的簡潔性及整個(gè)系統(tǒng)的外觀來看,時(shí)尚的液晶顯示更能滿足系統(tǒng)的需求。鑒于以上考慮,本次設(shè)計(jì)采用操作要求相對較高的液晶進(jìn)行數(shù)碼顯示。1.4 總體方案設(shè)計(jì)思路本方按主要設(shè)計(jì)思路如右下圖所示:以8086CPU最小系統(tǒng)為核心,控制可編程定時(shí)/計(jì)數(shù)器INTER 8253,可編程中斷控制器8259A,可編程并行I/O接口芯片8255A。通過8253的輸出記數(shù)脈沖為8259產(chǎn)生中斷源,8259將中斷信號(hào)反饋到CPU,從而產(chǎn)生可屏蔽中斷的申請信號(hào),在CPU的合理響應(yīng)下進(jìn)行計(jì)數(shù),通過8255驅(qū)動(dòng)16*2的液晶顯示模塊LCM1602進(jìn)行時(shí)間顯示。8086CPU82558

9、25982531602驅(qū)動(dòng)產(chǎn)生中斷控制中斷源控制控制 第二章 系統(tǒng)硬件設(shè)計(jì)在本章中,將分模塊對本次設(shè)計(jì)的硬件設(shè)計(jì)進(jìn)行簡述,分塊介紹系統(tǒng)的主要功能及連線方式。2.1 8255與CPU之間的連接關(guān)系 通過CPU與8255的讀寫控制線對接,有效的控制接口芯片的輸入輸出狀態(tài),用第11和12根地址線再加上2-4譯碼器的的Y0腳接8255片選,為8255的A,B,C及控制口分配了可靠的地址。將8086的低八位數(shù)據(jù)線與8255數(shù)據(jù)端對接,為8255的輸入輸出提供數(shù)據(jù)。由于為芯片提供的都是偶地址,系統(tǒng)默認(rèn)訪問低八位的數(shù)據(jù)線。具體連線圖見右圖:2.2 8253與周邊電路的連接關(guān)系在系統(tǒng)中定時(shí)/計(jì)數(shù)芯片8253主

10、要與CPU及中斷擴(kuò)展芯片8259之間存在著連接關(guān)系。同8255,8253的讀寫控制線與CPU的讀寫控制線對接,正確控制CPU對8253的讀寫控制(本次設(shè)計(jì)只用到了CPU往8253中寫入數(shù)據(jù),沒用到讀出狀態(tài)的功能),第2和3位數(shù)據(jù)/地址復(fù)用線加上譯碼器的Y1端為8253的定時(shí)器0,1,2及控制口確定了可靠的地址(僅用到T0及控制地址),CPU低八位數(shù)據(jù)線為控制8253提供數(shù)據(jù)。通過CLK0端引入時(shí)鐘發(fā)生器所產(chǎn)生的標(biāo)準(zhǔn)時(shí)鐘(本設(shè)計(jì)采用10KHZ的外部時(shí)鐘),將OUT0接至8259的IR0引腳上,作為中斷源。具體電路如上示:2.3 8259與周邊電路連接關(guān)系為了對8259進(jìn)行合理分配奇、偶地址,從C

11、PU引入了第A13作為地址線,再加上譯碼器的Y2端作為片選信號(hào),8259獲得了兩個(gè)可靠的地址。同8255與8253相似8086同樣靠低八位的數(shù)據(jù)線,與8259進(jìn)行數(shù)據(jù)交換。IR0為8253的計(jì)數(shù)輸出端,8259通過檢測IR一組引腳的輸入情況,經(jīng)過中斷判優(yōu)以后,對當(dāng)前優(yōu)先級(jí)最高的中斷進(jìn)行響應(yīng),同時(shí)向CPU發(fā)送INTR信號(hào)請求中斷,在可屏蔽中斷允許的情況下CPU對其進(jìn)行響應(yīng),返回INTA非的信號(hào),8259此時(shí)發(fā)出當(dāng)中斷的中斷類型號(hào)給8086。程序跳到中斷子程序的入口地址處去執(zhí)行中斷操作。具體電路連線如右圖所示:2.4 液晶顯示模塊與8255之間的連線關(guān)系液晶顯示模塊1602的數(shù)據(jù)線接在8255的A

12、口上,通過對A口進(jìn)行讀寫操作,為顯示模塊提供控制指令及顯示數(shù)據(jù)。8255的PC0和PC1分別接1602的RS(指令/數(shù)據(jù)控制腳)和EN(使能腳)上,控制指令/數(shù)據(jù)的輸入。其它引腳按典型接法接線,要說明的是,本次對1602只進(jìn)行了寫的操作,故將讀寫控制腳接低電平。通過延時(shí)的方式來解決1602讀寫操作忙的問題(具體時(shí)序見第三章 系統(tǒng)軟件設(shè)計(jì))。連線圖如右示:2.5 地址譯碼器與按鍵在本次設(shè)計(jì)中,由于有多片芯片要進(jìn)行地址編碼,使用了一片2-4譯碼器74LS139進(jìn)行譯碼,使地址編碼更加的方便。使用的CPU地址端口為第9和10號(hào)地址線,輸出的Y0,Y1,Y2分別接8255,8253,8259。由于設(shè)計(jì)

13、要求,在本設(shè)計(jì)中進(jìn)行了按鍵設(shè)計(jì),其電路簡單,當(dāng)K未按下時(shí)輸出為高電平,當(dāng)K按下時(shí)輸入給8255PB0口一個(gè)低電平,系統(tǒng)通過檢測這一引腳是否為低電平來判斷系統(tǒng)是否開始從當(dāng)前時(shí)間開始計(jì)時(shí)。具體設(shè)計(jì)電路圖見2.6總體硬件電路圖。2.6 系統(tǒng)總體硬件電路圖第三章 系統(tǒng)軟件設(shè)計(jì)3.1 編址及控制字的確定3.1.1 編址按照第二章硬件設(shè)計(jì)電路中,CPU對8253,8255,8259進(jìn)行的地址分配地址(僅為在編程過程過要使用的地址進(jìn)行編制),本設(shè)計(jì)所用編址無用位均置0;8253 定時(shí)器0的地址:0200H;控制口:020CH8255 A口地址:0;B口地址:0800H; C口地址:1000H;控制口:180

14、0H8259 奇地址:2400H; 3.1.2 控制字根據(jù)系統(tǒng)的需要,合理選擇各芯片的工作方式。8253:選取定時(shí)器0,采用先寫高八拉后寫低八的初值寫入方式,工作方式3方波發(fā)生器,采取二進(jìn)制的方式輸入初值,從而CWB36H8255:分別選取A,C口為輸出端口,B口為輸入端口均采用工作方式0簡單的輸入/輸出方式,故工作方式控制字為;B82H;同時(shí)要對PC0和PC1進(jìn)行復(fù)位和置位操作,其復(fù)位/置位控制字分別為:PCO復(fù)位/置位控制字為:0/01H;PC1口的置位/復(fù)位控制字:02H/03H8259:本設(shè)計(jì)中只有一片8259無從片,故無須寫入ICW3,不需要寫ICW4采用上升沿觸發(fā)的方式可得:ICW

15、1H12H;使用60H號(hào)中斷故ICW260H3.2 分塊子程序3.2.1 1602讀寫操作子程序如右圖所示,為1602液晶顯示的寫時(shí)序圖:1602的寫操作通過不同的時(shí)序進(jìn)行控制,可分為寫指令操作(子程序WRITECOM)和寫數(shù)據(jù)(子程序WRITEDATA)。寫指令的時(shí)序?yàn)?,先拉低RS小延時(shí)(約0.5ms)后將EN拉低,小延時(shí)后拉高電平輸入指令到液晶,然后拉低EN;寫數(shù)據(jù)的操作時(shí)序與之基本類似,只是先拉低指令/數(shù)據(jù)控制信號(hào)RS,然后拉低EN。最體子程序代碼如下示:WRITE_COM PROC FAR;1602寫指令子程序PUSH AX;將AX壓入堆棧PUSH CX;MOV DX,1800H;MO

16、V AL,1;OUT DX,AL;將PC0即RS拉為高電平MOV AL,2;將PC1即EN拉為低電平OUT DX,AL;MOV DX,0;從A口輸出數(shù)據(jù)POP AX;OUT DX,AL;CALL DELAY;短暫延時(shí)MOV AL,3;將EN拉高讓數(shù)據(jù)寫入液晶MOV DX,1800H;OUT DX,AL;CALL DELAY;MOV AL,2;拉低EN;OUT DX,AL;POP CX;POP AX;RET;WRITE_COM ENDPWRITE_DATA PROC FAR;1602寫數(shù)據(jù)子程序PUSH AX;將AX壓入堆棧PUSH CX;MOV DX,1800H;MOV AL,0;OUT DX

17、,AL;將PC0即RS拉為低電平MOV AL,2;將PC1即EN拉為低電平OUT DX,AL;MOV DX,0;從A口輸出數(shù)據(jù)POP AX;OUT DX,AL;CALL DELAY;短暫延時(shí)MOV AL,3;將EN拉高讓數(shù)據(jù)寫入液晶MOV DX,1800H;OUT DX,AL;CALL DELAY;MOV AL,2;拉低EN;OUT DX,AL;POP CX;POP AX;RET;WRITE_DATAENDP3.2.2中斷子程序中斷開始保護(hù)現(xiàn)場恢復(fù)中斷現(xiàn)場秒加1并輸出秒60秒清0分加1并輸出分60分清0時(shí)加1并輸出時(shí)24時(shí)清0恢復(fù)現(xiàn)場并開中斷中斷返回保護(hù)中斷現(xiàn)場NNNYYY中斷子程序的設(shè)計(jì)流程

18、圖如右示,進(jìn)入中斷后先保護(hù)現(xiàn)場(將寄存器CX,AX,DX及標(biāo)志寄存器中的內(nèi)容壓入堆棧中),然后恢復(fù)中斷現(xiàn)場(分別將秒時(shí)分計(jì)數(shù)寄存器BX,SI,DI的數(shù)值進(jìn)行恢復(fù)繼續(xù)計(jì)數(shù))然后進(jìn)行時(shí)鐘的操作,最后要保護(hù)中斷現(xiàn)場,即將時(shí)分計(jì)數(shù)寄存器BX,SI,DI的當(dāng)前數(shù)值進(jìn)行壓棧操作進(jìn)行保護(hù)方便下一次的計(jì)數(shù),接著要進(jìn)行現(xiàn)場的恢復(fù)(對寄存器CX,AX,DX及標(biāo)志寄存器進(jìn)行彈棧操作,并進(jìn)行開啟中斷方便下一次中斷的到來)。具體子程序設(shè)計(jì)如下:TIMER PROC FARPUSH CX;保護(hù)現(xiàn)場PUSH AX;PUSH DX;PUSHF;POP BX;恢復(fù)秒計(jì)數(shù)寄存器POP SI;恢復(fù)分計(jì)數(shù)寄存器POP DI;恢復(fù)時(shí)計(jì)

19、數(shù)寄存器INC BX; 秒加一操作MOV AL,80H+40H+0AH;寫指令給1602進(jìn)行輸出定位CALL WRITE_COMMOV AX,BX;AAD;BCD碼調(diào)整指令MOV CX,10;DIV CX; AX除以10得當(dāng)前秒的十位和個(gè)位CALL WRITE_DATA ;寫入秒十位MOV AL,AH;CALL WRITE_DATA;寫入秒個(gè)位CMP BX,60;比較是否到了60JNZ EXIT; 不是60跳到EXIT的位置MOV BX,0;秒清0INC SI;分加1MOV AL,80H+40H+08H;寫指令給1602進(jìn)行輸出定位CALL WRITE_COMMOV AX,SI;AAD;BCD

20、碼調(diào)整指令MOV CX,10;DIV CX; AX除以10得當(dāng)前分的十位和個(gè)位CALL WRITE_DATA ;寫入分的十位MOV AL,AH;CALL WRITE_DATA;寫入分的個(gè)位CMP SI,60;檢測分是否到60JNZ EXIT;不是60跳轉(zhuǎn)到EXIT處MOV SI,0;分清0INC DI;時(shí)加1MOV AL,80H+40H+05H;寫指令給1602進(jìn)行輸出定位CALL WRITE_COMMOV AX,DI;AAD;BCD碼調(diào)整指令MOV CX,10;DIV CX; AX除以10得當(dāng)前時(shí)的十位和個(gè)位CALL WRITE_DATA;寫入時(shí)的十位MOV AL,AH;CALL WRITE

21、_DATA;寫入時(shí)的個(gè)位CMP DI,24;檢測時(shí)是否為24JNZ EXIT;跳到公共點(diǎn)EXITMOV SI,0;時(shí)清零EXIT:PUSH DI; 保護(hù)中斷現(xiàn)場 PUSH SI; PUSH BX;POP DX;恢復(fù)現(xiàn)場 POP AX; POP CX; STI;開啟中斷 IRET;中斷返回TIMER ENDP3.3 主程序設(shè)計(jì)主程序的主要功能是:1. 完成各主要芯片的初始化;2. 完成液晶顯示模塊的初始化;開始8255初始化8253初始化8259初始化1602初始化檢測K0等待中斷NY3. 檢測開關(guān)按鍵是否按下;4. 實(shí)時(shí)檢測有無可屏蔽中斷其主要流程如右圖所示:具體設(shè)計(jì)代碼如下:START: M

22、OV AX,DATAS MOV DS,AX MOV AL,82H;8255初始化MOV DX,1800HOUT DX,AL;MOV AL,36H;8253初始化MOV DX,020CH;OUT DX,AL;MOV AL,27H;MOV DX,0200HOUT DX,AL;MOV AL,10H;OUT DX,AL;MOV AL,12H;8259初始化MOV DX,0204H;OUT DX,AL;MOV AL,60H;OUT DX,AL;MOV AL,60H;將TIMER對應(yīng)的60號(hào)中斷寫入中斷向量表,本設(shè)計(jì)采用DOS功能調(diào)用法寫入MOV AH,25H;MOV CX,SEG TIMER;MOV D

23、S,CX;MOV DX,OFFSET TIMER;INT 21H;MOV AL,38H;設(shè)置1602為16*2行 5*7點(diǎn)陣CALL WRITE_COM;MOV AL,0BH;開顯示,不顯示光標(biāo),光標(biāo)不閃爍CALL WRITE_COM;MOV AL,06H;指針自動(dòng)加一,整屏不移動(dòng)CALL WRITE_COM;MOV AL,1;清屏指令CALL WRITE_COM;MOV AL,80H+40H+05H;在1602的第二行第5個(gè)位置寫入數(shù)據(jù),正好在1602的正中位置CALL WRITE_COM;MOV CX,8;MOV SI,-1;AA1:INC SI;將BUF里邊的內(nèi)容寫入1602,其初始化完

24、成MOV AL,BUFSI;CALL WRITE_DATA;LOOP AA1;MOV BX,0;MOV SI,0;MOV DI,0;AA2:MOV DX,0800H;檢測按鍵K是否按下IN AL,DX;TEST AL,1;JNZ AA2 ;不為0表明K未按下跳轉(zhuǎn) STI ;開中斷JMP $;等待中斷總結(jié)與致謝:經(jīng)過一周的微機(jī)原理及應(yīng)用課程設(shè)計(jì),深化了我對微機(jī)原理及其接口技術(shù)的理解與認(rèn)識(shí)。在接到課到課題以后我先對設(shè)計(jì)的要求進(jìn)行了分析,通過方案的比校最終確定了所要使用的芯片,然后開始利用PROTEL 99進(jìn)行硬件設(shè)計(jì),在硬件設(shè)計(jì)完成后開始著手程序的設(shè)計(jì),并成功運(yùn)行原代碼的書寫,最后完成了文檔的制作

25、。在這一周的實(shí)習(xí)時(shí)間內(nèi)讓我受益良多,不僅讓我平時(shí)所學(xué)的內(nèi)容在本次設(shè)計(jì)中得到了應(yīng)用,也讓我更熟悉了各主要芯片的工作方式,同時(shí)通過文檔的制作也讓我在文檔的制作上有了一定的進(jìn)步,這將為我以后的畢業(yè)設(shè)計(jì)和以后的工作奠定良好的基礎(chǔ)。在此首先要感謝我的課程設(shè)計(jì)指導(dǎo)老師王南蘭老師,她在設(shè)計(jì)之前對設(shè)計(jì)的要求與實(shí)現(xiàn)方式進(jìn)行了詳細(xì)的說明,為我的設(shè)計(jì)方案提供了思路;也為我們的文檔設(shè)計(jì)提供了模板,讓我在文檔制作時(shí)更具有方向性和標(biāo)準(zhǔn)性。其次要感謝的是我的微機(jī)原理及接口技術(shù)的任課老師張曉虎老師,他在這一學(xué)期內(nèi)教會(huì)了我程序設(shè)計(jì)的方法及對各主要芯片應(yīng)用與控制,也教會(huì)了我一個(gè)完整的去做一個(gè)課題設(shè)計(jì)的步驟。再次向兩位老師表示衷心

26、的感謝!但是,這次的實(shí)習(xí)唯一感到遺憾的是,由于實(shí)驗(yàn)器材的限制,也無法做出直觀可見的仿真結(jié)果,所以這次的設(shè)計(jì)僅是基于理想化的設(shè)計(jì)。參考文獻(xiàn):1 彭楚武,張志文,等,微機(jī)原理與接口技術(shù).湖南大學(xué)出版社,20042 周秀清,周荷琴 .微型計(jì)算機(jī)原理與接口技術(shù).合肥:中國科技大學(xué)出版社,19993 李芷主編.微機(jī)原理與接口技術(shù).北京:電子工業(yè)出版社,20024 楊路明.微型計(jì)算機(jī)系統(tǒng)及應(yīng)用.長沙:中南工業(yè)大學(xué)出版社,19945 錢曉捷,陳濤.微型計(jì)算機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,19996 朱德森,溫鵬.微型計(jì)算機(jī)原理及接口技術(shù).武漢:華中理工大學(xué)出版社,19957 朱定華.微機(jī)原理與接口技

27、術(shù).北京:北方交通大學(xué)出版社,清華大學(xué)出版社,20028 謝維達(dá),李玲玲編著.微型計(jì)算機(jī)原理與系統(tǒng).北京:北京希望電子出版社,20039 沈美明,溫冬嬋.IBM-PC匯編語言程序設(shè)計(jì)(第二版).北京:清華大學(xué)出版社,200310 李廣軍,王厚軍.實(shí)用接口技術(shù).成都:電子科技大學(xué)出版社,1998附錄:源程序代碼:DATAS SEGMENT BUF DB '00:00:00','$'此處輸入數(shù)據(jù)段代碼 DATAS ENDSSTACKS SEGMENT ;此處輸入堆棧段代碼STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATA

28、S,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX MOV AL,82H;8255初始化MOV DX,1800HOUT DX,AL;MOV AL,36H;8253初始化MOV DX,020CH;OUT DX,AL;MOV AL,27H;MOV DX,0200HOUT DX,AL;MOV AL,10H;OUT DX,AL;MOV AL,12H;8259初始化MOV DX,0204H;OUT DX,AL;MOV AL,60H;OUT DX,AL;MOV AL,60H;將TIMER對應(yīng)的60號(hào)中斷寫入中斷向量表,本設(shè)計(jì)采用DOS功能調(diào)用法寫入MOV AH,25H;MOV

29、 CX,SEG TIMER;MOV DS,CX;MOV DX,OFFSET TIMER;INT 21H;MOV AL,38H;設(shè)置1602為16*2行 5*7點(diǎn)陣CALL WRITE_COM;MOV AL,0BH;開顯示,不顯示光標(biāo),光標(biāo)不閃爍CALL WRITE_COM;MOV AL,06H;指針自動(dòng)加一,整屏不移動(dòng)CALL WRITE_COM;MOV AL,1;清屏指令CALL WRITE_COM;MOV AL,80H+40H+05H;在1602的第二行第5個(gè)位置寫入數(shù)據(jù),正好在1602的正中位置CALL WRITE_COM;MOV CX,8;MOV SI,-1;AA1:INC SI;將B

30、UF里邊的內(nèi)容寫入1602,其初始化完成MOV AL,BUFSI;CALL WRITE_DATA;LOOP AA1;MOV BX,0;MOV SI,0;MOV DI,0;AA2:MOV DX,0800H;檢測按鍵K是否按下IN AL,DX;TEST AL,1;JNZ AA2 ;不為0表明K未按下跳轉(zhuǎn) STI ;開中斷JMP $;等待中斷 DELAY PROC FARPUSH CX;AA3:MOV CX,50LOOP AA3;POP CX;RETDELAYENDPWRITE_COM PROC FAR;1602寫指令子程序PUSH AX;將AX壓入堆棧PUSH CX;MOV DX,1800H;MO

31、V AL,1;OUT DX,AL;將PC0即RS拉為高電平MOV AL,2;將PC1即EN拉為低電平OUT DX,AL;MOV DX,0;從A口輸出數(shù)據(jù)POP AX;OUT DX,AL;CALL DELAY;短暫延時(shí)MOV AL,3;將EN拉高讓數(shù)據(jù)寫入液晶MOV DX,1800H;OUT DX,AL;CALL DELAY;MOV AL,2;拉低EN;OUT DX,AL;POP CX;POP AX;RET;WRITE_COM ENDPWRITE_DATA PROC FAR;1602寫指令子程序PUSH AX;將AX壓入堆棧PUSH CX;MOV DX,1800H;MOV AL,0;OUT DX,AL;將PC0即RS拉為低電平MOV AL,2;將PC1即EN拉為低電平OUT DX,AL;M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論