基于單片機(jī)的簡易計(jì)算器設(shè)計(jì)_第1頁
基于單片機(jī)的簡易計(jì)算器設(shè)計(jì)_第2頁
基于單片機(jī)的簡易計(jì)算器設(shè)計(jì)_第3頁
基于單片機(jī)的簡易計(jì)算器設(shè)計(jì)_第4頁
基于單片機(jī)的簡易計(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、常州輕工職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì) 摘要中文摘要:近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測技術(shù)日益更新。在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本任務(wù)是個(gè)簡易的兩位數(shù)的四則運(yùn)算,程序都是根據(jù)教材內(nèi)和網(wǎng)絡(luò)中的程序參考編寫而成,在功能上還并不完善,限制也較多。本任務(wù)重在設(shè)計(jì)構(gòu)思與團(tuán)隊(duì)合作,使得我們用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。關(guān)鍵詞:單片機(jī) 計(jì)算器 范圍 加減乘除英文摘要:With the rapid development of science an

2、d technology in recent years, the application of SCM is a growing, while driving more traditional control detection technology updates. In real-time detection and automatic control of microcomputer application system, the microcontroller is often used as a core component, only the microcontroller is

3、 not enough knowledge, but also according to the specific combination of hardware architecture of hardware and software, to be improved.This task is a simple two-digit arithmetic, procedures, and networks are based on teaching material prepared in the program reference is made is also not perfect in

4、 function, limit is greater. The task team focusing on design ideas and so we use professional knowledge, professional skills, a comprehensive and systematic analysis and problem-solving exercise.Keywords:SCM Calculator Range Math目錄:1 引言. 31.1 計(jì)算器的歷史. 31.2 電子計(jì)算器的特殊鍵. 32 單片機(jī)概述. 43 芯片簡介. 63.1 MSC-51芯片

5、簡介 . . 6MCS-51單片機(jī)內(nèi)部結(jié)構(gòu): . . 6 4 相關(guān)知識(shí). 124.1數(shù)碼管顯示. 124.2矩陣按鍵. 13 5 計(jì)算器硬件電路設(shè)計(jì). 14 6 計(jì)算器程序設(shè)計(jì). 156.1存儲(chǔ)單元分配. 156.2 主程序設(shè)計(jì). 156.3 數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序CONV . 166.4 數(shù)碼管動(dòng)態(tài)顯示子程序. 16 7 系統(tǒng)硬件設(shè)計(jì). 177.1 系統(tǒng)總框圖如下:. 177.2 計(jì)算器硬件線路圖. 187.3 系統(tǒng)工作原理.8 程序源代碼. 29 結(jié)論. 參考文獻(xiàn). 34351 引言1.1 計(jì)算器的歷史說起計(jì)算器,值得我們驕傲的是,最早的計(jì)算工具誕生在中國。中國古代最早采用的一種計(jì)算工具

6、叫籌策,又被叫做算籌。這種算籌多用竹子制成,也有用木頭,獸骨充當(dāng)材料的。約二百七十枚一束,放在布袋里可隨身攜帶。直到今天仍在使用的珠算盤,是中國古代計(jì)算工具領(lǐng)域中的另一項(xiàng)發(fā)明,明代時(shí)的珠算盤已經(jīng)與現(xiàn)代的珠算盤幾乎相同。17世紀(jì)初,西方國家的計(jì)算工具有了較大的發(fā)展,英國數(shù)學(xué)家納皮爾發(fā)明的" 納皮爾算籌" ,英國牧師奧卻德發(fā)明了圓柱型對(duì)數(shù)計(jì)算尺,這種計(jì)算尺不僅能做加減乘除、乘方、開方運(yùn)算,甚至可以計(jì)算三角函數(shù),指數(shù)函數(shù)和對(duì)數(shù)函數(shù),這些計(jì)算工具不僅帶動(dòng)了計(jì)算器的發(fā)展,也為現(xiàn)代計(jì)算器發(fā)展奠定了良好的基礎(chǔ),成為現(xiàn)代社會(huì)應(yīng)用廣泛的計(jì)算工具。1.2 電子計(jì)算器的特殊鍵在使用電子計(jì)算器進(jìn)行

7、四則運(yùn)算的時(shí)候,一般要用到數(shù)字鍵,四則運(yùn)算鍵和清除數(shù)據(jù)鍵。除了這些按鍵,還有一些特殊鍵,可以使計(jì)算更加簡便迅速。2 單片機(jī)概述單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU 功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。3 芯片

8、簡介3.1 MSC-51芯片簡介MCS-51單片機(jī)內(nèi)部結(jié)構(gòu):8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM、數(shù)據(jù)存儲(chǔ)器(RAM、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。現(xiàn)在我們分別加以說明:·中央處理器:中央處理器(CPU是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU 負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。·數(shù)據(jù)存儲(chǔ)器(RAM8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)

9、單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM 只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。 圖1·程序存儲(chǔ)器(ROM:8051共有4096個(gè)8位掩膜ROM ,用于存放用戶程序,原始數(shù)據(jù)或表格。·定時(shí)/計(jì)數(shù)器(ROM:8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。·并行輸入輸出(I/O口:8051共有4組8位I/O口(P0、 P1、P2或P3 ,用于對(duì)外部數(shù)據(jù)的傳輸。·全雙工串行口:8051內(nèi)置一

10、個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。·中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。·時(shí)鐘電路:8051內(nèi)置最高頻率達(dá)12MHz 的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的形式,即哈佛(Harvard結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton結(jié)構(gòu)。INTE

11、L 的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。下圖是MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖。圖2MCS-51的引腳說明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin 封裝的雙列直接DIP 結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說明,MCS-51的引腳說明。MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin 封裝的雙列直接DIP 結(jié)構(gòu),右圖是它們的引腳配置,4

12、0個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說明: 圖3 Pin9:RESET/Vpd 復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開始工作,在RESET 引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC 指向0000H ,P0-P3輸出口全部為高電平,堆棧指針寫入07H ,其它專用寄存器被清“0”。RESET 由高電平下降為低電平后,系統(tǒng)即從0000H 地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM (包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是

13、自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見下圖4。此外,RESET/Vpd 還是一復(fù)用腳,V cc 掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM 的數(shù)據(jù)不丟失。 圖4·Pin30:ALE/當(dāng)訪問外部程序器時(shí),ALE(地址鎖存 的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲(chǔ)器時(shí),ALE 端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲(chǔ)器,ALE 會(huì)跳過一個(gè)脈沖。如果單片機(jī)是EPROM ,在編程其間,將用于輸入編程脈沖。 ·Pin29:當(dāng)訪問外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC 的16

14、位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU 讀入并執(zhí)行。·Pin31:EA/Vpp 程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB 的程序存儲(chǔ)器,當(dāng)EA 為高電平并且程序地址小于4kB 時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過4kB 地址則讀取外部指令數(shù)據(jù)。如EA 為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無程序存儲(chǔ)器的8031,EA 端必須接地。在編程時(shí),EA/Vpp 腳還需加上21V 的編程電壓。4 相關(guān)知識(shí)4.1數(shù)碼管顯示在本任務(wù)中用4位數(shù)碼管顯示當(dāng)前數(shù)值的千,百,十,個(gè),由于數(shù)碼管個(gè)數(shù)多,如采用靜

15、態(tài)顯示方式,則占用單片機(jī)的I/O口線太多,如果用定時(shí)器/計(jì)數(shù)器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,則電路復(fù)雜。所以,在數(shù)碼管個(gè)數(shù)較多時(shí),常采用動(dòng)態(tài)顯示方式。如圖1-1所示為單片機(jī)應(yīng)用系統(tǒng)中的一種數(shù)碼管動(dòng)態(tài)顯示電路圖,4位數(shù)碼管的相同段并聯(lián)在一起,由一個(gè)8位I/O(P1口)輸出字形碼控制顯示某一字形,每個(gè)數(shù)碼管的公共端由另外一個(gè)I/O口(P0口 輸出的字位碼控制,即數(shù)碼管顯示的字形是由單片機(jī)I/O口輸出的字形碼確定,而哪個(gè)數(shù)碼管點(diǎn)亮是由單片機(jī)I/O口輸出的字位碼確定的。4個(gè)數(shù)碼管分時(shí)輪流循環(huán)點(diǎn)亮,在同一時(shí)刻只有1個(gè)數(shù)碼管點(diǎn)亮,但由于數(shù)碼管具有余輝特性及人眼具有視

16、覺暫留特性,所以適當(dāng)?shù)剡x取循環(huán)掃描頻率,看上去所有數(shù)碼管是同時(shí)點(diǎn)亮的,察覺不出閃爍現(xiàn)象。動(dòng)態(tài)顯示方式所接數(shù)碼管不能太多,否則會(huì)因每個(gè)數(shù)碼管所分配的實(shí)際導(dǎo)通時(shí)間太少,使得數(shù)碼管的亮度不足。在本任務(wù)中,為了簡便,字形碼和字位碼都沒由加驅(qū)動(dòng)電路,在實(shí)際應(yīng)用中應(yīng)加驅(qū)動(dòng)電路。數(shù)碼管有共陰極和共陽極兩種,對(duì)于共陽數(shù)碼管,字形驅(qū)動(dòng)輸出0有效,字位驅(qū)動(dòng)輸出1有效;而對(duì)于共陰數(shù)碼管則相反,即:字形驅(qū)動(dòng)輸出1有效,字位驅(qū)動(dòng)輸出0有效。4.2矩陣按鍵鍵盤是單片機(jī)系統(tǒng)中最常用的人機(jī)對(duì)話輸入設(shè)備,用戶通過鍵盤向單片機(jī)輸入數(shù)據(jù)或指令。鍵盤控制程序需完成的任務(wù)有:監(jiān)測是否有鍵按下,有鍵按下時(shí),在無硬件去抖的動(dòng)電路時(shí),應(yīng)用軟

17、件延時(shí)方法消除按鍵抖動(dòng)影響;當(dāng)有多個(gè)鍵同時(shí)按下時(shí),只處理一個(gè)按鍵,不管一次按鍵持續(xù)多長時(shí)間,僅執(zhí)行一次按鍵功能程序。矩陣按鍵掃描程序是一種節(jié)省IO 口的方法, 按鍵數(shù)目越多節(jié)省IO 口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那一只鍵按下。但是,在程序的寫法上,采用了最簡單的方法,使得程序效率最高。本程序中,如果檢測到某鍵按下了,就不再檢測其它的按鍵,這完全能滿足絕大多數(shù)需要,又能節(jié)省大量的CPU 時(shí)間。本鍵盤掃描程序的優(yōu)點(diǎn)在于:不用專門的按鍵延時(shí)程序,提高了CPU 效率,也不用中斷來掃描鍵盤,節(jié)省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU 時(shí)最短,不論有鍵

18、按下或者無鍵按下都可以在很短的時(shí)間完成一次掃描。本鍵盤掃描子程序名叫key ,每次要掃描時(shí)用lcall key調(diào)用即可。5 計(jì)算器硬件電路設(shè)計(jì)8051單片機(jī)的P2口作鍵盤口,其中P2.4-P2.7為鍵盤掃描輸出線,P2.0-P2.3為鍵盤掃描輸入線。鍵盤由4*4共16個(gè)按鍵組成,10個(gè)數(shù)字鍵(由0-9組成)5個(gè)運(yùn)算符號(hào)(加減乘除等于)組成,1個(gè)清除鍵(作用相當(dāng)于整體復(fù)位)。4個(gè)數(shù)碼管用于顯示當(dāng)前數(shù)值的千,百,十,個(gè),采用動(dòng)態(tài)顯示方式,P1口接4個(gè)數(shù)碼管的七段,P0口分別接4個(gè)數(shù)碼管的公共端,P1口輸出數(shù)碼管的字形碼,P0口輸出數(shù)碼管的字位碼。6 計(jì)算器程序設(shè)計(jì)6.1存儲(chǔ)單元分配30H 單元:數(shù)

19、值個(gè)位顯示單元;31H 單元:數(shù)值十位顯示單元;32H 單元:數(shù)值百位顯示單元;33H 單元:數(shù)值千位顯示單元;23H 單元:第一操作數(shù)存儲(chǔ)單元;24H 單元:第二操作數(shù)存儲(chǔ)單元;25H 單元:鍵值暫存單元;27H 單元:清除鍵狀態(tài);34H-37H 單元:結(jié)果數(shù)據(jù)轉(zhuǎn)換暫存單元;38H-39H 單元:結(jié)果高低8位暫存單元;R5單元:操作數(shù)計(jì)數(shù)單元;R4單元:操作數(shù)數(shù)值位數(shù)計(jì)數(shù)單元;R3單元:運(yùn)算符號(hào)存儲(chǔ)單元。6.2 主程序設(shè)計(jì)主程序進(jìn)行程序中用到的一些存儲(chǔ)單元的初始化,數(shù)值顯示和4*4鍵盤掃描。首先,進(jìn)行存儲(chǔ)單元初始化,給數(shù)碼管顯示單元30H-33H 賦予“0000”字形數(shù)據(jù),將數(shù)值計(jì)數(shù)單元,存

20、儲(chǔ)單元,23H-25H,34H-37H,38H,39H,3AH,3BH,3CH, 賦予初值零。之后,調(diào)用鍵盤掃描子程序,和數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換程序,數(shù)碼管動(dòng)態(tài)顯示子程序。主程序不斷進(jìn)行鍵盤掃描,數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序和動(dòng)態(tài)顯示子程序。6.3 數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序CONV由于數(shù)值單元存放的是二進(jìn)制數(shù),而用戶熟悉的是十進(jìn)制數(shù),所以應(yīng)將數(shù)值單元中的二進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù),即BCD 碼。要通過數(shù)碼管顯示出當(dāng)前數(shù)值,還必須將BCD 碼進(jìn)一步轉(zhuǎn)換為七段碼,轉(zhuǎn)換的最終結(jié)果數(shù)據(jù)存放于顯示緩沖區(qū)30H-33H 單元中,其中30H 單元存放數(shù)值的個(gè)位七段碼,31H 單元存放數(shù)值的十位七段碼,32H 單元存放數(shù)值

21、的百位七段碼,33H 單元存放數(shù)值的千位七段碼。6.4 數(shù)碼管動(dòng)態(tài)顯示子程序本任務(wù)由P1口輸出字形碼,P0口輸出字位碼。先將存放于30H 單元的數(shù)值個(gè)位七段碼由P1口輸出,同時(shí)P0口輸出使數(shù)值個(gè)位顯示數(shù)碼管點(diǎn)亮的字位碼。由于采用的是共陽數(shù)碼管,所以只有該位數(shù)碼管對(duì)應(yīng)的P0.0為1,其他位P0.1-P0.3位0,點(diǎn)亮延時(shí)10MS 。然后P1口輸出數(shù)值十位七段碼,P0.1位1,數(shù)值十位數(shù)碼管點(diǎn)亮,延時(shí)10MS 。接著P1口輸出數(shù)值百位七段碼,P0.2為1,數(shù)值百位數(shù)碼管點(diǎn)亮,延時(shí)10MS 。最后P1口輸出數(shù)值千位七段碼,P0.3為1,數(shù)值千位數(shù)碼管點(diǎn)亮,延時(shí)10MS 。7 系統(tǒng)硬件設(shè)計(jì)選用設(shè)備80

22、51單片機(jī)一片選用設(shè)備:8051彈片機(jī)一片,4*4鍵盤一個(gè),4位共陽極的七段數(shù)碼管一個(gè),連線若干。7.1 系統(tǒng)總框圖如下: 7.2 計(jì)算器硬件線路圖 圖1-17.3 系統(tǒng)工作原理(1)首先賦予顯示緩沖初始值00 00,并把數(shù)據(jù)存儲(chǔ)單元清零。(2)主程序調(diào)用鍵盤掃描子程序,判斷鍵值,是數(shù)字第一次直接賦予23H 單元,如是第二次輸入數(shù)字,則把第一次值乘十后與第二次值相加,結(jié)果存儲(chǔ)到23H 單元,并R4計(jì)數(shù)2次,表示已輸入兩位,掃描鍵值時(shí)就不在賦值和顯示。等待運(yùn)算符號(hào)的按下,按下等于號(hào)就直接與零計(jì)算并顯示,如加減乘除就R5加一 并把R4清零,表示可以輸入下一操作數(shù),與第一次相同,并等待等于鍵按下。清

23、零鍵則不管在任何情況下都清零,相當(dāng)與軟復(fù)位。(3)在掃描完鍵盤后,調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,并選擇,由于本任務(wù)是兩位四則運(yùn)算,只有乘法中結(jié)果會(huì)超出FFH 的范圍,在此就是選擇處理方式,超出范圍則跳過數(shù)據(jù)顯示轉(zhuǎn)換子程序,未超出則調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序,兩種選擇都是要把值轉(zhuǎn)換為七段碼。(4)調(diào)用數(shù)碼管動(dòng)態(tài)顯示子程序,顯示數(shù)值,重新循環(huán)。8 程序源代碼; 顯示緩沖區(qū)首地址定義DISPBUF EQU 30H; 主程序的入口地址ORG 0000H;4個(gè)數(shù)碼管顯示“0000”字形數(shù)據(jù) START:MOV DISPBUF,#0C0HMOV DISPBUF+1,#0C0HMOV DISPBUF+2,#0C0HM

24、OV DISPBUF+3,#0C0HMOV 37H,#00H ;數(shù)值初始化MOV 27H,#00HMOV 26H,#00HMOV 25H,#00HMOV 24H,#00HMOV 23H,#00HMOV R3,#00HMOV R5,#00HMOV R4,#00H; 調(diào)用鍵盤掃描子程序LOOP: LCALL KEYCJNE R6,#00H,START ;清除鍵判斷 MOV R6,26H; 顯示數(shù)據(jù)轉(zhuǎn)換子程序選擇 CJNE R6,#00H,FA; 調(diào)用數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序 LCALL CONV; 調(diào)用數(shù)碼管動(dòng)態(tài)顯示子程序 FA:LCALL DISPSCANSJMP LOOPKEY:MOV P2,

25、#0FH ;鍵盤掃描子程序 MOV A,P2ANL A,#0FHCJNE A,#0FH,K10RETK10:JB P2.0,K20K11:MOV P2,#0EFHJB P2.0,K12CJNE R5,#00H,L1MOV R4,#00HINC R5L1:LJMP CENDK12: MOV P2,#0DFH JB P2.0,K13CJNE R5,#00H,L2MOV R4,#00HINC R5MOV R3,#2HL2:LJMP CENDK13: MOV P2,#0BFH JB P2.0,K14CJNE R5,#00H,L3MOV R4,#00HINC R5MOV R3,#3HL3:LJMP CE

26、NDK14: MOV P2,#7FH JB P2.0,KILCJNE R5,#00H,L4MOV R4,#00HINC R5MOV R3,#4HKIL:LJMP KENDL4:LJMP CENDK20:JB P2.1,K30K21:MOV P2,#0EFH JB P2.1,K22LJMP DYUK22:MOV P2,#0DFH JB P2.1,K23MOV 25H,#3HLJMP OPRK23:MOV P2,#0BFH JB P2.1,K24MOV 25H,#6HLJMP OPRK24:MOV P2,#7FHJB P2.1,cctvMOV 25H,#9HLJMP OPRcctv:ljmp ke

27、ndK30:JB P2.2,K40K31: MOV P2,#0EFH JB P2.2,K32MOV 25H,#0HLJMP OPRK32:MOV P2,#0DFH JB P2.2,K33MOV 25H,#2HLJMP OPRK33:MOV P2,#0BFH JB P2.2,K34MOV 25H,#5HLJMP OPRK34:MOV P2,#7FHJB P2.2,KENDMOV 25H,#8HLJMP OPRK40:JB P2.3,KEND K41: MOV P2,#0EFH JB P2.3,K42INC 27HLJMP KENDK42:MOV P2,#0DFH JB P2.3,K43MOV 2

28、5H,#1HLJMP OPRK43:MOV P2,#0BFH JB P2.3,K44MOV 25H,#4HLJMP OPRK44:MOV P2,#7FHJB P2.3,KENDMOV 25H,#7HLJMP OPROPR: ;鍵值存儲(chǔ) INC R4CJNE R5,#00H,CHANG CJNE R4,#2H,KBKZHI:MOV A,20HMOV B,#0AHMUL ABMOV 20H,25HADD A,20HCJNE R5,#00H,CZH MOV 23H,ALJMP KENDCZH:MOV 24H,ALJMP KENDKEND:MOV P2,#0FH MOV A,P2ANL A,#0FHC

29、JNE A,#0FH,KEND RETCHANG:CJNE R4,#2H,HONG AJMP ZHIHONG:JNC CENDINC R5MOV 20H,25HMOV 24H,25HLJMP CENDKBK:JNC CENDMOV 20H,25HMOV 23H,25HLJMP CENDDYU: ;結(jié)果計(jì)算MOV R5,#00HMOV R4,#00HMOV 25H,#00HCJNE R3,#1H,SMOV A,23HADD A,24HMOV 23H,ASJMP CENDS:CJNE R3,#2H,S1 CLR CMOV A,23HCJNE A,#00H,JIANFA MOV 23H,#0EHSJ

30、MP CENDJIANFA:SUBB A,24H MOV 23H,ASJMP CENDS1:CJNE R3,#3H,S2 MOV A,23HMOV B,24HMOV A,23HMUL ABMOV R6,BCJNE R6,#00H,CHENG MOV 23H,ASJMP CENDS2:CJNE R3,#4,CEND MOV A,24HCJNE A,#00H,ZYMOV A,#00HSJMP CENDZY:MOV A,23HMOV B,24HDIV ABMOV 23H,ACEND:MOV P2,#0FH MOV A,P2ANL A,#0FHCJNE A,#0FH,CEND RETCHENG:MOV R3,BMOV B,#64HDIV ABMOV 36H,AMOV A,BMOV B,#0AHDIV ABMOV 35H,AMOV 34H,BMOV DPTR,#TABLEXIAN:MOV A,34HADD A,#6HMOV B,#0AHDIV ABMOV 25H,AMOV 34H,BMOV A,BMOVC A,A+DPTRMOV DISPBUF,AMOV A,35HADD A,#5HADD A,25HMOV B,#0AHDIV AB

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論