單片機(jī)實(shí)驗(yàn)報(bào)告概況_第1頁
單片機(jī)實(shí)驗(yàn)報(bào)告概況_第2頁
單片機(jī)實(shí)驗(yàn)報(bào)告概況_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余11頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、北京聯(lián)合大學(xué)單片機(jī)實(shí)驗(yàn)報(bào)告學(xué) 院: 自動(dòng)化專 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名:2012 年 12 月 29 日實(shí)驗(yàn) 1 單片機(jī)實(shí)驗(yàn)系統(tǒng)硬軟件環(huán)境認(rèn)識(shí)一 實(shí)驗(yàn)?zāi)康?了解單片機(jī)實(shí)驗(yàn)板、計(jì)算機(jī)和仿真器組的連接方法,了解WAVE仿真軟件,學(xué)會(huì)單步、 斷點(diǎn)和全速運(yùn)行的程序調(diào)試運(yùn)行方法, 學(xué)會(huì)察看各存儲(chǔ)單元、 特殊寄 存器等參數(shù)變化情況。二 實(shí)驗(yàn)設(shè)備 偉福通用微控制器實(shí)驗(yàn)系統(tǒng)一臺(tái),通用計(jì)算機(jī)一臺(tái), WAVE仿真軟件三 實(shí)驗(yàn)內(nèi)容1. 編寫計(jì)算 1234H0FE7H的程序(程序 1),要求把和的高 8 位存入 51H單元, 和的低 8 位存入 50H單元,并用 WAVE仿真軟件調(diào)試運(yùn)行。2. 編寫一個(gè)程序(

2、程序 2),實(shí)現(xiàn)將 20H29H內(nèi)的數(shù)據(jù)由小到大的順序排列。 四 實(shí)驗(yàn)步驟1觀察了解通用微控制器實(shí)驗(yàn)系統(tǒng)的硬件組成, 及其與通用計(jì)算機(jī)的連接; 打 開計(jì)算機(jī)可在桌面上看到 WAVE仿真軟件圖標(biāo)。2鍵入實(shí)驗(yàn)程序(1)雙擊桌面上的“ WAVE中文版”圖標(biāo),打開開發(fā)環(huán)境,選擇“模擬仿真” , 點(diǎn)擊“文件”新建一個(gè)匯編程序文件,并以 .asm 后綴保存。(2)輸入實(shí)驗(yàn)程序 1。程序 1 代碼:ORG 0000HLJMP MAINORG 0000HMAIN: MOV A,#34HADD A,#0E7HMOV 50H,AMOV A,#12HADDC A,#0FHMOV 51H,AEND(3)點(diǎn)擊“項(xiàng)目管理

3、”選擇“編譯” ,注意觀察編譯結(jié)果有無錯(cuò)誤。若有錯(cuò)誤 打開文件進(jìn)行修改,若無錯(cuò)誤轉(zhuǎn)向下一步。3. 運(yùn)行程序(1)編譯無誤后,點(diǎn)擊“窗口 /CPU窗口”以便在寄存器(或特殊寄存器)查 看或送入必要的初始數(shù)據(jù);點(diǎn)擊 “窗口/ 數(shù)據(jù)窗口” 以便在 RAM數(shù)據(jù)區(qū) DATA中查看或送入必要的初始數(shù)據(jù)。點(diǎn)擊”執(zhí)行 / 復(fù)位”(2)觀察寄存器的值及 PSW各位的初始狀態(tài)。(3)點(diǎn)擊調(diào)試 / 單步( F8),單步運(yùn)行各條指令,注意觀察有關(guān)寄存器的值及 PSW的數(shù)據(jù)變化。( 4)也可點(diǎn)擊調(diào)試 / 全速運(yùn)行( Ctrl+F9 )連續(xù)運(yùn)行程序。( 5)將運(yùn)行結(jié)果填入表 1。表 1 :程序 1 運(yùn)行結(jié)果地址A51H5

4、0H運(yùn)行前000000運(yùn)行后22221B4. 將程序 2輸入,并在 20H29H單元中輸入 10個(gè)數(shù)據(jù) , 點(diǎn)擊“執(zhí)行”選擇“全速運(yùn)行” ,并將相關(guān)結(jié)果記錄在表 2 中 程序 2 代碼:EXCH_FLAG BIT 7FHORG 0000HCLR R0MOV 20H,#36MOV 21H,#01MOV 22H,#78MOV 23H,#23MOV 24H,#15MOV 25H,#05MOV 26H,#75MOV 27H,#89MOV 28H,#16MOV 29H,#07LJMP MAINORG 0030H MAIN: MOV R1,#20HMOV R5,#10CLR EXCH_FLAGDEC R5

5、 MOV A,R1 LOOP: MOV R3,AINC R1CLR C MOV A,R1 SUBB A,R3 JNC NO_EXCH SETB EXCH_FLAG MOV A,R3 XCH A,R1 DEC R1 XCH A,R1 INC R1 NO_EXCH: MOV A,R1DJNZ R5,LOOPJB EXCH_FLAG,MAINSJMP $END表 2 :程序 2 運(yùn)行結(jié)果地址20H21H22H23H24H25H26H27H28H29H運(yùn)行前24014E170F054B591007運(yùn)行后0105070F1017244B4E595. 改變 20H29H單元中的 10個(gè)數(shù)據(jù),調(diào)試運(yùn)行程序?qū)?/p>

6、結(jié)果記錄在表 3 中 表 3 :程序 2 運(yùn)行結(jié)果地址20H21H22H23H24H25H26H27H28H29H運(yùn)行前21011917593B24311007運(yùn)行后01071017192124313B59五 思考與總結(jié)1要求數(shù)據(jù) 1234H和 0FE7H分別存入 31H、30H和 33H、32H單元(高字節(jié)在高 地址單元),如何編寫程序。ORG 0000HLJMP MAINORG 0030HMAIN: MOV 30H,#34HMOV 31H,#12HMOV 32H,#0E7HMOV 33H,#0FHEND2在程序 2中實(shí)現(xiàn)將 20H27H內(nèi)的 8個(gè)數(shù)據(jù)由大到小的順序排列,應(yīng)如何修 改程序?答

7、: LOOP中的 JNC NO_EXC改H為 JC_EXC。H數(shù)據(jù)塊首地址一 R1循環(huán)次數(shù)一 R5 0排序結(jié)束標(biāo)志上一單元數(shù)一AX上一單元數(shù)一 R3下一單元地址一 R1下一單元數(shù)一A兩個(gè)單元數(shù)比較上一單元下一單元' i n1一排序結(jié)束標(biāo)志兩個(gè)單元交換數(shù)據(jù) 下一單元數(shù)一A10個(gè)數(shù)兩兩比較完成 、 了嗎?g排序標(biāo)志=1 ?實(shí)驗(yàn) 2 并行輸入 / 輸出接口 P1一實(shí)驗(yàn)?zāi)康撵柟滩⑿休斎胼敵鼋涌诘幕局R(shí),掌握 P1口的使用方法。理解 CPU對(duì) P1 口的操作可以是字節(jié)操作,也可以是位操作,每一位可以獨(dú)立定義為輸入輸出。 熟悉匯編語言對(duì) P1 口操作的編程方法。二 實(shí)驗(yàn)設(shè)備 偉福通用微控制器實(shí)驗(yàn)

8、系統(tǒng)一臺(tái),通用計(jì)算機(jī)一臺(tái), WAVE仿真軟件三 實(shí)驗(yàn)內(nèi)容1 按照?qǐng)D 1將 P1.0P1.3接扳鍵開關(guān), P1.4P1.7接發(fā)光二極管。依 據(jù) P1.0P1.3 接扳鍵開關(guān)狀態(tài)控制 P1.4 P1.7 發(fā)光二極管點(diǎn)亮。圖 1 并行接口實(shí)驗(yàn)原理圖 四 實(shí)驗(yàn)步驟2分別輸入程序,調(diào)試并運(yùn)行,記錄實(shí)驗(yàn)現(xiàn)象。 程序代碼:ORG 0000HLJMP MAINORG 0030HMAIN:MOV P1,#0FFHL1: MOV A,P1SWAP AORL A,#0FHMOV P1,ASJMP L1END3將 P1.0P1.7 全部接發(fā)光二極管,要實(shí)現(xiàn)如下功能:開始 P1.0、 P1.1 點(diǎn)亮,左移 50次后,

9、P1.6、P1.7 點(diǎn)亮,右移 30次,循環(huán)往復(fù)之。試編 制程序并實(shí)驗(yàn)之。程序代碼 :ORG0000HLJMPMAINORG0030HMAIN:MOV A,#03HMOV R1,#50 LJMP ZY1MOV A,#0C0HMOV R1,#30LJMP YY1LJMP MAINZY1: DJNZ R1,ZY2RETZY2: DEC R1MOV P1,ARL ALJMP DL500MSRETYY1: DJNZ R1,YY2RETYY2: DEC R1MOV P1,ARR ALJMP DL500MSRETDL500MS: MOV R2,#100 DL1: MOV R3,#10DL2: MOV R4

10、,#250DL3: DJNZ R4,DL3DJNZ R3,DL2DJNZ R2,DL1RETEND五 思考與總結(jié)1. 在實(shí)驗(yàn)程序 2 中,若要將循環(huán)次數(shù)分別改為 100 和 60,應(yīng)如何修改程序? 答:可直接將程序相應(yīng)指令的 50和 30改為 100和60,也可以再主程序中分別 調(diào)用 2 次左移和右移子程序2. 在實(shí)驗(yàn)程序 2 中,若要將循環(huán)方向改為先右循環(huán)再左循環(huán), 應(yīng)如何修改程序? 答:可將主程序中相應(yīng)的左移和右移部分交換調(diào)用次序。3. 本次實(shí)驗(yàn)?zāi)阌心男┦斋@?答:感覺自己學(xué)到的東西很有趣, 很實(shí)用, 能用自己的思維將功能要求通過程序 轉(zhuǎn)化為可以實(shí)際看到的,很有成就感。實(shí)驗(yàn) 3 定時(shí)器 /

11、計(jì)數(shù)器實(shí)驗(yàn)?zāi)康撵柟潭〞r(shí)器 /計(jì)數(shù)器的基本知識(shí),掌握定時(shí)器 / 計(jì)數(shù)器方式控制字的設(shè)定方 法,會(huì)應(yīng)用定時(shí)器 / 計(jì)數(shù)器實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。 熟悉匯編語言對(duì)定時(shí) /計(jì)數(shù)器編 程的方法。二 實(shí)驗(yàn)設(shè)備 偉福通用微控制器實(shí)驗(yàn)系統(tǒng)一臺(tái),通用計(jì)算機(jī)一臺(tái), WAVE仿真軟件三 實(shí)驗(yàn)內(nèi)容按照?qǐng)D 1將P1.7 接發(fā)光二極管。要求利用定時(shí)器控制使 LED亮一秒停一秒, 周而復(fù)始。注意:其中長(zhǎng)時(shí)間延時(shí)利用內(nèi)部計(jì)數(shù)器方式。四 實(shí)驗(yàn)原理 原理圖如圖 1:圖 1 定時(shí)/ 計(jì)數(shù)器實(shí)驗(yàn)原理圖 定時(shí)/ 計(jì)數(shù)器方式控制字:定時(shí)器 1:方式 2,計(jì)數(shù)方式, 10 次 初值: F6H 定時(shí)器 0:方式 1,定時(shí)方式, 50ms 初值:

12、 3CB0H五 實(shí)驗(yàn)步驟1根據(jù)實(shí)驗(yàn)內(nèi)容要求設(shè)計(jì)程序并實(shí)驗(yàn)之。程序代碼:ORG 0000HLJMPMAINORG0030HMOVTMOD,#61HMOVTH1, #0F6HMOVTL1, #0F6HMAIN:SETB TR1 LOOP: MOV TH0, #3CHMOV TL0, #0B0H SETB TR0 T3_10: JBC TF0,T3_20SJMP T3_10T3_20: CPL P1.0NOPJBC TF1,T3_30 SJMP LOOP T3_30: CPL P1.7SJMP LOOPEND2若要使 LED亮 0.5 秒停 0.5 秒循環(huán),應(yīng)如何修改程序?實(shí)驗(yàn)之 答:子程序 LOO

13、P改為L(zhǎng)OOP: MOVTH0,#9EHMOVTL0,#58HSETBTR0六思考與總結(jié)1定時(shí)器的方式控制字 TMOD應(yīng)如何確定,其值是多少?答: 61H=0110 0001B2T1、T0的初值是如何刷新的?答: T1沒有進(jìn)行刷新, T0由定時(shí) 1s后重新進(jìn)入 LOOP重裝 T0初值3若要用 R7做計(jì)數(shù)器計(jì)定時(shí)器 0 溢出次數(shù)實(shí)現(xiàn) 1秒鐘定時(shí),應(yīng)當(dāng)怎樣修改程序?答:ORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#01HMOVR7, #10LOOP:MOVTH0, #3CHMOVTL0, #0B0HSETBTR0T3_10:JBCTF0,T3_20SJMP T3_10

14、T3_20: CPL P1.0NOP DEC R7DJNZ R7,T3_30SJMP LOOP T3_30: MOVR7, #10CPL P1.7SJMP LOOPEND4本次實(shí)驗(yàn)?zāi)阌龅搅四男﹩栴}?是如何解決的? 答:試驗(yàn)中定時(shí)器的初值計(jì)算和試驗(yàn)箱的晶振周期不清楚, 出現(xiàn)了 LED燈亮滅時(shí) 間不符合要求,最后請(qǐng)教老師解決了。實(shí)驗(yàn) 4 中斷的使用實(shí)驗(yàn)?zāi)康倪M(jìn)一步理解中斷的概念, 掌握使用中斷功能的一般方法, 識(shí)記中斷服務(wù)程序 的入口地址。理解中斷服務(wù)程序的編程方法。二實(shí)驗(yàn)設(shè)備偉福通用微控制器實(shí)驗(yàn)系統(tǒng)一臺(tái),通用計(jì)算機(jī)一臺(tái), WAVE仿真軟件 三實(shí)驗(yàn)內(nèi)容由中斷信號(hào) INT0 控制 P1.7,并連接發(fā)光

15、二極管 LED,使其亮滅交替變換。四實(shí)驗(yàn)原理如圖 1:圖 1 中斷實(shí)原理圖 五實(shí)驗(yàn)步驟 1根據(jù)實(shí)驗(yàn)內(nèi)容要求設(shè)計(jì)程序并實(shí)驗(yàn)之。 程序代碼:ORG 0000HLJMP MAINORG 0003H; 外部中斷 0 入口地址LJMP EX0_INTORG 001BH; 定時(shí)器 T1 中斷入口地址 LJMP T1_INTORG 0030H MAIN: MOV SP,#5FHSETB P3.2 ;初始化 P3.2 即外部中斷口 CLR IT1 ;初始化定時(shí)器 1 中斷 CLR PX0 ;初始化外部 0 中斷優(yōu)先SETB EX0 ;外部中斷 0 允許SETB EA ;中斷總允許 SJMP $ORG 1000HEX0_INT: MOV TMOD,#10H; 外部中斷 0MOV TH1,#0DCH ;定時(shí)器 1 初值MOV TL1,#00H SETB TR1SETB ET1SETB PT1MOV R7,#100 JNB P3.2,$CLR TR1RETIORG 2000HT1_INT:MOV TH1,#0DCHMOV TL1,#00HDJNZ R7,BREAKMOV R7,#100;啟動(dòng) T1;允許 T1 中斷;T1優(yōu)先;計(jì)數(shù)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論