版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單片機原理及應(yīng)用(06通信、07通信)編撰閩江學(xué)院計算機實驗教學(xué)中心印實驗一 單片機仿真軟件wave6000練習(xí)一 實驗?zāi)康?1了解仿真軟件wave6000的基本操作和使用12 學(xué)習(xí)簡單程序的編寫和調(diào)試方法。二 實驗內(nèi)容21觀察復(fù)位時,cpu,sfr,data,code,xdata,xcode的值。21 單片機硬件資源的觀察、修改及仿真等23 程序的運行并觀察結(jié)果三 實驗步驟1. 打開wave6000軟件,新建一個文件,輸入代碼后并保存為.asm的文件。2. 點擊打開復(fù)位按鈕然后,觀察sfr,data,code,xdata,xcode在系統(tǒng)復(fù)位時值的情況如下所示: 3. 輸入一個小程序代碼,在
2、wave6000環(huán)境下運行,查看結(jié)果。org 0000h org 8000hmain:mov r0,#20h mov r1,#30h mov r2,#10hloop:mov a,r0 anl a,#0f0h swap a add a,#30h mov r1,a mov a,r0 anl a,#0fh add a,#30h inc r1 mov r1,a inc r0 inc r1 djnz r2,loop ljmp main四 實驗思考題41通過本次實驗熟悉了wave6000軟件的各種操作,有幾種方法可以運行程序?42 在實際操作中,主要碰到哪些問題使程序不能順利執(zhí)行?實驗二 查表法實現(xiàn)字符的
3、轉(zhuǎn)換程序設(shè)計一 實驗?zāi)康?1 學(xué)習(xí)簡單程序的編寫和調(diào)試方法。12運用仿真軟件wave6000對程序進行調(diào)式和運行13檢查程序運行結(jié)果是否正確二 實驗內(nèi)容編寫查表法實現(xiàn)字符的轉(zhuǎn)換程序并調(diào)試,查看運行過程及結(jié)果。三 實驗步驟(參考)1 編寫程序,編譯通過,并運行得以下結(jié)果運行一下可以看到程序存儲器中0060h0069h中存放表運行結(jié)果如下:3.采用單步運行查看程序的運行過程,先設(shè)置pc的值,然后單擊單步運行圖標即可通過實驗,我們可以知道單步運行與全速執(zhí)行的結(jié)果是一樣的。四實驗思考題41 在實際操作中,主要碰到哪些問題使程序不能順利執(zhí)行?42 若結(jié)果不正確,可能的問題是什么或使程序不能順利執(zhí)行?實驗
4、三將兩個字節(jié)的十六進制轉(zhuǎn)換成十進制一、實驗?zāi)康? 1熟悉程序的編寫和調(diào)試方法。 12熟悉仿真軟件wave6000對程序進行調(diào)式和運行 13檢查程序運行結(jié)果是否正確二、實驗內(nèi)容編程實現(xiàn)將(10h)(11h)單元的兩個字節(jié)的十六進制數(shù)轉(zhuǎn)換成十進制存放在(20h)(21h)(22h)里面。三、實驗步驟及參考程序1. 編寫源程序,如下: org 0000hljmp mainorg 8000hmain:clr a mov 20h,a mov 21h,a mov 22h,a mov r7,#16loop:clr c mov 10h,#0ffh mov 11h,#0ffh mov a,11h rlc a m
5、ov 11h,a mov a,10h rlc a mov 10h,a mov a,22h addc a,22h da a mov 22h,a mov a,21h addc a,21h da a mov 21h,amov a,20haddc a,20hda amov 20h,adjnz r7,loopret2.調(diào)試編譯,并運行得以下結(jié)果: 四、實驗思考題41 在實際操作中,主要碰到哪些問題使程序不能順利執(zhí)行?42 若結(jié)果不正確,可能的問題是什么或使程序不能順利執(zhí)行? 實驗四 程序查詢實現(xiàn)實時時鐘的設(shè)計 一、 實驗?zāi)康?通過本次實驗學(xué)習(xí)使用程序查詢實現(xiàn)實時時鐘的設(shè)計二、 實驗內(nèi)容編程實現(xiàn)實時時鐘的
6、功能三、 實驗步驟及參考程序1.編寫源程序,如下:org 0000hljmp mainorg 8000h main:mov tmod,#01h mov 23h,#0ah clr a mov 20h,a mov 21h,a mov 22h,aloop:mov th0,#3ch mov tl0,#0b0h setb tr0 jnb tf0,$ clr tf0 dec 23h mov th0,#3ch mov tl0,#0b0h mov a,23h cjne a,#00h,loop mov 23h,#0ah mov a,#01h add a,22h da a mov 22h,a cjne a,#60
7、h,loop mov 22h,#00h mov a,#01h add a,21h da a mov 21h,a cjne a,#60h,loop mov 21h,#00h mov a,#01h add a,20h da a mov 20h,a cjne a,#24h,loop mov 20h,#00h end2.通過調(diào)試,編譯并運行得如下結(jié)果20h,21h,22h單元分別存放著時分秒的值。四、實驗思考題41 在實際操作中,主要碰到哪些問題使程序不能順利執(zhí)行?42 若時間和實際時間不一致,可能的問題是什么?43 還有什么辦法可以實現(xiàn)時鐘的功能?實驗五 keil c51集成開發(fā)環(huán)境的使用一、【實驗
8、目的】1、熟悉keil c51集成開發(fā)環(huán)境的使用方法2、熟悉dp-51pro單片機綜合仿真實驗儀的使用3、掌握基于keil c51的硬件仿真功能的使用二、【實驗儀器】1、ibm pc機一臺 2、dp-51pro單片機綜合仿真實驗儀一臺三、【實驗內(nèi)容】一、keil c51的使用在keil 軟件中是以項目(project)方式來組織管理所有相關(guān)的源碼,和源碼所處的文件夾沒有太大關(guān)系。1、 熟悉uvision3集成開發(fā)環(huán)境菜單欄,工程項目窗口,編輯窗口,信息輸出窗口等;2、 創(chuàng)建一個新的項目:project - new uvision project ,設(shè)置好工程存放路徑、工程名稱如:led。3、
9、為這個項目選擇一個相應(yīng)的設(shè)備,即目標單片機型號:nxp (philips) - p80/p87c52x2。(此設(shè)備型號也可以在屬性中更改。)4、 提示如下: 選擇否。(當(dāng)用c語言開發(fā)時,可選是)。5、 新建一個文本文檔file - new,輸入實驗源碼:org8000h;偽指令,指定程序從8000h開始存放ajmpmain;跳轉(zhuǎn)指令,程序跳轉(zhuǎn)到main處org8100h;偽指令,指定以下程序從8100h開始存放main:movsp,#60;給堆棧指針賦初值light:cplp1.0;取反p1.0,改變l9的亮滅狀態(tài)cplp1.1;取反p1.1,改變l10的亮滅狀態(tài)cplp1.2;取反p1.2,
10、改變l11的亮滅狀態(tài)acalldelay;調(diào)延時子程序ajmplight;跳轉(zhuǎn),程序繼續(xù);延時子程序delay:movr7,#10hdelay0:movr6,#7fhdelay1:movr5,#7fhdelay2:djnzr5,delay2djnzr6,delay1djnzr7,delay0retend保存為:led.asm (后綴.asm表示此源代碼是用匯編語言編的)6、 在工程項目窗口中,右鍵點擊source group 1, 點擊add files to group “source group 1”, 把剛剛編寫的源文件加入工程中。7、 編譯鏈接程序project - build tar
11、get。 如出錯改正后再執(zhí)行此命令直到鏈接成功。二、仿真調(diào)試功能的使用1、 在前面已編譯好的基礎(chǔ)上,對項目的屬性做些特殊設(shè)置,即可進行硬件仿真。在工程項目窗口中點擊選擇target 1, 而后project - options for target target 1, 彈出項目屬性設(shè)置頁面。設(shè)置如下:1) target頁:off-chip code memory 和off-chip xdata memory 如下設(shè)置。2) output頁:勾選create hex file, 編譯連接生成hex標準格式下載文件。3) debug頁:選擇右邊的use: keil monitor-51 drive
12、r, 即選擇將進行硬件仿真方式,如下圖:左邊的use simulator為軟件仿真。4) 再點擊settings按鈕,彈出下圖:選擇相應(yīng)的串口,波特率為9600。其它選項如圖設(shè)置。屬性設(shè)置后,點擊“確定”保存后,仿真調(diào)試的軟件設(shè)置部分即完成, 需再對項目編譯:project - build all target files2、 實驗儀的設(shè)置:1) 實驗儀硬件仿真狀態(tài)設(shè)置:在a1區(qū),jp13中的sram_e和flash_e斷開不短接,jp14斷開不短接;jp15的txd,rxd短接。mod_sw1開關(guān)撥到run模式。按一下復(fù)位按鍵 rst。 按本實驗的所實現(xiàn)的功能:使用導(dǎo)線把a2區(qū)的j61接口與
13、d1區(qū)的j52接口相連。2) 運行 keil c 的 debug - start/stop debug session 命令,即把程序下載到單片機的sram中,開始仿真調(diào)試,在調(diào)試過程中,注意觀察調(diào)試中實驗儀器的變化。進入調(diào)試界面如下:3) 在output windows 選擇command頁,在后輸入:g, 程序?qū)⑻D(zhuǎn)到main開始調(diào)試, 而后即可進行單步、斷點調(diào)試等:跳轉(zhuǎn)后的頁面:4)單步調(diào)試:點擊快捷工具: 體會這幾種工具的不同之處5)斷點調(diào)試:點擊快捷工具: 前者為設(shè)斷點,后者為清除斷點;或雙擊相應(yīng)行即可設(shè)置/清除斷點,然后點擊: 執(zhí)行。如圖為設(shè)置了一個斷點:)查看內(nèi)存:如沒顯示如下窗
14、口,選擇view - memory window 打開該窗口。在address:輸入框中,輸入字符格式為:“存儲器標識符:地址”, 如上圖c表示程序存儲器,0x8109是地址(0x表示是16進制)。還有d表示內(nèi)部數(shù)據(jù)存儲器,x表示外部數(shù)據(jù)存器。)點擊這個圖標: 退出調(diào)試。實現(xiàn)流水燈循環(huán)點亮: 程序如下:具體步驟如前所述。實驗六 數(shù)據(jù)的冒泡排序一、實驗?zāi)康?通過本次實驗學(xué)習(xí)使用冒泡排序的單片機實現(xiàn)二、 實驗內(nèi)容使用冒泡排序?qū)崿F(xiàn)20h-2fh單元的數(shù)據(jù)從小到大排列,并把正確的排序結(jié)果仍存放在20h-2fh單元三、 實驗步驟及參考程序1. 編寫源程序,并編譯。org 0000h ljmp main
15、org 4000hmain: mov r3,#00hloop:mov r0,#20h mov r1,#21h mov r2,#0fhloop1:mov a,r0 clr c subb a,r1 jc loop2 mov a,r0 xch a,r1 mov r0,a inc r0 inc r1 ljmp loop3loop2:inc r0 inc r1loop3:djnz r2,loop1 inc r3 cjne r3,#0fh,loop end2. 運行可執(zhí)行文件,得到最后結(jié)果:(1) 運行前20h-2fh單元的內(nèi)容如下:(2) 運行后20h-2fh單元的內(nèi)容如下:四、實驗思考題41 還有什么
16、辦法可以實現(xiàn)數(shù)據(jù)排序的功能?實驗七 單片機的i/o實驗(電子琴)一、實驗?zāi)康?、學(xué)會利用單片機的輸入輸出口, 熟悉定時器的使用;2、了解計算機(蜂鳴器)發(fā)聲原理;3、了解鍵盤掃描電路的工作原理及編程方法;二、實驗原理在單片機的開發(fā)使用中,經(jīng)常會用到io口來輸入數(shù)據(jù)或輸出控制信號,利用io口是單片機編程的最基礎(chǔ)技能。定時器常常用在要求比較精確計時的場合,能實時的處理一些特定的操作。實驗原理圖利用實驗儀上提供的按鍵k1-k7作為電子琴按鍵,控制蜂鳴器發(fā)聲,了解計算機發(fā)聲原理,熟悉定時器和鍵盤掃描電路的工作原理及編程方法。三、實驗儀器1、ibm pc機一臺2、dp-51pro單片機綜合仿真實驗儀一臺
17、四、實驗內(nèi)容編寫一段程序來檢測按鍵的狀態(tài),當(dāng)某一按鍵按下時,蜂鳴器發(fā)出對應(yīng)的音調(diào);用p3.3口控制(輸出7種音階標稱頻率的方波),使d4區(qū)的蜂鳴器發(fā)出不同的音調(diào)。1、認真理解程序控制流程,弄懂兩個問題:如何掃描鍵盤及每個按鍵閉合時對定時器的影響。2、創(chuàng)建一個工程,編寫按鍵的動態(tài)掃描程序,根據(jù)不同音階的頻率編寫蜂鳴器的音調(diào)控制程序,完成編譯、鏈接。并按實驗一配置好工程屬性,把實驗儀設(shè)置為仿真狀態(tài)。3、用導(dǎo)線將a2區(qū)j58接口p3.3口(int1)和d4區(qū)的j8接口相連,然后將d1區(qū)的j53接口和a2區(qū)的j61接口一一對應(yīng)相連。4、仿真調(diào)試程序,測試每個按鍵的音調(diào)。程序如下:buzz equ p3
18、.3org 8000hljmp mainorg 800bhljmp int_t0org 8100hmain: mov sp,#60h mov p1,#0ffh mov tmod,#01h setb et0 setb ea clr tr0start: mov r0,p1 cjne r0,#0ffh,key1 clr tr0 sjmp startkey1: cjne r0,#0feh,key2 mov 30h,#0fbh mov 31h,#0e9h ljmp set_timerkey2: cjne r0,#0fdh,key3 mov 30h,#0fch mov 31h,#5ch ljmp set_
19、timerkey3: cjne r0,#0fbh,key4 mov 30h,#0fch mov 31h,#0c1h ljmp set_timerkey4: cjne r0,#0f7h,key5 mov 30h,#0fch mov 31h,#0efh ljmp set_timerkey5: cjne r0,#0efh,key6 mov 30h,#0fdh mov 31h,#045h ljmp set_timerkey6: cjne r0,#0dfh,key7 mov 30h,#0fdh mov 31h,#92h ljmp set_timerkey7: cjne r0,#0bfh,nokey mo
20、v 30h,#0fdh mov 31h,#0d6hset_timer: setb tr0 sjmp startnokey: clr tr0 sjmp startint_t0: mov th0,30h mov tl0,31h cpl buzz reti ; end五、實驗思考題51 若發(fā)出的音調(diào)和實際不一致,可能的問題是什么?52 用什么辦法可以改變音準、節(jié)奏和演奏速度?實驗八 單片機的i/o實驗(串口/并口轉(zhuǎn)換)一、實驗?zāi)康氖煜げ⒄莆沾D(zhuǎn)并的i/o口擴展方法二、實驗設(shè)備及器件ibm pc機、dp-51pro單片機綜合仿真實驗儀三、實驗內(nèi)容1、寫程序,通過單片機的p1口控制74hc164的串行輸
21、入端口,實現(xiàn)串并轉(zhuǎn)換2、驗證串并轉(zhuǎn)換數(shù)據(jù)的正確性四、實驗要求熟悉串并轉(zhuǎn)換芯片的工作原理,學(xué)會使用串并轉(zhuǎn)換芯片擴展單片機的i/o口資源。五、實驗步驟1、短接c5區(qū)jp10接口,將c5區(qū)j43接口與a2區(qū)j61接口的p10p13對應(yīng)相連(clk對p10等等)。2、運行編寫好的軟件程序,完成一次串并轉(zhuǎn)換。3、使用c2區(qū)的邏輯筆或d1區(qū)的j52接口(led指示燈)測試并行輸出數(shù)據(jù)q0q7數(shù)據(jù)的正確性。六、實驗參考程序 clk equ p1.0dina equ p1.1dinb equ p1.2clr164 equ p1.3org 8000hljmp mainorg 8100hmain:mov sp,#
22、60h nop clr clk setb dinb clr clr164 mov a,# 0aah mov r4,#08hslchg: rlc a mov dina,c setb clk nop clr clk nop djnz r4,slchg sjmp $ ; end七、實驗思考題71 還有哪些辦法可以實現(xiàn)i/o的擴展和轉(zhuǎn)換?實驗九 單片機與譯碼器的接口實驗一、實驗?zāi)康氖煜ぷg碼器的使用方法,靈活應(yīng)用74hc138譯碼器電路設(shè)計。二、實驗設(shè)備及器件ibm pc機 一臺dp-51pro單片機綜合仿真實驗儀 一臺三、實驗內(nèi)容(1)編寫程序,通過單片機的p1口控制74hc138的數(shù)據(jù)輸入端,從而選
23、通相應(yīng)的數(shù)據(jù)輸出位。(2)將譯碼器數(shù)據(jù)輸出端口連接到8個led指示燈,驗證譯碼器的正確性。四、實驗要求通過實驗掌握譯碼器的工作原理和實際應(yīng)用方法。五、實驗步驟(1)短接c6區(qū)jp4接口上的短路帽,將c6區(qū)j20,j22接口與a2區(qū)j61接口的p10p15相連。實驗原理圖如下圖所示(2)將d1區(qū)的j52接口連接到c6區(qū)j51譯碼數(shù)據(jù)輸出接口。(3)打開程序調(diào)試軟件,下載運行編寫好的軟件程序,查看程序運行結(jié)果是否正確。六、實驗參考程序org 8000hljmp mainorg 8100hmain:mov sp,#60hmov r4,#0djnz r4,$clr p1.5clr p1.4setb p
24、1.3clr p1.0clr p1.1setb p1.2sjmp $;end七、實驗思考題71如何利用單片機實現(xiàn)編碼器的功能?實驗十:單片機的串口通信實驗一、實驗?zāi)康?、學(xué)會單片機的串行口的使用2、掌握單片機燒寫程序的方法和步驟二、實驗原理1、通過串口實現(xiàn)一個單片機與pc機的簡單握手通信的程序。2、利用單片機的txd、rxd口向pc機發(fā)送。三、實驗儀器1、ibm pc機一臺2、dp-51pro單片機綜合仿真實驗儀一臺四、實驗內(nèi)容由于使用硬件仿真功能將占用串口,所以本次實驗不能在實驗儀上進行仿真,只能把程序下載到片上運行驗證。1、實驗編程 按以下要求編寫兩個程序,特別是在項目屬性的設(shè)置中要勾選c
25、reate hex file這一選項,才能編譯生成dpflash下載所需要的.hex文件,按第二節(jié)介紹的下載流程步驟把程序下載到片上驗證。1)編寫一段程序,利用串行口向pc機發(fā)送數(shù)據(jù)0x55。(第二節(jié)的截圖為本實驗的實驗結(jié)果)2)編寫一段程序,實現(xiàn)一個單片機與pc機的簡單握手通信的程序。通信流程: pc機串口發(fā)送數(shù)據(jù)0x55(ascii碼為字母u),在單片機接收到0x55時返回一個數(shù)據(jù)0x41(ascii碼為字母a)即完成通信流程。程序如下:程序1:發(fā)送程序2:接收與發(fā)送2、下載流程1)安裝燒寫軟件dpflash。2)運行dpflash下載程序,如圖13)設(shè)置實驗儀為下載模式(即把a1區(qū)的mo
26、d_sw1撥到load方向,再按rst按鈕復(fù)位實驗儀)。4)點擊左側(cè)工具欄的擦除按鈕,把單片機片內(nèi)ram清空,如圖2 5)文件-裝載,載入待下載的.hex文件,如:rs232.hex,如圖36)點擊左側(cè)工具欄的編程按鈕,把裝載的.hex文件燒寫入單片機。如圖47)退出編程窗口,把實驗儀設(shè)置為運行(run)模式后,單片機即已運行片內(nèi)程序。按需要調(diào)試、觀察實驗儀的運行表現(xiàn)。 本實驗是調(diào)試rs232串口,我們可以使用dpflash軟件自帶的一個串口調(diào)試工具。點擊串口調(diào)試器,彈出一個界面,如圖5,按本實驗通信要求設(shè)置波特率等參數(shù),即可觀察到單片機發(fā)送的數(shù)據(jù)。8)采用同樣的方法可觀察到單片機接收與發(fā)送3
27、、本次實驗結(jié)束后需把硬件仿真程序重新燒寫回單片機。運行dpflash,點擊左邊工具欄“編程(p)”按鈕,然后選擇“編程mon51”,點擊“編程”,即把仿真接口程序重新燒入單片機中。界面如下:五、思考題51 如何進行單片機與單片機之間的串行通信。52 如何使用中斷方法編寫程序。53 如何實現(xiàn)單片機的多機通訊?54 哪些方法可以實現(xiàn)單片機通訊中的數(shù)據(jù)校驗?實驗十一 keil c51集成開發(fā)環(huán)境的使用一、【實驗?zāi)康摹?、熟悉keil c51集成開發(fā)環(huán)境的使用方法2、熟悉dp-51pro單片機綜合仿真實驗儀的使用3、掌握基于keil c51的硬件仿真功能的使用二、【實驗儀器】1、ibm pc機一臺 2、dp-51pro單片機綜合仿真實驗儀一臺三、【實驗內(nèi)容】1、keil c51的使用2、仿真調(diào)試功能的使用四、【實驗步驟】1、 新建一個工程iso,并為工程選用相應(yīng)的cpu型號。2、 如果程序沒有編好,新建一個文件,編寫相關(guān)的程序,用
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年建材市場商鋪租賃及品牌展示合同2篇
- 二零二五版A4一頁紙環(huán)保印刷定制合同2篇
- 二零二五年度活動板房租賃合同(含消防設(shè)施及安全檢查)3篇
- 二零二五版城市綠化帶基站場地租賃與景觀融合合同3篇
- 二零二五版辦公室能源管理合同3篇
- 二零二五年度高性能1號不銹鋼駁接爪批量采購供貨合同2篇
- 二零二五版企業(yè)清算注銷及員工安置及補償及債務(wù)清理合同3篇
- 二零二五版金融資產(chǎn)抵押交易合同范本3篇
- 二零二五版古建筑修復(fù)工程勞務(wù)承包施工合同2篇
- 二零二五版鋼材現(xiàn)貨及期貨交易合同示范文本3篇
- 2024質(zhì)量管理理解、評價和改進組織的質(zhì)量文化指南
- 手指外傷后護理查房
- 油氣回收相關(guān)理論知識考試試題及答案
- 我能作業(yè)更細心(課件)-小學(xué)生主題班會二年級
- 2023年湖北省武漢市高考數(shù)學(xué)一模試卷及答案解析
- 城市軌道交通的網(wǎng)絡(luò)安全與數(shù)據(jù)保護
- 英國足球文化課件
- 《行政職業(yè)能力測驗》2023年公務(wù)員考試新疆維吾爾新疆生產(chǎn)建設(shè)兵團可克達拉市預(yù)測試題含解析
- 醫(yī)院投訴案例分析及處理要點
- 燙傷的安全知識講座
- 工程變更、工程量簽證、結(jié)算以及零星項目預(yù)算程序?qū)嵤┘殑t(試行)
評論
0/150
提交評論