單片機實驗報告_第1頁
單片機實驗報告_第2頁
單片機實驗報告_第3頁
單片機實驗報告_第4頁
單片機實驗報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及接口技術 實驗報告冊學院:光電信息科學與技術學院班級:083-1實驗一 系統(tǒng)認識實驗1.1 實驗目的1. 學習keil c51集成開發(fā)環(huán)境的操作。2. 熟悉td-51系統(tǒng)板的結構和使用。1.2實驗儀器pc 機一臺,td-nmc+教學實驗系統(tǒng)。1.3實驗內容1. 編寫實驗程序,將00h0fh共16個數(shù)寫入單片機內部 ram 的30h3fh空間。2.編寫實驗程序,將00h到0fh共16個數(shù)寫入單片機外部ram的1000h到100fh空間。1.4 源程序201. org 0000hmov r1,#30hmov r2, #10hmov a, #00hloop:mov r1, ainc r1

2、inc adjnz r2,loopsjmp $end2. org 0000hmov dptr, #1000hmov r2, #10hmov a, #00hloop:movx dptr, ainc dptrinc adjnz r2,loopsjmp $end1.5 實驗步驟1.創(chuàng)建 keil c51 應用程序(1)運行 keil c51 軟件,進入 keil c51 集成開發(fā)環(huán)境。(2)選擇工具欄的 project 選項,彈出下拉菜單,選擇 newproject 命令,建立一個新的vision2 工程。選擇工程目錄并輸入文件名 asm1 后,單擊保存。(3)工程建立完畢后,彈出器件選擇窗口,選擇

3、 sst 公司的 sst89e554rc。(4)為工程添加程序文件。選擇工具欄的 file 選項,在彈出的下拉菜單中選擇 new 目錄。 (5)輸入程序,將 text1 保存成asm1.asm。(6)將asm1.asm源程序添加到 asm1.uv2 工程中,構成一個完整的工程項目。2.編譯、鏈接程序文件(1)設置編譯、鏈接環(huán)境(2)點擊編譯、鏈接程序命令,此時會在 output window 信息輸出窗口輸出相關信息。3.調試仿真程序(1)將光標移到 sjmp $語句行,在此行設置斷點。(2)運行實驗程序,當程序遇到斷點后,停止運行,觀察存儲器中的內容,驗證程序功能。1.6 實驗結果.load

4、 “c:jiabin1.1”2.load “cjiabin11”實驗二 查表程序設計實驗2.1實驗目的學習查表程序的設計方法,熟悉 51 的指令系統(tǒng)。2.2實驗設備pc 機一臺,td-nmc+教學實驗系統(tǒng)2.3實驗內容1.通過查表的方法將 16 進制數(shù)轉換為 ascii 碼;2.通過查表的方法實現(xiàn)yx2,其中x為09的十進制數(shù),以bcd碼表示,結果仍以bcd碼形式輸出。2.4實驗步驟1.采用查表的方法將16 進制數(shù)轉換為 ascii 碼。(1)編寫實驗程序,編譯、鏈接無誤后聯(lián)機調試;(2)將待轉換的數(shù)存放在 r7 中,如令 r7 中的值為 0x86;(3)在語句行 sjmp main 設置斷點

5、,運行程序;(4)程序停止后查看寄存器 r6、r5 中的值,r6 中為高 4 位轉換結果 0x38,r5 中為低 4位轉換結果 0x36;(5)反復修改 r7 的值,運行程序,驗證程序功能。2.通過查表實現(xiàn)yx2,x 為 09 的十進制數(shù),存放與 r7 中,以 bcd 碼的形式保存,結果 y 以 bcd 碼的形式存放于寄存器 r6 中。(1)編寫實驗程序,經(jīng)編譯、鏈接無誤后,進入調試狀態(tài);(2)改變 r7 的值,如 0x07;(3)在語句行 sjmp main 處設置斷點,運行程序;(4)程序停止后,查看寄存器 r6 中的值,應為 0x49;(5)反復修改 r7 中的值,運行程序,驗證程序功能

6、。2.5源程序及實驗結果1. org 0000hljmp mainorg 0100hmain: mov dptr, #asctabmov a, r7anl a, #0fhmovc a, a+dptr mov r5, amov a, r7anl a, #0f0hmovc a, a+dptr mov r6, asjmp mainasctab: db 30h, 31h, 32h, 33h, 34h,5h, 36h, 37h, 38h, 39hdb 41h, 42h, 43h, 44h, 45h, 46hend 當令(r7)=86h時,高四位轉換結果(r6)=38h,低四位轉換結果(r5)=36h,l

7、oad “c:jiabin1.1” 當令(r7)=37h時,結果如下圖: 當令(r7)=09h時,高四位轉換結果(r6)=30h,低四位轉換結果(r5)=39h,結果如下圖:load “c:/jiabin/asc1”n2. org 0000hljmp mainorg 0100hmain:mov dptr, #sqrmov a, r7movc a, a+dptrmov r6, asjmp mainsqr: db 00h, 01h, 04h, 09h, 16hdb 25h, 36h, 49h, 64h, 81hend當令(r7)=07h時, (r6)=49h。結果如下圖:實驗三 數(shù)據(jù)排序實驗3.1

8、 實驗目的熟悉51的指令系統(tǒng),掌握數(shù)據(jù)排序程序的設計方法。3.2 實驗設備pc機一臺,td-nmc+教學實驗系統(tǒng)3.3 實驗內容在單片機片內ram的30h39h寫入10個數(shù),編寫實驗程序,將這10個數(shù)按照由小到大的順序排列,仍寫入ram的30h39h單元中。3.4 實驗步驟(1)編寫實驗程序,編譯、鏈接無誤后聯(lián)機調試;(2)為30h39h賦初值,如:在命令行中鍵入e char d:30h9,11h,5,31h,20h, 16h,1,1ah,3fh,8后回車,可將這10個數(shù)寫入30h39h中;(3)將光標移到語句行sjmp $處,點擊命令,將程序運行到該行;(4)查看存儲器窗口中30h39h中的

9、內容,驗證程序功能;(5)重新為30h39h單元賦值,反復運行實驗程序,驗證程序的正確性3.5 源程序org 0000h ljmp mainorg 0100hmain: mov r0, #30hmov r7, #0ahlp1: mov a, r7mov r6, amov a, r0mov r1, ainc r1lp2: mov a, r0clr csubb a, r1jc lp3mov a, r03.6 實驗結果load “c:guoyuxianggyx”實驗四 數(shù)字量輸入輸出實驗4.1 實驗目的了解p1口作為輸入輸出方式使用時,cpu對p1口的操作方式。4.2 實驗設備pc機一臺,td-nm

10、c+教學實驗系統(tǒng)。4.3 實驗內容編寫實驗程序,將p1口的低4位定義為輸出,高4位定義為輸入,數(shù)字量從p1口的高4位輸入,從p1口的低4位輸出控制發(fā)光二極管的亮滅。4.4 實驗步驟1.按圖3-1-1所示,連接實驗電路圖,圖中“圓圈”表示需要通過排線連接;2.編寫實驗程序,編譯鏈接無誤后進入調試狀態(tài);3.運行實驗程序,觀察實驗現(xiàn)象,驗證程序正確性;4.按復位按鍵,結束程序運行,退出調試狀態(tài);5.自行設計實驗,驗證單片機其它io口的使用。4.5 源程序 匯編: org 0000h ljmp start org 0100hstart: orl p1,#0f0h mov a,p1 swap a mov

11、 p1,a sjmp start endc程序:#include sst89x5x4.hvoid main(void)unsigned char data i;while(1)p1 = p1 | 0xf0;i = p1;p1 = (i4)&0x0f;實驗五 中斷系統(tǒng)實驗5.1 實驗目的了解mcs-51單片機的中斷原理,掌握中斷程序的設計方法。5.2 實驗設備pc機一臺,td-nmc+教學實驗系統(tǒng)。5.3 實驗內容1.單片機集成的定時器可以產(chǎn)生定時中斷,利用定時器0和定時器1,編寫實驗程序在p1.0及p1.1引腳上輸出方波信號。2.手動擴展外部中斷int0、int1,當int0產(chǎn)生中斷時,使le

12、d 8亮8滅閃爍4次;當int1產(chǎn)生中斷時,使led由右向左流水顯示,一次亮兩個,循環(huán)4次。5.4 實驗步驟1.定時器中斷實驗(1)編寫實驗程序,經(jīng)編譯、鏈接無誤后,啟動調試功能;(2)運行實驗程序,使用示波器觀察p1.0及p1.1引腳上的波形;(3)使用示波器測量波形周期,改變計數(shù)值,重新運行程序,反復驗證程序功能;(4)按復位鍵退出調試狀態(tài)。2.外部中斷實驗(1)按下圖連接實驗電路;(2)編寫實驗程序,編譯、鏈接無誤后啟動調試;(3)運行實驗程序,先按kk1,觀察實驗現(xiàn)象,然后按kk2,觀察實驗現(xiàn)象;(4)驗證程序功能,實驗結束按復位按鍵退出調試。外中斷實驗接線圖5.5 源程序1.定時器中

13、斷實驗匯編:org 0000hljmp startorg 000bhljmp timer0org 001bhljmp timer1org 0100hstart:mov p1, #0ffhmov th0, #0f8hmov tl0, #00hmov th1, #0f8hmov tl1, #00hmov tmod, #11hmov tcon, #50hmov ie, #8ahsjmp $timer0:cpl p1.0mov th0, #0f8hmov tl0, #00hretitimer1:cpl p1.1mov th1, #0f8hmov tl1, #00hretiendc程序:#include

14、 sst89x5x4.hsbit wave1 = p10;sbit wave2 = p11;void int_timer0() interrupt 1 wave1 = wave1;th0 = 0xf8;tl0 = 0x00;void int_timer1() interrupt 3wave2 = wave2;th1 = 0xf8;tl1 = 0x00;void main()th0 = 0xf8;tl0 = 0x00;th1 = 0xf8;tl1 = 0x00;tmod = 0x11;tcon = 0x50;ie = 0x8a;while(1);2.外中斷實驗匯編:org 0000hljmp s

15、tartorg 0003hljmp eint0org 0013hljmp eint1start:mov p1, #00hsetb it0setb ex0setb it1setb ex1setb easjmp $eint0:mov r7, #04help0:mov p1, #0ffhacall delaymov p1, #00hacall delaydjnz r7, elp0retieint1:mov a, #03hmov r7, #10hilp1:mov p1, arl arl aacall delaydjnz r7, ilp1retidelay:mov r6, #0ffhdlp1:mov r

16、5, #0ffhdlp2:djnz r5, dlp2djnz r6, dlp1retendc程序#include sst89x5x4.h#include intrins.hvoid delay(void)unsigned int x;for(x=0; x0xffff; x+);void int0_isr() interrupt 0unsigned char j;for(j=0; j4; j+)p1 = 0xff;delay();p1 = 0x00;delay();void int2_isr() interrupt 2unsigned char i=0x03, j;for(j=0; j16; j

17、+)p1 = i;i = _crol_(i, 2);delay();p1 = 0x00;void main()p1 = 0x00;it0 = 1;ex0 = 1;it1 = 1;ex1 = 1;ea = 1;while(1);5.6思考題設定int1為中斷高優(yōu)先級,在程序初始化中加一句:setb px1,則當按kk1-時,即int0產(chǎn)生中斷時,led燈亮滅閃爍,在期間即使按動kk2_時,led就會由右向左流水顯示,一次亮兩個,循環(huán)4次,結束后會按照按動kk2-之前沒有完成的次數(shù)繼續(xù)直到4次。當按kk2-時,即int1產(chǎn)生中斷時,led由右向左流水顯示,一次亮兩個,循環(huán)4次,在期間即使按動kk1

18、_時,led的現(xiàn)象也不會發(fā)生變化。實驗六 定時計數(shù)器實驗6.1 實驗目的1.了解mcs-51單片機定/計數(shù)器的工作原理與工作方式;2.掌握定時/計數(shù)器t0和t1在定時器和計數(shù)器兩種方式下的編程;3.學習定時/計數(shù)器t2的可編程時鐘輸出功能。6.2 實驗設備pc機一臺,td-nmc+教學實驗系統(tǒng)。6.3 實驗內容1.使用定時器0與定時器1進行定時,在p1.0和p1.1引腳上輸出方波信號。2.將定時/計數(shù)器1設定為計數(shù)器方式,每次計數(shù)到10在p1.0引腳上取反一次,觀察發(fā)光二極管的狀態(tài)變化。6.4 實驗步驟:1.定時器實驗(1)編寫實驗程序,編譯、鏈接后聯(lián)機調試;(2)運行實驗程序,使用示波器觀察

19、p1.0與p1.1引腳上的波形并記錄周期;(3)改變計數(shù)初值,觀察實驗現(xiàn)象,驗證程序功能。2.計數(shù)器實驗(1)按下圖連接實驗線路圖;(2)編寫程序,聯(lián)機調試;(3)運行實驗程序,按單次脈沖kk1,觀察發(fā)光管d0的狀態(tài),每10次變化一次;(4)實驗結束,按復位按鍵退出調試。計數(shù)器實驗連線圖6.5 源程序1.定時器實驗匯編:org 0000hljmp startorg 0100hstart:mov tmod, #11hmov th0, #0f8hmov tl0, #00hmov th1, #0f8hmov tl0, #00hsetb tr0setb tr1mlp1:jnb tf0, mlp2mov th0, #0f8hmov tl0, #00hcpl p1.0clr tf0mlp2:jnb tf1, mlp1mov th1, #0f8hmov tl1, #00hcpl p1.1c

溫馨提示

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

評論

0/150

提交評論