簡易計(jì)算器的設(shè)計(jì)._第1頁
簡易計(jì)算器的設(shè)計(jì)._第2頁
簡易計(jì)算器的設(shè)計(jì)._第3頁
簡易計(jì)算器的設(shè)計(jì)._第4頁
簡易計(jì)算器的設(shè)計(jì)._第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 學(xué) 號: 課 程 設(shè) 計(jì)題 目簡易計(jì)算器的設(shè)計(jì)學(xué) 院自動化專 業(yè)電氣工程及其自動化班 級姓 名指導(dǎo)教師2014年1月9日課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 專業(yè)班級: 指導(dǎo)教師: 工作單位: 自動化學(xué)院 題 目: 簡易計(jì)算器的設(shè)計(jì) 初始條件:用8086cpu、8255a并行通信接口、七段led數(shù)碼管接口、小鍵盤控制電路接口、外圍電路芯片及元器件實(shí)現(xiàn)一個(gè)簡易計(jì)算器,完成相應(yīng)的程序編寫。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求)(1)可進(jìn)行2位十進(jìn)制的加減乘除法運(yùn)算。(2)鍵盤輸入數(shù)據(jù),同時(shí)led數(shù)碼管顯示,模擬計(jì)算器的

2、工作。(3)鍵盤上要求有09數(shù)字鍵,+、-、=功能鍵,清除鍵c。(4)撰寫課程設(shè)計(jì)說明書。內(nèi)容包括:摘要、目錄、正文、參考文獻(xiàn)、附錄(程序清單)。正文部分包括:設(shè)計(jì)任務(wù)及要求、方案比較及論證、軟件設(shè)計(jì)說明(軟件思想,流程,源程序設(shè)計(jì)及說明等)、程序調(diào)試說明和結(jié)果分析、課程設(shè)計(jì)收獲及心得體會。時(shí)間安排: 12月26日- 12月 28 日 查閱資料及方案設(shè)計(jì) 12月29日- 1 月 2 日 編程 1 月 3日- 1 月 7日 調(diào)試程序 1 月 8日- 1 月 9日 撰寫課程設(shè)計(jì)報(bào)告指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄摘要11設(shè)計(jì)的任務(wù)及要求22方案的設(shè)計(jì)22.1方案

3、設(shè)計(jì)論證22.2方案概述與原理硬件電路圖33系統(tǒng)模塊與功能53.18086cpu芯片53.2 8255a 并行通信接口芯片53.3 譯碼電路63.4 小鍵盤電路63.5 四位七段 led 數(shù)碼管顯示電路74軟件設(shè)計(jì)框圖與程序84.1計(jì)算器系統(tǒng)程序總體流程圖84.2 模塊程序流程圖與程序94.2.1流程圖94.2.2鍵盤掃描流程圖94.3輸入運(yùn)算104.3.1輸入運(yùn)算的流程圖104.3.2輸入運(yùn)算程序104.4顯示部分114.4.1顯示部分流程圖114.4.2顯示部分程序125系統(tǒng)仿真136小結(jié)與體會14參考文獻(xiàn)15附錄:設(shè)計(jì)源程序16本科生課程設(shè)計(jì)成績評定表摘要 這次微機(jī)原理的課程設(shè)計(jì)的題目是

4、簡易計(jì)算器的設(shè)計(jì),設(shè)計(jì)一個(gè)可以實(shí)現(xiàn)2位十進(jìn)制加減乘除運(yùn)算功能的電路,并用led顯示出來。硬件部分采用芯片8086cpu,74ls138譯碼器,并行接口芯片8255a,四位七段led數(shù)碼管,和小鍵盤組成。44小鍵盤作為輸入,該小鍵盤上有09、+、-、*、/和清零c共16個(gè)按鍵構(gòu)成的;四位七段led數(shù)碼管作為輸出顯示,數(shù)碼管采用的是共陽極的數(shù)碼管;8086cpu作為運(yùn)算處理核心來完成計(jì)算器的主要功能,包括計(jì)算數(shù)據(jù)、數(shù)據(jù)保存、發(fā)出控制信號等;用8255a并行通行接口來完成本次計(jì)算器系統(tǒng)的接口電路,而74ls138譯碼器、或門電路以及導(dǎo)線是用來產(chǎn)生并行接口芯片8255的片選信號,產(chǎn)生接口電路的端口地址

5、,其中8255的a0、a1分別接cpu的a1、a2而使它的端口地址為偶地址。 本次設(shè)計(jì)的軟件部分是采用8086匯編語言來完成的,主要通過讀寫端口來實(shí)現(xiàn)鍵值的輸入和顯示數(shù)字的輸出,依靠乘法運(yùn)算指令來實(shí)現(xiàn)計(jì)算器的計(jì)算。硬件電路完成后,用protues進(jìn)行方真,得到結(jié)果。 關(guān)鍵詞:計(jì)算器 小鍵盤 數(shù)碼顯示 鍵盤掃描 protues仿真21簡易計(jì)算器的設(shè)計(jì)1 設(shè)計(jì)的任務(wù)及要求初始條件:用8086cpu、8255a并行通信接口、七段led數(shù)碼管接口、小鍵盤控制電路接口、外圍電路芯片及元器件實(shí)現(xiàn)一個(gè)簡易計(jì)算器,完成相應(yīng)的程序編寫。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體

6、要求)(1)可進(jìn)行2位十進(jìn)制的加減乘除法運(yùn)算。(2)鍵盤輸入數(shù)據(jù),同時(shí)led數(shù)碼管顯示,模擬計(jì)算器的工作。(3)鍵盤上要求有09數(shù)字鍵,+、-、=功能鍵,清除鍵c。(4)撰寫課程設(shè)計(jì)說明書。內(nèi)容包括:摘要、目錄、正文、參考文獻(xiàn)、附錄(程序清單)。正文部分包括:設(shè)計(jì)任務(wù)及要求、方案比較及論證、軟件設(shè)計(jì)說明(軟件思想,流程,源程序設(shè)計(jì)及說明等)、程序調(diào)試說明和結(jié)果分析、課程設(shè)計(jì)收獲及心得體會。2 方案的設(shè)計(jì)2.1 方案設(shè)計(jì)論證 如下是兩種方案的原理方框圖: 方案一:8086cpu譯碼電路8255并行通信接口8255并行通信接口四位七段數(shù)碼管4*4小鍵盤圖2.1 計(jì)算器的組成方框圖方案一方案二: 譯

7、碼電路四位七段數(shù)碼管4*4小鍵盤8255并行通信接口 8086cpu圖2.2 計(jì)算器的組成方框圖方案二方案評估:方案一:釋放了系統(tǒng)數(shù)據(jù)總線,但是方案缺乏經(jīng)濟(jì)性,因?yàn)椴捎昧藘善?255,浪費(fèi)資源,舍棄!方案二:此種方案較為經(jīng)濟(jì),方便,具有模塊化的特點(diǎn),因?yàn)閷⒂?jì)算和顯示電路全部集成在了8255上,應(yīng)用時(shí),直接掛接8255即可實(shí)現(xiàn)要求!2.2 方案概述與原理硬件電路圖對上面框圖2.2的方案二的概述:本次設(shè)計(jì)的簡易計(jì)算器系統(tǒng)是由 8086cpu、8255a 并行通信接口芯片、四位七段 led數(shù)碼管、小鍵盤、74ls138 譯碼器芯片及部分門電路芯片組成,系統(tǒng)組成方框圖如圖 2.2 所示。整個(gè)計(jì)算器系統(tǒng)

8、通過 44 小鍵盤控制接口輸入需要計(jì)算的原始數(shù)據(jù)和運(yùn)算符號,這些數(shù)據(jù)經(jīng)過 8255a 并行通信接口輸入給 8086cpu 并 保存起來,cpu 接收數(shù)據(jù)后根據(jù)不同的運(yùn)算符來處理數(shù)據(jù),然后 cpu 把運(yùn)算處理后的數(shù)據(jù)經(jīng)過 8255a 并行通信接口輸出給給四位七段 led 數(shù)碼管,最后后數(shù)碼管把接收到的數(shù)據(jù)顯示在數(shù)碼管屏幕上,而 74ls138譯碼器和相應(yīng)的或門是給 8255 提供譯碼片選信號而設(shè)計(jì)的,只有 cpu 輸出 8255 選通的地址才能使 8255 處于正常工作模式,系統(tǒng)才能有效工作。整個(gè)計(jì)算器系統(tǒng)的詳細(xì)電路圖如下圖2.3圖2.3 簡易計(jì)算器硬件電路圖3 系統(tǒng)模塊與功能3.1 8086c

9、pu芯片8086cpu 芯片是本次簡易計(jì)算器系統(tǒng)的核心部件,其主要功能包括完成數(shù)據(jù)的加減乘除運(yùn)算,把需要顯示的十六進(jìn)制數(shù)轉(zhuǎn)換成與之對應(yīng)在數(shù)碼管上顯示的十六進(jìn)制代碼,配合小鍵盤形成不同鍵值對應(yīng)的特定十六進(jìn)制代碼。在該次計(jì)算器系統(tǒng)中,8086cpu 工作在最小模式,通過 ad0ad7 八位地址/數(shù)據(jù)總線接口與 8255a 并向通信接口交換計(jì)算器系統(tǒng)中所有數(shù)據(jù),而數(shù)據(jù)的交換方向是通過 rd 和 wr 輸出的低電平有效控制信號來控制的,同時(shí) cpu 執(zhí)行系統(tǒng)所有軟件程序,控制著系統(tǒng)中其他部件的工作。由于只是簡單操作,這次設(shè)計(jì)我們讓8086工作在最小模式下,即mn/mx為高電平。8086cpu引腳圖如圖

10、3.1所示:圖3.1 8086cpu引腳圖3.2 8255a 并行通信接口芯片8255a 并行通信接口芯片,如圖 3.2 所示,是8255芯片的引腳圖,其具有數(shù)據(jù)緩沖和鎖存作用,可以讓多個(gè)外設(shè)同時(shí)工作而又互不干擾,同時(shí)也解決了高速 cpu 與低速外設(shè)的工作不同步問題。 圖3.2 8255芯片引腳圖8255a內(nèi)部包括三個(gè)8位的輸入輸出端口,分別是端口a、端口b、端口c,相應(yīng)信號線是pa7pa0、pb7pb0、pc7pc0。端口都是8位,都可以作為輸入或輸出。有三種工作方式:方式0,方式1,和方式2。其中方式0,工作在無條件傳輸方式下,a,b,c端口都適用,方式1,工作在異步或條件查詢方式下,只有

11、a,b端口適用,方式2,是雙向傳輸方式,僅a端口適用。有兩個(gè)控制端口,a組和b組,其中a組由a口與c高4位組成;b組由b端口和c口低4位組成。在本次計(jì)算器系統(tǒng)中,8255a 工作在 0 方式下,pa 口、pb 口和pc 口的低四位輸出,pc 口高四位輸入,其控制口輸入的控制字為 88h,pa 口接七段 led數(shù)碼管的陰極,pb 口的低四位接數(shù)碼管的四個(gè)陽極,pc 口接 44 小鍵盤的八個(gè)接口。工作方式0:8255a中各端口的基本輸入/輸出方式如圖3.3:圖3.3 8255a工作方式控制3.3 譯碼電路譯碼電路由一片 74ls138 譯碼器和一個(gè)或門電路組成,根據(jù)譯碼器及或門的接線知道 8255

12、 被選通的條件是 ad0、ad3、ad4、ad5、ad7 低電平有效,ad6 高電平有效,而 ad1 和 ad2 分別接 8255 的 a0 和 a1,故經(jīng)過譯碼后 8255 的控制口、pa 口、pb 口、pc 口端口地址分別是 40h、42h、44h、46h。3.4 小鍵盤電路44 小鍵盤是計(jì)算器系統(tǒng)的輸入部件,其功能是輸入計(jì)算器系統(tǒng)中的所有運(yùn)算數(shù)據(jù)以及運(yùn)算符號。小鍵盤上有 16 個(gè)按鍵分為四行四列,相當(dāng)于如下的電路圖3.4,每一個(gè)按鍵就相當(dāng)于是一個(gè)開關(guān),每當(dāng)按鍵被按下,該開關(guān)就閉合了,于是位于該行與該列的兩接線在鍵盤部閉合。本次計(jì)算器系統(tǒng)讓小鍵盤的縱向接口從分別與 pc 口低四位pc2、p

13、c1、pc0、pc3相連,橫向接口從左向右分別與 pc 口高四位pc4、pc5、pc6、pc7相連,由于 pc 口的高四位為輸入而低四位為輸出,cpu 可以向 pc 口置數(shù)使得 pc 口的高四位與低四位的狀態(tài)不同,每當(dāng)有按鍵按下,pc 口的高四位的狀態(tài)就會通過接通的按鍵開關(guān)被 pc 口的低四位改變,按下的鍵不同改變后的值就不同,從而就對應(yīng)不同的鍵值,于是根據(jù)這種特定的對應(yīng)關(guān)系就可以確定按下的鍵的值了。其中的鍵值映射圖如圖3-1和3-2:圖3.4 4*4計(jì)算器的原理等效電路表3-1 鍵盤映射圖 表3-2 鍵盤編碼圖789/456*123-on/c0=+0ebh0dbh0bbh7bh0edh0dd

14、h0bdh7dh0eeh0deh0beh7eh0e7h0d7h0b7h7eh3.5 四位七段 led 數(shù)碼管顯示電路七段 led 數(shù)碼管是由 8 個(gè)發(fā)光二極管組成,分別是數(shù)字部分 ag 和小數(shù)點(diǎn)部分 dp,通過 led 的不同亮滅組合就可以顯示出不同的數(shù)。七段 led 數(shù)碼管分為兩種,分別為共陽極和共陰極,兩者極性接法相反,在這里具體介紹共陽極七段 led 數(shù)碼管,共陽極七段 led 數(shù)碼管是把 8 個(gè)發(fā)光二極管的陽極連在一起由一個(gè)公共端口 vcc 引出,陰極互不干擾分別引出 8 個(gè)端口 ag 和 dp,由 led 的導(dǎo)通發(fā)光原理可知只有陽極輸入為高電平時(shí)數(shù)碼管才能正常顯示,而顯示的具體數(shù)字由

15、 8 個(gè)陰極輸入不同電平組合決定。本次計(jì)算器系統(tǒng)要求的是兩位十進(jìn)制數(shù)的運(yùn)算,運(yùn)算結(jié)果最多為四位,故在這里采用四位共陽極七段 led 數(shù)碼管來構(gòu)成顯示電路,顯示電路讓四位七段led 數(shù)碼管的公共陰極 ag 和 dp 依次連接 8255 的 pa0pa7,四個(gè)陽極 vcc 從低位到高位分別與 pb0pb3 相連,故 pb0pb3 的輸出高電平有效,分別決定數(shù)碼管低位到高位的顯示;而 pa0pa6 的輸出決定顯示的數(shù)字,pa7 輸出控制小數(shù)點(diǎn),低電平有效,具體數(shù)字顯示對應(yīng)的輸出信號如表 3-3所示。表 3-3不帶小數(shù)點(diǎn)數(shù)字顯示對應(yīng)輸出表顯示的數(shù)0123456789pa 輸出0c0h0f9h0b4h0

16、b0h99h92h82h0f8h80h90h4 軟件設(shè)計(jì)框圖與程序4.1 計(jì)算器系統(tǒng)程序總體流程圖如圖 4.1所示。開始初化8255、清零無鍵按下?下?鍵盤逐步掃描,獲取值hb鍵值是符號?根據(jù)符號做運(yùn)算無運(yùn)算結(jié)果?運(yùn)算結(jié)果存入sum輸入第二個(gè)數(shù)?第一個(gè)數(shù)存入sum第二個(gè)數(shù)存入sum顯示sum中的數(shù)結(jié)束nynnnynyny圖 4.1 計(jì)算器系統(tǒng)總體程序流程圖4.2 模塊程序流程圖與程序4.2.1 流程圖鍵值程序獲取是通過鍵盤逐行掃描,掃描不同行時(shí)賦給 c 口的值不同,從上到下分別是 0feh、0fdh、0fbh、0f7h,按下不同的鍵在讀 c 口時(shí)得到不同的數(shù),然后根據(jù)這個(gè)數(shù)確定對應(yīng)的鍵值,鍵值

17、對應(yīng)的 c 口讀數(shù)關(guān)系如表 3-1和3-2 所示,該段程序流程圖如圖 4.2 所示。n掃描鍵盤開始賦初值dh=0f0h循環(huán)次數(shù)cx=4,dh送給c口,讀入c口程序ah= 0f0h?cx-1=0?根據(jù)al確定按下的值,將之存入bh,轉(zhuǎn)入display程序。rol dh,1ny圖 4.2 計(jì)算器鍵盤掃描流程圖4.2.2鍵盤掃描程序mov cx,4mov dh,0fehkeyscan:add flagshu,1mov al,dhout 44h,alin al,44hmov ah,aland ah,0f0hcmp ah,0f0hjne getkeyrol dh,1loop keyscan ;鍵盤逐行掃

18、描4.3輸入運(yùn)算4.3.1輸入運(yùn)算的流程圖數(shù)據(jù)運(yùn)算模塊程序是通過判斷運(yùn)算符標(biāo)志緩存內(nèi)容來決定進(jìn)行哪種運(yùn)算的,清零運(yùn)算是把運(yùn)算符標(biāo)志和數(shù)據(jù)緩存清零初始化,加減乘除運(yùn)算是保存第一個(gè)輸入運(yùn)算數(shù)準(zhǔn)備輸入第二個(gè)運(yùn)算數(shù),等號運(yùn)算是根據(jù)加減乘除運(yùn)算標(biāo)志符來進(jìn)行相應(yīng)的加減乘除運(yùn)算并保存結(jié)果,該部分程序流程圖如圖 4.3 所示根據(jù)符號判斷做那種運(yùn)算開始運(yùn)算清零c?是=?是+、-、*、/?將結(jié)果存入sum,清零緩存。轉(zhuǎn)入displaysum清零數(shù)據(jù),緩存。第一個(gè)數(shù)存入sum轉(zhuǎn)入keycheckynnyyn圖 4.3 計(jì)算器系統(tǒng)運(yùn)算程序流程圖4.3.2輸入運(yùn)算程序displayshu: cmp flagshu,1

19、jg displayshu mov sum,bh mov sum1,bh jmp displaysumdisplayshu1:mov al,sum1mov bl,0ahmul bladd al,bhmov sum1,almov sum,aljmp displaysumdisplay:cmp bh,0ahjl displayshumov al,0c0hout 40h,almov al,0fhout 42h,alcall delaymov flagshu,0cmp flagclr,1je clrfacmp flagdeng,1je dengfacmp flagmul,1je chengfa4.4顯

20、示部分4.4.1顯示部分流程圖四位七段 led 數(shù)碼管的顯示并非同時(shí)顯示的,而是從高位到地位逐位顯示的,但指令的執(zhí)行周期是非常短的且人眼的觀察存在視覺停留不能差別先后,而人眼所能觀察到的最短時(shí)間是相對比較長的,因而程序中每次顯示都設(shè)計(jì)有時(shí)間延遲程序。同時(shí)先要設(shè)計(jì)程序把要顯示的數(shù)分解成個(gè)、十、百、千分別保存起來,然后逐位顯示,整個(gè)顯示部分的模塊程序流程圖如圖 4.4 所示顯示開始sum 求千、百、十、個(gè)位數(shù)字分別存入緩存 qian、bai、shi、ge求qian alal從pa輸出pb=08h百 alal從pa輸出pb=04h求shi alal從pa輸出pb=02h求ge alal從pa輸出pb

21、=01h轉(zhuǎn)入display圖 4.4 計(jì)算器鍵盤掃描流程圖4.4.2顯示部分程序displaysum:mov ax, summov dx,0mov bx,3e8hdiv bxmov qian,almov ax,dxmov bl,64hdiv blmov bai,almov al,ahmov ah,0mov bl,0ahdiv blmov shi,almov ge,ahmov al,qianmov bl,offset tabxlatout 40h,alout 42h,8hcall delaymov al,baixlatout 40h,alout 42h,4hcall delaymov al,sh

22、ixlatout 40h,alout 42h,2hcall delaymov al,gexlatout 40h,alout 42h,1hcall delayjmp keycheck5系統(tǒng)仿真 本次實(shí)驗(yàn)是基于protues里面的仿真,我們將硬件電路圖,在protues器件庫里面找到相應(yīng)的芯片,并按照電路圖連接如圖5.1,連接好電路圖,將編好的程序轉(zhuǎn)化成hex格式,導(dǎo)入到8086cpu里面,然后點(diǎn)擊仿真,運(yùn)行。圖5.1 protues連線圖圖5.1 protues仿真圖武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告小結(jié)與體會通過本次微機(jī)原理與接口技術(shù)課程設(shè)計(jì),我更深入的掌握了在微機(jī)原理與接口技術(shù)理

23、論課上學(xué)習(xí)到的各種基本控制理論,了解學(xué)習(xí)了很多課堂上沒有涉及的知識,鍛煉了我多方面的能力,以下是我本次設(shè)計(jì)的具體體會。(1)通過理論聯(lián)系實(shí)際的真實(shí)設(shè)計(jì),我更加深入的了解了匯編語言的編程思想,學(xué)會了用匯編語言編寫一些不太復(fù)雜的應(yīng)用程序。通過本次設(shè)計(jì),我深深的體會到匯編語言是一門接近硬件的語言,它與 c 語言等其他高級語言有很大不同,往往在高級語言很容易實(shí)現(xiàn)的功能通過匯編來實(shí)現(xiàn)很復(fù)雜,比如說 c 語言編寫加減乘除運(yùn)算只需要簡單的一兩條語句,而匯編語言編寫需要很復(fù)雜的程序段來實(shí)現(xiàn);但匯編語言有它的長處,匯編語言的運(yùn)行速度比其他高級語言更快,對于實(shí)現(xiàn)硬件功能有著極大的優(yōu)越性。(2)本次課程設(shè)計(jì)由于所設(shè)

24、計(jì)的知識涉及很廣,許多設(shè)計(jì)中的硬件工作方式以及功能的實(shí)現(xiàn)方法都是我以往并不知道的,這迫使我去查閱許多相關(guān)資料文獻(xiàn),學(xué)習(xí)相關(guān)知識,這些不但使我學(xué)習(xí)了許多新的知識,而且鍛煉了我獨(dú)立學(xué)習(xí)新知識的能力。(3)我還通過本次設(shè)計(jì)鍛煉了我獨(dú)立思考和動手解決控制系統(tǒng)實(shí)際問題的能力,由于我們的設(shè)計(jì)是以小組為單位,如果一個(gè)小組不能很好的配合工作學(xué)習(xí)是不能把設(shè)計(jì)做好的,這些都鍛煉了我與其他同學(xué)互相配合、互相幫助的團(tuán)隊(duì)協(xié)作能力。參考文獻(xiàn)1 彭虎, 周佩玲, 傅忠謙編著. 微機(jī)原理與接口技術(shù)(第 2 版). 北京: 電子工業(yè)出版社, 20082 沈美明, 溫東嬋編著. ibm-pc 匯編語言程序設(shè)計(jì)(第 2 版). 北

25、京: 清華大學(xué)出版社, 20013 潘新民, 王燕芳編著. 微型計(jì)算機(jī)控制技術(shù). 北京: 高等教育出版社, 20014 段承先編著. 微型計(jì)算機(jī)原理及接口技術(shù). 北京: 兵器工業(yè)出版社, 20005 黃國建, 虞平良, 曾芬芳編著. 微型機(jī)算機(jī)應(yīng)用技術(shù). 上海: 上海交通大學(xué)出版社, 1995附錄附錄一程序代碼:data segment tab db 0c0h,0f9h,0b4h,0b0h,99h,92h,82h,0f8h,80h,90h flagshu db 0 flagmul db 0 flagclr db 0flagdeng db 0 sum dw 0 sum1 db 0 sum2 db

26、 0 qian db 0 bai db 0 shi db 0 ge db 0 data ends code segment assume cs:code, ds:data start: mov ax,datamov ds,ax mov al,88h ;8255初始化10001000 out 46h,al ;46h,44h,42h,40h分別為8255控制口,pc,pb,pa xor bh,bh keycheck:mov al,0f0h out 44h,alin al,44hcmp al,0f0h je display call delay ;去抖動 cmp al,0f0h je display

27、 mov cx,4 ;循環(huán)4次 mov dh,0feh keyscan: add flagshu,1 mov al,dh out 44h,al in al,44h mov ah,aland ah,0f0h cmp ah,0f0h jne getkey rol dh,1 loop keyscan ;鍵盤逐行掃描 getkey: ;獲取鍵盤值 cmp al,0eeh ;第一行je l1 cmp al,0deh je l2 cmp al,0beh je l3 cmp al,7eh je ljiacmp al,0edh ;第二行 je l4 cmp al,0ddh je l5 cmp al,0bdh

28、je l6 cmp al,7dh je ljian cmp al,0ebh ;第三行 je l7 cmp al,0dbh je l8 cmp al,0bbh je l9 cmp al,7bh je ldeng cmp al,0e7h ;第四行 je l0 cmp al,0d7h je lcheng cmp al,0b7h je lchu jmp lclr l1: ; 1按下 mov bh,1 jmp displayl2: ;2按下 mov bh,2 jmp display l3: ;3按下 mov bh,3 jmp display ljia: ;+按下 mov bh,0ah jmp displ

29、ay l4: ;4按下 mov bh,4 jmp display l5: ;5按下 mov bh,5 jmp displayl6: ;6按下 mov bh,6 jmp displayljian: ;-按下 mov bh,0bh jmp display l7: ;7按下 mov bh,7 jmp displayl8: ;8按下 mov bh,8 jmp display l9: ;9按下 mov bh,9jmp display ldeng: ;=按下 mov bh,0ch mov flagdeng,1 jmp display l0: ;0按下 mov bh,0 jmp display lcheng

30、: ;*按下 mov bh,0dh mov flagmul,1 jmp display lchu: ;/按下mov bh,0eh jmp display lclr: ;清零c按下 mov bh,0fh mov flagclr,1 jmp display display: cmp bh,0ah jl displayshu mov al,0c0h out 40h,al mov al,0fh out 42h,al call delay mov flagshu,0cmp flagclr,1 je clrfa cmp flagdeng,1 je dengfa cmp flagmul,1 je chengfa jmp keycheck chengfa: ;+按下 mov al,sum1 mov sum2,al jmp keycheck clrfa: ;清零 mov sum,0 mov sum1,0 mov sum2,0 mov flagmul,0 mov flagdeng,0 mov flagclr,0 jmp keycheck

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論