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

下載本文檔

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

文檔簡介

單片機技術基礎實驗報告學學院:自動化學院專業(yè):電氣工程及其自動化班級:學號:姓名:任課教師:實驗1:Proteus軟件快速入門一、實驗目的與要求:1、認識Proteus軟件;2、掌握用Proteus軟件建立文件;3、掌握如何使用Proteus軟件元件庫;二、實驗設備、儀器、工具:安裝有Proteus和Keil軟件的微機。三、實驗步驟:在Proteus軟件中畫原理圖四、實驗結果:實驗2:KeiluVision軟件快速入門一、實驗目的與要求:1、認識KeiluVision軟件;2、掌握用KeiluVision軟件建立工程;3、掌握用KeiluVision軟件進行仿真調試;二、實驗設備、儀器、工具:安裝有proteus和keil軟件的電腦。三、實驗步驟:1、在proteus軟件中畫原理圖;2、keil軟件下編寫源程序并編譯形成可執(zhí)行文件.hex;3、載源程序;4、仿真。四、實驗結果:六、源程序代碼:ORG0000HAJMPMAIN1ORG0003HMAIN1:MOVA,#0FEHMAIN:MOVP0,ARLAAJMPMAINEND實驗3:單片機最小應用系統(tǒng)一、實驗目的與要求:1.掌握單片機最小系統(tǒng)的設計方法;2.掌握如何使用Proteus軟件元件庫;二、實驗設備、儀器、工具:安裝有Proteus和Keil軟件的微機。三、實驗內容:1.設計AT89C51(或STC89C51)單片機最小系統(tǒng);2.實現編碼4×4鍵盤及8位LED顯示驅動;四、實驗步驟:1.在Proteus軟件中畫原理圖;2.Keil軟件下編寫源程序并編譯形成可執(zhí)行文件.hex;3.載源程序;4.仿真。五、實驗結果:六、源程序代碼: #include<reg51.h>#defineucharunsignedchar#defineuintunsignedintvoiddelayms(uintx){ uchari; while(x--) { for(i=0;i<120;i++); }} voidmain(void){ while(1) { P0=0xfd; delayms(100); }}實驗4:單片機最小應用系統(tǒng)軟件編程一、實驗目的與要求:1.掌握單片機指令及其編程方法;2.掌握KeilC使用方法;二、實驗設備儀器工具:安裝有Proteus和Keil軟件的微機。三、實驗內容:1.編程實現4x鍵盤掃描編碼;2.編程實現8位LED顯示子程序;四、實驗步驟:1.Keil軟件下編寫源程序并編譯形成可執(zhí)行文件.hex;2.載源程序;3.仿真。五、實驗結果:六、源程序代碼:#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint P0=0x7f;for(i=0;i<8;i++) { P0=0x7f;for(i=0;i<8;i++) { delayms(100); P0=_cror_(P0,1); }P0=0x7f;delayms(100);P0=0xfe;delayms(100);P0=0xfe;delayms(100);P0=0x00; delayms(100);P0=0xff;}}{ uchari; while(x--) { for(i=0;i<120;i++); }}voidmain(void){ uinti; while(1) { P0=0xfe; for(i=0;i<8;i++) { delayms(100); P0=_crol_(P0,1); }實驗5:單片機LED數碼管顯示實驗一、實驗目的:1.熟悉keil仿真軟件;2.proteus仿真軟件、軟件仿真板的使用;3.了解并熟悉一位數碼管與多位LED數碼管的電路結構、與單片機的連接方法及其應用原理。4.學習proteus構建LED數碼管顯示電路的方法,5.掌握C51中單片機控制LED數碼管動態(tài)顯示的原理與編程方法。二、實驗設備、儀器、工具:安裝有Proteus和Keil軟件的微機。三、實驗步驟:1、在Proteus軟件中畫原理圖;2、Keil軟件下編寫源程序并編譯形成可執(zhí)行文件.hex;3、載源程序;4、仿真四、實驗結果:單數碼管:多數碼管:六、源程序代碼:多數碼管:單數碼管:多數碼管:#include<reg51.h>#include<#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintuinttable[]={0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F};voiddelayms(uintx){uchari; while(x--) { for(i=0;i<120;i++); }}voidmain(void){ uinti,wei=0x01; P0=0x00;while(1) { for(i=0;i<8;i++) { P2=0xFF; P0=~table[i]; P2=wei; wei=_crol_(wei,1); delayms(500);}}}#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x73,0x3E,0x31,0x6E,0x76,0x38,0xFF,0x00};voiddelayms(uintx){uchari; while(x--) { for(i=0;i<120;i++); }}voidmain(void){ uchari; P0=0x00; while(1) { i=0; for(;i<=21;i++) { P0=table[i]; delayms(300); } }}實驗六:單片機鍵盤接口技術實驗一、實驗目的:1.掌握單片機與鍵盤接口技術2.掌握用Proteus設計仿真基于單片機與鍵盤接口的設計方法;3.掌握獨立鍵盤、矩陣鍵盤動態(tài)掃描及按鍵的軟件消抖編程二、實驗設備、儀器、工具:安裝有Proteus和Keil軟件的微機。三、實驗要求:1.設計基于Proteus單片機接口與鍵盤輸入電路原理圖(4個獨立鍵盤4X4矩陣鍵盤);2.根據電路圖對4X4矩陣鍵盤動態(tài)掃描及軟件消抖進行編程,并將按鍵代碼通過LED數碼管顯示。四、實驗結果:源程序代碼:顯示一位:#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintuinttable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,}voidmain(void){}voidmain(void){ uinti; P0=0x80; A9=1; A9=0; P0=0x3F; A8=1; A8=0;while(1) { for(i=0;i<10;i++) { P0=table[i]; A8=1; A8=0; delayms(400); } }}sbitA8=P2^0;sbitA9=P2^1;voiddelayms(uintx){uchari; while(x--) { for(i=0;i<120;i++); }顯示兩位:#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintvoiddp(ucharwei,ucharduan);uinttable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};uintwei_1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};sbitA8=P2^0;sbitA9=P2^1;while(1) { for(while(1) { for(i=0;i<8;i++) { dp(i,i); } }}voiddp(ucharwei,ucharduan){ P0=table[duan]; A8=1; A8=0; delayms(200); P0=wei_1[wei]; A9=1; A9=0; delayms(200); P0=0x00; A8=1; A8=0; delayms(200); P0=0x00; A9=1; A9=0; delayms(200);}{uchari; while(x--) { for(i=0;i<120;i++); }}voidmain(void){ uinti; P0=0x80; A9=1; A9=0; P0=0x3F; A8=1; A8=0;實驗7:單片機定時器的使用與編程一、實驗目的:掌握定時器T0、T1的方式選擇和編程方法,了解中斷服務程設計方法,學會實時程序的調試技巧。二、實驗原理:MCS-51單片機內設置了兩個可編程的16位定時器T0和T1,通過編程,可以設定為定時器和外部計數方式。T1還可以作為其串口的波特率發(fā)生器。定時器T0由特殊功能寄存器TL0、TH0構成,定時器T1由TH1和TL1構成,特殊功能寄存器TMOD控制定時器的工作方式,TCON控制其運行。定時器的中斷由中斷允許寄存器IE,中斷優(yōu)先權寄存器IP中的相應位進行控制。定時器T0的中斷入口地址為000BH,T1的中斷入口地址為001BH。定時器的編程包括:1)置工作方式。2)置計數初值。3)中斷設置。4)啟動定時器。定時器/計數器由四種工作方式,所用的計數位數不同,因此,定時計數常數也就不同。在編寫中斷服務程序時,應該清楚中斷響應過程:CPU執(zhí)行中斷服務程序之前,自動將程序計數器PC內容(即斷點地址)壓入堆棧保護(但不保護狀態(tài)寄存器PSW,更不保護累加器A和其它寄存器內容),然后將對應的中斷矢量裝入程序計數器PC使程序轉向該中斷矢量地址單元中以執(zhí)行中斷服務程序。定時器T0和T1對應的中斷矢量地址分別為000BH和001BH。中斷服務程序從矢量地址開始執(zhí)行,一直到返回指令“RETI”為止。RETI指令的操作一方面告訴中斷系統(tǒng)該中斷服務程序已經執(zhí)行完畢,另一方面把原來壓入堆棧保護的斷點地址從棧頂彈出,裝入到程序計數器PC,使程序返回到被到中斷的程序斷點處,以便繼續(xù)執(zhí)行。因此,在編寫中斷服務程序時注意。1.在中斷矢量地址單元放一條無條件轉移指令,使中斷服務程序可以靈活地安排在64K字節(jié)程序存儲器的任何空間。2.在中斷服務程序中應特別注意用軟件保護現場,以免中斷返回后,丟失原寄存器、累加器的信息。3.若要使執(zhí)行的當前中斷程序禁止更高優(yōu)先級中斷,可以先用軟件關閉CPU中斷,或禁止某中斷源中斷,在返回前再開放中斷。三、實驗內容:1.編寫并調試一個程序,用單片機的T0工作方式1產生1s的定時時間,作為秒計數時間,當1s產生時,秒計數加1;秒計數到60時,自動從0開始。計算初值公式定時模式1th0=(216-定時時間)/256tl0=(216-定時時間)mod256;2.編寫并調試一個程序,在第一項內容的基礎上,完成時鐘顯示。顯示格式:hh-mm-ss(時-分-秒)。四、實驗結果:實驗8:單片機外部中斷實驗一、實驗目的1.熟悉keil仿真軟件、proteu仿真軟件的使用和單片機外部中斷的使用。2.了解并熟悉51單片機中中斷的概念,中斷處理系統(tǒng)的工作原理。3.理解51單片機中斷管理系統(tǒng)處理五種中斷源,特別是對外部中斷的設置與控制方法。4.熟悉中斷處理特別是外部中斷處理的過程,5.掌握中斷處理子程序的編程和使用方法。二、實驗環(huán)境:硬件:微機、單片機實驗板軟件:KEILC51單片機仿真調試軟件,proteus系列仿真調試軟件;三、實驗內容:1.利用外部中斷INT0控制數碼管顯示0到9。2.利用外部中斷INT0控制兩個數碼管顯示00到99。四、實驗步驟:1.打開Proteus,繪制電路圖,2.根據實驗內容的要求,編寫程序、仿真、調試。五、實驗結果:源程序代碼:voidmain(void)voidmain(void){P0=0x00; while(1) { P1=0xf0; if(P1!=0xf0) key_scan(); if(pre_keyno!=keyno) { P0=table[keyno]; pre_keyno=keyno; } delayms(20);}}#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x73,0x3E,0x31,0x6E,0x76,0x38,0xFF,0x00};ucharpre_keyno=16,keyno=16;voiddelayms(uintx){ uchari; while(x--) { for(i=0;i<120;i++); }}voidkey_scan(){ uchartt; P1=0x0f; delayms(5); tt=P1^0x0f; switch(tt) { case1:keyno=0;break; case2:keyno=1;break; case4:keyno=2;break; case8:keyno=3;break; } P1=0xf0; delayms(5); tt=P1>>4^0x0f; switch(tt) { case1:keyno=keyno+0;break; case2:keyno=keyno+4;break; case4:keyno=keyno+8;break; case8:keyno=keyno+12;break; }}實驗9:單片機串口通信實驗一、實驗目的與要求:1、掌握單片機串行口工作原理;2、單片機串行口與PC機的通信工作原理及編程方法。二、實驗設備、儀器、工具:安裝有Proteus和Keil軟件的微機、單片機開發(fā)板。三、實驗內容:1.實驗板上有RS-232接口,將該接口與PC機的串口連接,可以實現單片機與PC機的串行通信,進行雙向數據傳輸。2.本實驗要求當PC機向實驗板發(fā)送的數字在實驗板上顯示,按實驗板鍵盤輸入的數字在PC機上顯示,并用串口助手工具軟件進行調試。四、實驗結果:源程序代碼:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintUintcodeDSY_CODE[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};ucharcount=0;ucharDSY_BUFFER[]={0,0,0};sbitclear_key=P3^6;voidshow_count(){ DSY_BUFFER[2]=count/100;DSY_BUFFER[1]=count%100/10; DSY_BUFFER[0]=count%10; if(DSY_BUFFER[2]==0) { DSY_BUFFER[2]=0x3f; if(DSY_BUFFER[1]==0) DSY_BUFFER[1]=0x3f;} P0=DSY_CODE[DSY_BUFFER[0]]; P1=DSY_CODE[DSY_BUFFER[1]]; P2=DSY_CODE[DSY_BUFFER[2]]; }voidmain(void){ P0=0x00; P1=0x00; P2=0x00; IE=0x81; IT0=1; while(1) { if(clear_key==0)count=0; show_count();}}voidinter0()interrupt0{ count++;}考試實驗結果:源程序代碼:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintvoiddisplay(ucharwei,ucharduan)Ucharcodeduan_1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40};ucharcodewei_1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};A9=1;A9=0;A9=1;A9=0;D_led=duan_1[ge];A8=1;A8=0;delay_ms(300); W_led=0xff;A9=1;A9=0;W_led=0;A8=1;A8=0;} voidEX_INT0()interrupt 0{ if(s1==0)A1++; if(s2==0)

溫馨提示

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

評論

0/150

提交評論