單片機實驗指導書(機電專業(yè))2016_第1頁
單片機實驗指導書(機電專業(yè))2016_第2頁
單片機實驗指導書(機電專業(yè))2016_第3頁
單片機實驗指導書(機電專業(yè))2016_第4頁
單片機實驗指導書(機電專業(yè))2016_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

#單片機應用技術(shù)”實驗指導書本課程實驗前要預習實驗內(nèi)容,讀懂范例程序,并按實驗要求準備程序流程圖并編制C51程序本課程實驗報告要求1、實驗要求2、實現(xiàn)控制要求的硬件電路原理圖3、程序流程圖4、課上要求完成的程序清單(加注釋)5、實驗遇到問題及解決6、實驗評價

實驗一單片機開發(fā)環(huán)境的建立實驗目的:1、熟悉V51/L偉福仿真系統(tǒng)及KeilC開發(fā)環(huán)境;2、建立單片機最小系統(tǒng)概念、學習P0口的使用方法;3、學習C51程序的編寫方法。二、實驗要求:P0口做輸出口,接八只發(fā)光二極管,編寫程序,控制發(fā)光二極管的點亮狀態(tài)1、八只LED管L1-4亮,L5-8滅;1秒后L1-4滅,L5-8亮。依此循環(huán)——。2、八只LED管從L1~L8依次循環(huán)點亮,每個LED點亮的延時時間為2秒。三、實驗設備:1、V51/L偉福仿真器一套;2、Ap51s學習開發(fā)板一塊;3、微機一臺套及Keil開發(fā)軟件,USB通訊線一根;電源線兩根。四、實驗電路:1、單片機最小系統(tǒng)電路:單片機的正常工作,是在以建立單片機最小系統(tǒng)的條件下實現(xiàn)的。單片機最小系統(tǒng)包括電源電路、時鐘電路、復位電路、存儲器選擇電路四部分。典型電路如下圖所示:--112011.0592M/12M30pF17410.111T1£1717--112011.0592M/12M30pF17410.111T1£17171~7?PSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6EA/VPPP1.0Pl.lPl.2Pl.3Pl.4Pl.5Pl.6Pl.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INTCIP3.3/INTiP3.4/T0P3.5/T1_P3.6/^P3.7/FDXTAL2XTAL1GNDAT89C5140393837363534333130二査儲器選擇272625242322T12、發(fā)光二極管輸出電路:本實驗板的P0端口接了8個發(fā)光二極管,這些發(fā)光二極管的負極通過一個排電阻接到P0端口各引腳,而正極接到正電源端,發(fā)光二極管點亮的條件是P0口相應的引腳為低電平,即如果P0口某引腳輸出為0,相應的燈亮,如果輸出為1,相應的燈滅。

五、練習范例程序//51單片機頭文件//51單片機頭文件typedefunsignedcharuchar;//數(shù)據(jù)類型說明typedefunsignedintuint;//輸出端口定義//延時函數(shù)定義//輸出端口定義//延時函數(shù)定義voidmain(void){voidmain(void){while(1){PO_O=!PO_O;delayms(1OOO);}}//主函數(shù)//無限循環(huán)體//PO.O狀態(tài)取反//延時1s//1ms延時函數(shù)//1ms延時函數(shù)//字符型變量i定義//1ms延時{uchari;while(j--)for(i=O;i<121;i++);}實驗前讀懂范例程序,實現(xiàn)的功能?畫出流程圖。六、程序說明:1)數(shù)據(jù)類型說明typedefunsignedcharuchar;typedefunsignedintuint,即為系統(tǒng)固有數(shù)據(jù)類型定義個別名。這樣在之后的編程中,就可以用uchar代替unsignedchar,用uint代替unsignedint來定義變量,2)1ms延時函數(shù)的延時計算說明在系統(tǒng)晶振為12MHz時,一個機器周期時間長度為12/12MHZ=1仇S循環(huán)結(jié)構(gòu)“for(i=0;i<121;i++);”的執(zhí)行時間約1ms,通過改變循環(huán)次數(shù),可得到不同時間的延時。七、實驗步驟:1、檢查仿真頭在Ap51s實驗板CPU芯片座上插好、插座扳手位于鎖緊位置(實驗過程嚴禁用手觸摸仿真頭電路表面);打開仿真器開關(guān),開啟實驗板開關(guān);2、運行桌面Keil軟件;3、在Keil環(huán)境下建立項目并輸入范例程序,編譯無誤后運行查看執(zhí)行結(jié)果;4、熟悉程序運行及調(diào)試方法,理解單片機程序的運行機制。具體操作詳見桌面“KEILC軟件使用說明2O16”。5、按實驗要求編程,并調(diào)試成功。提示:由右向左的循環(huán)(左循環(huán))可以有多種方法實現(xiàn),如指令“<<”或函數(shù)“_crol_(a,b)”實現(xiàn)。

實驗二數(shù)碼管顯示實驗一、實驗目的:1、了解八段數(shù)碼顯示數(shù)字的原理、學習LED顯示接口技術(shù);2、進一步了解V51/L偉福仿真系統(tǒng)及KeilC開發(fā)環(huán)境。二、實驗要求:本實驗用1位LED數(shù)碼管,段選信號接P0口,位選信號接P2口的第0位:1、循環(huán)顯示0~9,每隔2秒顯示數(shù)加1,字形碼放在程序存儲器內(nèi);2、順序顯示自己身份證號碼,每位停留顯示1秒,數(shù)據(jù)更新時滅0.5秒。三、實驗設備:1、V51/L偉福仿真器一套;2、yp51s學習開發(fā)板一塊;3、微機一臺套及Keil開發(fā)軟件,USB通訊線一根;電源線兩根。四、實驗原理與電路:共陽型LED顯示器單片機的P0口和P2口構(gòu)成了8位LSd數(shù)碼管驅(qū)動電路,這里LED數(shù)碼管采用了共陽型,其數(shù)碼管的筆段(即對應的abcdefgh)引腳是二極管的負極,與P0口相接,所有二極管的正極連在一起構(gòu)成公共端,即該位數(shù)碼管的位選端,對于這種數(shù)碼管的驅(qū)動要求在位選端提供電流,為此,使用了PNP型三極管作為位選端的驅(qū)動,共用8只三極管,每只三極管的發(fā)射極連在一起,接正電源端;基極則通過限流電阻分別接P2.0—P2.7。集電極分別向8只數(shù)碼管供電。由此可以判斷出:段選P0口送低電平有效,位選(COM端)因集電極需高電平,則P2.0-2.7口應送低電平有效。ooon-oooOPFFFFPPF肚'訊47GX4SIPSRESH豈兀期巫I甘u口fedch出IiDPYb宀;f|'gb代gg*aDPTooon-oooOPFFFFPPF肚'訊47GX4SIPSRESH豈兀期巫I甘u口fedch出IiDPYb宀;f|'gb代gg*aDPT缸raDPY§沁dpFDS!DPY仁SEG羽IZEaDPYC由e融卻dpSaDPT卜-—IiDPTrdEjhCTaDPY打■—1怕§s,3p郎5O2FJ3SKGLED2222222FFppFFFDIG231)心5DIG47ITD硬件連線對應的字形碼:表2-1字01234字形碼C0HF9HA4HB0H99H字56789不顯示字形碼92H82HF8H80H90HFFH五、練習范例程序:#include<reg51.h>//51單片機頭文件#defineucharunsignedchar//數(shù)據(jù)類型說明#defineuintunsignedintucharcodedisplay[]=ucharcodedisplay[]={0xC0,0xF9,0xA4,0xB0,0x99,//數(shù)碼管段碼0-9voiddelayms(uintms){uchari;while(ms--)for(i=0;i<121;i++);}voidmain(void){uchark;P0=0xff;P2=0xff;0x92,0x82,0xF8,0x80,0x90};//1ms延時函數(shù)//字符型變量k定義//1ms延時//主函數(shù)//字符型變量k定義//端口初始化while(1){while(1){P2=0xfe;for(k=0;k<10;k++)

{P0=display[k];

delayms(1000);}}}實驗前熟悉硬件電路原理圖,//無限循環(huán)體//送位碼//送段碼//延時1s讀懂范例程序,并畫出流程圖。六、實驗內(nèi)容:1、檢查實驗板CPU芯片座上的仿真頭;打開仿真器開關(guān)、開啟實驗板開關(guān)2、運行桌面Keil軟件;3、在Keil環(huán)境下建立項目并輸入范例程序,編譯無誤后運行查看執(zhí)行結(jié)果;4、按實驗要求編程,并調(diào)試成功。

實驗三鍵盤顯示實驗實驗三鍵盤顯示實驗一、實驗目的:1、了解鍵盤電路工作原理;掌握獨立鍵盤接口電路的程序編寫方法;2、學習鍵盤顯示綜合運用的程序處理流程與編制方法。二、實驗要求:P3.2、P3.3分別接AN1、AN2兩按鈕開關(guān),數(shù)碼管位選范圍P2.0—P2.7。AN1按下,點亮1位數(shù)碼管顯示0,再按則關(guān)顯示;在數(shù)碼管點亮狀態(tài)下,按AN2一下則顯示值加1,若加至10則顯示回0。三、實驗設備:1、V51/L偉福仿真器一套;2、Up51s學習開發(fā)板一塊;3、微機一臺套及Keil開發(fā)軟件,USB通訊線一根;電源線兩根。四、實驗電路(數(shù)碼管顯示電路見實驗二):VCCurnP3.urnP3.2P3.3P3.4MP32OO—A監(jiān)P33oo—P34Q0—島」35P3_5五、實驗說明:單個鍵盤查詢式掃描程序流程:單個鍵盤查詢式掃描程序流程:1、有鍵按下,相應輸入為低,否則為高。通過這樣可以判斷按下什么鍵;2、在判有鍵按下后,為防止由于鍵盤抖動而引起誤操作,要有5—10ms的延時。3、由于程序執(zhí)行時間很快,在鍵盤處理時要考慮按下后到抬起的時段控制,應保證每按一次鍵,只處理一次。

六、練習范例程序:AN1按下,數(shù)碼管顯示0再按一下,關(guān)顯示;依此循環(huán)…#include"reg51.h"typedefunsignedcharuchar;typedefunsignedintuint;sbitK1二sbitK1二P3"2;sbitP2_0二P2飛;//定義鍵端口//定義位控碼voiddelayms(uint);voidmain(void){voiddelayms(uint);voidmain(void){P0=0xc0;P2=0xff;//端口初始化while(1){while(1){if(K1==0)delayms(10);if(K1==0){while(!K1);P2_0=~P2_0;}//判鍵按下?//延時去抖//判鍵按下?//等待鍵抬起//位控狀態(tài)改變voiddelayms(uintj)//1ms延時{uchark;while(j--){for(k=0;k<121;k++);}}七、實驗操作方法:1、檢查實驗板CPU芯片座上的仿真頭;打開仿真器開關(guān)、開啟實驗板開關(guān);2、運行桌面Keil軟件;3、在Keil環(huán)境下建立項目并輸入范例程序,編譯無誤后運行查看執(zhí)行結(jié)果;4、按實驗要求編程,并調(diào)試成功。5、提示:調(diào)試查詢判鍵功能:采用單步運行無法捕捉按鍵信息,可使用“設置斷點”方法,將斷點設置在鍵盤處理的首個語句處,程序若能執(zhí)行到斷點處,說明判鍵模塊準確無誤,之后鍵盤處理部分可使用單步運行來調(diào)試。實驗四外部中斷控制實驗一、實驗目的:1、掌握外部中斷原理,學習中斷處理程序的編寫方法;2、熟悉用仿真器調(diào)試程序的方法。二、實驗要求:P3.2接AN1按鈕開關(guān),數(shù)碼管位選P2.0—P2.7任取1位。初始點亮1位數(shù)碼管顯示0;AN1每按一下,顯示值加1,若加至F則顯示回0。三、實驗設備:6、V51/L偉福仿真器一套;7、Up51a學習開發(fā)板一塊;8、微機一臺套及Keil開發(fā)軟件,USB通訊線一根;電源線兩根。四、實驗原理及電路:(見實驗二和三)五、實驗說明:51單片機的P3.2、P3.3引腳為外部中斷信號輸入端口。將獨立按鍵AN1一端連接外部中斷0引腳P3.2,另一端接地,可模擬外部脈沖的產(chǎn)生(按鍵動作過程存在抖動的特點,編程時可忽略)。AN1的按鍵動作作為INT0的中斷請求,用中斷服務程序完成計數(shù)功能。六、練習范例程序:初始點亮1位數(shù)碼管顯示0;AN1每按一下,顯示值加1,若加至10則顯示回0。#include<reg51.h>//51單片機頭文件#defineucharunsignedchar//數(shù)據(jù)類型說明#defineuintunsignedintucharcodedisplay[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//數(shù)碼管段碼0-9ucharcount=0;voidEX0_INT()interrupt0//INT0中斷函數(shù){count++;if(count==10)count=0;}voidmain(void)//主函數(shù){

P0=0xff;P2=0xfe;//端口初始化IT0=1;P0=0xff;P2=0xfe;//端口初始化IT0=1;EA=1;EX0=1;//外部中斷初始化//觸發(fā)信號類型為邊沿觸發(fā)//開中斷while(1)//無限循環(huán)體P0=display[count];//送段碼實驗前讀懂程序,畫出流程圖。七、實驗操作方法:1、檢查實驗板CPU芯片座上的仿真頭;打開仿真器開關(guān)、開啟實驗板開關(guān);2、運行桌面Keil軟件;3、在Keil環(huán)境下建立項目并輸入范例程序,編譯無誤后運行查看執(zhí)行結(jié)果;4、按實驗要求編程,并調(diào)試成功。提示:調(diào)試程序?qū)τ谥袛喑绦蚬δ苣K而言,用“單步”運行無法實現(xiàn)進入中斷程序的操作,只能用“設置斷點”方法。在中斷程序首句處設置斷點并全速運行程序(具體操作見“KEILC軟件使用說明2016”),若能執(zhí)行至斷點處,說明外部中斷初始設置正確。可觀察程序執(zhí)行到斷點處相關(guān)的寄存器如何變化。實驗五定時器實驗實驗五定時器實驗一、實驗目的:2、學習51單片機內(nèi)部定時器的使用和編程方法;3、學習掌握中斷處理程序的編寫方法;3、熟悉用仿真器調(diào)試程序的方法。二、實驗要求:以下控制要求定時時間均用系統(tǒng)定時器實現(xiàn):1、用1位LED數(shù)碼管實現(xiàn)循環(huán)顯示0~9,每隔2秒顯示數(shù)加1;2、用2位LED數(shù)碼管穩(wěn)定顯示“12”,位選信號接P2口的第0、1位;三、實驗設備:9、V51/L偉福仿真器一套;10、Up51a學習開發(fā)板一塊;11、微機一臺套及Keil開發(fā)軟件,USB通訊線一根;電源線兩根。四、實驗原理及電路:(同實驗二)五、實驗說明:1、關(guān)于內(nèi)部計數(shù)器的編程主要是定時常數(shù)的設置和有關(guān)控制寄存器的設置。內(nèi)部計數(shù)器在單片機中主要有定時器和計數(shù)器兩個功能。本實驗使用的是定時器。2、與定時器有關(guān)的控制寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設置定時器/計數(shù)器的工作方式0-3,并確定用于定時還是用于計數(shù)。TCON主要功能是為定時器在溢出時設定標志位,并控制定時器的運行或停止等。本實驗采用定時器0,選用工作方式1。3、內(nèi)部計數(shù)器用作定時器時,是對機器周期計數(shù)。每個機器周期的長度是12個振蕩器周期。定時器工作于方式1,即采用的是16位定時器。實驗系統(tǒng)的晶振是12MHZ,因此最大定時時間約65ms左右。若控制要求2秒定時,可設定定時器20ms中斷一次,然后對20ms中斷次數(shù)計數(shù)100次,就是2秒鐘。定時常數(shù)的設置可按以下方法計算:機器周期=12F12MHZ=1uS(65536-定時初值)X1uS=20000us則定時初值=45536,化為十六進制數(shù)是B1E0H,故初始值為TH0=B1H,TL0二E0H。六、練習范例程序:#include<reg51.h>typedefunsignedcharuchar;typedefunsignedintuint;ucharCount,k;ucharcodedisplay[]={

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論