版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、紹興文理學(xué)院單片機實驗考試程序:基本部分:實驗三:匯編語言程序設(shè)計(1)清零:把外部RAM 2000H20FFH的內(nèi)容清零。 ORG 0000HAJMP MAINORG 0030H MAIN:MOV A,#00H /累加器A清零MOV R0,#00H MOV DPTR,#2000H /將2000H內(nèi)容送給DPTR LOOP:MOV DPTR,A /將2000H中的內(nèi)容清零INC DPTR/DPTR增1DJNZ R0,LOOP /減1不為0則轉(zhuǎn)移,繼續(xù)循環(huán),否則結(jié)束SJMP $END(2) 拆字:把外部RAM 2000H的內(nèi)容拆開,高位送外部RAM 2001H低位,低位送外部RAM 2002H低
2、位,外部RAM 2001H、外部RAM 2002H高位清零。ORG 0000HAJMP MAINORG 0030HMAIN:MOV DPTR,#2000H /DPTR中為2000HMOVX A,DPTR /2000H內(nèi)容送AMOV B,A /將A中內(nèi)容寄存在B中SWAP A /高低位交換ANL A,#0FH /高位清零INC DPTR /DPTR中為2001HMOVX DPTR,A /將A中的內(nèi)容(2000H的高位)給2001H的低位INC DPTR /DPTR中為2002HMOV A,B /將B中的內(nèi)容(2000H內(nèi)容)還給AANL A,#0FH /屏蔽200OH的高位MOVX DPTR,A
3、 /將A中的內(nèi)容(2000H的低位)給2002H的高位SJMP $END(3) 拼字:把外部RAM 2000H、外部RAM 2001H的低位分別送入外部RAM 2002H高低位。 ORG 0000HAJMP MAINORG 0030HMAIN:MOV DPTR,#2000H /將2000H中的內(nèi)容送DPTRMOVX A,DPTR /將2000H中的內(nèi)容送AANL A,#0FH /交換高低位送BSWAP AMOV B,AINC DPTR /DPTR增1MOVX A,DPTRANL A,#0FH /屏蔽高位,將2001H內(nèi)容送AORL A,B /A和B或后送2002HINC DPTRMOVX DP
4、TR,ASJMP $END(4) 在內(nèi)部RAM中查找是否有單元為特殊值。(單重循環(huán))如:查找找內(nèi)部RAM的30H-50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。ORG 0000HAJMP STARTORG 0030HSTART:MOVR0,#30HMOVR2,#20HLOOP:MOVA,R0CJNEA,#0AAH,NEXTMOV51H,#01HLJMPEXITNEXT:INCR0DJNZR2,LOOPMOV51H,#00H OVER: SJMP $END實驗四:匯編語言程序設(shè)計1. 外部RAM數(shù)據(jù)塊搬移程序: (1)試將片內(nèi)RA
5、M中30H3FH的數(shù)據(jù)傳送到片外RAM地址為1000H開始的單元中。數(shù)據(jù)搬移:(內(nèi)部和外部數(shù)據(jù)存儲器之間,單重循環(huán)) ORG 0000HAJMP MAINORG 0030HMAIN: MOV R0,#30H MOV R1,#10HMOV DPTR,#1000HLOOP: MOV A,R0MOVX DPTR,AINC DPTRINC R0OVER: DJNE R1,LOOPSJMP $END (2)將外部RAM中R2、R3為源地址的N個字節(jié)數(shù)據(jù)傳送到R4、R5為目的地址的外部RAM區(qū)中,字節(jié)個數(shù)存放在R6、R7中。數(shù)據(jù)區(qū)傳送功能:在R2、R3中輸入源地址(例如0000H),R4、R5中輸入目的地
6、址(例如2000H),R6、R7中輸入字節(jié)數(shù)(例如2000H),運行程序,檢查00001FFFH中內(nèi)容是否和2000H3FFFH中內(nèi)容完全致。ORG 0000HAJMP MAINORG 0030HMAIN:MOV DPL,R3;R3內(nèi)容給DPTR低位MOV DPH,R2;R2內(nèi)容給DPTR高位MOVX A,DPTR;R2,R3源地址內(nèi)容給累加器A,即取數(shù)MOV DPL,R5;R5內(nèi)容給DPTR低位MOV DPH,R4;R4內(nèi)容給DPTR高位MOVX DPTR,A;數(shù)據(jù)搬移CJNE R3,#0FFH,LOOP1;R3是否需要進位,即傳送數(shù)據(jù)是否超過OFFHINC R2;若超過則進位LOOP1:I
7、NC R3;源地址加1CJNE R5,#0FFH,LOOP2;R5是否需要進位,即接受數(shù)據(jù)是否超過OFFHINC R4;若超過則進位LOOP2: INC R5;目的地址加1CJNE R7,#00H,LOOP3;若低位字節(jié)數(shù)不為0,則跳轉(zhuǎn)LOOP3,字節(jié)數(shù)減1CJNE R6,#00H,LOOP4;若高位字節(jié)數(shù)不為0,則跳轉(zhuǎn)LOOP4,產(chǎn)生借位,高低位字節(jié)數(shù)均減1SJMP $NOP;空操作LOOP3:DEC R7SJMP MAINLOOP4: DEC R7DEC R6SJMP MAINEND2.雙字節(jié)*單字節(jié)無符號乘法程序:是編寫程序,其功能為:(R0R1)*(R2)R3R4R5。 ORG 000
8、0HAJMP MAINORG 0030HMAIN: MOV A,R1MOV B,R2MUL AB;R1*R2XCH A,R5;乘積低位R5,R5A準(zhǔn)備乘數(shù)MOV R4,B;乘積高位暫存R4MOV A,R0MOV B,R2MUL AB;R0*R2ADD A,R4;乘積低位加上一次的乘積高位暫存R4CLR A;清累加器ADDC A,B;高位加從低位來的進位給乘積高位MOV R3,ASJMP $END提高部分:1、 數(shù)據(jù)排序。(256個數(shù)以內(nèi))編寫并調(diào)試一個排序子程序,其功能為用冒泡法將內(nèi)部RAM中幾個單字節(jié)無符號的正整數(shù),按從小到大的次序重新排列。數(shù)據(jù)排序功能:把RAM空間50H5AH中放入不等的
9、數(shù)據(jù),運行本實驗程序后檢查50H5AH中數(shù)據(jù)是否按從小到大排列。ORG 0000HAJMP STARTORG 0030HSTART: MOV R0,#50H;將50h的值賦給R0 MOV R2,#10;將10賦給R2SORT:MOV A,R0;將R0值給AMOV R1,A;將A的值給R1MOV A,R2;將R2的值給AMOV R5,A;將A的值給R5CLR F0;將F0清零MOV A,R1 ;將R1的地址給ALOOP:MOV R3,A;將A的值給R3INC R1;R1自加CLR C;清零進位標(biāo)志MOV A,R1;將R1的地址給ASUBB A,R3;將A與R3的值相減JNC LOOP1;如果借位
10、跳轉(zhuǎn)到LOOP1 反之按順序往下SETB F0;把F0置1MOV A,R3;把R3的值給AXCH A,R1;將A與R1的字節(jié)交換DEC R1;R1自減XCH A,R1;將A與R1的字節(jié)交換INC R1;R1自加LOOP1: MOV A,R1;將R1的地址賦給ADJNZ R5,LOOP;判斷R5是否為0 是則跳轉(zhuǎn) 反之按順序繼續(xù)程序JB F0,SORT;判斷F0是否為1,是則跳轉(zhuǎn) 反之按順序繼續(xù)程序RET;返回SJMP $;數(shù)據(jù)保留END;結(jié)束2、 動態(tài)顯示。(用實驗6仿真圖)實驗二:編寫程序,在數(shù)碼管上顯示固定“654321”字形#include<reg52.h>#include&
11、lt;intrins.h>#define uchar unsigned char#define uint unsigned intuchar code tab1=0xF9,0xA4,0xB0,0x99,0x92,0x82;/數(shù)碼管顯示數(shù)字1-6uchar code tab2=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/控制數(shù)碼管位選 uchar i; void delay(uint ms) /延時1Msuchar i;while(ms-)for(i=0;i<123;i+);void main() while(1)for(i=0;i<6;i+)P1=tab2i
12、; /選擇數(shù)碼管位選P0=tab1i; /選擇數(shù)碼管顯示字形delay(1);P0=0xff; /數(shù)碼管消影 3、 脈沖計數(shù)并顯示。(用實驗6仿真圖)實驗五 定時/計數(shù)器實驗:將定時/計數(shù)器0外部輸入的脈沖進行計數(shù)。#include<reg51.h>#include<intrins.h>#define uchar unsigned char/宏定義 用uchar代替unsigned char#define uint unsigned intuchar code tab110=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9
13、0;unsigned long int count; /計數(shù)值uint sum;uchar num6,flag,i,j;uchar code tab26=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; void delay(uint ms)/延時MSuchar i;while(ms-)for(i=0;i<123;i+);void display() /顯示子函數(shù)if(sum>1000000) sum=0;TH0=0;TL0=0;count=0; elsecount=sum*65536+TH0*256+TL0; /取計數(shù)值num5=count/100000; /第6位n
14、um4=count%100000/10000;/第5位num3=count%10000/1000;/第4位num2=count%1000/100;/第3位num1=count%100/10;/第2位num0=count%10;/第1位for(i=0;i<6;i+) P1=tab2i;if(i!=0 && numi=0) /消0顯示 flag=0; for(j=i;j<6;j+) if(numj!=0)/該位為0的情況下前面位是否還有大于0的值 flag=1; break; /跳出循環(huán) if(flag) P0=tab10; /若有則該位顯示0 else P0=0xff
15、;/若沒有有則該位不顯示 else P0=tab1numi;/顯示相應(yīng)位的數(shù)字delay(1);P0=0xff; /消去陰影void main()TMOD=0x05; /開計數(shù)器TH0=0;TL0=0;TR0=1;EA=1;ET0=1;while(1)/keyscan();display();void intr() interrupt 1sum+;4、 24s倒計數(shù)器。(用實驗6仿真圖)#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code tab110=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/段選unsigned int i;unsigned char count,a,b; void delay(uint ms) /延時子程序uchar i;while(ms-)for(i=0;i<123;i+);void main()TMOD=0x02; /方式2定時TH0=0x06; /定時賦初值TL0=0x06; /自動重載值EA=1;/開中斷ET0=1;TR0=1;i=0; /循環(huán)計數(shù)值count=24;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高速鐵路施工隊勞務(wù)協(xié)作合同及材料供應(yīng)協(xié)議3篇
- 起重機施工方案
- 橋面板預(yù)制施工方案
- 2024柚子產(chǎn)業(yè)發(fā)展基金投資合作協(xié)議3篇
- 電梯改造工程施工方案
- 二零二五年度公共設(shè)施建設(shè)項目房屋拆遷補償合同模板3篇
- 2025版能源項目安全消防治安環(huán)保監(jiān)管協(xié)議3篇
- 2024法律支持離婚合同書樣本一
- 2024年版:建筑行業(yè)員工保密協(xié)議
- 二零二五年度企業(yè)培訓(xùn)項目評估與改進合同3篇
- 第四章蛋白質(zhì)吸附和生物相容性
- 套管開窗側(cè)鉆施工作業(yè)程序(2014-5)
- 高速公路瀝青路面設(shè)計計算書
- QC小組活動管理制度
- 市區(qū)自備井排查整治工作實施方案
- 8位半萬用表大比拼
- 品牌管理部績效考核指標(biāo)
- 瀝青路面施工監(jiān)理工作細則
- 公司走賬合同范本
- 獲獎一等獎QC課題PPT課件
- 人教版小學(xué)三年級數(shù)學(xué)上冊判斷題(共3頁)
評論
0/150
提交評論