基于51單片機的計算器設(shè)計程序代碼(匯編)_第1頁
基于51單片機的計算器設(shè)計程序代碼(匯編)_第2頁
基于51單片機的計算器設(shè)計程序代碼(匯編)_第3頁
基于51單片機的計算器設(shè)計程序代碼(匯編)_第4頁
基于51單片機的計算器設(shè)計程序代碼(匯編)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、DBUFEQU 30HTEMP EQU 40HYJ EQU50H ;結(jié)果存放YJ1 EQU51H ;中間結(jié)果存放GONG EQU52H ;功能鍵存放ORG 00HSTART:MOV R3,#0 ;初始化顯示為空MOV GONG,#0MOV 30H,#10HMOV 31H,#10HMOV 32H,#10HMOV 33H,#10HMOV 34H,#10HMLOOP:CALL DISP ;PAN調(diào)顯示子程序WAIT:CALL TESTKEY ;判斷有無按鍵JZ WAIT CALL GETKEY ;讀鍵INC R3 ;按鍵個數(shù)CJNE A,#0,NEXT1 ;判斷是否數(shù)字鍵LJMP E1 ;轉(zhuǎn)數(shù)字鍵處

2、理NEXT1:CJNE A,#1,NEXT2LJMP E1NEXT2:CJNE A,#2,NEXT3LJMP E1NEXT3:CJNE A,#3,NEXT4LJMP E1NEXT4:CJNE A,#4,NEXT5LJMP E1NEXT5:CJNE A,#5,NEXT6LJMP E1NEXT6:CJNE A,#6,NEXT7LJMP E1NEXT7:CJNE A,#7,NEXT8LJMP E1NEXT8:CJNE A,#8,NEXT9LJMP E1NEXT9:CJNE A,#9,NEXT10LJMP E1NEXT10:CJNE A,#10,NEXT11 ;判斷是否功能鍵LJMP E2 ;轉(zhuǎn)功能鍵

3、處理NEXT11:CJNE A,#11,NEXT12LJMP E2NEXT12:CJNE A,#12, NEXT13LJMP E2NEXT13:CJNE A,#13,NEXT14LJMP E2NEXT14:CJNE A,#14,NEXT15LJMP E2NEXT15:LJMP E3 ;判斷是否清除鍵E1:CJNE R3,#1,N1 ;判斷第幾次按鍵LJMP E11 ;為第一個數(shù)字N1:CJNE R3,#2,N2LJMP E12 ;為第二個數(shù)字N2:CJNE R3,#3,N3 LJMP E13 ;為第三個數(shù)字N3:LJMP E3 ;第四個數(shù)字轉(zhuǎn)溢出E11:MOV R4,A ;輸入值暫存R4MOV

4、 34H,A ;輸入值送顯示緩存MOV 33H,#10HMOV 32H,#10HLJMP MLOOP ;等待再次輸入E12: MOV R7,A ;個位數(shù)暫存R7MOV B,#10MOV A,R4MUL AB ;十位數(shù)ADDA,R7MOV R4,A ;輸入值存R4MOV 32H,#10H ;輸入值送顯示緩存MOV 33H,34HMOV 34H,R7LJMP MLOOPE13:MOV R7,AMOV B,#10MOV A,R4MUL ABJB OV,E3 ;輸入溢出ADD A,R7JB CY,E3 ;輸入溢出MOV R4,AMOV 32H,33H;輸入值送顯示緩存MOV 33H,34HMOV 34

5、H,R7LJMP MLOOPE3:MOV R3,#0 ;按鍵次數(shù)清零MOV R4,#0 ;輸入值清零MOV YJ,#0 ;計算結(jié)果清零MOV GONG,#0 ;功能鍵設(shè)為零MOV 30H,#10H ;顯示清空MOV 31H,#10HMOV 32H,#10HMOV 33H,#10HMOV 34H,#10HLJMP MLOOPE2:MOV 34H,#10HMOV 33H,#10HMOV 32H,#10HMOV R0,GONG ;與上次功能鍵交換MOV GONG,AMOV A,R0CJNE A,#10,N21 ;判斷功能鍵LJMP JIA ;""N21: CJNE A,#11,N

6、22LJMP JIAN ;""N22: CJNE A,#12,N23LJMP CHENG ;"*"N23:CJNE A,#13,N24LJMP CHU ;"/"N24:CJNE A,#0,N25LJMP FIRST ;首次按功能鍵N25:LJMP DEN ;"="N4:LJMP E3FIRST:MOV YJ,R4 ;輸入值送結(jié)果MOV R3,#0 ;按鍵次數(shù)清零LJMP DISP1 ;結(jié)果處理JIA:MOV A,YJ;上次結(jié)果送累加器ADD A,R4;上次結(jié)果加輸入值JB CY,N4;溢出MOV YJ,A;存本次結(jié)

7、果MOV R3,#0;按鍵次數(shù)清零LJMP DISP1JIAN:MOV A,YJSUBB A,R4;上次結(jié)果減輸入值JB CY,N4;負數(shù)溢出MOV YJ,AMOV R3,#0LJMP DISP1CHENG:MOV A,YJMOV B,AMOV A,R4MUL AB;上次結(jié)果乘輸入值JB OV,N4;溢出MOV YJ,ALJMP DISP1CHU:MOV A,R4MOV B,AMOV A,YJDIV AB;上次結(jié)果除輸入值MOV YJ,AMOV R3,#0LJMP DISP1DEN:MOV R3,#0LJMP DISP1DISP1:MOVB,#10MOVA,YJ;結(jié)果送累加器DIVAB;結(jié)果除

8、10MOVYJ1,A;暫存"商"MOVA,B;取個位數(shù)MOV34H,A;個位數(shù)送顯示緩存MOVA,YJ1JZDISP11;結(jié)果是否為一位數(shù)MOVB,#10MOVA,YJ1DIVABMOVYJ1,AMOVA,BMOV33H,A;十位送顯示緩存MOVA,YJ1JZDISP11;結(jié)果是否為二位數(shù)MOV32H,A;百位數(shù)送顯示緩存DISP11:LJMPMLOOPDISP:MOVR0,#DBUF;顯示子程序MOVR1,#TEMP+4MOVR2,#5DP10:MOVDPTR,#SEGTABMOVA,R0MOVCA,A+DPTRMOVR1,AINCR0DECR1DJNZR2,DP10MO

9、VR0,#TEMPDP12:MOV A,R0MOV P0,Aclr P2.7CALL D1MSsetb P2.7INC R0MOV A,R0MOV P0,Aclr P2.6CALL D1MSsetb P2.6INC R0MOV A,R0MOV P0,Aclr P2.5CALL D1MSsetb P2.5INC R0MOV A,R0MOV P0,Aclr P2.4CALL D1MSsetb P2.4INC R0MOV A,R0MOV P0,Aclr P2.3CALL D1MSsetb P2.3RETD1MS: MOV R7,#02HDMS: MOV R6,#0FFH DJNZ R6,$DJNZ

10、R7,DMS RETSEGTAB:DB 028H,7eH,0A2H,062H DB 74H, 61H, 21H, 7aH DB 20H, 60H, 88H, 83H DB 0C6H, 0A1H, 86H, 8EH,0ffHTESTKEY:ACALL DISPMOVP1,#0FH;讀入鍵狀態(tài)MOVA,P1CPLAANLA,#0FH;高四位不用RETKEYTABLE:DB0DEH,0EDH,0DDH,0BDH;鍵碼定義DB0EBH,0DBH,0BBH,0E7HDB0D7H,0B7H,07EH,07DHDB07BH,077H,0BEH,0EEHGETKEY:;讀鍵子程序MOVR6,#10ACALLDELAYMOVP1,#0FHMOVA,P1CJNEA,0FH,K12LJMPMLOOPK12: MOVB,AMOVP1,#0EFHMOVA,P1CJNEA,#0EFH,K13MOVP1,#0DFHMOVA,P1CJNEA,#0DFH,K13MOVP1,#0BFHMOVA,P1CJNEA,#0BFH,K13MOVP1,#07FHMOVA,P1CJNEA,#07FH,K13LJMPMLOOPK13: ANL A,#0F0HORLA,BMOVB,AMOVR1,#16MOVR2,#0MOVDPTR,#KEYTABLEK14:MOVA,R2MOVCA

溫馨提示

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

評論

0/150

提交評論