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

下載本文檔

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

文檔簡介

8/8單片機實驗報告含仿真設計單片機原理及應用課程

實驗報告

專業(yè):

班級:

姓名:

學號:

實驗一、keilC51及proteus軟件的使用

一、實驗目的:

1、掌握keil和proteus軟件的基本操作

2、通過具體實例掌握keil和proteus軟件的使用。

二、實驗原理:keil使用步驟,proteus使用步驟

三、程序:

四、實驗結(jié)果分析:

五、總結(jié):學會了使用keil和proteus軟件,掌握了利用keil和proteus

軟件進行仿真的步驟。

實驗二、并行輸入/輸出接口實驗

一、實驗目的:

1、進一步熟悉keil仿真軟件、proteus仿真軟件的使用。

2、了解并熟悉單片機I/O口和LED燈的電路結(jié)構(gòu),學會構(gòu)建簡單的流水燈電路。

3、掌握C51中單片機I/O口的編程方法和使用I/O口進行輸入輸出的注意事項。

二、實驗原理:

MCS51單片機的串行口在實際使用中通常用于三種情況:利用方式0擴展并行i/0接口:利用方式1實現(xiàn)點對點的雙機通信;利用方式2或方式3實現(xiàn)多機通信。利用方式0擴展并行i/0接口MCS51單片機的串行口在方式0時,若外接一個串入并出的移位寄存器,就可以擴展并行輸出口;若外接一個并入串出的移位寄存器,就可以擴展并行輸入口。

三、程序:

#include

sbitP1_0=P1^0;

voidmain()

{

unsignedchari;

unsignedintj;

SCON=0x00;

i=0x01;

for(;;)

{

P1_0=0;

SBUF=I;

while(!TI){i}

P1_0=1;TI=0;

for(j=0;j

sbitP1_0=P1^0;

voidmain()

{

TMOD=0x02;

TH0=0x06;TL0=0x06;

TR0=1;

for(;;)

{

if(TF0){TF0=0;P1_0=!P1_0;}

}

}

四、實驗結(jié)果分析:

五、總結(jié):熟悉了keil仿真軟件、proteus的使用和C51定時程序的編寫;了解51單片機中定時、計數(shù)的概念,熟悉了51單片機內(nèi)部定時/計數(shù)器的結(jié)構(gòu)與工作原理;掌握了查詢方式處理定時/計數(shù)的工作過程,掌握了定時/計數(shù)器在C51中的設置與程序的書寫格式以及使用方法。

實驗四、定時器/計數(shù)器實驗(2)—中斷方式產(chǎn)生500us的方波

一、實驗目的:

1、熟悉keil仿真軟件、proteus的使用和C51定時程序的編寫;

2、進一步熟悉51單片機內(nèi)部定時/計數(shù)器的結(jié)構(gòu)與工作原理;

3、掌握中斷方式處理定時/計數(shù)的工作過程。

二、實驗原理

從P1.0輸出周期為500us的方波,只需P1.0每250us取反后一次即可。當系統(tǒng)時鐘為12MHz時,定時/計數(shù)器TO工作于方式2時,最大的定時時間為256us,滿足250us的定時要求,方式控制字應沒定為00000010B(02H)。系統(tǒng)時鐘為12Mhz,定時250us,計數(shù)值N為250,初值X=256-250=6,則THO=TLO=06H。

:

三、程序:

#include

sbitP1_0=P1^0;

voidmain()

{

TMOD=0x02;

TH0=0x06;TL0=0x06;

EA=1;ET0=1;

TR0=1;

while(1);

}

voidtime0_int(void)interrupt1

{

P1_0=!P1_0;

}

四、實驗結(jié)果分析:

五、總結(jié):熟悉了keil仿真軟件、proteus的使用和C51定時程序的編寫;進一步熟悉了51單片機內(nèi)部定時/計數(shù)器的結(jié)構(gòu)與工作原理;掌握了中斷方式處理定時/計數(shù)的工作過程。

實驗五:串行接口實驗(1)—工作方式0擴展并行IO口

一、實驗目的:

1,掌握串行口工作方式0的程序設計;

2、熟悉51單片機串口的結(jié)構(gòu)和工作原理

3、掌握串口工作方式0的工作特點。

二、實驗原理:

MCS51單片機的串行口在實際使用中通常用于三種情況:利用方式0擴展并行i/0接口:利用方式1實現(xiàn)點對點的雙機通信;利用方式2或方式3實現(xiàn)多機通信。利用方式0擴展并行i/0接口MCS51單片機的串行口在方式0時,若外接一個串入并出的移位寄存器,就可以擴展并行輸出口;若外接一個并入串出的移位寄存器,就可以擴展并行輸入口。

三、程序:

#include

sbitP1_0=P1^0;

voidmain()

{

unsignedchari;

unsignedintj;

SCON=0x00;

i=0x01;

for(;;)

{

P1_0=0;

SBUF=I;

while(!TI){i}

P1_0=1;TI=0;

for(j=0;j

voidmain()

{

unsignedchari;

SP=0x60;

SCON=0X50;

TMOD=0x20;

TL1=0xe6;

TH1=0xe6;

TR1=1;

EA=1;

ES=1;

while(1)

{

P1=0XFF;

i=P1;

SBUF=i;

while(TI==0);

TI=0;

}

}

voidfunins(void)interrupt4

{

EA=0;

RI=0;

P2=SBUF;

EA=1;

}

四、實驗結(jié)果分析:

五、總結(jié):掌握了串行口工作方式1的程序設計;進一步掌握了51單片機串口的結(jié)構(gòu)和工作原理,掌握了串口工作方式1的工作特點。

實驗七:中斷系統(tǒng)實驗(1)—交通燈模擬控制

一、實驗目的

1、掌握單片機外部中斷的原理及過程。

2、掌握單片機外部中斷程序的設計方法。

3、掌握單片機外部中斷時中斷方式的選擇方法。

二、實驗原理:

交通燈正常運行時,可分為4個狀態(tài):狀態(tài)1,東西方向綠燈,南北方向紅燈20秒,狀態(tài)編碼“00100001”;狀態(tài)2,東西方向黃燈,南北方向紅燈3秒,狀態(tài)編碼“01000001”;狀態(tài)3,南北方向綠燈,東西方向紅燈20秒,狀態(tài)編碼“00010010”狀態(tài)4,南北方向黃燈,東西方向紅燈3秒,狀態(tài)編碼“0001m00”。東西發(fā)生異常時,

東西通行,南北禁止,東西方向綠燈閃,南北方向紅燈閃60秒;南北發(fā)生異常時,南北通行,東西禁止,南北方向綠燈閃,東西方向紅燈閃60秒。主程序中實現(xiàn)交通燈正常運行過程,兩種異常用外中斷0和外中斷1管理,外接開關(guān)模擬異常發(fā)生,在中斷服務程序中實現(xiàn)異常處理,在主程序中開放外中斷0和外中斷1,設置為邊沿觸發(fā)方式。時間單位采用500ms信號,由定時計數(shù)器0定時50ms,循環(huán)10次產(chǎn)生,定時計數(shù)器0采用查詢方式,主程序中設定定時計數(shù)器0的工作方式:方式1。

三、程序:

#include

voiddelay500ms(unsignedchark);

voidmain(void)

{

SP=0x60;

TMOD=0x01;

IE=0x85;

TCON=0x05;

while(1)

{

P1=0x21;

delay500ms(40);

P1=0x41;

delay500ms(6);

P1=0x12;

delay500ms(40);

P1=0x14;

delay500ms(6);

}

}

voidint_0(void)interrupt0

{

unsignedchari1,i2;

i1=P1;

for(i2=0;i2

#include

#defineucharunsignedcharvoidmain(void)

{

uchari;

while(1)

{

i=XBYTE[0x7fff];

XBYTE[0x7fff]=i;

}

}

四、實驗結(jié)果分析:

五、總結(jié):掌握了單片機系統(tǒng)中擴展簡單I/O口的基本方法。掌握了擴展I/O口的編程方法。

實驗十:可編程I/O口的擴展實驗

一、實驗目的:

1、熟悉8255A的結(jié)構(gòu)和功能;

2、熟悉8255A的幾種工作方式;

3、掌握8255A與單片機的接口;

4、掌握8255A的編程方法。

二、實驗原理:

8255A的數(shù)據(jù)線與51單片機的數(shù)據(jù)總線相連,讀/寫信號線對應相連,地址線AO、Al與51單片機的地址總線的AO和Al相連,片選信號線CS與51單片機的P2.7相連。8255A的A口、B口、C口和控制口的地址分別是7F00H、7F01H、7F02H和7F03H(高8位地址線未用的取1,低8位地址線未用的取0),8255A擴展的并行接口B口接8個開關(guān)(DIPSWC_8)輸入,A口接8個發(fā)光二極管(LED-BARGRAPH-RED)輸出。

三、程序:

#include

#include

#defineucharunsignedchar

voidmain(void)

{

uchari;

XBYTE[0x7f03]=0x82;

while(1)

{

i=XBYTE[0x7f01];

XBYTE[0x7f00]=i;

}

}

四、實驗結(jié)果分析:

五、總結(jié):熟悉了8255A的結(jié)構(gòu)和功能;熟悉了8255A的幾種工作方式;掌握了8255A與單片機的接口;掌握了8255A的編程方法。

實驗十一:LED顯示器與51單片機的接口實驗

一、實驗目的:

1、掌握LED顯示器的基本結(jié)構(gòu)與原理

2、掌握LED數(shù)碼管的靜態(tài)顯示和動態(tài)顯示

3、掌握LED顯示器與單片機的接口的編程特點

二、實驗原理:

8255A擴展并行1/0接口接8位共陰極數(shù)碼管(7SEG-MPX8-CC-BLUE),采用動態(tài)顯示方式,8位數(shù)碼管的段選線(A~H)與8255A的A口相連,8位數(shù)碼管的公共端(1~8)與8255A的B囗相連。也即8255A的B口輸出位選碼選擇要顯示的數(shù)碼管,8255A的A口輸出字段碼使數(shù)碼管顯示相應的字符,8255A的A口和B口都工作于方式0輸出。A口、B口、c口和控制口的地址分別為7F00H、7F01H、7F02H和7F03H(高8位地址線未用的取1,低8位地址線未用的取0)。

三、程序:

#include

#include

#defineucharunsignedchar

#defineucharunsignedint

voiddelay(uint);

voiddisplay(void);

uchardisbuffer[8]={0,1,2,3,4,5,6,7};

voidmain(void)

{

XBYTE[0x7f03]=0x80;

while(1)

{

display();

}

}

溫馨提示

  • 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

提交評論