4位BCD碼運算_第1頁
4位BCD碼運算_第2頁
4位BCD碼運算_第3頁
4位BCD碼運算_第4頁
4位BCD碼運算_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精品文檔ORG 0000HAJMP MAINORG 0030MAIN: MOV 7AH,#09H/置顯示緩沖區MOV 7BH,#09HMOV 7CH,#09HMOV 7DH,#09HMOV 7EH,#09HMOV 7FH,#09HMOV A,#43H/8155方式字MOV DPTR,#0FF20H/8155方式字地址MOVX DPTR,A/初始化8155MOV R5,#00HLOOP0:ACALL KEY1/調鍵盤程序LINK: ACALL DIR/ACALL DLT/SJMP LOOP0/鍵盤掃描程序KEY1: ACALL KS1/調顯示程序調延時程序判斷后尢健閉合JNZ LK1/有健閉合(

2、A)豐0),轉去抖動AJMP NS/無健閉合,延時6msLK1: ACALL DLT/ACALL DLT/ACALL KS1/延時6ms延時6ms再判斷后尢健閉合JNZ LK2/有健閉合(A)豐0),求健碼ACALL DLT/AJMP KEY1/LK2: MOV R2,#0FEH/R2<-延時6ms無健閉合,返回掃描碼MOV R4,#00HR4?列號LK3: MOV DPTR,#0FF21H /DPTR<-A 口地址MOV A, R2 ;MOVX DPTR,A/A口 <-掃描碼INC DPTRINC DPTR/指向C 口MOVX A,DPTR/讀C 口JB ACC.0, L1

3、/PC0=1轉,A行無鍵閉合MOV A, #00H/PC0=0,A行有鍵閉合AJMP LK/轉去求鍵號L1: JB ACC.1, L2/PC1=1轉,第2行無鍵閉合MOV A, #08H/置彳T號AJMP LKL2: JB ACC.2 , L3/ PC1=1轉,第3行無鍵閉合MOV A, #10H/置彳丁號AJMP LK1歡血下載精品文檔/存儲鍵盤輸入的ascii碼/35H-3EH存輸入的所有鍵盤號的 ASCII碼L3: JB ACC.3 , NEXT /PC1=1 MOV A, #18HLK: ADD A,R4 MOV R1,#64H MOV R1,A ACALL NUM DEC R1 MO

4、V A,R1 PUSH ACC LK4: ACALL DLTACALL DIR ACALL KS1 JNZ LK4 POP ACC MOV 7FH,7EH MOV 7EH,7DH MOV 7DH,7CH MOV 7CH,7BH MOV 7BH,7AH MOV 7AH,A MOV R0,#65H MOV A,R0 MOV 3EH,3DH MOV 3DH,3CH MOV 3CH,3BH MOV 3BH,3AH MOV 3AH,39H MOV 39H,38H MOV 38H,37H MOV 37H,36H MOV 36H,35H MOV 35H,A INC R5/CJNE A,#45H,NS/MOV

5、 R1,#35H/AJMP RESULT /NS: RETNEXT: INC R4 / MOV A, R2 /A JNB ACC.7, NS / RL A/MOV R2, A AJMP LK3 / /查是否有鍵閉合子程序轉以下,第4行無鍵閉合置行號鍵號=行號+列號保存在堆棧中調顯示程序等待鍵釋放顯示緩沖區左移一位記錄輸入幾位數據有無等于號?末位數據存儲地址有等號轉去求結果形成新的列號,指向下一列口 <-掃描碼判斷6列掃描是否完畢形成新的掃描碼轉去掃描下一列2歡血下載精品文檔KS1: MOV DPTR, #0FF21H MOV A,#00H MOVX DPTR, A INC DPTR IN

6、C DPTR MOVX A,DPTR CPL A ANL A, #0FH RET /顯示程序置顯示緩沖區首地址 置位選碼DIR: MOV R0, #7AH / MOV R3, #01H/MOV A, R3LOOP: CPL A口地址口地址先去判斷現實的是否為運算符取顯示數據表首的的地址轉換為顯示碼顯示小數點MOV DPTR, #0FF21H /A MOVX DPTR,A INC DPTR/BAJMP JUDGE/CON: MOV A, R0/ADD A,#13H/MOVC A, A+PC/JNB PSW.7, DIR1 /F0=1, SETB ACC.7從B 口輸出顯示 延時下一個顯示數據 取

7、位選碼六位顯示完畢?新的位選碼DIR1: CPL A MOVX DPTR, A / ACALL DLT/INC R0 / MOV A, R3/JB ACC.5, LOOP1 / RL A / MOV R3, A AJMP LOOPLOOP1:RET ;顯示代碼表DB 07H,66H,7FH,6DHDB 6FH,7DH,7DH,7CHDB 06H,3FH,5BH,71H DB 4FH,79H,39H,5EH DB 40H;延時程序:DLT: MOV R7, #04HDLT1: MOV R6, #0FFHDLT2: DJNZ R6,DLT2DJNZ R7, DLT13歡血下載精品文檔判斷是否為符號

8、加號?減號?乘號?除法?按F鍵復位?復位RETJUDGE: MOV R1,#65H/MOV A,R1CJNE A,#41H,J1 /AJMP SIGNALJ1: CJNE A,#42H,J2 /AJMP SIGNALJ2: CJNE A,#43H,J3 / AJMP SIGNALJ3: CJNE A,#44H,J5 /AJMP SIGNALJ5: CJNE A,#46H,J6/MOV R1,#92H/MOV R1,#00HMOV 35H,#00HMOV 36H,#00HMOV 37H,#00HMOV 38H,#00HMOV 39H,#00HMOV 3AH,#00HMOV 3BH,#00HMOV

9、 3CH,#00HMOV 3DH,#00HMOV 3EH,#00HMOV 60H,#00HMOV 61H,#00HMOV 51H,#00HMOV 50H,#00HAJMP SIGNALJ6: AJMP CONRESULT:INC R1 /MOV A,R1CJNE A,#41H,ARITH1 /AJMP AD1ARITH1: MOV A,R1CJNE A,#42H,ARITH2 /AJMP SUB1ARITH2:CJNE A,#43H,ARITH3 / AJMP AL1ARITH3:CJNE A,#44H,ARITH4 / AJMP DI1ARITH4:DJNZ R5,RESULT /AJMP

10、NSNUM: ANL A,#0FH /求結果有加號?有減號?有乘號?有除號?都無,再取前一位數據求鍵號ASCII碼4歡血下載精品文檔MOV DPTR,#TABMOVC A,A+DPTRINC R1MOV R1,A /ASCII碼存 83HRETTAB: DB '748596AB'DB '102F3ECD'SIGNAL:MOV 7AH,#09H / 置顯示緩沖區MOV 7BH,#09HMOV 7CH,#09HMOV 7DH,#09HMOV 7EH,#09HMOV 7FH,#09HAJMP CON/ 加法AD1: ACALL TRANS /將存在35-3EH中的數壓

11、縮到 51,50與61,60H中ACALL AD12 /加法運算ACALL SPR /90-92H中的結果拆成六位放 20-28HACALL XIANSHI /結果顯示RET/ 減法SUB1: ACALL TRANSACALL SUB12ACALL SPRACALL XIANSHIRET/ 乘法AL1: ACALL TRANSACALL AL12ACALL SPRACALL XIANSHIRET/ 除法DI1: ACALL TRANSACALL DI12ACALL SPRACALL XIANSHIRETTRANS: MOV 3FH,#00H /MOV 30H,R1/譯程序將ASCII變為BCD

12、并將四位合并為兩地址中 譯輸入的二位MOV R2,#60H /NE1: MOV R3,#02H /LOO: DEC R1 /第二位數高兩位地址計數單位取等號前一位數據MOV A,R15歡血下載精品文檔CJNE A,#45H,LOO0AJMP LOO1/是否譯到等于號?LOO0: AJMP CO1CO1: CLR CYSUBB A,#30H/減去30,將ASCII轉為運算數ADD A,3FH/低位高位相加SWAP A/交換上下MOV 3FH,A/低便存局便DJNZ R3,LOO/第二位新儲存地址MOV 31H,R1/取數的地址暫存MOV 33H,R2/存儲地址暫存MOV R1,33HSWAP A

13、/交換上下位MOV R1,A/存入MOV 3FH,#00H/存高位的暫存地址清零INC R2/下一存儲地址MOV R1,31H/暫存的取數地址復原AJMP NE1LOO1: DEC R5/譯第一個輸入數MOV 3FH,#00H/置取數,存數地址MOV R1,30HMOV R2,#51HNE2: MOV R3,#02HLOO2: INC R1MOV A,R1DJNZ R5,LOO3/輸入數據是否譯完RETLOO3: AJMP CO2/跟loo0作用相似CO2: SUBB A,#30HANL A,#0FHADD A,3FH SWAP A MOV 3FH,ADJNZ R3,LOO2MOV 32H,R

14、1MOV 33H,R2MOV R1,33HMOV R1,AMOV 3FH,#00HDEC R2MOV R1 ,32H AJMP NE2AD12: CLR C/MOV A,51H加法計算6歡血下載精品文檔ADDC A,61HDA AMOV R0,#90H /低位相加MOV R0,AMOV A,50HADDC A,60HDA AINC R0 /高位相加MOV R0,AMOV A,#00HADDC A,#00HINC R0MOV R0,ARETSUB12:MOV A,51H / 減法計算SUBB A,61HMOV A,50HSUBB A,60HJNC SUB13 /MOV R0,#92H /MOV

15、R0,#0F0HMOV R1,#61H /MOV R0,#51HAJMP SUB14SUB13:MOV R1,#51HMOV R0,#61HSUB14:CLR C /比擬兩個數大小 做負數運算減數,被減數交換/正常取數運算開始ACALL BSUBMOV 11H,R0MOV R0,#90HMOV R0,AMOV R0,11H ACALL BSUBMOV R1,#91HMOV R1,A RETBSUB: MOV A,#9AHSUBB A,R0ADD A,R1DA ADEC R0DEC R1CPL CRET7歡血下載精品文檔將三地址中的數拆為六位 儲存地址清零初始化,r0運算結果最低位 新存儲地址,

16、r2循環量屏蔽高位存儲A下一存儲地址屏蔽低位是否全部拆完?顯不'結果取數地址顯示存儲地址設置循壞變量將結果變換為顯不'碼SPR: MOV 20H,#00H/MOV 21H,#00H/MOV 22H,#00HMOV 23H,#00HMOV 24H,#00HMOV 25H,#00HMOV R0,#90H/MOV R1,#20H/r1MOV R2,#04HCLR CLOW1: MOV A,R0ANL A,#0FH /MOV R1,A/INC R1 /MOV A,R0ANL A,#0F0H/SWAP AMOV R1,AINC R0INC R1DJNZ R2,LOW1 /RETXIANS

17、HI:/MOV 83H,#00H /MOV R0,#20H/MOV R1,#29H/MOV R2,#06H/XIAN: MOV A,R0CJNE A,#00H,H1/MOV R1,#09HH1: CJNE A,#01H,H2MOV R1,#08HH2: CJNE A,#02H,H3MOV R1,#0AHH3: CJNE A,#03H,H4MOV R1,#0CHH4: CJNE A,#04H,H5MOV R1,#01HH5: CJNE A,#05H,H6MOV R1,#03HH6: CJNE A,#06H,H7MOV R1,#05HH7: CJNE A,#07H,H8MOV R1,#00HH8:

18、 CJNE A,#08H,H98歡血下載精品文檔MOV R1,#02HH9: CJNE A,#09H,H101MOV R1,#04HH101: CJNE A,#0FH,H10MOV R1,#10HH10: INC R0INC R1DJNZ R2,XIAN/MOV 7AH,29H/MOV 7BH,2AHMOV 7CH,2BHMOV 7DH,2CHMOV 7EH,2DHMOV 7FH,2EHAJMP DIRAL12: LCALL CHANGE10TO16 /CLR CMOV A,73HMOV B,74HMUL ABMOV 73H,A/16MOV 74H,B/16LJMP CHANGE16TO10 /CHANGE10TO16:MOV B,#16MOV A,51HDIV ABMOV R3,AMOV R4,BMOV B,#10MUL ABADD A,R4MOV 73H,A /第一操作數MOV B,#16MOV A,61HDIV ABMOV R3,AMOV R4,BMOV B,#10MUL ABADD A,R4MOV 74H,A /第二操作數RET是否全部轉完?將轉換碼放入顯示緩沖區乘法運算壓縮BC加轉十六進制進制積的低八位進制積的高八位卜六進制轉壓縮 BC加,分開到各單元,顯示-73H-74H9歡血下載精品文檔CHANGE16TO10:CLR AMO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論