微控制器實驗報告綜合

2021-03-04 04:20:15 字數 3374 閱讀 2797

微控制器原理及應用

實驗報告

姓名方恩山

學號: 631206040110

專業: 通訊工程

實驗性質: 設計性

班級: 2012 級 1 班

指導教師: 許強

實驗專案名稱: 萬用交叉**通燈控制器實驗

實驗日期: 16周 - 18周實驗成績

實驗評定標準:

一、 實驗目的

通過**搭建和實物搭建相結合,萬用交叉**通燈控制器系統設計,並掌握c51程式設計操作。

二、 實驗器材

1)器材

1.pc機一台

2.windows 7 os

3.proteus**軟體

4.keil軟體

二)材料

微控制器at89c51(1片) 數碼管 (1 個) led發光二級管 ( 12個) 按鈕(16 個晶振11.0592mhz( 1 個) 電容大於20pf,小於50pf (2 個) 電解電容 10uf ( 1 個) 電容 1uf ( 4 個) 電阻 10k ( 1 個) 電阻 300 (8 個)

三、 實驗內容

模擬控制就是以紅、綠、黃色4 組12 個發光二極體表示交通訊號燈。每組燈有兩位數碼倒倒計時顯示。假設乙個十字路口為東西南北走向。

初始狀態0為東西紅燈,南北紅燈。然後轉狀態1,東西方向的綠燈亮,東西方向可通車,而南北方向的紅燈亮,南北方向的車禁止通行。過一段時間轉狀態2,東西綠燈滅後,黃燈亮,延時幾秒,南北仍然紅燈。

再轉狀態3,南北方向的綠燈亮,南北方向可以通車,而東西方向的紅燈亮,東西方向禁止車輛通行。過一段時間轉狀態4,南北綠燈滅後亮黃燈,延時幾秒,東西方向仍然紅燈亮。最後迴圈至狀態1。

用proteus**軟體搭建**硬體電路圖。驗證編制軟體。

四、 實驗步驟

開啟keil程式,執行選單命令「project」→「new project」建立「trafficcontroller」專案,並選擇微控制器型號為at89c51。執行選單命令「file」→「new」建立檔案,輸入源程式,儲存為「trafficcontroller.a51」。

在「project」欄的file專案管理視窗中右擊檔案組,選擇「add files to group 『source group1』」將源程式「trafficcontroller.a51」新增到專案中。

執行選單命令「project」→「options for target 『target 1』」,在彈出的對話方塊中選擇「output」選項卡,選中「greate hex file」。執行選單命令「project」→「build target」,編譯源程式。如果編譯成功,則在「output window」視窗中顯示沒有錯誤,並建立了「trafficcontroller.

hex」檔案。在proteus**平台上建立參考圖系統,並將程式上載到虛擬晶元上執行。

五、 實驗結果及分析

**結果如下圖

1.東西方向通路,南北方向禁止通行

2進行按鈕切換時,交通切換到東西禁行,南北方向通行。

3在進行道路轉換的時候,黃燈亮起,有5s的間隔。

實驗**

1.*** 0000h

ljmp main

*** 0030h

main: mov dptr,#7f00h ;8155命令口位址

mov a,#03h ;置8155pa、pb口為輸出,pc口為輸入

movx @dptr,a

mov 7ah,#00

mov 7bh,#01

mov 7ch,#02

mov 7dh,#03

mov 7eh,#04

mov 7fh,#05

ml0: nop

lcall disp

sjmp ml0

disp:mov r0,#7ah ;置顯示緩衝器指標初值

mov r3,#01h ;置掃瞄模式初值

dispb1:mov dptr,#7f02h ;8155pb口位址

mov a,#0h ;熄滅所有led

movx @dptr,a

mov dptr,#7f01h ;8155pa口位址

mov a,@r0

add a,#014h

movc a,@a+pc

movx @dptr,a

mov a,r3

mov dptr,#7f02h

movx @dptr,a

acall delay

inc r0

mov a,r3

jb acc.6,dispb2

rl a

mov r3,a

ajmp dispb1

dispb2:mov r3,#01h

retsegpt2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h ;段碼表

db 7fh,6fh,77h,7ch,39h,5eh,79h,71h

db 00h,0d0h,09ch

delay:mov r4,#0ffh

loop: djnz r4,loop

ret2.

#include

#define uchar unsigned char

#define uint unsigned int

uchar tab=;

uchar tab2=;

/*數碼管顯示***/

uchar show=;

uchar wetime1,wetime2,nstime1,nstime2,state;

uint a,b,x,y,flag,counter,skey;

uchar keydata,disdata,keyd[4];

void delay(uint num)//延時程式

void timer() interrupt 1 //定時一秒

}void dispkey掃瞄鍵盤的方法

}delay(500);

}void displaykeyvalue() //顯示鍵值函式

}}void settime()//設定交通燈時間函式

if(keydata==0x27)

a=nstime/10;

b=nstime%10;

tab[0]=show[a];

tab[1]=show[b];

nstime1=nstime;

wetime1=nstime-3;

}if(skey==3)//設定東西方向紅燈時間

if(keydata==0x27)

a=wetime/10;

b=wetime%10;

tab[2]=show[a];

tab[3]=show[b];

wetime2=wetime;

nstime2=wetime-5;}

微控制器實驗報告時鐘綜合實驗

微控制器實驗報告 南京理工大學紫金學院電光系 一 實驗目的 1 學習proteus軟體基礎使用方法 2 掌握定時 計數器與外部中斷工作原理 3 學習設計微控制器控制的多位數碼管掃瞄顯示電路 4 理解數碼管動態顯示的原理。二 實驗原理 at89c51微控制器位控制器,四位7段數碼管分別顯示分的十位 分...

微控制器實驗報告

1福建農林大學計算機與資訊學院 資訊工程類 實驗報告 2013 年 10 月 28 日 實驗專案列表 福建農林大學計算機與資訊學院資訊工程類實驗報告 系 電子資訊工程專業 電子資訊工程年級 2011級 姓名 詹緩輝學號 3116004094實驗課程 微控制器技術 實驗室號 田c513實驗時間 10....

微控制器實驗報告

一 實驗題目 試編寫一段程式,其功能為將21h單元的內容8位分別依次存放到從22h開始的8單元中。二 keil 0000h jmp start 0100h start mov 21h,8 mov a 21h 取出21中的數 mov r0,22h 初始化 mov r1,7h 迴圈次數為7 loop r...