基于8086的電子時鐘設(shè)計(jì)(匯編語音)_第1頁
基于8086的電子時鐘設(shè)計(jì)(匯編語音)_第2頁
基于8086的電子時鐘設(shè)計(jì)(匯編語音)_第3頁
基于8086的電子時鐘設(shè)計(jì)(匯編語音)_第4頁
基于8086的電子時鐘設(shè)計(jì)(匯編語音)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

..目錄RD"基于8086的電子時鐘設(shè)計(jì).doc"\fTOC\h\z\n\u\l"_Toc216882756"摘要……………………1\l"_Toc216882757"Abstract…………………1\l"_Toc216882758"第一章電子鐘設(shè)計(jì)總體方案設(shè)計(jì)……………………2\l"_Toc216882759"1.1設(shè)計(jì)目的………………………2\l"_Toc216882760"1.2設(shè)計(jì)要求………………………2\l"_Toc216882761"1.3方案比較………………………2\l"_Toc216882762"1.3.1非中斷方式與中斷方式的比較………2\l"_Toc216882763"1.3.2LED顯示與液晶顯的比較……………3\l"_Toc216882764"1.4總體方案設(shè)計(jì)思路……………3\l"_Toc216882765"第二章系統(tǒng)硬件設(shè)計(jì)…………………4\l"_Toc216882766"2.18255與CPU之間的連接關(guān)系………………4\l"_Toc216882767"2.28253與周邊電路的連接關(guān)系…………………4\l"_Toc216882768"2.38259與周邊電路連接關(guān)系……………………5\l"_Toc216882769"2.4液晶顯示模塊與8255之間的連線關(guān)系……5\l"_Toc216882770"2.5地址譯碼器與按鍵……………6\l"_Toc216882771"2.6系統(tǒng)總體硬件電路圖…………6\l"_Toc216882772"第三章系統(tǒng)軟件設(shè)計(jì)…………………7\l"_Toc216882773"3.1編址及控制字的確定…………7\l"_Toc216882774"3.1.1編址……………………7\l"_Toc216882775"3.1.2控制字…………………7\l"_Toc216882776"3.2分塊子程序……………………7\l"_Toc216882777"3.2.11602讀寫操作子程序…………………7\l"_Toc216882778"中斷子程序………………9\l"_Toc216882779"3.3主程序設(shè)計(jì)……………………11\l"_Toc216882780"總結(jié)與致謝:…………13\l"_Toc216882781"參考文獻(xiàn):……………14\l"_Toc216882782"附錄:…………………15..摘要本設(shè)計(jì)以微機(jī)原理與接口技術(shù)為基礎(chǔ),以8086CPU為核心,利用INTER8253可編程定時/計(jì)數(shù)器,通過引入時鐘發(fā)生器產(chǎn)生標(biāo)準(zhǔn)時鐘進(jìn)行精準(zhǔn)定時;經(jīng)定時器產(chǎn)生中斷源,采用可編程中斷控制器8259A進(jìn)行中斷擴(kuò)展,用可屏蔽中斷方式進(jìn)行時間的采集;以可編程并行I/O接口芯片8255A擴(kuò)展接口,驅(qū)動MSC1602液晶模塊進(jìn)行時間顯示。第一章電子鐘設(shè)計(jì)總體方案設(shè)計(jì)1.1設(shè)計(jì)目的電子鐘是一種基于微電子技術(shù)實(shí)現(xiàn)時、分、秒計(jì)時的裝置,與機(jī)械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。通過該題目的設(shè)計(jì)和分析,學(xué)習(xí)微機(jī)軟、硬件系統(tǒng)設(shè)計(jì)開發(fā)的過程,加深微機(jī)原理及其應(yīng)用課程基礎(chǔ)知識的理解和綜合運(yùn)用能力,熟悉集成電路芯片的使用方法,熟悉微機(jī)編程及接口電路,學(xué)會體會工程實(shí)際設(shè)計(jì)過程,培養(yǎng)學(xué)生獨(dú)立解決實(shí)際工程問題的綜合能力。初步得到用匯編語言書寫程序的訓(xùn)練,全面培養(yǎng)程序設(shè)計(jì)的分析、設(shè)計(jì)、編測試及文檔規(guī)范書寫的能力,得到運(yùn)用匯編語言的綜合訓(xùn)練,提高解決實(shí)際問題的能力。1.2設(shè)計(jì)任務(wù)通過該題目的設(shè)計(jì)過程,可以初步掌握匯編語言的運(yùn)用、軟件開發(fā)方法并提高解決實(shí)際問題的綜合能力。電子時鐘實(shí)際是一個多重的定時技術(shù)系統(tǒng)。對于秒、分技術(shù)系統(tǒng),逢60進(jìn)1,即當(dāng)秒計(jì)數(shù)到60時,秒計(jì)數(shù)器向分計(jì)數(shù)器輸入一個計(jì)數(shù)脈沖;而當(dāng)分計(jì)數(shù)器計(jì)數(shù)到60時,向小時計(jì)數(shù)器輸入一個計(jì)數(shù)脈沖。當(dāng)小時計(jì)數(shù)器逢24進(jìn)1.把秒計(jì)數(shù)器、分計(jì)數(shù)器和小時計(jì)數(shù)器的內(nèi)容通過七段數(shù)碼管或其他芯片顯示出來,就完成了時間信息的輸出。本課程設(shè)計(jì)要求利用8086系統(tǒng)模擬電子時鐘結(jié)構(gòu),完成以下設(shè)計(jì)任務(wù):1、時間初值輸入:利用鍵盤輸入時間初值;2、電子鐘計(jì)數(shù):電子鐘通過計(jì)數(shù)器自動計(jì)數(shù),實(shí)現(xiàn)時間的自動更新;3、時間顯示:可選用LED七段數(shù)碼管輸出時間,顯示給用戶;4、程序采用匯編語言在PC機(jī)上完成;5、完成復(fù)核學(xué)習(xí)要求的設(shè)計(jì)計(jì)算說明書。1.3設(shè)計(jì)要求1、利用Intel8086CPU及其相應(yīng)的外圍擴(kuò)展電路及其接口電路,設(shè)計(jì)系統(tǒng)硬件原理圖,并繪制于2號工程圖紙。2、給出程序的設(shè)計(jì)思路,設(shè)計(jì)系統(tǒng)軟件流程框圖,并繪制于2號工程圖紙。3、完成設(shè)計(jì)計(jì)算說明書。1.3方案比較為實(shí)現(xiàn)設(shè)計(jì)要求,在8086微機(jī)系統(tǒng)中實(shí)現(xiàn)計(jì)時功能可有多種方式,同時實(shí)現(xiàn)顯示的方式也有多種,現(xiàn)主要比較計(jì)時方式中的中斷與非中斷方式,及顯示常用的LED顯示與液晶顯示。1.3.1非中斷方式與中斷方式的比較在非中斷方式設(shè)計(jì)常使用的方式為查詢法,查詢法的設(shè)計(jì),可將定時/計(jì)數(shù)器8253的OUT引腳接至并行I/O擴(kuò)展芯片8255的PA,PB,PC的任一口上,CPU通過不斷的檢測該引腳上的高低電平變化,來進(jìn)行計(jì)數(shù)。該方式的優(yōu)點(diǎn):實(shí)現(xiàn)思路相對簡單;由于不要引入中斷則可不用中斷擴(kuò)展芯片8259電路相對簡單;該方式的缺點(diǎn):由于CPU要不斷的去檢測單一引腳高低電平的變化,占用的時間比較長,利用率較低;與此同時,CPU要進(jìn)行數(shù)據(jù)的運(yùn)算與控制數(shù)據(jù)的傳輸,如果二者沖突,可能會發(fā)生計(jì)時不準(zhǔn)的現(xiàn)象。中斷方式的設(shè)計(jì)思路,將定時/計(jì)數(shù)器8253的OUT腳接至中斷擴(kuò)展芯片8259的IR引腳上,定時器產(chǎn)生相同頻率的計(jì)數(shù)脈沖,形成中斷源。8259再通過INTR引腳向CPU發(fā)出中斷請求信號,CPU通過中斷檢測進(jìn)行計(jì)數(shù)/計(jì)時。該方式的主要缺點(diǎn):由于芯片8259的引進(jìn),使電路相對復(fù)雜;該方式的主要優(yōu)點(diǎn)是:用中斷的方式可以大大提高CPU的利用效率,同時可以在該系統(tǒng)上進(jìn)行更多功能的擴(kuò)展,同時用中斷的方式進(jìn)行計(jì)數(shù)/計(jì)時,計(jì)時更加的準(zhǔn)確可靠?;谝陨系目紤]本設(shè)計(jì),采用電路稍微復(fù)雜,但可靠性強(qiáng),利用效率高的中斷方式。1.3.2LED顯示與液晶顯的比較為完成本設(shè)計(jì)的要求,若采用LED則需6塊以上,可以采用二片8255來驅(qū)動動這六片LED進(jìn)行靜態(tài)顯示。也可以采用動態(tài)掃描的方式,用一片8255加鎖存器〔如74LS573來進(jìn)行動態(tài)顯示。若采用液晶顯示,則只需用一片8255芯片進(jìn)行接口的擴(kuò)展〔具體擴(kuò)展方案將在下面進(jìn)行介紹,可以得到較為滿意的顯示效果,但操作的技巧性要求相對較高,成本相對較高。不論從硬件電路驅(qū)動的復(fù)雜性,還是從軟件設(shè)計(jì)的簡潔性及整個系統(tǒng)的外觀來看,時尚的液晶顯示更能滿足系統(tǒng)的需求。鑒于以上考慮,本次設(shè)計(jì)采用操作要求相對較高的液晶進(jìn)行數(shù)碼顯示。1.4總體方案設(shè)計(jì)思路本方按主要設(shè)計(jì)思路如右下圖所示:以8086CPU最小系統(tǒng)為核心,控制可編程定時/計(jì)數(shù)器INTER8253,可編程中斷控制器8259A,可編程并行I/O接口芯片8255A。通過8253的輸出記數(shù)脈沖為8259產(chǎn)生中斷源,8259將中斷信號反饋到CPU,從而產(chǎn)生可屏蔽中斷的申請信號,在CPU的合理響應(yīng)下進(jìn)行計(jì)數(shù),通過8255驅(qū)動16*2的液晶顯示模塊LCM1602進(jìn)行時間顯示。8086CPU8086CPU8255825982531602驅(qū)動產(chǎn)生中斷控制中斷源控制控制第二章系統(tǒng)硬件設(shè)計(jì)在本章中,將分模塊對本次設(shè)計(jì)的硬件設(shè)計(jì)進(jìn)行簡述,分塊介紹系統(tǒng)的主要功能及連線方式。2.18255與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.28253與周邊電路的連接關(guān)系在系統(tǒng)中定時/計(jì)數(shù)芯片8253主要與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的定時器0,1,2及控制口確定了可靠的地址〔僅用到T0及控制地址,CPU低八位數(shù)據(jù)線為控制8253提供數(shù)據(jù)。通過CLK0端引入時鐘發(fā)生器所產(chǎn)生的標(biāo)準(zhǔn)時鐘〔本設(shè)計(jì)采用10KHZ的外部時鐘,將OUT0接至8259的IR0引腳上,作為中斷源。具體電路如上示:2.38259與周邊電路連接關(guān)系為了對8259進(jìn)行合理分配奇、偶地址,從CPU引入了第A13作為地址線,再加上譯碼器的Y2端作為片選信號,8259獲得了兩個可靠的地址。同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ìn)行響應(yīng),同時向CPU發(fā)送INTR信號請求中斷,在可屏蔽中斷允許的情況下CPU對其進(jìn)行響應(yīng),返回INTA非的信號,8259此時發(fā)出當(dāng)中斷的中斷類型號給8086。程序跳到中斷子程序的入口地址處去執(zhí)行中斷操作。具體電路連線如右圖所示:2.4液晶顯示模塊與8255之間的連線關(guān)系液晶顯示模塊1602的數(shù)據(jù)線接在8255的A口上,通過對A口進(jìn)行讀寫操作,為顯示模塊提供控制指令及顯示數(shù)據(jù)。8255的PC0和PC1分別接1602的RS〔指令/數(shù)據(jù)控制腳和EN〔使能腳上,控制指令/數(shù)據(jù)的輸入。 其它引腳按典型接法接線,要說明的是,本次對1602只進(jìn)行了寫的操作,故將讀寫控制腳接低電平。通過延時的方式來解決1602讀寫操作忙的問題〔具體時序見第三章系統(tǒng)軟件設(shè)計(jì)。連線圖如右示:2.5地址譯碼器與按鍵在本次設(shè)計(jì)中,由于有多片芯片要進(jìn)行地址編碼,使用了一片2-4譯碼器74LS139進(jìn)行譯碼,使地址編碼更加的方便。使用的CPU地址端口為第9和10號地址線,輸出的Y0,Y1,Y2分別接8255,8253,8259。 由于設(shè)計(jì)要求,在本設(shè)計(jì)中進(jìn)行了按鍵設(shè)計(jì),其電路簡單,當(dāng)K未按下時輸出為高電平,當(dāng)K按下時輸入給8255PB0口一個低電平,系統(tǒng)通過檢測這一引腳是否為低電平來判斷系統(tǒng)是否開始從當(dāng)前時間開始計(jì)時。 具體設(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定時器0的地址:0200H;控制口:020CH8255A口地址:0;B口地址:0800H;C口地址:1000H;控制口:1800H8259奇地址:2400H;3.1.2控制字根據(jù)系統(tǒng)的需要,合理選擇各芯片的工作方式。8253:選取定時器0,采用先寫高八拉后寫低八的初值寫入方式,工作方式3—方波發(fā)生器,采取二進(jìn)制的方式輸入初值,從而CW=00110110B=36H8255:分別選取A,C口為輸出端口,B口為輸入端口均采用工作方式0—簡單的輸入/輸出方式,故工作方式控制字為;10000010B=82H;同時要對PC0和PC1進(jìn)行復(fù)位和置位操作,其復(fù)位/置位控制字分別為:PCO復(fù)位/置位控制字為:0/01H;PC1口的置位/復(fù)位控制字:02H/03H8259:本設(shè)計(jì)中只有一片8259無從片,故無須寫入ICW3,不需要寫ICW4采用上升沿觸發(fā)的方式可得:ICW1=00010010H=12H;使用60H號中斷故ICW2=60H3.2分塊子程序3.2.11602讀寫操作子程序如右圖所示,為1602液晶顯示的寫時序圖:1602的寫操作通過不同的時序進(jìn)行控制,可分為寫指令操作〔子程序WRITE-COM和寫數(shù)據(jù)〔子程序WRITE-DATA。寫指令的時序?yàn)?先拉低RS小延時〔約0.5ms后將EN拉低,小延時后拉高電平輸入指令到液晶,然后拉低EN;寫數(shù)據(jù)的操作時序與之基本類似,只是先拉低指令/數(shù)據(jù)控制信號RS,然后拉低EN。最體子程序代碼如下示:WRITE_COMPROCFAR ;1602寫指令子程序PUSHAX ;將AX壓入堆棧PUSHCX;MOVDX,1800H;MOVAL,1 ; OUTDX,AL ;將PC0即RS拉為高電平MOVAL,2 ;將PC1即EN拉為低電平 OUTDX,AL;MOVDX,0 ;從A口輸出數(shù)據(jù)POPAX; OUTDX,AL; CALLDELAY ;短暫延時MOVAL,3 ;將EN拉高讓數(shù)據(jù)寫入液晶MOVDX,1800H; OUTDX,AL; CALLDELAY;MOVAL,2 ;拉低EN; OUTDX,AL;POPCX;POPAX; RET;WRITE_COMENDPWRITE_DATAPROCFAR ;1602寫數(shù)據(jù)子程序PUSHAX ;將AX壓入堆棧PUSHCX;MOVDX,1800H;MOVAL,0 ; OUTDX,AL ;將PC0即RS拉為低電平MOVAL,2 ;將PC1即EN拉為低電平 OUTDX,AL;MOVDX,0 ;從A口輸出數(shù)據(jù)POPAX; OUTDX,AL; CALLDELAY ;短暫延時MOVAL,3 ;將EN拉高讓數(shù)據(jù)寫入液晶MOVDX,1800H; OUTDX,AL; CALLDELAY;MOVAL,2 ;拉低EN; OUTDX,AL;POPCX;POPAX; RET;WRITE_DATA ENDP3.2.2中斷子程序中斷開始保護(hù)現(xiàn)場中斷開始保護(hù)現(xiàn)場恢復(fù)中斷現(xiàn)場秒加1并輸出秒=60秒清0分加1并輸出分=60分清0時加1并輸出時=24時清0恢復(fù)現(xiàn)場并開中斷中斷返回保護(hù)中斷現(xiàn)場NNNYYY具體子程序設(shè)計(jì)如下:TIMERPROCFARPUSHCX;保護(hù)現(xiàn)場PUSHAX;PUSHDX;PUSHF;POPBX; 恢復(fù)秒計(jì)數(shù)寄存器POPSI; 恢復(fù)分計(jì)數(shù)寄存器POPDI; 恢復(fù)時計(jì)數(shù)寄存器INCBX;秒加一操作MOVAL,80H+40H+0AH;寫指令給1602進(jìn)行輸出定位 CALLWRITE_COMMOVAX,BX;AAD; BCD碼調(diào)整指令MOVCX,10;DIVCX;AX除以10得當(dāng)前秒的十位和個位 CALLWRITE_DATA;寫入秒十位MOVAL,AH; CALLWRITE_DATA;寫入秒個位CMPBX,60;比較是否到了60 JNZEXIT;不是60跳到EXIT的位置MOVBX,0;秒清0INCSI;分加1MOVAL,80H+40H+08H;寫指令給1602進(jìn)行輸出定位 CALLWRITE_COMMOVAX,SI;AAD; BCD碼調(diào)整指令MOVCX,10;DIVCX;AX除以10得當(dāng)前分的十位和個位 CALLWRITE_DATA;寫入分的十位MOVAL,AH; CALLWRITE_DATA;寫入分的個位CMPSI,60;檢測分是否到60 JNZEXIT;不是60跳轉(zhuǎn)到EXIT處MOVSI,0;分清0INCDI;時加1MOVAL,80H+40H+05H;寫指令給1602進(jìn)行輸出定位 CALLWRITE_COMMOVAX,DI;AAD; BCD碼調(diào)整指令MOVCX,10;DIVCX;AX除以10得當(dāng)前時的十位和個位 CALLWRITE_DATA;寫入時的十位MOVAL,AH; CALLWRITE_DATA;寫入時的個位CMPDI,24;檢測時是否為24 JNZEXIT;跳到公共點(diǎn)EXITMOVSI,0;時清零EXIT:PUSHDI;保護(hù)中斷現(xiàn)場PUSHSI;PUSHBX;POPDX;恢復(fù)現(xiàn)場POPAX;POPCX; STI;開啟中斷 IRET;中斷返回TIMERENDP3.3主程序設(shè)計(jì)主程序的主要功能是:完成各主要芯片的初始化;完成液晶顯示模塊的初始化;開始8255初始化開始8255初始化8253初始化8259初始化1602初始化檢測K=0等待中斷NY實(shí)時檢測有無可屏蔽中斷其主要流程如右圖所示:具體設(shè)計(jì)代碼如下:START:MOVAX,DATASMOVDS,AXMOVAL,82H ;8255初始化MOVDX,1800H OUTDX,AL;MOVAL,36H ;8253初始化MOVDX,020CH; OUTDX,AL;MOVAL,27H;MOVDX,0200H OUTDX,AL;MOVAL,10H; OUTDX,AL;MOVAL,12H ;8259初始化MOVDX,0204H; OUTDX,AL;MOVAL,60H; OUTDX,AL;MOVAL,60H ;將TIMER對應(yīng)的60號中斷寫入中斷向量表,本設(shè)計(jì)采用DOS功能調(diào)用法寫入MOVAH,25H;MOVCX,SEGTIMER;MOVDS,CX;MOVDX,OFFSETTIMER; INT21H;MOVAL,38H;設(shè)置1602為16*2行5*7點(diǎn)陣 CALLWRITE_COM;MOVAL,0BH;開顯示,不顯示光標(biāo),光標(biāo)不閃爍 CALLWRITE_COM;MOVAL,06H;指針自動加一,整屏不移動 CALLWRITE_COM;MOVAL,1; 清屏指令 CALLWRITE_COM;MOVAL,80H+40H+05H;在1602的第二行第5個位置寫入數(shù)據(jù),正好在1602的正中位置 CALLWRITE_COM;MOVCX,8;MOVSI,-1;AA1:INCSI; 將BUF里邊的內(nèi)容寫入1602,其初始化完成MOVAL,BUF[SI]; CALLWRITE_DATA; LOOPAA1;MOVBX,0;MOVSI,0;MOVDI,0;AA2:MOVDX,0800H; 檢測按鍵K是否按下 INAL,DX; TESTAL,1; JNZAA2 ;不為0表明K未按下跳轉(zhuǎn)STI;開中斷JMP$ ;等待中斷總結(jié)經(jīng)過一周的微機(jī)原理及應(yīng)用課程設(shè)計(jì),深化了我對微機(jī)原理及其接口技術(shù)的理解與認(rèn)識。在接到課到課題以后我先對設(shè)計(jì)的要求進(jìn)行了分析,通過方案的比校最終確定了所要使用的芯片,然后開始利用PROTEL99進(jìn)行硬件設(shè)計(jì),在硬件設(shè)計(jì)完成后開始著手程序的設(shè)計(jì),并成功運(yùn)行原代碼的書寫,最后完成了文檔的制作。在這一周的實(shí)習(xí)時間內(nèi)讓我受益良多,不僅讓我平時所學(xué)的內(nèi)容在本次設(shè)計(jì)中得到了應(yīng)用,也讓我更熟悉了各主要芯片的工作方式,同時通過文檔的制作也讓我在文檔的制作上有了一定的進(jìn)步,這將為我以后的畢業(yè)設(shè)計(jì)和以后的工作奠定良好的基礎(chǔ)。在此首先要感謝我的課程設(shè)計(jì)指導(dǎo)老師王南蘭老師,她在設(shè)計(jì)之前對設(shè)計(jì)的要求與實(shí)現(xiàn)方式進(jìn)行了詳細(xì)的說明,為我的設(shè)計(jì)方案提供了思路;也為我們的文檔設(shè)計(jì)提供了模板,讓我在文檔制作時更具有方向性和標(biāo)準(zhǔn)性。其次要感謝的是我的微機(jī)原理及接口技術(shù)的任課老師張曉虎老師,他在這一學(xué)期內(nèi)教會了我程序設(shè)計(jì)的方法及對各主要芯片應(yīng)用與控制,也教會了我一個完整的去做一個課題設(shè)計(jì)的步驟。再次向兩位老師表示衷心的感謝!但是,這次的實(shí)習(xí)唯一感到遺憾的是,由于實(shí)驗(yàn)器材的限制,也無法做出直觀可見的仿真結(jié)果,所以這次的設(shè)計(jì)僅是基于理想化的設(shè)計(jì)。附錄:源程序代碼:DATASSEGMENTBUFDB'00:00:00','$';此處輸入數(shù)據(jù)段代碼DATASENDSSTACKSSEGMENT;此處輸入堆棧段代碼STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVAL,82H ;8255初始化MOVDX,1800H OUTDX,AL;MOVAL,36H ;8253初始化MOVDX,020CH; OUTDX,AL;MOVAL,27H;MOVDX,0200H OUTDX,AL;MOVAL,10H; OUTDX,AL;MOVAL,12H ;8259初始化MOVDX,0204H; OUTDX,AL;MOVAL,60H; OUTDX,AL;MOVAL,60H ;將TIMER對應(yīng)的60號中斷寫入中斷向量表,本設(shè)計(jì)采用DOS功能調(diào)用法寫入MOVAH,25H;MOVCX,SEGTIMER;MOVDS,CX;MOVDX,OFFSETTIMER; INT21H;MOVAL,38H;設(shè)置1602為16*2行5*7點(diǎn)陣 CALLWRITE_COM;MOVAL,0BH;開顯示,不顯示光標(biāo),光標(biāo)不閃爍 CALLWRITE_COM;MOVAL,06H;指針自動加一,整屏不移動 CALLWRITE_COM;MOVAL,1; 清屏指令 CALLWRITE_COM;MOVAL,80H+40H+05H;在1602的第二行第5個位置寫入數(shù)據(jù),正好在1602的正中位置 CALLWRITE_COM;MOVCX,8;MOVSI,-1;AA1:INCSI; 將BUF里邊的內(nèi)容寫入1602,其初始化完成MOVAL,BUF[SI]; CALLWRITE_DATA; LOOPAA1;MOVBX,0;MOVSI,0;MOVDI,0;AA2:MOVDX,0800H; 檢測按鍵K是否按下 INAL,DX; TESTAL,1; JNZAA2 ;不為0表明K未按下跳轉(zhuǎn)STI;開中斷 JMP$ ;等待中斷DELAYPROCFARPUSHCX;AA3:MOVCX,50 LOOPAA3;POPCX; RETDELAY ENDPWRITE_COMPROCFAR ;1602寫指令子程序PUSHAX ;將AX壓入堆棧PUSHCX;MOVDX,1800H;MOVAL,1 ; OUTDX,AL ;將PC0即RS拉為高電平MOVAL,2 ;將PC1即EN拉為低電平 OUTDX,AL;MOVDX,0 ;從A口輸出數(shù)據(jù)POPAX; OUTDX,AL; CALLDELAY ;短暫延時MOV

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論