基于51單片機(jī)控制交通燈課程設(shè)計(jì)報(bào)告_第1頁(yè)
基于51單片機(jī)控制交通燈課程設(shè)計(jì)報(bào)告_第2頁(yè)
基于51單片機(jī)控制交通燈課程設(shè)計(jì)報(bào)告_第3頁(yè)
基于51單片機(jī)控制交通燈課程設(shè)計(jì)報(bào)告_第4頁(yè)
基于51單片機(jī)控制交通燈課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——基于51單片機(jī)控制交通燈課程設(shè)計(jì)報(bào)告

基于51單片機(jī)控制交通燈課程設(shè)計(jì)報(bào)告

本設(shè)計(jì)課程使用STC89c52型號(hào)的芯片及相關(guān)元器件自己組裝單片機(jī)最小系統(tǒng),并編寫程序用于控制交通信號(hào)燈。

1.STC89c52的芯片元器件的說(shuō)明:

STC89c52內(nèi)置8位中央處理單元、256字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM、8k片內(nèi)程序存儲(chǔ)器(ROM)32個(gè)雙向輸入/輸出(I/O)口、3個(gè)16位定時(shí)/計(jì)數(shù)器和5個(gè)兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)時(shí)鐘振蕩電路。此外,STC89c52還可工作于低功耗模式,可通過(guò)兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU而RAM定時(shí)

器、串行口和中斷系統(tǒng)維

持其功能。掉電模式下,

保存RAM數(shù)據(jù),時(shí)鐘振

蕩中止,同時(shí)中止芯片內(nèi)其它功能,STC89c52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。

VCC:供電電壓。GND:接地。

P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙

向I/O口,每腳可吸收8TTL門電流。當(dāng)

P1口的管腳第一次寫1時(shí),被定義為高

阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)

器,它可以被定義為數(shù)據(jù)/地址的第八位。

在FIASH編程時(shí),P0口作為原碼輸入口,

當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此

時(shí)P0外部必需被拉高。

P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平日,將輸出電流,這是由于內(nèi)部上拉的起因。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。

P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1〞時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的起因。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特別功能寄放器的內(nèi)容。

P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。

P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的起因。P3口作為AT89C51的一些特別功能口,管腳備選功能

P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(計(jì)時(shí)器0外部輸入)P3.5T1(計(jì)時(shí)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)

RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平日間。

ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。

在FLASH編程期間,此引腳用于輸入編程脈沖。在平日,ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想阻止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MO,MOVC指令是ALE才起用。另外,該引腳被略微拉高。假使微處理器在外部執(zhí)行狀態(tài)ALE阻止,置位無(wú)效。

/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平日,則在此期間外部程序存儲(chǔ)器

(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平日,此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。

XTAL2:來(lái)自反向振蕩器的輸出。

4候黃燈沒(méi)有閃,后來(lái)經(jīng)過(guò)老師的指示和幫助我們修改了一下延時(shí)程序就成功的實(shí)現(xiàn)了延時(shí)提醒的功能。

5源程序代碼:

#includereg52.h

sbitNBgreen_a=P1^0;//南北綠燈

sbitNByellow_a=P1^1;//南北黃燈

sbitNBred_a=P1^2;//南北紅燈

sbitDXgreen_b=P1^3;//東西綠燈

sbitDXyellow_b=P1^4;//東西黃燈

sbitDXred_b=P1^5;//東西紅燈

voiddelay(unsignedinta)

{

while(--a!=0)

{

unsignedchari;

for(i=0;i125;i++);

{;}

}

}

voidmain(void)

{unsignedintk;

while(1)

{

NBgreen_a=0;NByellow_a=1;NBred_a=1;//南北綠燈亮10s

DXgreen_b=1;DXyellow_b=1;DXred_b=0;//東西紅燈亮10s

delay(10000);

NBgreen_a=1;

DXred_b=1;

for(k=0;k3;k++)

{

NByellow_a=0;

DXyellow_b=0;

delay(1000);

NByellow_a=1;//南北黃燈閃3s

DXyellow_b=1;//東西黃燈閃3s

delay(1000);

}

NBgreen_a=1;NByellow_a=1;NBred_a=0;//南北紅燈亮10s

DXgreen_b=0;DXyellow_b=1;DXred_b=1;//東西綠燈亮10s

delay(10000);

DXgreen_b=1;

NBred_a=1;

for(k=0;k3;k++)

{NByellow_a=0;

DXyellow_b=0;

delay(1000);

NByellow_a=1;//南北黃燈閃3s

DXyellow_b=1;//東西黃燈閃3s

delay(1000);

}

}

}

6.這次單片機(jī)大作業(yè)讓我們?cè)O(shè)計(jì)一個(gè)利用單片機(jī)最小系統(tǒng)控制交通燈,讓我加深了對(duì)單片機(jī)的認(rèn)識(shí),特別是內(nèi)部資源的理解與應(yīng)用。也讓我的C語(yǔ)言編程技術(shù)更加熟練,另外就是提高了發(fā)現(xiàn)問(wèn)題,分析問(wèn)題,解決問(wèn)題的能力,同時(shí)也讓我體會(huì)到了團(tuán)結(jié)協(xié)作的重要性。

7.流程圖:

8.單片機(jī)試驗(yàn)要求的是一種思維的創(chuàng)新,而不是簡(jiǎn)單的重復(fù)老師所說(shuō)的試驗(yàn)步驟。因此第一次試驗(yàn),試驗(yàn)老師向我們講解了keil編譯器的大體狀況及使用方法和技巧,并簡(jiǎn)單的向我們例如——如何在keil中編寫一段程序。編完程序之后,知道我們?nèi)绾问褂胹tc達(dá)到將編好的程序輸入到單片機(jī)中來(lái)使其運(yùn)行。

之后老師讓我們以組為單位合作編寫一段程序,并使其運(yùn)行。我們組想要編寫一個(gè)交通燈的程序。在第一次運(yùn)行keil,我們組就遇到了一個(gè)麻煩,我們?cè)诮⒁粋€(gè)新project文件那里出現(xiàn)了錯(cuò)誤。在保存這個(gè)新project文件的時(shí)候,我們單擊了Save,而不是Generate,SaveandExit.因此它彈不出我們我們所需要的源程序。之后我們通過(guò)詢問(wèn)其他人解決了這個(gè)問(wèn)題。在編程中,我們開(kāi)始做的是6燈的控制,間隔時(shí)間是1000ms。

經(jīng)過(guò)我們的不斷努力,我們終究實(shí)現(xiàn)了簡(jiǎn)單的交通控制燈的運(yùn)行,我們感到興奮極了。但是我們并沒(méi)有滿足于當(dāng)前

溫馨提示

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

評(píng)論

0/150

提交評(píng)論