51單片機實驗合集_第1頁
51單片機實驗合集_第2頁
51單片機實驗合集_第3頁
51單片機實驗合集_第4頁
51單片機實驗合集_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

51單?機實驗合集實驗?多字節?進制加法程序設計?.實驗?的:1.熟悉仿真器的軟件使?環境及單?機匯編語?編程;2.掌握多字節?進制加法的程序設計及實現?法。?.實驗內容:編寫多字節?進制加法程序,實現下式運算:+45674728=11302要求:被加數在?內RAM區20H、21H單元;分別為學號(7),學號+1(8);加數在?內RAM區30H、31H單元;分別為學號+2(9),學號+3(10);結果在?內RAM區20H(最?位進位)、21H(?位)、22H(低位)單元。三.實驗步驟:1.開機啟動KeilC5軟1件進?μVision2集成開發環境,確認89C51處于軟件仿真狀態。2.完成程序的設計、編輯、編譯、連接。3.進?DEBUG?式,打開存儲器Memory1窗?,在窗?Address欄鍵?D:20H;點擊?標右鍵,選擇最后?項ModifyMemory,輸?被加數;在窗?Address欄鍵?D:30H;點擊?標右鍵,選擇最后?項ModifyMemory,輸?加數。4.調試和運?程序并記錄存儲器Memory1窗?實驗結果。四.實驗參考程序:ORG0000HLJMPMAINORG0030HMAIN:MOVA,20HADDA,30HDAAMOV22H,AMOVA,21HADDCA,31HDAAMOV21H,ACLRAMOVR3,00HADDCA,R3MOV20H,ASJMP$END五.實驗截圖:

實驗總結:學會了多字節?進制加法程序設計,對keilc51有了更為熟練地掌握,也對程序有了更為深?的了解,課堂所學的理論以及?些不清楚的地?在實驗中得到了答案。實驗三P1?輸出實驗?.實驗?的:1.掌握P1?輸出端?的使?原理及編程?法;2.加深I/O端?對外部電路驅動原理的理解。?.實驗內容:P1?做輸出,驅動8只發光?極管,編寫程序,以1s的時間間隔使得?個發光?極管從左到右循環點亮。三.實驗步驟:1.理解P1?內部結構,掌握P1?輸出?低電平的原理。2.看懂實驗電路,完成接?連線(注意,接線時需要關閉實驗箱電源)。3.編寫控制程序,注意延時循環的時間控制在1s4.進?DEBUG?式,打開I/O?查看?具,監視P1?的輸出變化。調試程序并觀察發光?極管點亮情況。。四.實驗參考程序:ORG0000HSJMPMAINORG0030H

MAIN:MOVP2,#0FEHLOOP:ACALLDELAYMOVA,P2RLAMOVP2,AAJMPLOOPDELAY:MOVR3,#100DELAY2:MOVR4,#100DELAY3:MOVR5,#100DELAY1:DJNZR5,$DJNZR4,DELAY3DJNZR3,DELAY2RETEND;說明:P1?接發光?極管實驗結果:輸?代碼調試好,通過燒寫器可以看見單?機上的?極管呈周期性點亮,改動數據能改變它點亮的時間間隔。實驗結果如下圖所?:

實驗總結:這次實驗中花了很多時間去看電路圖以及去理解代碼,調整代碼,對keiluVision軟件的使?并不是很熟練,初次使?燒寫器沒找到要燒?的?件忘記調芯?類型以及波特率,通過這次試驗掌握了P1?輸出端?的原理,也熟悉了代碼程序的編寫。實驗四P?輸?實驗?.實驗?的:1.掌握P3?輸?端?的使?原理及編程?法;2.加深I/O端?對外部電路驅動原理的理解。?.實驗內容:通過?動按鍵K1-K3,循環讀取P3.0-P3.3,并將結果顯?在P2.0-P2.3的LED上,按鍵觀察讀?的值變化。三.實驗步驟:1.理解I/O?讀取外部電平原理.2.進?DEBUG?式,打開I/O?查看?具,監視P3?的輸出變化。4.?成HEX?件,燒?實驗板,按鍵并觀察發光?極管閃爍情況。。四.實驗參考程序:ORG0000HSJMP0030HORG0030HSTART:

LOOP:MOVC,P3.1MOVP2.0,C;讀按鍵K1顯?在D1MOVC,P3.0MOVP2.1,CMOVC,P3.2MOVP2.2,C;讀按鍵K2顯?在D2;讀按鍵K3顯?在D3MOVC,P3.3MOVP2.3,C;讀按鍵K4顯?在D4SJMPLOOPEND;說明:P2?接發光?極管

實驗總結:最開始照搬?師的代碼發現并?法實現按K1實現D1燈亮,按K2實現D2燈亮,??仔細分析了?遍找到了兩處需要更改的地?,經過更改最后順利實現了通過?動按鍵實現相應的LED燈亮起,這次實驗也加深了我對I/O?作?的理解。實驗五外部中斷實驗?.實驗?的:1.掌握51單?機中斷原理及編程?法;2.了解中斷觸發?式及中斷優先級的概念。?.實驗內容:通過?動按鍵產?負脈沖信號,K3控制輸出的負脈沖信號加于INT0,K4控制輸出的負脈沖加于INT1.主程序以1秒為間隔循環點亮響鈴的兩個LED程序,設置INT0為低優先級,當按K3鍵并釋放按鍵后,發出中斷信號,使得8個LED以1秒為間隔“全亮-全滅”?式閃動10秒。完成上述試驗后,設置INT1的觸發?式為邊沿觸發,優先級為?優先級,安東開關K4,產?負脈沖,INT1中斷服務為?優先級,按動開關K4,長?負脈沖,INT1響應,以1秒為間隔循環點亮8個LED。三.實驗步驟:1.理解TCON寄存器中IT0IT1的設置,IE和EA的正旗設置。2.理解外部中斷的觸發原理.2.進?DEBUG?式,打開I/O?查看?具,監視P3?的輸出變化。4.?成HEX?件,燒?實驗板,按鍵并觀察發光?極管閃爍情況。。四.實驗參考程序:ORG0000H

LJMPMAINORG0003HLJMPINT_0ORG0013HLJMPINT_1ORG0030HMAIN:MOVSP,#07HMOVA,#0FCHSETBEASETBEX0SETBEX1SETBIT1SETBPX1LOOP:MOVMOVP2,AR2,#30

LCALLDLYRLASJMPLOOPINT_0:PUSHACCPUSHPSWSETBRS0CLRMOVMOVRS1A,#00HR3,#10LOOP1:MOVP2,AMOVR2,#49LCALLDLYCPLADJNZR3,LOOP1POPPOPRETIPSWACC

INT_1:PUSHACCPUSHPSWSETBRS1SETBRS0MOVA,#07FHMOVR3,#8LOOP2:MOVP2,AMOVR2,#49LCALLDLYRLADJNZR3,LOOP2POPPOPRETIPSWACCDLY:MOVR0,#100R1,#100DLY1:MOV

DJNZR1,$DJNZR0,DLY1DJNZR2,DLYRETEND;說明:P2?接發光?極管五、實驗過程打開Keiluvisions軟件,做好編譯前準備,根據實驗要求編寫程序,先編寫三個循環程序,?個是主程序以1秒為間隔循環點亮響鈴的兩個LED程序,?個是8個LED以1秒為間隔“全亮-全滅”?式閃動10秒,?個是以1秒為間隔循環點亮8個LED,再設置好INT_0和INT_1調好他們觸發?式以及優先級,讓INT_1優先級?于INT_0,從?實現按K3實施INT_0中斷服務,K4實施INT_1中斷服務(具體程序步驟四)。編譯檢查程序?誤,保存,執?。?成HEX?件,燒?實驗板,按鍵并觀察發光?極管閃爍情況。六、實驗結果七、實驗總結在?師的指導下通過這次實驗我了解了中斷原理以及相應的編程,也如何設置中斷程序優先級和循環的問題,同時也對匯編語?的操作便有了更多的認識。實驗六計數器實驗?.實驗?的:1.熟悉MCS-51單?機定時/計數器的外部計數原理;2.進?步掌握定時/計數器的計數功能的初始化和編程?法。

?.實驗內容:模擬產品包裝線上對物品件數的計數,假設每個包裝箱10件物品,每個物品經過傳送帶時,光電傳感器將發出?個脈沖信號,利?T0定時計數器對該脈沖進?計數,每計滿19個物件,將箱數計數器加1,同時將箱數計數器的值以?進制的形式顯?在8個LED發光?級管中。光電傳感器脈沖由實驗儀器上的K3按鍵來模仿。三.實驗步驟:1.理解TCON寄存器中IF0IF1的設置,IE的EA和ET0的正確設置。2.理解定時計數器的外部計數的觸發原理.2.編寫匯編程序,并?成HEX?件,燒?實驗板。4.按鍵并保持100毫秒以上,模擬光電傳感器的脈沖,記錄按鍵次數,并觀察發光?極管組的顯?,驗證其代表的計數(?進制形式)正確情況情況。四.實驗參考程序:ORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#0110B;T0?式2,計數器?式MOVTH0,#00F6H;計數次數為10MOVTL0,#00F6HMOVR1,#0HSETBTR0;啟動計時器;---------------------------------;控制燈亮LOOP:MOVA,R1CPLA;A取反MOVP2,A;控制燈亮MOVC,P3.2CPLCMOVP3.4,C;傳遞給P3.4JBCTF0,NEXT;查詢溢出位,10個溢出?次LJMPLOOP;---------------------------------;控制R1數值并在LOOP中令A取反控制燈亮NEXT:INCR1LJMPLOOPEND;說明:P2?接發光?極管五、實驗過程

.實驗?的:打開Keiluvisions軟件,做好編譯前準備,根據實驗要求編寫程序,計數器?式采?T0?式2,根據計數次數為10計算出2^8-10=246即00F6H,根據要求寫好主程序與循環程序(具體程序步驟四)。編譯檢查程序?誤,保存,執?。?成HEX?件,燒?實驗板,持續按動按鍵K3并觀察發光?極管閃爍情況。六、實驗結果:七、實驗總結通過實驗熟悉了單?機定時的外部計數原理以及編程?法,此次實驗發現我對定時器中斷?式的掌握有所?缺不?,更傾向于使?查詢?式,對單?機定時?式還應該多花時間看看。實驗七定時器實驗1.熟悉MCS-51單?機定時/計數器的定時?作原理及使??法;2.進?步掌握定時/計數器的初始化和編程?法。3.進?步掌握中斷程序的調試?法。?.實驗內容:初始化設置內部定時器T0?作在?式1,即作為16位定時器使?。定時時間為10ms,每10msT0溢出中斷?次,將P1.0~1.7分別接發光?極管L1~L8。編寫程序模擬?時序控制裝置。開機后第?秒L1,L3亮,第?名L2,L4,亮,第三秒L5,L7亮,第4秒L6,L8亮以后重頭開始,直循環。三.實驗步驟:1.理解TCON寄存器中TF0TF1的作?,IE的EA和ET0的正確設置。2.理解定時/計數器的定時功能的觸發原理.3.編寫匯編程序,并?成HEX?件,燒?實驗板。四.實驗參考程序:LJMPINT_T0ORG0030HMAIN:MOVTMOD,#01H;T0選?定時器?式1MOVTH0,#0D8H;設置T0每10ms中斷?次MOVTL0,#0F0HMOVR0,#00H;控制R0處內容MOVR1,#100;控制中斷次數為100SETBEA;總中斷SETBET0;啟動定時器中斷SETBTR0;啟動定時器SJMP$;-----------------------------中斷程序INT_T0:CLRTR0;關閉中斷

.實驗?的:MOVTH0,#0D8HMOVTL0,#0F0HSETBTR0DJNZR1,EXIT;中斷次數少于100返回main繼續執?MOVR1,#100MOVDPTR,#T_DATAMOVA,R0MOVCA,@A+DPTRMOVP2,A;控制燈亮INCR0ANL00,#03HEXIT:RETI;返回T_DATA:DB0FAH,0F5H,0AFH,05FHEND;說明:P2?接發光?極管五、實驗過程打開Keiluvisions軟件,做好編譯前準備,根據實驗要求編寫程序,計數器?式采?T0?式1,根據定時時間為10ms計算出2^16-10000=5536即D8F0H,按照要求計算出各個燈亮對應的編碼0FAH,0F5H,0AFH,05FH,根據要求寫好主程序與循環程序(具體程序步驟四)。編譯檢查程序?誤,保存,執?。?成HEX?件,燒?實驗板,觀察發光?極管閃爍情況。六、實驗結果七、實驗總結這次的單?機的定時實驗并不是很難,通過實驗我了解51單?機定時/計數器的定時?作原理及使??法,也進?步掌握了中斷程序的調試?法,對程序的每?部分都有了更為清楚的掌握。實驗?數碼管實驗1.掌握51單?機前后臺程序結構及編程?法;2.了解數碼管段碼和位碼的控制。?.實驗內容:通過?動按鍵K3,使得數碼管0位從“0”-“f”顯?通過?動按鍵K4,使得數碼管1位從“0”-“f”顯?三.實驗步驟:1.理解共陰極數碼管?作原理。2.理解3-8譯碼器?作原理.

2.查詢按鍵?兜并使得內存單元加1。4.依次顯?數碼管0,1位上變化的數據。。四.實驗參考程序:ORG0000HLJMPMAINORG0003HLJMPINT_K3ORG0013HLJMPINT_K4ORG0030HMAIN:SETBEASETBIE0SETBIE1CLRIT0CLRIT1SETBEX0SETBEX1MOVDPTR,#TABMOVR5,#0MOVR6,#0L1:ACALLLOOPSJMPL1;--------------------------------------INT_K3:ACALLLOOPJNBP3.2,INT_K3INCR5CJNER5,#16,EIXTMOVR5,#0RETI;--------------------------------------INT_K4:ACALLLOOPJNBP3.3,INT_K4INCR6CJNER6,#16,EIXT

MOVR6,#0RETI;--------------------------------------LOOP:MOVA,#11111111BMOVP2,AMOVA,R5MOVCA,@A+DPTRMOVP0,AACALLDELAYMOVA,#11111011BMOVP2,AMOVA,R6MOVCA,@A+DPTRMOVP0,AACALLDELAYRET;--------------------------------------EIXT:RETI;--------------------------------------DELAY:MOVR1,#10DELY1:MOVR2,#10DJNZR2,$DJNZR1,DELY1RET;--------------------------------------TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HEND;說明:P0?接數碼管端碼,3-8譯碼器選擇數碼管位碼。五、實驗過程打開Keiluvisions軟件,做好編譯前準備,根據實驗要求編寫程序,按鍵k3,k4分別控制數碼管0位和1位從0顯?到F,據要求編寫好代碼(具體程序步驟四)。編譯檢查程序?誤,保存,執?。?成HEX?件,燒?實驗板,按動按鍵觀察數碼管顯?情況。六、實驗結果七、實驗總結

通過實驗了解了共陰極數碼管?作原理,也發現了??前??些知識的掌握有所不?,還需要多多學習。實驗九串?實驗?.實驗?的:1.掌握51單?機串?原理及編程?法;2.了解中斷服務的概念。?.實驗內容:通過編程,實現單?機開機發送“Welcome”,并等待接收串?的數字信息,顯?在數碼管的第0位。實現波特率115200bps的通信。三.實驗步驟:1.理解SCON寄存器中SM0,SM1,REN的設置。2.學習根據fosc計算波特率,并設置定時器的?作?式和參數.2.按中斷接收服務程序的模式,調試運?,打開串?助?,接收和發送單?機的內容。4.?成HEX?件,燒?實驗板,打開并觀察數碼管顯?情況。。四.實驗參考程序:ORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#20H;定時器1定時?式?式2MOVTH1,#0FDH;3usMOVTL1,#0FDHSETBTR1;開啟T1定時器MOVSCON,#52HMOVDPTR,#T_TAB;-------------------------------------發送SEND:CLRAMOVCA,@A+DPTRINCDPTRJZRECEIVE;JNBTI,$;TI判斷輸出?個字符是否完成CLRTIMOVSBUF,A;SJMPSEN

溫馨提示

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

評論

0/150

提交評論