微機(jī)課程設(shè)計(jì).doc

上傳人:good****022 文檔編號(hào):116792764 上傳時(shí)間:2022-07-06 格式:DOC 頁(yè)數(shù):23 大小:193.51KB
收藏 版權(quán)申訴 舉報(bào) 下載
微機(jī)課程設(shè)計(jì).doc_第1頁(yè)
第1頁(yè) / 共23頁(yè)
微機(jī)課程設(shè)計(jì).doc_第2頁(yè)
第2頁(yè) / 共23頁(yè)
微機(jī)課程設(shè)計(jì).doc_第3頁(yè)
第3頁(yè) / 共23頁(yè)

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《微機(jī)課程設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《微機(jī)課程設(shè)計(jì).doc(23頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、目 錄1.課程設(shè)計(jì)任務(wù)書22.系統(tǒng)設(shè)計(jì)說明52.1建立簡(jiǎn)單微機(jī)系統(tǒng)的思路 52.2確定組成各部件的芯片 62.3存儲(chǔ)器芯片,接口芯片與系統(tǒng)總線連接63.系統(tǒng)詳細(xì)原理63.1系統(tǒng)簡(jiǎn)介 63.2 8088工作方式的簡(jiǎn)介 73.3 系統(tǒng)時(shí)鐘信號(hào) 83.4系統(tǒng)復(fù)位信號(hào) 83.5地址和數(shù)據(jù)總路線的分離 93.6 系統(tǒng)存儲(chǔ)器空間分配 93.7 I/O接口電路 93.8接口芯片和鍵盤的連接93.9 LED顯示器的工作方式 104硬件連接原理圖 115.軟件原理框圖及程序 115.1定義鍵值和左移顯示數(shù)據(jù)流程圖12 5.2計(jì)算器功能 125.3源程序部分145.3.1對(duì)應(yīng)鍵值的顯示145.3.2 計(jì)算器176

2、.主要參考文獻(xiàn) 22任務(wù)書題目名稱計(jì)時(shí)器(TIMER)學(xué)生學(xué)院專業(yè)班級(jí)姓 名學(xué) 號(hào)1、課程設(shè)計(jì)的內(nèi)容一. 設(shè)計(jì)要求本課程設(shè)計(jì)內(nèi)容包含兩個(gè)方面:系統(tǒng)硬件設(shè)計(jì)和軟件編程1 系統(tǒng)硬件設(shè)計(jì) 設(shè)計(jì)8088計(jì)算機(jī)系統(tǒng),系統(tǒng)包含CPU、EPROM、RAM、PIO、中斷控制器和定時(shí)器等芯片。 要求8088工作于最小模式;EPROM為16KB、RAM為16KB,其地址分別從0F0000H以及00000H開始;8259的地址為30H和31H;8255的地址為60H、61H、62H、63H、64H;8253定時(shí)器的地址為40H、41H、42H、43H。 顯示器采用六個(gè)8段數(shù)碼顯示器;鍵盤采用4 * 4矩陣形式,它們

3、由8255控制。 用35*35cm方格紙制圖。2 軟件編程內(nèi)容 顯示器工作于查詢方式,鍵盤工作于中斷方式。 16個(gè)按鍵定義的鍵值為:0 F ,按任意鍵在顯示器上顯示對(duì)應(yīng)鍵值。 從鍵盤輸入6個(gè)數(shù)字使其能夠在顯示器上從右到左逐位顯示。 實(shí)現(xiàn)計(jì)算功能:l 定義鍵盤按鍵:10個(gè)數(shù)字鍵(09);六個(gè)功能鍵:+、-、*、=、CLEAR。l 實(shí)現(xiàn)五位十進(jìn)制數(shù)以內(nèi)的連加、連減運(yùn)算。l 實(shí)現(xiàn)被除數(shù)(2位)、除數(shù)(1位)的十進(jìn)制連除運(yùn)算。二、課程設(shè)計(jì)的要求與數(shù)據(jù)(1)鞏固和加深對(duì)微機(jī)原理及應(yīng)用課程內(nèi)容的認(rèn)識(shí)和理解,提高應(yīng)用水平。(2)掌握匯編語言程序的編程方法。(3)熟悉鍵盤控制和七段數(shù)碼管的使用。三、課程設(shè)計(jì)應(yīng)

4、完成的工作3 完成課程設(shè)計(jì)提交設(shè)計(jì)報(bào)告一份。4 提交的設(shè)計(jì)報(bào)告內(nèi)容包括: 設(shè)計(jì)依據(jù)、系統(tǒng)詳細(xì)原理說明(11.5萬字)、系統(tǒng)原理圖 系統(tǒng)軟件框圖、設(shè)計(jì)的軟件等四、課程設(shè)計(jì)進(jìn)程安排序號(hào)設(shè)計(jì)各階段內(nèi)容地點(diǎn)起止日期1布置任務(wù)2熟悉各芯片的工作原理和引腳特性3構(gòu)建簡(jiǎn)單微機(jī)系統(tǒng)的思路,芯片的布局和排版4各芯片的連線五、應(yīng)收集的資料及主要參考文獻(xiàn)1 許立鋅等編.微型計(jì)算機(jī)原理及應(yīng)用.北京:機(jī)械工業(yè)出版社,20032.許立梓等編微型計(jì)算機(jī)原理及應(yīng)用 -習(xí)題解答、實(shí)驗(yàn)指導(dǎo)及課程設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2003發(fā)出任務(wù)書日期: 年 月 日 指導(dǎo)教師簽名:計(jì)劃完成日期: 年 月 日 基層教學(xué)單位責(zé)任人簽章:主管

5、院長(zhǎng)簽章: 2、系統(tǒng)設(shè)計(jì)說明2.1 構(gòu)建簡(jiǎn)單微機(jī)系統(tǒng)的思路 微型計(jì)算機(jī)由微處理器,存儲(chǔ)器,接口電路以及連接在這些部件上的總線組成。微處理器,存儲(chǔ)器和所有IO設(shè)備之間的信息交換都通過總線進(jìn)行。總線包括地址總線,數(shù)據(jù)總線和控制總線,他們始于CPU或終于CPU,現(xiàn)代微機(jī)大部分都是這種以總線為中心的結(jié)構(gòu)。8088CPU的地址數(shù)據(jù)總線AD15-AD0和地址狀態(tài)總線A16/S3-A19/S6是復(fù)用的,必須通過地址鎖存器把地址總線和數(shù)據(jù)總線分離??刂瓶偩€直接和8088CPU相連,這樣8088CPU就工作在最小工作方式。 微型計(jì)算機(jī)及外圍設(shè)備組成微型計(jì)算機(jī)系統(tǒng)的硬件,外圍設(shè)備必須通過接口電路才能與系統(tǒng)總線相連

6、,因此構(gòu)建一個(gè)基于8088CPU的簡(jiǎn)單微型計(jì)算機(jī)系統(tǒng)就是工作于最小工作方式的8088CPU系統(tǒng)總線上掛上一定規(guī)模的存儲(chǔ)器和接口電路,然后在把合適的外圍設(shè)備連接到接口電路上。一個(gè)基于8088CPU的簡(jiǎn)單微型計(jì)算機(jī)系統(tǒng)框圖如圖所示。圖中鍵盤與顯示器作為外圍設(shè)備通過接口芯片與系統(tǒng)總線相連。 AD0 . AD19 CPU WR RDM/IO 鎖存器 ROMRAM接口芯片鍵盤顯示器譯碼器譯碼器2.2確定組成各部件的芯片選擇芯片的原則是:要求芯片性能/性價(jià)比較高,市場(chǎng)可以買到。對(duì)于小型的微型計(jì)算機(jī)系統(tǒng),程序存儲(chǔ)器一般用EPROM,隨機(jī)存儲(chǔ)器一般采用SRAM。接口有簡(jiǎn)單接口(例如74LS244,74LS27

7、3)和可編程接口(例如8255A),根據(jù)需要選擇。2.3.存儲(chǔ)器芯片,接口芯片與系統(tǒng)總線的連接存儲(chǔ)器芯片,接口芯片與系統(tǒng)總線的連接就是如何把存儲(chǔ)器芯片和接口芯片掛到系統(tǒng)的三類總線上。存儲(chǔ)器芯片和接口芯片與數(shù)據(jù)總線的連接比較簡(jiǎn)單,因?yàn)槭呛?jiǎn)單系統(tǒng),對(duì)數(shù)據(jù)總線的負(fù)載能力沒有特別的要求,所以只要把存儲(chǔ)器芯片和接口芯片的數(shù)據(jù)引腳與數(shù)據(jù)總線相應(yīng)各位作并聯(lián)就可以。連接到芯片上的控制總線不多,常用的有IO/.RESET等信號(hào),這些信號(hào)線也都是與各芯片的有關(guān)引腳做并聯(lián)連接。存儲(chǔ)器芯片,接口芯片與地址總線的連接原則上是一樣的:低地址線與存儲(chǔ)器芯片或接口芯片的地址引腳直接并聯(lián)連接,用來作為芯片內(nèi)部單元的選擇,高位地

8、址線經(jīng)譯碼器譯碼后一般連接到芯片的片選端,作為芯片的選擇。一般高位地址線的低位部分作為譯碼器的譯碼輸入,高位部分則作為譯碼器譯碼的許可條件。由于8088CPU的端口地址采用獨(dú)立編址方式,為了區(qū)分是存儲(chǔ)器芯片地址還是接口芯片地址,一定要把IO/信號(hào)參與到芯片的片選端控制。3:系統(tǒng)詳細(xì)原理說明:3.1 系統(tǒng)簡(jiǎn)介用8088CPU構(gòu)成最小模式系統(tǒng)所需要的控制信號(hào)由CPU提供,如電路原理圖所示,該系統(tǒng)是由8088CPU,時(shí)鐘信號(hào)發(fā)生器8284A,地址鎖存器74LS373,數(shù)據(jù)緩沖器74LS245,存儲(chǔ)和I/O譯碼器74LS138以及存儲(chǔ)器和I/O接口等電路組成。系統(tǒng)所需要的控制信號(hào)等均由8088CPU直

9、接產(chǎn)生。其時(shí)鐘由8284A時(shí)鐘信號(hào)發(fā)生器提供,系統(tǒng)各部件間的信號(hào)均通過系統(tǒng)數(shù)據(jù)總線,地址總線和控制總線進(jìn)行傳輸。3.2 8088工作方式簡(jiǎn)介當(dāng)把8088的MN/引腳接到+5V時(shí),8088CPU工作于最小工作方式。所謂最小工作方式,就是系統(tǒng)中只有一個(gè)微處理器8088。在這種系統(tǒng)中所有的總線控制信號(hào)都直接由8088產(chǎn)生,系統(tǒng)中總線控制邏輯電路被減小到最小,這種方式適合于較小規(guī)模的應(yīng)用。最小方式下,24-31引腳功能:(1)中斷響應(yīng)信號(hào)(輸出,低電平有效)是CPU對(duì)外設(shè)的中斷請(qǐng)求的回答信號(hào)。對(duì)于8088來說,信號(hào)實(shí)際是位于連續(xù)周期中的兩個(gè)負(fù)脈沖,在每個(gè)中斷響應(yīng)周期的T2、T3和TW狀態(tài),為低電平。第

10、一個(gè)負(fù)脈沖通知外圍設(shè)備的接口,它發(fā)出的中斷請(qǐng)求已經(jīng)得到允許;外設(shè)接口收到第二個(gè)負(fù)脈沖后,將中斷類型碼送往數(shù)據(jù)總線。(2)ALE地址鎖存允許信號(hào)(輸出,高電平有效)ALE是CPU在每個(gè)總線周期的T1狀態(tài)發(fā)出的,其有效電平表示當(dāng)前在地址/數(shù)據(jù)復(fù)用線上輸出的是地址信息,利用它的下降沿把地址信號(hào)和信號(hào)鎖存在74LS373地址鎖存器中。ALE不能被浮置。(3)數(shù)據(jù)允許信號(hào)(輸出,低電平有效,三態(tài))有效表示CPU準(zhǔn)備好接受和發(fā)送數(shù)據(jù),是CPU提供雙向數(shù)據(jù)收發(fā)器74LS245的選通信號(hào),在每個(gè)訪問存儲(chǔ)器或訪問I/O周期,或中斷相應(yīng)周期均有效。在DMA下,被浮置為高阻態(tài)。(4)DT/數(shù)據(jù)收發(fā)信號(hào)(輸出,三態(tài))

11、在系統(tǒng)使用雙向收發(fā)器74LS245時(shí),用其控制數(shù)據(jù)的傳送方向。如果DT/為高電平,則進(jìn)行數(shù)據(jù)發(fā)送,如果DT/為低電平,則進(jìn)行數(shù)據(jù)接收.在DMA下,被浮置為高阻態(tài)。(5)/IO存儲(chǔ)器/IO控制信號(hào)(輸出,三態(tài))用于區(qū)分是訪問存儲(chǔ)器(低電平),還是訪問I/O(高電平),通常/IO被接至存儲(chǔ)器或接口芯片的片選端。當(dāng)DMA時(shí),被浮置為高阻態(tài)。(6)WR寫信號(hào)(輸出,低電平有效,三態(tài))WR有效時(shí),表示CPU正在執(zhí)行存儲(chǔ)器或訪問存儲(chǔ)器。在任何寫周期,WR只在T2、T3、TW有效,在DMA時(shí),WR被浮置為高阻態(tài)。(7)HOLD總線保持請(qǐng)求信號(hào)(輸入,高電平有效)它是系統(tǒng)中的其他總線主控部件向CPU發(fā)出的請(qǐng)求

12、占用總線的申請(qǐng)信號(hào)。(8)HLDA總線保持響應(yīng)信號(hào)(輸出,高電平有效)它是CPU對(duì)系統(tǒng)中其他總線主控部件向其請(qǐng)求總線使用權(quán)的響應(yīng)信號(hào)。3.3 8284時(shí)鐘信號(hào)發(fā)生器時(shí)鐘發(fā)生器8284除了提供頻率恒定的單相時(shí)鐘脈沖CLK給CPU外還具有系統(tǒng)復(fù)位信號(hào)RESET產(chǎn)生電路和準(zhǔn)備好信號(hào)READY控制電路。如果F/C接+5V,則由FEI輸入外加脈沖,如果F/C接地,由X1和X2連接的石英晶體震蕩器提供脈沖源,圖中有石英晶體振蕩器提供輸入脈沖給8284.3.4.系統(tǒng)復(fù)位信號(hào) 圖中,由R(560K)、C1(10UF)和D1同8284A組成了系統(tǒng)復(fù)位電路,當(dāng)系統(tǒng)上電工作時(shí),系統(tǒng)電源通過R、C1是RES端電位由低

13、變高,該信號(hào)經(jīng)8284A內(nèi)部電路處理后,輸出的RESET信號(hào)作為8088CPU的復(fù)位信號(hào)。 根據(jù)CPU 對(duì)RESET 信號(hào)的要求,系統(tǒng)上電后8284A輸出RESET由低電平變?yōu)楦唠娖降膹?fù)位時(shí)間要大于4個(gè)時(shí)鐘周期,因此合理選擇R、C1數(shù)值是確保8088CPU上電可靠復(fù)位的重要條件。復(fù)位電路D1是用于當(dāng)系統(tǒng)電源瞬間掉電時(shí),將C1中存儲(chǔ)的電荷快速放掉,這樣當(dāng)系統(tǒng)再次上電時(shí),即保證R和C1的充電時(shí)間使8284A輸出的RESET時(shí)間大于4個(gè)時(shí)鐘周期,確保CPU可靠復(fù)位,K為手動(dòng)復(fù)位開關(guān)。3.5.地址和數(shù)據(jù)總線的分離 根據(jù)8088讀寫周期,CPU在T1時(shí)鐘周期輸出的地址鎖存信號(hào)ALE將AD15-AD0和A

14、19S6-A16S3輸出的地址信息鎖存在圖中的地址鎖存器74LS373,地址鎖存器輸出的地址信號(hào)通過系統(tǒng)地址總線同存儲(chǔ)器和IO接口地址輸入端連接,并在T2T4時(shí)鐘周期內(nèi)保持由T1時(shí)鐘周期輸出的地址信息不變,直到下個(gè)總線周期的T1時(shí)鐘周期才發(fā)生變化。在T2-T4總線周期,CPU通過系統(tǒng)數(shù)據(jù)總線同存儲(chǔ)器或IO接口交換數(shù)據(jù)。若數(shù)據(jù)總線負(fù)載較重時(shí),CPU通過輸出DEN和DT/R信號(hào),對(duì)數(shù)據(jù)收/發(fā)驅(qū)動(dòng)器74LS245的輸出輸入數(shù)據(jù)進(jìn)行控制。即DEN有效,DT/R為低電平時(shí),CPU通過74LS245讀取系統(tǒng)存儲(chǔ)器或I/O接口中的數(shù)據(jù)。當(dāng)DEN有效,DT/R為高電平時(shí),CPU通過74LS245對(duì)系統(tǒng)存儲(chǔ)器或

15、I/O接口寫入數(shù)據(jù)。3.6、系統(tǒng)存儲(chǔ)器空間分配圖中ROM用于系統(tǒng)存儲(chǔ)常駐程序,RAM用于存放用戶非常駐程序,數(shù)據(jù)或作為系統(tǒng)堆棧區(qū)使用。根據(jù)題目要求的容量選用一片EPROM27128和兩片RAM6264,八位數(shù)據(jù)總線和CPU的低八位數(shù)據(jù)總線相連,CPU地址總線的A13-A0用于芯片的字選和存儲(chǔ)器的地址線相連,A19-A14譯碼后用做片選,和IO引腳經(jīng)過譯碼器譯碼后用作片選。3.7.I/O接口電路接口電路是CPU和外圍設(shè)備進(jìn)行數(shù)據(jù)交換的緩沖區(qū)域,圖中的8255A是一個(gè)有3個(gè)數(shù)據(jù)口、1個(gè)控制/狀態(tài)口的8位并行輸入輸出接口可編程芯片,能接通鍵盤、打印機(jī)、顯示器等外圍設(shè)備等。8255A的數(shù)據(jù)線接系統(tǒng)總線

16、的低八位,控制端口和系統(tǒng)的相應(yīng)控制端口相連3.8接口芯片和鍵盤的連接圖中有2行4列,4根線于PA口相連,2根列線與PB口的PB2,PB3相連。按鍵設(shè)置在行、列交點(diǎn)處(數(shù)字或字符為其鍵號(hào)),行、列線分別連接到按鍵開關(guān)的兩端。當(dāng)列線通過上拉電阻接+5V時(shí),就被鉗位在高電平狀態(tài)。鍵盤中有無鍵按下是由行線送入全掃描字、列線讀入行線狀態(tài)來判斷的。這就是:給行線所有I/O線均置成低電平,然后讀入列線電平狀態(tài)。如果有鍵按下,總會(huì)有一根列線電平被拉至低電平,從而使列線輸入不全為1。鍵盤中哪一個(gè)鍵按下是由行線逐行置低電平后,檢查列線輸入狀態(tài)予以確定的。其方法是:依次給行線送低電平,然后查所有列線狀態(tài),如果全為1

17、,則所按下之鍵不在次行。如果不全為1,則所按下之鍵必在次行。而且是在與0電平行線相交點(diǎn)上的那個(gè)鍵。鍵盤的工作方式采用編程掃描工作方式,即通過調(diào)用鍵盤子程序來響應(yīng)鍵輸入的要求,在鍵盤掃描子程序中完成下述功能:1) 判斷鍵盤上有無鍵按下。其方法是先使PA3PA60,然后讀PB2、PB3的狀態(tài),若全為1,則鍵盤中無鍵按下;若不全為1,則說明鍵盤中有鍵按下。2) 去除按鍵的抖動(dòng)影響。對(duì)于由機(jī)械觸點(diǎn)構(gòu)成的按鍵,由于機(jī)械觸點(diǎn)的彈性作用,觸點(diǎn)在閉合及斷開瞬間有一個(gè)抖動(dòng)過程,一般為510ms時(shí)間。為了消除抖動(dòng)影響可作這樣處理:當(dāng)判斷有鍵按下后,軟件延時(shí)一段時(shí)間在判斷鍵盤狀態(tài),如果仍有鍵按下狀態(tài),則認(rèn)為有一個(gè)確

18、定的鍵按下,否則按鍵抖動(dòng)處理。3) 求按下鍵的鍵值及鍵號(hào)。鍵盤上的每個(gè)鍵都對(duì)應(yīng)一個(gè)鍵值。鍵值的組成:低8位為掃描該鍵時(shí)的行線輸出值,高8位為該鍵按下時(shí)的列線輸入值(有效位為0,其余位令其為1)。由于鍵盤中鍵號(hào)排列無規(guī)律,不能通過對(duì)鍵值直接運(yùn)算得到鍵號(hào)。因此必須先判斷按下鍵是使PB2=0還是PB3=0,然后再查為零的列線上鍵按下時(shí)其8位鍵值中是否有一位為零,若為零則可得到鍵值。求按下鍵的鍵值及鍵號(hào)的目的是使程序轉(zhuǎn)到相應(yīng)的地址去完成該鍵的操作。一般,對(duì)數(shù)字鍵就是直接將該號(hào)送到顯示緩沖區(qū)進(jìn)行顯示,對(duì)功能鍵則必須先找到該功能鍵處理程序入口地址,并轉(zhuǎn)去執(zhí)行該鍵的命令。因此當(dāng)鍵號(hào)求到后,還必須找到功能處理

19、入口。4) 為保證鍵閉合依次CPU僅進(jìn)行依次鍵功能操作。程序中需要等待鍵釋放以后再將鍵號(hào)送累加器AH。3.9 LED顯示器的工作方式LED數(shù)碼管是目前最常用的數(shù)字顯示器,圖A、B為共陰管和共陽管的電路,圖C為兩種不同出線形式的引出腳功能圖。一個(gè)LED數(shù)碼管可用來顯示一位09十進(jìn)制數(shù)和一個(gè)小數(shù)點(diǎn)。小型數(shù)碼管(0.5寸和0.36寸)每段發(fā)光二極管的正向壓降,隨顯示光(通常為紅、綠、黃、橙色)的顏色不同略有差別,通常約為22.5V,每個(gè)發(fā)光二極管的點(diǎn)亮電流在510mA。LED數(shù)碼管要顯示BCD碼所表示的十進(jìn)制數(shù)字就需要有一個(gè)專門的譯碼器,該譯碼器不但要完成譯碼功能,還要有相當(dāng)?shù)尿?qū)動(dòng)能力。圖A 共陰連

20、接(“1”電平驅(qū)動(dòng)) 圖B 共陽連接(“0”電平驅(qū)動(dòng))圖C LED數(shù)碼管符號(hào)及引腳功能圖LED顯示器有靜態(tài)和動(dòng)態(tài)兩種工作方式LED顯示器工作在靜態(tài)顯示方式下,共陰極或共陽極連接在一起,然后接地或+5V;每位的段選線(A,B,G,H)與一個(gè)8位并行口相連。這樣,只要在每一位的段選線上保持段選碼電平,該位就能保持相應(yīng)的顯示字符。在多位LED顯示時(shí),為了化簡(jiǎn)電路,降低成本,將所有位的斷選線并聯(lián)在一起,由一個(gè)8位的I/O口控制,即控制段選碼而共陰極或共陽極點(diǎn)分別由相應(yīng)的I/O線控制即控制位選碼,這就是動(dòng)態(tài)顯示。4位LED動(dòng)態(tài)顯示電路只需一個(gè)8位I/O口及一個(gè)4位I/O口,其中8個(gè)I/O控制段選碼,4位

21、I/O控制位選。進(jìn)行4位字符顯示時(shí),采用掃描顯示方式,即在每一瞬間只使某一位顯示相應(yīng)字符,在此瞬間,段選控制I/O口輸出相應(yīng)字符段選碼,位選控制I/O口在該顯示位送入選通電平(共陰極送低電平,共陽極送高電平),以保證該位顯示相應(yīng)字符。如此輪流,使每位顯示該位應(yīng)顯示字符,并保持延遲一段時(shí)間(15ms),以造成視覺暫留效果。不斷循環(huán)送出相應(yīng)的段選碼、位選碼,就可以獲得視覺穩(wěn)定的顯示狀態(tài)。4.硬件連接原理圖(見附頁(yè))5.軟件原理框圖和程序5.1定義鍵值和左移顯示數(shù)據(jù)流程圖開始8255/8259初始化有無中斷顯示對(duì)應(yīng)鍵盤值NY 5.2計(jì)算器功能開始8255/8259初始化有無中斷顯示掃描是數(shù)字鍵?有標(biāo)

22、志?加號(hào)?減號(hào)?設(shè)加標(biāo)志設(shè)減標(biāo)志清零顯示器,清標(biāo)志位保存數(shù)據(jù)放鍵?顯示掃描清零顯示器除號(hào)?YYYYYYYNNNNNN設(shè)除標(biāo)志等號(hào)?N進(jìn)行加、減、除運(yùn)算,保存結(jié)果先于運(yùn)算符清零十六進(jìn)制轉(zhuǎn)換YYNN關(guān)中斷開中斷5.3 源程序部分說明:顯示鍵盤單個(gè)對(duì)應(yīng)數(shù)值是顯示六個(gè)數(shù),因而合并成一個(gè)程序來寫,而那個(gè)十進(jìn)制與十六進(jìn)制的轉(zhuǎn)換與十六進(jìn)制的加減除運(yùn)算可以合并成一個(gè),用那個(gè)等號(hào)來區(qū)分即可,從流程圖可以看出他們的大概實(shí)現(xiàn)過程。至于那個(gè)十進(jìn)制轉(zhuǎn)化為十六進(jìn)制的原理是像實(shí)驗(yàn)課程設(shè)計(jì)那樣,在實(shí)驗(yàn)課程設(shè)置我們也是同樣用一個(gè)鍵定義兩種功能,具體的方法見實(shí)驗(yàn)課程設(shè)計(jì)的有關(guān)部分。5.3.1對(duì)應(yīng)鍵值的顯示STACK SEGMEN

23、T STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HVAR1 DB 0A0H,80H,60H,40H,20H,00H;存放片選代碼,從右邊到左邊的LED數(shù)碼管VAR2 DB 3FH,3FH,3FH,3FH,3FH,3FH ;將要顯示的數(shù)據(jù)的存放段DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX CLI M

24、OV AL,80H OUT 63H,AL MOV AL,0F0H OUT AL,62H PUSH DS MOV AX,0000H MOV DS,AX MOV AX,OFFSET IRQ0 MOV SI,003CH MOV SI,AX MOV AX,CS POP DS ;8255初始化和中斷向量表的設(shè)置 IN AL,31H AND AL,0FEH OUT 31H,AL ;寫OCW1A1: STI CALL DISP ;調(diào)用顯示功能 HLT JUMP A1IRQ0:MOV AL,01H OUT 62H,AL IN AL,61H CMP AL,0E0H JNZ KEY_2 ;測(cè)試第二個(gè)鍵 CALL

25、KEY1 ;對(duì)第一個(gè)鍵定義數(shù)值和顯示 ;同樣地對(duì)其他鍵進(jìn)行定義和顯示 DISP:MOV SI,OFFSET VAR1 ;顯示子程序,SI為選通的 MOV DI,OFFSET VAR2 MOV DL,DI+5 CMP DL,3FH JNZ DIR6MOV DL,DI+4 CMP DL, 3FH JNZ DIR5MOV DL,DI+3 CMP DL,3FH JNZ DIR4 MOV DL,DI+2 CMP DL, 3FH JNZ DIR3MOV DL,DI+1 CMP DL,3FH JNZ DIR2JMP DIR1DIR6:MOV CX,0006H JMP DIRDIR5:MOV CX,0005H

26、 JMP DIRDIR4:MOV CX,0004H JMP DIRDIR3:MOV CX,0003H JMP DIRDIR2:MOV CX,0002H JMP DIRDIR1:MOV CX,0001H JMP DIRDIR: MOV AL,SIOUT 62H,AL;MOV AL,DIOUT 60H,ALCALL TIMEINC SIINC DILOOP DIRRET;-TIME: PUSH AX ;延時(shí)子程序 PUSH CX MOV CX,0002HTIME1: MOV AX,0020HTIME2: DEC AXJNZ TIME2LOOP TIME1POP CXPOP AXRET;-STTK:

27、 CALL DISP ;放鍵測(cè)試程序 MOV AL,00HOUT 61H,ALIN AL,60HAND AL,0CHCMP AL,0CHJNZ STTKJMP A1CODE ENDS END START5.3.2 計(jì)算器鍵盤的鍵值+-*=C9876543210STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HVAR1 DB 0A0H,80H,60H,40H,20H,00H;存放片選代碼,從右

28、邊到左邊的LED數(shù)碼管VAR2 DB 3FH,3FH,3FH,3FH,3FH,3FH ;將要顯示的數(shù)據(jù)的存放段VAR3 DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;存放新數(shù)VAR4 DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;存放舊數(shù)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX ;中斷測(cè)試 ;鍵盤定義(順序如上圖所示) TR: LEASI,VAR3;10進(jìn)制轉(zhuǎn)16進(jìn)制子程序,VAR3存放著將

29、要被轉(zhuǎn)換的數(shù),VAR2是用來做顯示用的段,數(shù)字高位對(duì)應(yīng)段的高位,底位對(duì)應(yīng)段低位LEADI,VAR2CLC MOV AX,0 MOV BX,0MOV AL,SI+5 MOV AH,SI+4 SHL AH,4 ADD AL,AH AND AX,000FH MOV CX,4 TR1:CWD DIV 16 MOV DI+4,AL MOV AL,DL MUL 10 MOV BL,SI+3 ADD AX,BX DEC SI DEC DI LOOP TR1 MOV DI,AL CALL DISP ;調(diào)用顯示子程序 RETAD: MOV DH,01H ;加法標(biāo)志位LEA SI,VAR3 ;加法子程序 LEA

30、DI,VAR4 ;VAR3用于存放新輸入將要被加的數(shù),VAR4用于存放上次的加出的結(jié)果,由于要進(jìn)位,為了保證運(yùn)算的正確,此程序采用的是兩個(gè)不超過5位的數(shù)字相加(或連加)! CLC MOV AX,0 MOV BX,0 MOV CX,3AD1: MOV AL,SI SHL AL,4 ADD AL,SI+1 MOV BL,DI ADD BL,DI+1 ADC AL,BL MOV AH,AL AND AL,0FH SHR AH,4 MOV DI,AL MOV DI+1,AH INC SI INC DI LOOP AD1 MOV CX,6 CLD LEA SI,VAR3 LEA DI,VAR2 REP

31、MOVS ;將其轉(zhuǎn)到顯示段 CALL DISP ;調(diào)用功能程序 RET SU: MOV DH,02H;設(shè)減法標(biāo)志 LEA SI,VAR3 ;減法子程序 LEA DI,VAR4 ;VAR3用于存放新輸入的減數(shù),VAR4用于存放上次的減出的結(jié)果,由于要借位,為了保證運(yùn)算的正確,此程序不要采用兩個(gè)6位的數(shù)字相減(或連減)! CLC MOV AX,0 MOV BX,0 MOV CX,3SU1: MOV BL,SI SHL BL,4 ADD BL,SI+1 MOV AL,DI ADD AL,DI+1 SBB AL,BL MOV AH,AL AND AL,0FH SHR AH,4 MOV DI,AL MO

32、V DI+1,AH INC SI INC DI LOOP SU1 MOV CX,6 CLD LEA SI,VAR3 LEA DI,VAR2 REP MOVS ;將其轉(zhuǎn)到顯示段 CALL DISP ;調(diào)用功能程序 RETMU: MOV DH,03H;乘法標(biāo)志 LEA SI,VAR3 ;乘法子程序 LEA DI,VAR4 PUSH DX MOV DX,0 MOV CX,2MU1:MOV AL,DI+3SHL AL,4ADD AL,DI+2MOV AH,ALMOV AL,DI+1SHL AL,4 ADD AL,DIMOV BL,SI+3SHL BL,4ADD BL,SI+2MOV BH,BLMOV

33、BL,SI+1SHL BL,4ADD BL,SIMUL BX ADD AX,DXMOV BX,AXAND BH,0FOHSHR BH,4AND AH,0FHAND BL,0F0HSHR BL,4AND AL,0FHMOV DI+3,BHMOV DI+2,AHMOV DI+1,.BLMOV DI,AL INC SI INC DI LOOP MU1 POP DX MOV CX,6 CLD LEA SI,VAR3 LEA DI,VAR2 REP MOVS ;將其轉(zhuǎn)到顯示段CALL DISPRETDIV: MOV DH,04H;除法標(biāo)志 LEA SI,VAR3+5 ;除法子程序 LEA DI,VAR4

34、+5 PUSH DX MOV DX,0 MOV CX,3DIV1:MOV AL,DI+1SHL AL,4 ADD AL,DIMOV BL,SI+1SHL BL,4ADD BL,SI SHL DX,8 ADD AX,DX CWD DIV BXMOV BX,AXAND AL,0FHAND BL,0F0H SHR BL,4AND AL,0FHMOV DI+1,BLMOV DI,ALDEC DI DEC SI LOOP DIV1 POP DX MOV CX,6 CLD LEA SI,VAR3 LEA DI,VAR2 REP MOVS ;將其轉(zhuǎn)到顯示段CALL DISPRETCLEAR: MOV SI,

35、 OFFSET VAR2 MOV DI, OFFSET VAR3MOV CX, 10CLEAR1: MOV AL,3FHMOV SI,ALMOV AL,00HMOV DI,ALINC SIINC DILOOP CLEAR1CLEAR2: MOV CX, 10 CLD LEA SI,VAR3 LEA DI,VAR4 REP MOVS CALL DISP ;調(diào)用顯示子程序RET DISP: ;具有顯示功能的子程序TIME: ;具有延時(shí)功能的子程序STTK: ;放鍵測(cè)試功能的子程序CODE ENDS END START6.主要參考文獻(xiàn)1 許立鋅等編.微型計(jì)算機(jī)原理及應(yīng)用.北京:機(jī)械工業(yè)出版社,20032.許立梓等編微型計(jì)算機(jī)原理及應(yīng)用 -習(xí)題解答、實(shí)驗(yàn)指導(dǎo)及課程設(shè)計(jì).北京:機(jī)械工業(yè)出版社,200323

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!