2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機課程設(shè)計</b></p><p>  題 目: 簡易計算器的設(shè)計 </p><p>  班 級: , </p><p>  姓 名: , </p><p

2、>  學(xué) 號: , </p><p>  指導(dǎo)教師: , </p><p>  設(shè)計時間: 09.12.28-09.12.31 , </p><p><b>  摘 要</b>

3、</p><p>  近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p>  本題目是實現(xiàn)兩位數(shù)的加減運算的簡易計算器,實現(xiàn)鍵盤輸入,由七段LED數(shù)碼管輸出;程序都是根據(jù)教材內(nèi)和網(wǎng)絡(luò)中的程序參考編寫

4、而成,在功能上還并不十分完善,限制也較多。本設(shè)計重在設(shè)計構(gòu)思,使得我們用專業(yè)知識、專業(yè)技能分析和解決問題,通過設(shè)計使得我們對所學(xué)知識徹底鞏固。</p><p>  關(guān)鍵詞:單片機,計算器,范圍,加減</p><p><b>  目 錄</b></p><p><b>  1 設(shè)計說明1</b></p>

5、<p>  1.1 設(shè)計內(nèi)容1</p><p>  1.2 設(shè)計要求1</p><p>  1.3設(shè)備及工作環(huán)境1</p><p><b>  2 硬件方案1</b></p><p>  2.1 設(shè)計思路1</p><p>  2.2 原理電路圖2</p>&

6、lt;p>  2.3 主要元件功能說明2</p><p>  2.4 硬件工作原理闡述7</p><p><b>  3 軟件方案8</b></p><p>  3.1 分析論證8</p><p>  3.2 程序流程圖9</p><p>  3.3 程序清單10</p&g

7、t;<p>  4 調(diào)試過程及結(jié)果分析16</p><p><b>  5 設(shè)計總結(jié)16</b></p><p><b>  參考文獻16</b></p><p><b>  1.設(shè)計說明</b></p><p><b>  1.1設(shè)計內(nèi)容<

8、/b></p><p>  本次的設(shè)計是利用單片機設(shè)計簡單的計算器,本設(shè)計利用單片機的I/O接口設(shè)計2×4鍵盤,8個鍵依次對應(yīng)0~3、“+”、“-”、“=”和清除鍵。通過檢測不同數(shù)字鍵、功能鍵的按下,可以進行小于255的數(shù)的加減乘除運算,并可連續(xù)運算。當(dāng)鍵入值大于255時,將自動清零,可以重新輸入。對應(yīng)每一個數(shù)字鍵按下的同時,LED顯示按下鍵的值,并顯示最后的運算結(jié)果。</p>&l

9、t;p><b>  1.2設(shè)計要求</b></p><p>  要求能實現(xiàn)小于255的數(shù)的加減運算,采用2×4鍵盤,8個鍵依次對應(yīng)0~3、“+”、“-”、“=”和清除鍵。根據(jù)輸入鍵的按下實現(xiàn)不同的功能,最終結(jié)果通過LED顯示。</p><p>  1.3設(shè)備及工作環(huán)境</p><p>  8051單片機一片、七段四顯示數(shù)碼管一個

10、、排阻一個、導(dǎo)線若干、12MHz晶振一個、30pF電容兩個</p><p>  所有設(shè)備均工作在常溫下(0℃~70℃)</p><p><b>  2.硬件方案</b></p><p><b>  2.1設(shè)計思路</b></p><p>  本設(shè)計利用單片機的I/O接口設(shè)計2×4鍵盤,兩行

11、四列分別由單片機的P2.4\P2.5及P2.0-P2.3輸入輸出數(shù)據(jù)。采用P0口和P1.0-P1.3輸出數(shù)據(jù)到數(shù)碼管顯示由鍵盤輸入的數(shù)據(jù)及最終計算結(jié)果。</p><p><b>  2.2 原理電路圖</b></p><p>  圖2.1 硬件電路圖</p><p>  2.3主要元件功能說明</p><p>  2.3

12、.1單片機概述</p><p>  單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領(lǐng)域,故又稱為微控制器。</p><p>  通常,單片機由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機控制系統(tǒng)。</p>

13、<p>  單片機經(jīng)過1、2、3,3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強,內(nèi)部資源在增多,引腳的多功能化,以及低電壓低功耗。</p><p><b>  2.3.2芯片簡介</b></p><p>  MSC-51芯片簡介:</p><p>  8051單片機包含中央處理器、程序存儲器(ROM)

14、、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p><b>  中央處理器:</b></p><p>  中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控

15、制輸入輸出功能等操作。</p><p>  數(shù)據(jù)存儲器(RAM):</p><p>  8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。</p><p>  定時/

16、計數(shù)器(ROM)</p><p>  8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p>  并行輸入輸出(I/O)口:</p><p>  8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。</p><p><b>  全雙工串行口:</b>

17、;</p><p>  8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p><b>  中斷系統(tǒng):</b></p><p>  8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。

18、</p><p><b>  時鐘電路:</b></p><p>  8051內(nèi)置最高頻率達(dá)12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。</p><p>  圖2.2 單片機結(jié)構(gòu)圖</p><p>  MCS-51的引腳說明:</p><p>  MCS

19、-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),下圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用。現(xiàn)在我們對這些引腳的功能加以說明:如圖2.3</p><p>  圖2.3單片機引腳圖</p><p>  Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8051通電,時

20、鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。</p><p>  8051的復(fù)位方式可以是自動復(fù)位,也可以是手動

21、復(fù)位,見圖2.4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p>  圖2.4單片機復(fù)位電路</p><p>  Pin30:ALE/當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以

22、當(dāng)作一個時鐘向外輸出。更有一個特點,當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。</p><p>  如果單片機是EPROM,在編程其間,將用于輸入編程脈沖。</p><p>  Pin29:當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。</p><p>  P

23、in31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機,內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。</p><p>  在編程時,EA/Vpp腳還需加上21V的編程電壓。</p>&l

24、t;p><b>  2.3.3相關(guān)知識</b></p><p><b>  數(shù)碼管顯示</b></p><p>  在本任務(wù)中用4位數(shù)碼管顯示當(dāng)前數(shù)值的千,百,十,個,由于數(shù)碼管個數(shù)多,如采用靜態(tài)顯示方式,則占用單片機的I/O口線太多,如果用定時器/計數(shù)器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,則電路復(fù)雜。所以

25、,在數(shù)碼管個數(shù)較多時,常采用動態(tài)顯示方式。</p><p>  如圖2.1所示為單片機應(yīng)用系統(tǒng)中的一種數(shù)碼管動態(tài)顯示電路圖,4位數(shù)碼管的相同段并聯(lián)在一起,由一個8位I/O(P1口)輸出字形碼控制顯示某一字形,每個數(shù)碼管的公共端由另外一個I/O口(P0口)輸出的字位碼控制,即數(shù)碼管顯示的字形是由單片機I/O口輸出的字形碼確定,而哪個數(shù)碼管點亮是由單片機I/O口輸出的字位碼確定的。4個數(shù)碼管分時輪流循環(huán)點亮,在同一時

26、刻只有1個數(shù)碼管點亮,但由于數(shù)碼管具有余輝特性及人眼具有視覺暫留特性,所以適當(dāng)?shù)剡x取循環(huán)掃描頻率,看上去所有數(shù)碼管是同時點亮的,察覺不出閃爍現(xiàn)象。動態(tài)顯示方式所接數(shù)碼管不能太多,否則會因每個數(shù)碼管所分配的實際導(dǎo)通時間太少,使得數(shù)碼管的亮度不足。在本任務(wù)中,為了簡便,字形碼和字位碼都沒由加驅(qū)動電路,在實際應(yīng)用中應(yīng)加驅(qū)動電路。數(shù)碼管有共陰極和共陽極兩種,對于共陽數(shù)碼管,字形驅(qū)動輸出0有效,字位驅(qū)動輸出1有效;而對于共陰數(shù)碼管則相反,即:字形

27、驅(qū)動輸出1有效,字位驅(qū)動輸出0有效。</p><p><b>  矩陣按鍵</b></p><p>  鍵盤是單片機系統(tǒng)中最常用的人機對話輸入設(shè)備,用戶通過鍵盤向單片機輸入數(shù)據(jù)或指令。鍵盤控制程序需完成的任務(wù)有:監(jiān)測是否有鍵按下,有鍵按下時,在無硬件去抖的動電路時,應(yīng)用軟件延時方法消除按鍵抖動影響;當(dāng)有多個鍵同時按下時,只處理一個按鍵,不管一次按鍵持續(xù)多長時間,僅執(zhí)行

28、一次按鍵功能程序。</p><p>  矩陣按鍵掃描程序是一種節(jié)省I/O口的方法,按鍵數(shù)目越多節(jié)省I/O口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那一只鍵按下。但是,在程序的寫法上,采用了最簡單的方法,使得程序效率最高。本程序中,如果檢測到某鍵按下了,就不再檢測其它的按鍵,這完全能滿足絕大多數(shù)需要,又能節(jié)省大量的CPU時間。</p><p>  本鍵盤掃描程序的

29、優(yōu)點在于:不用專門的按鍵延時程序,提高了CPU效率,也不用中斷來掃描鍵盤,節(jié)省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU時最短,不論有鍵按下或者無鍵按下都可以在很短的時間完成一次掃描。</p><p>  2.4 硬件工作原理闡述</p><p>  8051單片機的P2口作鍵盤口,其中P2.4-P2.5為鍵盤掃描輸出線,P2.0-P2.3為鍵盤掃描輸入線。鍵盤由2*4共8個按鍵

30、組成,4個數(shù)字鍵(由0-3組成)3個運算符號(加減等于)組成,1個清除鍵(作用相當(dāng)于整體復(fù)位)。4個數(shù)碼管用于顯示當(dāng)前數(shù)值的千,百,十,個,采用動態(tài)顯示方式,P1口接4個數(shù)碼管的七段,P0口分別接4個數(shù)碼管的公共端,P1口輸出數(shù)碼管的字形碼,P0口輸出數(shù)碼管的字位碼。</p><p><b>  3.軟件方案</b></p><p><b>  3.1 分析

31、論證</b></p><p><b>  程序工作過程如下:</b></p><p>  (1)首先賦予顯示緩沖初始值‘00 00’,并把數(shù)據(jù)存儲單元清零。</p><p>  (2)主程序調(diào)用鍵盤掃描子程序,判斷鍵值,是數(shù)字第一次直接賦予23H單元,如是第二次輸入數(shù)字,則把第一次值乘十后與第二次值相加,結(jié)果存儲到23H單元,并R4

32、計數(shù)2次,表示已輸入兩位,掃描鍵值時就不再賦值和顯示。等待運算符號的按下,按下等于號就直接計算并顯示,如加減就R5加一并把R4清零,表示可以輸入下一操作數(shù),與第一次相同,并等待等于鍵按下。清零鍵則不管在任何情況下都清零,相當(dāng)于軟復(fù)位。</p><p>  (3)在掃描完鍵盤后,調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序把值轉(zhuǎn)換為七段碼。</p><p>  (4)調(diào)用數(shù)碼管動態(tài)顯示子程序,顯示數(shù)值,重新循環(huán)&

33、lt;/p><p><b>  3.2 程序流程圖</b></p><p><b>  3.3 程序清單</b></p><p>  3.3.1存儲單元分配</p><p>  30H單元:數(shù)值個位顯示單元;31H單元:數(shù)值十位顯示單元;32H單元:數(shù)值百位顯示單元;33H單元:數(shù)值千位顯示單元;23H

34、單元:第一操作數(shù)存儲單元;24H單元:第二操作數(shù)存儲單元;25H單元:鍵值暫存單元;27H單元:清除鍵狀態(tài);34H-37H單元:結(jié)果數(shù)據(jù)轉(zhuǎn)換暫存單元;38H-39H單元:結(jié)果高低8位暫存單元;R5單元:操作數(shù)計數(shù)單元;R4單元:操作數(shù)數(shù)值位數(shù)計數(shù)單元;R3單元:運算符號存儲單元。</p><p>  3.3.2主程序設(shè)計</p><p>  主程序進行程序中用到的一些存儲單元的初始化,數(shù)值

35、顯示和2*4鍵盤掃描。首先,進行存儲單元初始化,給數(shù)碼管顯示單元30H-33H賦予“0000”字形數(shù)據(jù),將數(shù)值計數(shù)單元,存儲單元,賦予初值零。之后,調(diào)用鍵盤掃描子程序,和數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換程序,數(shù)碼管動態(tài)顯示子程序。主程序不斷進行鍵盤掃描,數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序和動態(tài)顯示子程序。</p><p>  3.3.3數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序CONV</p><p>  由于數(shù)值單元存放的是二進

36、制數(shù),而用戶熟悉的是十進制數(shù),所以應(yīng)將數(shù)值單元中的二進制轉(zhuǎn)換為十進制數(shù),即BCD碼。要通過數(shù)碼管顯示出當(dāng)前數(shù)值,還必須將BCD碼進一步轉(zhuǎn)換為七段碼,轉(zhuǎn)換的最終結(jié)果數(shù)據(jù)存放于顯示緩沖區(qū)30H-33H單元中,其中30H單元存放數(shù)值的個位七段碼,31H單元存放數(shù)值的十位七段碼,32H單元存放數(shù)值的百位七段碼,33H單元存放數(shù)值的千位七段碼。</p><p>  3.3.4數(shù)碼管動態(tài)顯示子程序</p>&l

37、t;p>  本任務(wù)由P1口輸出字形碼,P0口輸出字位碼。先將存放于30H單元的數(shù)值個位七段碼由P1口輸出,同時P0口輸出使數(shù)值個位顯示數(shù)碼管點亮的字位碼。由于采用的是共陽數(shù)碼管,所以只有該位數(shù)碼管對應(yīng)的P0.0為1,其他位P0.1-P0.3為0,點亮延時10MS。然后P1口輸出數(shù)值十位七段碼,P0.1為1,數(shù)值十位數(shù)碼管點亮,延時10MS。接著P1口輸出數(shù)值百位七段碼,P0.2為1,數(shù)值百位數(shù)碼管點亮,延時10MS。最后P1口輸出

38、數(shù)值千位七段碼,P0.3為1,數(shù)值千位數(shù)碼管點亮,延時10MS。</p><p><b>  程序源代碼:</b></p><p>  DISPBUF EQU 30H ;顯示數(shù)據(jù)存儲位置</p><p>  ORG 0000H ;主程序的入口地址 </

39、p><p>  START:MOV DISPBUF,#0C0H ;4個數(shù)碼管顯示"0000"字形數(shù)據(jù) </p><p>  MOV DISPBUF+1,#0C0H </p><p>  MOV DISPBUF+2,#0C0H</p><p>  MOV DISPBUF+3,#0C0H</p><

40、p>  MOV 37H,#00H ;數(shù)值初始化</p><p>  MOV 27H,#00H</p><p>  MOV 26H,#00H</p><p>  MOV 25H,#00H</p><p>  MOV 24H,#00H</p><p>  MOV 23

41、H,#00H</p><p>  MOV R3,#00H</p><p>  MOV R5,#00H</p><p>  MOV R4,#00H</p><p>  LOOP: LCALL KEY ;調(diào)用鍵盤掃描子程序</p><p>  MOV R6,27H</p

42、><p>  CJNE R6,#00H,START ;清除鍵判斷</p><p>  MOV R6,26H</p><p>  CJNE R6,#00H,FA ;顯示數(shù)據(jù)轉(zhuǎn)換子程序選擇</p><p>  LCALL CONV ;調(diào)用數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序</p><p>

43、  FA: LCALL DISPSCAN ;調(diào)用數(shù)碼管動態(tài)顯示子程序</p><p><b>  SJMP LOOP</b></p><p>  KEY: MOV P2,#0FH ;鍵盤掃描子程序 ;低4位送1</p><p>  MOV A,P2

44、 ;行輸入</p><p>  ANL A,#0FH </p><p>  CJNE A,#0FH,K10 ;有按下跳轉(zhuǎn)</p><p><b>  RET</b></p><p>  K10: JB P2.0,K20 ;第一列&

45、lt;/p><p>  K11: MOV P2,#0EFH ;一行一列</p><p>  JB P2.0,K12</p><p>  CJNE R5,#00H,L1</p><p>  MOV R4,#00H</p><p><b>  INC R5</b

46、></p><p>  MOV R3,#1H</p><p>  L1: LJMP CEND</p><p>  K12: MOV P2,#0DFH</p><p>  JB P2.0,K13</p><p>  CJNE R5,#00H,L2</p><p>  M

47、OV R4,#00H</p><p><b>  INC R5</b></p><p>  MOV R3,#2H</p><p>  L2: LJMP CEND</p><p>  KIL: LJMP KEND</p><p>  L4: LJMP CEND</

48、p><p>  K20: JB P2.1,K30 ;第二列</p><p>  K21: MOV P2,#0EFH</p><p>  JB P2.1,K22</p><p><b>  LJMP DYU</b></p><p>  K22: MOV P2,#0DFH<

49、/p><p>  JB P2.1,K23</p><p>  MOV 25H,#3H</p><p><b>  LJMP OPR</b></p><p>  CCTV:LJMP KEND</p><p>  K30: JB P2.2,K40 ;第三列</p>&

50、lt;p>  K31: MOV P2,#0EFH</p><p>  JB P2.2,K32</p><p>  MOV 25H,#0H</p><p><b>  LJMP OPR</b></p><p>  K32: MOV P2,#0DFH</p><p>  JB P2.

51、2,K33</p><p>  MOV 25H,#2H</p><p><b>  LJMP OPR</b></p><p>  K40: JB P2.3,KEND ;第四列</p><p>  K41: MOV P2,#0EFH</p><p

52、>  JB P2.3,K42</p><p><b>  INC 27H</b></p><p><b>  LJMP KEND</b></p><p>  K42: MOV P2,#0DFH</p><p>  JB P2.3,K43</p><p>  MOV

53、 25H,#1H</p><p><b>  LJMP OPR</b></p><p>  OPR: INC R4 ;鍵值存儲</p><p>  CJNE R5,#00H,CHANG</p><p>  CJNE R4,#2H,KBK</p

54、><p>  ZHI: MOV A,20H</p><p>  MOV B,#0AH</p><p><b>  MUL AB</b></p><p>  MOV 20H,25H</p><p><b>  ADD A,20H</b></p><p> 

55、 CJNE R5,#00H,CZH</p><p><b>  MOV 23H,A</b></p><p><b>  LJMP KEND</b></p><p>  CZH: MOV 24H,A</p><p><b>  LJMP KEND</b></p>&

56、lt;p>  KEND:MOV P2,#0FH</p><p><b>  MOV A,P2</b></p><p>  ANL A,#0FH</p><p>  CJNE A,#0FH,KEND</p><p><b>  RET</b></p><p>  CHAN

57、G: CJNE R4,#2H,HONG </p><p><b>  AJMP ZHI</b></p><p>  HONG:JNC CEND</p><p><b>  INC R5</b></p><p>  MOV 20H,25H</p><p>  MOV 24H,2

58、5H</p><p><b>  LJMP CEND</b></p><p>  KBK: JNC CEND</p><p>  MOV 20H,25H</p><p>  MOV 23H,25H</p><p><b>  LJMP CEND</b></p>

59、<p>  DYU: MOV R5,#00H ;結(jié)果計算</p><p>  MOV R4,#00H</p><p>  MOV 25H,#00H</p><p>  CJNE R3,#1H,S</p><p><b>  MOV A,23H</b></p>

60、<p><b>  ADD A,24H</b></p><p><b>  MOV 23H,A</b></p><p><b>  SJMP CEND</b></p><p>  S: CJNE R3,#2H,S1</p><p><b>

61、;  CLR C</b></p><p><b>  MOV A,23H</b></p><p>  CJNE A,#00H,JIANFA</p><p>  MOV 23H,#0EH</p><p><b>  SJMP CEND</b></p><p>  J

62、IANFA:SUBB A,24H</p><p><b>  MOV 23H,A</b></p><p><b>  SJMP CEND</b></p><p>  S1: CJNE R3,#3H,S2</p><p><b>  MOV A,23H</b><

63、/p><p><b>  MOV B,24H</b></p><p><b>  MOV A,23H</b></p><p><b>  MUL AB</b></p><p><b>  MOV R6,B</b></p><p>  C

64、JNE R6,#00H,CHENG</p><p><b>  MOV 23H,A</b></p><p><b>  SJMP CEND</b></p><p>  S2: CJNE R3,#4,CEND</p><p><b>  MOV A,24H</b>&l

65、t;/p><p>  CJNE A,#00H,ZY</p><p>  MOV A,#00H</p><p><b>  SJMP CEND</b></p><p>  ZY: MOV A,23H</p><p><b>  MOV B,24H</b></p>

66、;<p><b>  DIV AB</b></p><p><b>  MOV 23H,A</b></p><p>  CEND:MOV P2,#0FH</p><p><b>  MOV A,P2</b></p><p>  ANL A,#0FH</p&g

67、t;<p>  CJNE A,#0FH,CEND</p><p>  CONV: CJNE R5,#02H,BEI ;數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序 </p><p><b>  MOV A,24H</b></p><p><b>  AJMP JING</b></

68、p><p>  BEI: MOV A,23H</p><p>  JING: MOV B,#64H</p><p><b>  DIV AB</b></p><p>  MOV DPTR,#TABLE</p><p>  MOVC A,@A+DPTR</p><p>

69、;  MOV DISPBUF+2,A</p><p><b>  MOV A,B</b></p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV DISPBUF+

70、1,A</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV DISPBUF,A</p><p><b>  RET</b></p><p>  DISPSCAN:MOV R0,#DISPBUF

71、 ;數(shù)碼管動態(tài)顯示子程序</p><p>  MOV R2,#4H</p><p><b>  MOV A,#1H</b></p><p>  SC: PUSH ACC</p><p><b>  MOV A,@R0</b></p><p><

72、;b>  MOV P1,A</b></p><p><b>  POP ACC</b></p><p><b>  MOV P0,A</b></p><p>  LCALL DELAY1</p><p><b>  RL A</b></p>&l

73、t;p><b>  INC R0</b></p><p>  DJNZ R2,SC</p><p>  MOV P0,#1H</p><p><b>  RET</b></p><p>  DEL12: MOV R6,#1EH</p><p>  DEL2: MOV R

74、7,#64H</p><p>  DEL1: DJNZ R7,DEL1</p><p>  DJNZ R6,DEL2</p><p><b>  RET</b></p><p>  DELAY1:MOV R6,#70 ;延時程序</p><p> 

75、 D2: MOV R7,#100</p><p><b>  DJNZ R7,$</b></p><p>  DJNZ R6,D2</p><p><b>  RET</b></p><p>  TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;------字符表-

76、-----</p><p>  DB 92H,82H,0F8H,80H,90H</p><p>  DB 88H,83H,0C6H,0A1H,86H</p><p><b>  END</b></p><p>  4.調(diào)試過程及結(jié)果分析</p><p>  1.首先賦予顯示緩沖初始值‘00 00’

77、,并把數(shù)據(jù)存儲單元清零。</p><p>  2.主程序調(diào)用鍵盤掃描子程序,判斷鍵值,是數(shù)字第一次直接賦予23H單元,如是第二次輸入數(shù)字,則把第一次值乘十后與第二次值相加,結(jié)果存儲到23H單元,并R4計數(shù)2次,表示已輸入兩位,掃描鍵值時就不再賦值和顯示。等待運算符號的按下,按下等于號就直接計算并顯示,如加減就R5加一并把R4清零,表示可以輸入下一操作數(shù),與第一次相同,并等待等于鍵按下。清零鍵則不管在任何情況下都清

78、零,相當(dāng)于軟復(fù)位。</p><p>  3.在掃描完鍵盤后,調(diào)用數(shù)據(jù)顯示轉(zhuǎn)換子程序把值轉(zhuǎn)換為七段碼。</p><p>  4.調(diào)用數(shù)碼管動態(tài)顯示子程序,顯示數(shù)值,重新循環(huán)。</p><p><b>  參 考 文 獻</b></p><p>  [1] 李華.單片機原理及應(yīng)用[M].蘭州:蘭州大學(xué)出版社,2001<

溫馨提示

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

評論

0/150

提交評論