




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本科實驗報告課程名稱: 微機原理與接口技術(shù)姓 名: 邵芳琳學 院(系): 控制學院專 業(yè): 自動化學 號: 3140103307指導教師: 曹崢1 / 22 2016年 11月 11日 實驗一 存儲器塊操作實驗一、實驗目的1 熟悉 KEIL 集成調(diào)試環(huán)境和匯編程序的調(diào)試方法。2 掌握存儲器讀寫方法;3 了解內(nèi)存塊的移動方法;二、實驗說明實驗 1 指定某塊存儲器的起始地址和長度,要求能將其內(nèi)容賦值。通過該實驗學生可以了解單片機讀寫存儲器的方法,同時也可以了解單片機編程、調(diào)試方法。塊移動是單片機常用操作之一,多用于大量的數(shù)據(jù)復制和圖象操作。例程 2 給出起始地址,用地址加一方法移動塊,將指定源地址
2、和長度的存儲塊移到指定目標地址為起始地址的單元中去。移動 3000H 起始的 256個字節(jié)到 4000H 起始的 256 個字節(jié)。思考題1 如何將存儲器塊的內(nèi)容置成某固定值(例全填充為 0FFH)? 請用戶修改程序,完成此操作。將MOV A,#1H 改為MOV A,#FFH2 若源塊地址和目標塊地址有重疊,該如何避免?源塊地址和目標塊地址重疊部分數(shù)據(jù)壓制堆棧中,當要使用重疊部分源數(shù)據(jù)時,直接從堆棧中彈出。實驗內(nèi)容1. 試編程將片內(nèi) RAM 中的數(shù)據(jù)依次復制到片外 RAM。假設(shè)源數(shù)據(jù)區(qū)的首地址為 40H,目的數(shù)據(jù)區(qū)的首地址為 1000H,數(shù)據(jù)塊長度為 10H。 ORG 0000H MOV R0,
3、#40HMOV A,#01HMOV R5,#10HLOOP: MOV R0,AINC R0DJNZ R5,LOOPMOV R0,#40H ;起始地址MOV R2,#10H MOV R3,#00HMOV R7,#10H ;循環(huán)次數(shù)LOOP1: MOV A,R0MOV DPH,R2MOV DPL,R3MOVX DPTR,AINC R0INC R3DJNZ R7,LOOP1 LJMP $ END運行結(jié)果:2. 兩個 16 位無符號二進制數(shù)分別存放在片外 RAM 首址為 2000H 和 2002H 單元內(nèi),將它們相加,結(jié)果存入片內(nèi) RAM 30H(低 8 位)、31H(高 8 位)。 ORG 0000
4、HMOV A,#11HMOV DPTR,#2000H MOVX DPTR,AMOV DPTR,#2003H MOVX DPTR,AMOV R0,AMOV DPTR,#2002HMOVX A,DPTRADD A,R0MOV 30H,A MOV DPTR,#2001HMOVX A,DPTRMOV R0,AMOV DPTR,#2003HMOVX A,DPTRADDC A,R0MOV 31H,AEND運行前:運行后:1100+0011=1111運行結(jié)果正確。 實驗二 數(shù)值轉(zhuǎn)換實驗一、實驗目的1 熟悉 KEIL 集成調(diào)試環(huán)境和匯編程序的調(diào)試方法。2 掌握簡單的數(shù)值轉(zhuǎn)換算法。3 基本了解數(shù)值的各種表達方法
5、。4 掌握數(shù)值的加減法運算。5 掌握用查表的方法將 BCD 值轉(zhuǎn)換成 ASCII 值。二、實驗說明單片機系統(tǒng)內(nèi)部運算用二進制,而輸入輸出常用十進制,以符合日常習慣,因此,數(shù)制轉(zhuǎn)換是儀表設(shè)計中常用的程序之一。單片機中的數(shù)值有各種表達方式,這是單片機的基礎(chǔ)。掌握各種數(shù)制之間的轉(zhuǎn)換是一種基本功。我們將給定的一字節(jié)二進制數(shù),轉(zhuǎn)換成二十進制(BCD)碼。將累加器 A 的值拆為三個 BCD 碼,并存入 RESULT 開始的三個單元,例程 A 賦值#123。實驗 2 主要讓學生了解數(shù)值的 BCD 碼和 ASCII 碼的區(qū)別,利用查表方法快速地進行數(shù)值轉(zhuǎn)換。進一步掌握數(shù)值的各種表達方式?,F(xiàn)在我們給出一個 BC
6、D 數(shù),將其轉(zhuǎn)換成 ASCII 值。如下:將累加器 A 的值轉(zhuǎn)換為二個 ASCII 碼,并存入 Result 開始的二個單元,例如 A 賦值#1AH。思考題BCD 碼轉(zhuǎn)換成二進制數(shù)的算法是什么?例如:(91) BCD 對應的二進制數(shù)是多少?將BCD碼寫成權(quán)值相加的形式,再將各位轉(zhuǎn)化為二進制。9×101+1×100=91=()B實驗內(nèi)容1. 把 R 3 中的 8 位二進制整數(shù)轉(zhuǎn)換為壓縮 BCD 碼,存放在 R4, R5 中。ORG 0000HMOV R3,#10111011BMOV A,R3MOV B,#100DIV ABMOV R4,AMOV A,BMOV B,#10DIV
7、 ABMOV R5,ASWAP AADD A,BMOV R5,A寄存器結(jié)果:2. 設(shè) 4 位 BCD 碼 abcd 依次存放在內(nèi)部 RAM 中 50H53H 單元的低 4 位,(高 4 位為 0)。試編程將其轉(zhuǎn)換成二進制數(shù)并存入 R6R7 中。ORG 0000H MOV 50H,#01MOV 51H,#02 MOV 52H,#03 MOV 53H,#04MOV A,50H MOV B,#10MUL ABMOV B,#100MUL ABMOV R1,B MOV R0,A MOV B,#100MOV A,51HMUL ABADD A,R0MOV R0,A MOV A,BADDC A,R1MOV R
8、1,AMOV B,#10MOV A,52HMUL ABADD A,R0MOV R0,AMOV A,R1ADDC A,#0MOV R1,AMOV A,R0ADD A,53HMOV R0,AMOV A,R1ADDC A,#0MOV R6,AMOV A,R0MOV R7,A執(zhí)行結(jié)果:4位BCD碼為1234,轉(zhuǎn)換為2進制數(shù)為4d2與實際相符。 實驗三 程序跳轉(zhuǎn)表實驗一、實驗目的1 熟悉 KEIL 集成調(diào)試環(huán)境和匯編程序的調(diào)試方法。2 了解簡單的函數(shù)計算。3 掌握多分支結(jié)構(gòu)程序的編程方法二、實驗說明多分支結(jié)構(gòu)是程序中常見的結(jié)構(gòu),在多分支結(jié)構(gòu)的程序中,能夠按調(diào)用號執(zhí)行相應的功能,完成指定操作。若給出調(diào)用號
9、來調(diào)用子程序,一般用查表方法,查到子程序的地址,轉(zhuǎn)到相應子程序。三、思考題1 寫跳轉(zhuǎn)程序時要注意些什么?1)子程序的第1條指令前必須有標號,即表明子程序的名稱,也作為調(diào)用指令的符號地址。2)要有入口條件,用來說明入子程序時,它所要處理的數(shù)據(jù)如何得到。另外,要有出口條件,即處理的結(jié)果是如何存放的。3)注意保護現(xiàn)場和恢復現(xiàn)場,即在調(diào)用子程序前將不允許被破壞的內(nèi)容保存起來;恢復現(xiàn)場即在子程序執(zhí)行完畢返回主程序前,將保存的內(nèi)容恢復到保護現(xiàn)場前的狀況;4)子程序必須以RET結(jié)束。子程序中,對堆棧的入棧和出棧操作次數(shù)必須相同,以保證返回后堆棧指針SP的值與調(diào)用時一直。2 可以避免重復書寫相同的程序;可以簡
10、化程序的邏輯結(jié)構(gòu);使程序模塊化,通用化。3、 實驗內(nèi)容ORG 0000HMOV R0,#0FCHCJNE R0,#0,NEXT0 MOV R0,#2 MOV A,R0 SJMP NEXT3NEXT0:CJNE R0,#80H,NEXT1 MOV R0,#2 MOV A,R0 SJMP NEXT3NEXT1:JC NEXT2 SETB C MOV A,R0 RRC A SJMP NEXT3NEXT2:MOV A,R0 MOV B,#2 MUL ABNEXT3:MOV 30H,AEND測試結(jié)果:X<0X=0X>0 實驗四 數(shù)據(jù)排序?qū)嶒炓?、實驗目? 熟悉 KEIL 集成調(diào)試環(huán)境和匯編程
11、序的調(diào)試方法。2 掌握排序程序的設(shè)計方法。二、實驗說明本例程采用交換排序法將內(nèi)部RAM 中的5059H 單元中的10個單字節(jié)無符號二進制數(shù)按從小到大的次序排列,并將這一列排序后的數(shù)據(jù)從小到大依次存貯到外部RAM 1000H開始處。初始:結(jié)果:三、實驗內(nèi)容畫出本實驗程序的流程圖。 實驗五 鍵盤顯示仿真實驗一、實驗目的1 熟悉 KEIL 集成調(diào)試環(huán)境和匯編程序的調(diào)試方法。2 學習使用外圍接口工具調(diào)試程。3 熟悉鍵盤顯示接口電路及程序設(shè)計。提高實驗1. 根據(jù)鍵盤、LED 仿真板,設(shè)計一個走馬燈程序,通過按鍵實現(xiàn)啟停、速率及方向的控制UpDown BIT 00H StartEnd BIT 01H LA
12、MPCODE EQU 21HORG 0000H AJMP MAIN ORG 30H MAIN: MOV SP,#5FH MOV P1,#0FFH CLR UpDown ;啟動時處于向上的狀態(tài) CLR StartEnd ;啟動時處于停止狀態(tài) MOV LAMPCODE,#01H ;單燈流動的代碼 LOOP:ACALL KEY ;調(diào)用鍵盤程序 JNB F0,LNEXT ;如果無鍵按下,則繼續(xù) ACALL KEYPROC ;否則調(diào)用鍵盤處理程序 LNEXT: ACALL LAMP ;調(diào)用燈顯示程序 AJMP LOOP DELAY: MOV R7,#100 D1: MOV R6,#100 DJNZ R6
13、,$ DJNZ R7,D1 RET KEYPROC: MOV A,B ;從B寄存器中獲取鍵值 JB ACC.2,KeyStart ;分析鍵的代碼,某位被按下,則該位為1 JB ACC.3,KeyOver JB ACC.4,KeyUp JB ACC.5,KeyDown AJMP KEY_RET KeyStart: SETB StartEnd ;第一個鍵按下后的處理 AJMP KEY_RET KeyOver: CLR StartEnd ;第二個鍵按下后的處理 AJMP KEY_RET KeyUp: SETB UpDown ;第三個鍵按下后的處理 AJMP KEY_RETKeyDown: CLR U
14、pDown ;第四個鍵按下后的處理 KEY_RET: RET KEY: CLR F0 ;清F0,表示無鍵按下。 ORL P3,#00111100B ;將P3口的接有鍵的四位置1 MOV A,P3 ;取P3的值 ORL A,#11000011B ;將其余4位置1 CPL A ;取反 JZ K_RET ;如果為0則一定無鍵按下 CALL DELAY ;否則延時去鍵抖 ORL P3,#00111100B MOV A,P3 ORL A,#11000011B CPL A JZ K_RET MOV B,A ;確實有鍵按下,將鍵值存入B中 SETB F0 ;設(shè)置有鍵按下的標志 K_RET: ORL P3,#
15、00111100B ;此處循環(huán)等待鍵的釋放 MOV A,P3 ORL A,#11000011B CPL A JZ K_RET1 ;讀取的數(shù)據(jù)取反后為0說明鍵釋放了 AJMP K_RET K_RET1:CALL DELAY ;消除后沿抖動 RETD500MS: ;流水燈的延遲時間 MOV R7,#255 D51: MOV R6,#255 DJNZ R6,$ DJNZ R7,D51 RET LAMP: JB StartEnd,LampStart; 如果StartEnd=1,則啟動 MOV P1,#0ffH LampStart: AJMP LAMPRET ;否則關(guān)閉所有顯示,返回 LampStart
16、: JB UpDown,LAMPUP ;如果UpDown=1,則向上流動 MOV A,LAMPCODE RL A ;左移位而MOV LAMPCODE,A MOV P1,A LCALL D500MS LCALL D500MS AJMP LAMPRET LAMPUP: MOV A,LAMPCODE RR A ;向下流動實際就是右移 MOV LAMPCODE,A MOV P1,A LCALL D500MS LAMPRET: RET END 2. 根據(jù)實驗仿真板 2 設(shè)計一個按鍵顯示數(shù)字的程序,即按 0 顯示 0,依次類推。ORG 0000HSTART:MOV P2,#0FEHMOV P3,#0EFHJB P3.0,NEXT1MOV P0,#0C0HLJMP FINALNEXT1:MOV P3,#0EFHJB P3.1,NEXT2MOV P0,#0F9HLJMP FINALNEXT2: MOV P3,#0EFHJB P3.2,NEXT3MOV P0,#0A4HLJMP FINALNEXT3: MOV P3,#0EFHJB P3.3,NEXT4MOV P0,#0B0HLJMP FINALNEXT4: MOV P3,#0DFHJB P3.0,NEXT5MOV P0,#99HLJMP FINALNEXT5: MOV P3,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣管腫瘤術(shù)后護理規(guī)范與要點
- 原地單手肩上投籃
- 勞動教育實施路徑與實踐創(chuàng)新
- 中華護理學會介紹
- 呼吸內(nèi)科創(chuàng)建簡介
- 采購招標法律法規(guī)
- 購物中心教育培訓商業(yè)化探索
- 手術(shù)室胃切除護理查房
- 子癇前期重度術(shù)后護理
- 2025年零售門店數(shù)字化技術(shù)應用在顧客互動營銷中的策略報告
- 員工宿舍核查表
- 腰椎椎管狹窄癥治療的新方法課件
- 完工付款最終付款申請表
- 有限空間作業(yè)及應急物資清單
- 人工動靜脈內(nèi)瘺
- 國際經(jīng)濟學期末考試試題庫含答案
- 基于PLC的音樂噴泉控制系統(tǒng)的設(shè)計-畢業(yè)設(shè)計
- 體育場地與設(shè)施
- 廣西大學數(shù)學建模競賽選拔賽題目
- 受戒申請表(共3頁)
- 五年級部編版語文下學期修改病句專項強化練習題
評論
0/150
提交評論