


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、沁-丄弟實驗報告課程名稱: 實驗名稱: 一、實驗?zāi)康暮鸵螅ū靥睿?三、主要儀器設(shè)備(必填) 五、實驗數(shù)據(jù)記錄和處理 七、討論、心得微機(jī)原理實驗 加法計算器及顯示指導(dǎo)老師: 成績: 實驗類型:同組學(xué)生:二、實驗容和原理(必填)四、操作方法和實驗步驟六、實驗結(jié)果與分析(必填)、實驗?zāi)康暮鸵?. 掌握基于狀態(tài)機(jī)的編程方法2. 實現(xiàn)數(shù)字運算、鍵盤輸入、LED顯示的多任務(wù)協(xié)調(diào)編程二、實驗容和原理1. 編寫程序,輸入兩個兩位十進(jìn)制數(shù)并顯示,按確認(rèn)鍵后顯示運算結(jié)果2. 基本功能:能夠輸入輸入數(shù)字(非數(shù)字無效)并顯示結(jié)果3附加功能:光標(biāo)指示功能(通過 LED閃爍實現(xiàn))以及退格功能加法器設(shè)計:編寫程序,輸入
2、兩個兩位十進(jìn)制數(shù)并顯示,按確 認(rèn)鍵后顯示運算結(jié)果。(B)(1)基本功能;能夠愉入數(shù)字(非數(shù)字無效)并顯示結(jié)果。(2)附加功能;光標(biāo)指示功能(通過LED閃爍實現(xiàn)),以及退格功能芬三、程序代碼ORG 0000HSTART: MOV78H,#0 ;初始化:78H放0的段碼,其余放熄滅碼MOV 79H,#10MOV 7AH,#10MOV 7BH,#10MOVMOVMOVMOVMOVMOV7CH,#10R5,#0R6,#0R7,#030H,#031H,#040H,#041H,#0MOVMOVLOOP: LCALLLCALL KEYINC R5DIR;R5是按鍵次數(shù),初始置0;將0置入R6中;將0置入R7
3、中;30H是功能鍵存放單元,置為0;31H單元初始置為0;40H單元初始置為0;41H單元初始置為0;調(diào)用顯示子程序;調(diào)用鍵盤檢測程序;按鍵次數(shù)加1S1: CJNE A,#10,S2 ;不是"+"鍵,跳到 S2LJMP FUN;是"+"鍵,跳到 FUNS2: CJNE A,#11,S3 ;不是"-"鍵,跳到 S3LJMP FUN;是"-"鍵,跳到 FUNS3: CJNE A,#12,S4;不是"*"鍵,跳到 S4LJMP FUN;是"*"鍵,跳到 FUNS4: CJNE A,
4、#13,S5;不是"/"鍵,跳至U S5LJMP FUN;是"/"鍵,跳至U FUNS5: CJNE A,#14,S6;不是"="鍵,跳到 S6LJMP FUN;是"="鍵,跳到 FUNS6: CJNE A,#15,N1;不是"CL"鍵,跳至U N1LJMP START ;是"CL"鍵,跳到 STARTN1: CJNE R5,#1,N2若按鍵次數(shù)不等于 1,跳到N2LJMP D11;跳到 D11N2: CJNE R5,#2,START;若按鍵次數(shù)不等于 2,跳到STARTLJ
5、MP T1;跳到 T1D11: MOV R4,AMOV 78H,AMOV 79H,#10LJMP LOOPT1: MOV 53H,AMOV B,#10MOV A,R4MUL ABADD A,53H;將A寫入R4;輸入值送顯示個位緩存;將10送到79H單元;跳轉(zhuǎn)到循環(huán);將A寫入53H;將10置入B;將上一次輸入的 R4寫進(jìn)A;A乘以10;53H里面的值與A相加MOV R4,A;將新的值置入到 R4MOV 79H,78H;個位到十位MOV 78H,53H;新數(shù)為個位LJMP LOOP;跳轉(zhuǎn)到循環(huán)FUN:MOV 78H,#10;將 10 置入到 78HMOV 79H,#10;將 10 置入到 79H
6、MOV R0,30H;與上次功能鍵交換MOV 30H,AMOV A,R0CJNE A,#10,FUN1;判斷功能鍵LJMP ADDY;""FUN1: CJNE A,#11,FUN2LJMP SUBT"IIJFUN2: CJNE A,#12,FUN3LJMP MULTjFUN3: CJNE A,#13,FUN4LJMP DIVI;"/"FUN4: CJNE A,#14,FUN5;首次按功能鍵 ,即 A=#0LJMP EQUAn_n j 一FUN5: MOV 40H,R4; 保存第一個數(shù)MOV R5,#0;按鍵次數(shù)清零LJMP BCD;將其拆為 B
7、CD 碼 ,以便后來將其顯示OF: LJMP START;跳轉(zhuǎn)回開始ADDY: MOV A,40H;加法,第一個數(shù)送累加器ADD A,R4;第一個數(shù)加第二個數(shù)MOV 40H,A;存本次結(jié)果MOV R5,#0;按鍵次數(shù)清零LJMP BCD;跳轉(zhuǎn)到 BCD 程序SUBT: MOV A,40H;減法,第一個數(shù)送累加器CLR C;借位清零SUBB A,R4;帶借位的減法,第一個數(shù)減第二個數(shù)JB CY,BCD2;借位為 1,跳轉(zhuǎn)到 BCD2MOV 40H,A;將減的結(jié)果送 40HMOV R5,#0;按鍵次數(shù)清零LJMP BCD;跳轉(zhuǎn)到 BCDMULT: MOV A,40H;乘法,第一個數(shù)送累加器MOV
8、B,A;將 A 送 BMOV A,R4;將第二個數(shù)送累加器MUL AB;第一個數(shù)乘以第二個數(shù)MOV R5,#0;按鍵次數(shù)清零JB OV,BCD1;若乘法結(jié)果溢出 ,則跳轉(zhuǎn)到 BCD1MOV 40H,A;將 A 送 40HLJMP BCD;跳轉(zhuǎn)到 BCDDIVI: MOV A,R4;除法,第二個數(shù)送累加器MOV B,AMOV A,40HDIV AB;將第二個數(shù)送 B;將第一個數(shù)送 A ;A 除以 BJB OV,OFMOV 40H,AMOV R5,#0LJMP BCDEQUA: MOV R5,#0MOV 31H,ALJMP BCD;當(dāng) B 為 0 時跳到 OF ;將 A 送 40H ;按鍵次數(shù)清零
9、 ;跳轉(zhuǎn)到 BCD ;按鍵次數(shù)清零 ;將 A 送 31H ;跳轉(zhuǎn)到 BCD乘法溢出時的處理程序BCD1:MOV 78H, BMOV 79H, ALCALL HEX2BCDMOV A, 7CHMOV B, #16DIV ABMOV 79H, AMOV 78H, BMOV A, 7AHMOV 7CH, AMOV A, 7BHMOV B, #16DIV ABMOV 7BH, AMOV 7AH, BLJMP LOOP;乘法溢出時的處理程序;將高 8 位送 78H;將低 8 位送 79H;調(diào)用子程序把 78H、79H 中的數(shù)字,轉(zhuǎn)換成 BCD 碼,送到 7AH 7BH 7CH ;下面,把萬千百十個位,分
10、別存入7CH 7BH 7AH 79H 78H;除以 16,目的是分離出高、低四位;存放十位;存放個位;存放萬位HEX2BCD:;子程序 :把 78H、 79H 中的數(shù)字,轉(zhuǎn)換成 BCD 碼,送到 7AH 7BH 7CHCLR AMOV 7AH, A MOV 7BH, AMOV 7CH, A MOV R6, #16LOOPP:;先清零;共轉(zhuǎn)換十六位數(shù)CLR CMOV A, 79HRLC AMOV 79H, AMOV A, 78HRLC AMOV 78H, A;從待轉(zhuǎn)換數(shù)的高端移出一位到Cy;送到 BCD 碼的低端 ;帶進(jìn)位加。自身相加,相當(dāng)于左移一位 ; 十進(jìn)制調(diào)整,變成 BCD 碼;共轉(zhuǎn)換十六
11、位數(shù)MOV A, 7CH ADDC A, 7CH DA AMOV 7CH, AMOV A, 7BHADDC A, 7BH DA AMOV 7BH, AMOV A, 7AH ADDC A, 7AHMOV 7AH, ADJNZ R6,LOOPP RETBCD2:MOV A,#100;減法第七位有借位時的處理程序CLR C;借位清零SUBB A,R4;100-被減數(shù)MOV R4,A;將結(jié)果存在 R4 中MOV A,40H;將減數(shù)給 AADD A,R4;減數(shù) +(100- 被減數(shù))MOV R4,A;將結(jié)果給 R4MOV A,#100;將 100 給 ACLR C;將 CY 清零SUBB A,R4;10
12、0- (減數(shù) +(100-被減數(shù))MOV B,#10;將 10 給 BDIV AB;A 除以 10MOV 7AH,#11;將 11 給 7AH, 以便顯示符號MOV 79H,A;將 A 給 79HMOV 78H,B;將 B 給 78HLJMP LOOP; 跳轉(zhuǎn)到 LOOP; 拆為 BCD 碼的程序BCD: MOV B,#10;將 10 給 BMOV A,40H;結(jié)果送累加器DIV AB;結(jié)果除 10MOV 41H,A;41H 暫存 "商"MOV A,B;取余數(shù)MOV 78H,A; 余數(shù)送 78HMOV B,#10;將 10 送 BMOV A,41H;將商送 ADIV AB;
13、A 除以 10CJNE A,#0,PANDUAN1; 若 A 不等于 0,則跳轉(zhuǎn)到 PANDUAN1MOV 79H,B;若 A 等于 0,則將 B 送 79HLJMP RETURN;跳轉(zhuǎn)到 RETURNPANDUAN1:MOV 7AH,A;AMOV 79H,BRETURN:LJMP LOOP送 7AH;B 送 79H;跳轉(zhuǎn)到 LOOP; 動態(tài)顯示子程序DIR: MOV DPTR,#TAB ;數(shù)碼管譯碼表首址MOV R0,#78HCJNE R5,#1,ANJIAN2 ANJIAN1: MOV A,R0 MOVC A,A+DPTRCLR P2.3MOV P3,ALCALL DELAY1msSETB
14、 P2.3MOV P3,#0FFHLCALL DELAY1ms;待顯緩沖區(qū)個位地址; 判斷按鍵次數(shù)是否為 1,不是則跳轉(zhuǎn)到 ANJIAN2 ;將顯示區(qū)的個位地址給 A;查表;點亮 P2.3;字段碼送 P3 口;調(diào)延時 1ms 子程序;關(guān)閉 P2.3;將 P3 口熄滅;調(diào)用延時 1ms 子程序按鍵 1 次時光標(biāo)閃爍功能INC R6;將 R6 加 1CJNE R6,#70,SHANSHUO1 ; 若 R6 不等于 70, 則跳轉(zhuǎn)到 SHANSHUO1SETB P2.2MOV P3,#0FFH LCALL DELAY1ms DEC R6INC R7;將 P2.2 關(guān)閉;將 P2 口熄滅;調(diào)用延時 1
15、ms 子程序;R6 就減 1;R7 加 1CJNE R7,#70,FANHUIMOV R6,#0MOV R7,#0FANHUI:RETSHANSHUO1:;判斷 R7 是否等于 70,若不等于 70,則跳轉(zhuǎn)到 FANHUI ; 將 R6 置 0; 將 R7 置 0;子程序返回CLR P2.2MOV P3,#0EFH LCALL DELAY1ms SETB P2.2MOV P3,#0FFH RET;打開 P2.2;顯示“ -”;調(diào)用延時 1ms 子程序;關(guān)閉 P2.2;熄滅 P3;返回;按鍵次數(shù)為 2 顯示ANJIAN2:CJNE R5,#2,ANJIANDENG; 如果 R5 不等于 0,則跳
16、轉(zhuǎn)到 ANJIANDENGMOV A,R0MOVC A,A+DPTRCLR P2.3MOV P3,A; 將顯示區(qū)的個位地址給 A;查表;點亮 P2.3;將個位顯示LCALL DELAY1msSETB P2.3MOV P3,#0FFHINC R0MOV A,R0MOVC A,A+DPTRCLR P2.2MOV P3,ALCALL DELAY1msSETB P2.2MOV P3,#0FFHSETB P2.1MOV P3,#0FFHLCALL DELAY1msDEC R6INC R7CJNE R7,#70,FANHUI2MOV R6,#0MOV R7,#0FANHUI2:RETSHANSHUO2:C
17、LR P2.1MOV P3,#0EFHLCALL DELAY1msSETB P2.1MOV P3,#0FFHRET;按“ =”鍵后的顯示ANJIANDENG:MOV A,31HCJNE A,#0,ANJIAN0MOV A,R0MOVC A,A+DPTRCLR P2.3MOV P3,ALCALL DELAY1msSETB P2.3MOV P3,#0FFHINC R0MOV A,R0;調(diào)用延時 1ms;關(guān)閉 P2.3;關(guān)閉顯示;R0 加 1; 將顯示區(qū)的十位地址給 A;查表;打開 P2.2;將十位送 P3 顯示;調(diào)用延時 1ms 子程序;關(guān)閉 P2.2;關(guān)閉顯示; 按鍵兩次時光標(biāo)閃爍功能INC R
18、6;R6 加 1CJNE R6,#70,SHANSHUO2 ; 判斷 R6 是否為 70 ,若否跳轉(zhuǎn)到 SHANSHUO2 ;將 P2.1 關(guān)閉;關(guān)閉顯示;調(diào)用延時 1ms 子程序;R6 減 1;R7 加 1;若 R7 不等于 70,則跳轉(zhuǎn)到; 將 0 送 R6; 將 R7 置 0;子程序返回;打開 P2.1;顯示“ -”;調(diào)用延時 1ms 子程序;關(guān)閉 P2.1;關(guān)閉顯示;返回;將 31H 送 A;A 不等于 0 時跳轉(zhuǎn)到 ANJIAN0 ; 將個位的地址送 A;查表;打開 P2.3;顯示個位;調(diào)用延時 1ms 子程序;關(guān)閉 P2.3;關(guān)閉顯示;R0 加 1; 將十位的地址送 AMOVC A
19、,A+DPTRCLR P2.2 MOV P3,ALCALL DELAY1msSETB P2.2 MOV P3,#0FFHINC R0MOV A,R0 MOVC A,A+DPTR CLR P2.1MOV P3,A LCALL DELAY1msSETB P2.1MOV P3,#0FFHINC R0MOV A,R0 MOVC A,A+DPTR CLR P2.0MOV P3,A LCALL DELAY1msSETB P2.0 MOV P3,#0FFH RET;查表;打開 P2.2;顯示十位;調(diào)用延時 1ms 子程序;關(guān)閉 P2.2;關(guān)閉顯示;R0 加 1; 將百位地址送 A;查表;打開 P2.1;顯示
20、百位;調(diào)用延時 1ms 子程序;關(guān)閉 P2.1;關(guān)閉顯示;R0 加 1; 將千位的地址送 A;查表;打開 P2.0;顯示千位;調(diào)用延時 1ms 子程序;關(guān)閉 P2.0;關(guān)閉顯示;返回; 沒按鍵時的顯示ANJIAN0: MOV A,R0 MOVC A,A+DPTR CLR P2.3MOV P3,A LCALL DELAY1msSETB P2.3MOV P3,#0FFH RET; 將 R0 的地址送 A;查表;打開 P2.3;顯示;調(diào)用延時 1ms 子程序;關(guān)閉 P2.3;關(guān)閉顯示;返回TAB: DB 28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H,0FFH,0F
21、7H ;DELAY1ms: MOV 50H,#2;延時 1ms 子程序LOOP1:MOV 53H,#248NOPLOOP2:DJNZ 53H,LOOP2DJNZ 50H,LOOP1RET共陽極譯碼表DELAY3:DJNZ 51H,DELAY3RET;鍵盤子程序KEY: LCALL KSJNZ K1LCALL DELAY2ACALL DIRAJMP KEYK1: LCALL DELAY2LCALL KSJNZ K2ACALL DIR;調(diào)用檢測按鍵子程序;有鍵按下繼續(xù);無鍵按調(diào)用延時去抖;調(diào)用動態(tài)顯示;返回繼續(xù)檢測按鍵;有鍵按下延時去抖動;再調(diào)用檢測按腱子程序;確認(rèn)有按鍵進(jìn)行下一步;調(diào)用動態(tài)顯示A
22、JMP KEYK2: MOV R2,#0EFH MOV R3,#00HK3: MOV P1,R2L0: JB P1.0,L1MOV A,#00HAJMP LKL1: JB P1.1,L2MOV A,#04HAJMP LKL2: JB P1.2,L3MOV A,#08HAJMP LKL3: JB P1.3,NEXTMOV A,#0CHLK:ADD A,R3PUSH ACCK4: LCALL DELAY2;無鍵按下返回繼續(xù)檢測;將掃描值送入 R2 暫存 ;將第一列值送入 R3 暫存;將 R2 值送入 P1 口;P1.0 等于 1 跳轉(zhuǎn)到 L1 ; 將第一行值送入 ACC ;跳轉(zhuǎn)到鍵值處理程序;P1.1 等于 1 跳轉(zhuǎn)到 L2 ; 將第二行的行值送入
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療組長崗位職責(zé)解析
- 醫(yī)院設(shè)備維護(hù)人員崗位職責(zé)
- 部編版三年級下冊語文教學(xué)資源開發(fā)計劃
- 校內(nèi)體育聯(lián)誼賽事計劃
- 石油化工施工安全日志范文
- 基層醫(yī)療機(jī)構(gòu)醫(yī)囑查對核對流程方案
- 2025年幼兒園大班飲食營養(yǎng)指導(dǎo)計劃
- 裝配式建筑施工節(jié)點質(zhì)量管理措施及防治措施
- 專科門診護(hù)士工作職責(zé)提升
- 基層干部培訓(xùn)學(xué)習(xí)心得體會
- 燃?xì)鈭缶餍袠I(yè)發(fā)展分析及投資戰(zhàn)略研究報告2025-2028版
- 期末模擬卷譯林版八年級英語下學(xué)期
- 2025年湖北省中考英語真題試卷
- 沈陽市重點中學(xué)2025屆英語七下期末監(jiān)測模擬試題含答案
- 智能印章使用管理制度
- 消防高溫防暑講評課件
- 2025年中國郵政集團(tuán)有限公司遼寧省分公司人員招聘筆試備考試題及答案詳解1套
- 充電站建設(shè)管理制度
- 2024-2025學(xué)年度第二學(xué)期二年級語文暑假作業(yè)有答案共25天
- AI技術(shù)賦能中小學(xué)教學(xué)模式創(chuàng)新與實踐研究
- 青島版二年級上冊科學(xué)全冊教案
評論
0/150
提交評論