|
單片機(jī)課程設(shè)計(jì)報(bào)告
專 業(yè): 電氣工程及其自動(dòng)化
班 級(jí): 電1401-2
學(xué) 號(hào): 20142536
姓 名: 劉鑫
指導(dǎo)教師: 何峰
完成日期: 2016/9/9
0.png (64.9 KB, 下載次數(shù): 93)
下載附件
2016-9-24 15:21 上傳
所有資料打包下載:
http://www.zg4o1577.cn/bbs/dpj-55650-1.html
一、課程設(shè)計(jì)的目的
1.學(xué)會(huì)用AD軟件繪制電路原理圖、線路板圖,通過畫圖鞏固已學(xué)的專業(yè) 知識(shí),學(xué)習(xí)電路設(shè)計(jì)方法,提高動(dòng)手能力,培養(yǎng)創(chuàng)新意識(shí)。
- 練習(xí)51單片機(jī)程序的編寫
- 掌握相關(guān)軟件(AD,keil,Proteus ISIS,韋福6000)的使用
二、課程設(shè)計(jì)的主要內(nèi)容
1.課程設(shè)計(jì)題目:交通燈的遠(yuǎn)程控制
2.主要內(nèi)容:本課題主要從單片機(jī)的應(yīng)用上來實(shí)現(xiàn)十字路口交通燈智能化的管理,用以控制過往車輛的正常運(yùn)作。設(shè)計(jì)采用AT89C51單片機(jī)的最小系統(tǒng),通過燒錄程序?qū)崿F(xiàn)。設(shè)計(jì)方法有查閱法(通過手機(jī)和網(wǎng)絡(luò)知識(shí)進(jìn)行概述)、實(shí)驗(yàn)法(在實(shí)驗(yàn)室里做出單片機(jī)口的交通燈控制系統(tǒng))、對(duì)比法(單片機(jī)口的交通燈控制系統(tǒng)技術(shù)與其他技術(shù)進(jìn)行比較)。采用MCS-51系列單片機(jī)AT89C51為中心器件來設(shè)計(jì)交通燈控制電路,實(shí)現(xiàn)了的功能包括:(注S2,S3,S4為開關(guān),具體接法見原理圖)
(1)定時(shí)器控制(在程序中加定時(shí)器中斷)
(2)開關(guān)S2為開始開關(guān),交警按下開關(guān)S2交通燈開始工作
(3)開關(guān)S3為緊急停車開關(guān),當(dāng)十字路口發(fā)生交通事故時(shí),交警按下S3,東西南北四個(gè)方向全變?yōu)榧t燈,車全部停下,待交通事故處理完畢按開始開關(guān)恢復(fù)通信
(4)開關(guān)S4控制南北方向通行,東西方向停止通行
(5)開關(guān)S5控制東西方向通行,南北方向停止通行
三、設(shè)計(jì)方案
1.設(shè)計(jì)思想 基于對(duì)交通燈功能的認(rèn)識(shí)和對(duì)51單片機(jī)的掌握,對(duì)交通燈實(shí)現(xiàn)手動(dòng)控制可通過設(shè)置外部中斷的方式做到,交通燈紅黃綠燈交替閃爍可設(shè)置延遲函數(shù)和定時(shí)器中斷。以上是對(duì)系統(tǒng)軟件的描述,至于硬件部分較簡(jiǎn)單,基于51單片機(jī)的最小系統(tǒng),時(shí)鐘電路,復(fù)位電路,AT89C51單片機(jī),加上東南西北四個(gè)方向各3盞燈。每個(gè)方向三盞燈依次為紅黃綠。這12盞燈與單片機(jī)P1口相應(yīng)引腳相連可通過程序點(diǎn)亮。
2.設(shè)計(jì)說明
交通燈是城市交通有序、安全、快速運(yùn)行的重要保障,而保障交通燈信號(hào)燈正常工作就成了保障交通有序、安全、快速運(yùn)行的關(guān)鍵。 交通燈遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)可以在專業(yè)技能方面得到一個(gè)很大的提高。同時(shí)在制板,畫板,排布等方面可以得到全面的思維鍛煉并熟練技巧。因此,研究交通燈有著十分重要的意義。基于所學(xué)知識(shí)完全可以實(shí)現(xiàn)交通燈的遠(yuǎn)程控制,想法切實(shí)可行。同時(shí)本次課設(shè)做的交通燈功能較完善,除拐彎燈,倒計(jì)時(shí)外與平時(shí)用的交通燈沒什么差別。
3.方案選擇
能實(shí)現(xiàn)此電路的方法很多,我們根據(jù)實(shí)際將范圍定在以下幾個(gè)比較切合我們的方案中。
第一種方案:采用數(shù)字電子技術(shù)實(shí)現(xiàn)。用基本的555芯片(利用單穩(wěn)態(tài)實(shí)現(xiàn)定時(shí)),計(jì)數(shù)芯片(如74LS163,74LS160等)完成計(jì)時(shí)功能,控制電路芯片,譯碼芯片(如74LS138)等基本芯片,結(jié)合電阻,電容等基本元件,通過邏輯電路實(shí)現(xiàn)交通燈的功能。
第二種方案:使用單片可編程來實(shí)現(xiàn)交通燈的功能。利用單片機(jī)的外圍擴(kuò)展,顯示電路構(gòu)成基本硬件。然后編程實(shí)現(xiàn)對(duì)定時(shí),控制,顯示電路的控制,然后調(diào)試,完成設(shè)計(jì)。
結(jié)合實(shí)際情況,根據(jù)畢業(yè)設(shè)計(jì)任務(wù)書的要求,經(jīng)過討論和論證,最終一致選
用第二種方案的設(shè)計(jì)思路對(duì)交通燈控制系統(tǒng)進(jìn)行設(shè)計(jì)。
整個(gè)系統(tǒng)的構(gòu)成以AT89C51單片機(jī)為核心,由I/O口擴(kuò)展,LED燈,緊急情況中斷電路還有復(fù)位電路等組成。
單片機(jī)作為整個(gè)硬件系統(tǒng)的核心,它既是協(xié)調(diào)整機(jī)工作的控制器,又是數(shù)據(jù)處理器。它由單片機(jī)、時(shí)鐘電路、復(fù)位電路等組成。
行車方向指示采用LED發(fā)光二極管,可有紅、綠兩種顏色指示放行與禁止,黃燈作為紅綠轉(zhuǎn)換的提示,形象直觀。
行人通行指示也同樣采用LED發(fā)光二極管,用紅、綠兩種顏色指示放行與禁止,黃燈作為紅綠轉(zhuǎn)換的提示,形象直觀,簡(jiǎn)潔明了,更方便控制。
按鍵控制臺(tái),可供警察在室內(nèi)實(shí)時(shí)監(jiān)視交通狀況。通過按鍵可設(shè)置緊急情況發(fā)生時(shí)的交通燈狀態(tài)控制。本次設(shè)計(jì)用了三個(gè)中斷開關(guān),(1)開關(guān)S3為緊急停車開關(guān),當(dāng)十字路口發(fā)生交通事故時(shí),交警按下S3,東西南北四個(gè)方向全變?yōu)榧t燈,車全部停下,待交通事故處理完畢按開始開關(guān)恢復(fù)通信(2)開關(guān)S4控制南北方向通行,東西方向停止通行(3)開關(guān)S5控制東西方向通行,南北方向停止通行;另外還設(shè)計(jì)了一個(gè)開關(guān)用于打開交通燈或者恢復(fù)交通燈的正常工作。
系統(tǒng)所需硬件清單表
元件名稱
| 數(shù)量
| 備注
| 單片機(jī)
| 1
| AT89C51
| 晶振
| 1
| 12Mhz
| 電容
| 3
| 150pf 10uf
| 電解電容
| 1
| 10uf
| 電阻
| 14
| 220歐 10k歐
| 復(fù)位開關(guān)
| 5
|
| 發(fā)光二極管
| 紅燈 4
黃燈 4
綠燈 4
|
|
采用12MHZ的晶振構(gòu)成時(shí)鐘電路為單片機(jī)提供時(shí)鐘信號(hào),在單片機(jī)系統(tǒng)里晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行的速度越快,單片機(jī)的指令都是建立在時(shí)鐘頻率上。
一個(gè)系統(tǒng)共用一個(gè)晶振,便于同步,本系統(tǒng)晶振如下所示。
1.001.jpg (14.2 KB, 下載次數(shù): 94)
下載附件
2016-9-24 15:18 上傳
2.復(fù)位電路設(shè)計(jì)
復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。
通常在復(fù)位引腳RST上鏈接一個(gè)電容到VCC再接一個(gè)電阻到GND,由此形成一個(gè)RC充放電回路保證單片機(jī)上電時(shí)RST腳上有足夠的的時(shí)間對(duì)高電平進(jìn)行復(fù)位,隨后回歸到低電平進(jìn)入正常工作狀態(tài),電阻電容取典型值10k和10uf。按鍵復(fù)位就是當(dāng)開關(guān)按下后電容放電,RST被拉到高電平。
本系統(tǒng)復(fù)位電路如下圖
1.002.jpg (14.01 KB, 下載次數(shù): 86)
下載附件
2016-9-24 15:18 上傳
3.LED燈模擬十字路口交通燈電路圖設(shè)計(jì)
LED電路如下。
1.003.jpg (21.48 KB, 下載次數(shù): 97)
下載附件
2016-9-24 15:18 上傳
4.系統(tǒng)原理圖
1.004.jpg (27.27 KB, 下載次數(shù): 106)
下載附件
2016-9-24 15:18 上傳
系統(tǒng)PCB圖
1.005.jpg (27.22 KB, 下載次數(shù): 84)
下載附件
2016-9-24 15:18 上傳
工作原理:
(1)開關(guān)S2為開始開關(guān),交警按下開關(guān)S2交通燈開始工作
(2)按下S2后交通燈開始工作。由89C51單片機(jī)的P0口顯示紅、綠、黃燈的亮滅情況;綠、黃、紅時(shí)間分別為20秒、5秒、20秒循環(huán)。 南北紅,東西綠,紅燈20秒后然后滅。 南北黃,東西黃,黃燈閃動(dòng)5秒。 南北綠,東西紅,綠燈20秒后,重新開始循環(huán)。
(3)開關(guān)S3為緊急停車開關(guān),當(dāng)十字路口發(fā)生交通事故時(shí),交警按下S3,東西南北四個(gè)方向全變?yōu)榧t燈,車全部停下,待交通事故處理完畢按開始開關(guān)恢復(fù)通信
(4)開關(guān)S4控制南北方向通行,東西方向停止通行,即按下S4后南北方向均為綠燈,東西方向均為紅燈,通過S2恢復(fù)
(5)開關(guān)S5控制東西方向通行,南北方向停止通行 即按下S5后東西方向均為綠燈,南北方向均為紅燈,通過S2恢復(fù)
五、軟件系統(tǒng)設(shè)計(jì)
單片機(jī)的應(yīng)用由硬件軟件組成,我們需要編寫交通燈點(diǎn)亮的程序,來實(shí)現(xiàn)發(fā)光二極管按照要求亮滅,為了實(shí)現(xiàn)想要的功能,在程序編寫過程中我們加入了一個(gè)定時(shí)器中斷,四個(gè)開關(guān)按鍵實(shí)現(xiàn)手動(dòng)控制。
1.軟件流程圖
#include
#define uint unsigned int
#define uchar unsigned char
sbit RED_A = P0^0;
sbit YELLOW_A = P0^1;
sbit GREEN_A = P0^2;
sbit RED_B = P0^3;
sbit YELLOW_B = P0^4;
sbit GREEN_B = P0^5;
sbit KEY=P3^2;
sbit nbkey=P1^0;
sbit dxkey=P1^1;
uchar Time_Count = 0,Flash_Count = 0,Operation_Type = 1;
void main()
{
TMOD = 0x01;
IE = 0x82;
EA =1;
EX1=1;
IT1=1;
TR0=0;
EX0 = 1;
PX0=1;
TCON = 0x01;
nbkey=1;
dxkey=1;
while(1)
{ if(nbkey==0) //nbkey表示控制只南北方
向通行的按鍵,即按鍵S4
{ TR0=0;
GREEN_A=1;
YELLOW_A=1;
YELLOW_B=1;
GREEN_B=0;
RED_A=0;
RED_B=1;
}
if(dxkey==0) //nbkey表示控制只東西方
向通行的按鍵,即按鍵S5
{ TR0=0;
GREEN_A=0;
YELLOW_A=1;
YELLOW_B=1;
GREEN_B=1;
RED_A=1;
RED_B=0;
}
}
}
void External_Interrupt_0() interrupt 0 //外部中斷0,對(duì)應(yīng)開始按
鈕S2,交通燈開始工作
{
TR0=1;
}
void External_Interrupt_1() interrupt 2 //外部中斷1,對(duì)應(yīng)緊急按
鈕S3,全亮紅燈
{ TR0=0;
P0=0xf6;
}
void T0_INT() interrupt 1 //定時(shí)器控制LED燈按要求
計(jì)時(shí)循環(huán)點(diǎn)亮
{
TH0 = -20000/256;
TL0 = -20000%256;
switch(Operation_Type)
{
case 1:
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
if(++Time_Count != 100) return;
Time_Count=0;
Operation_Type = 2;
break;
case 2:
if(++Time_Count !=20) return;
Time_Count=0;
YELLOW_A=!YELLOW_A;
GREEN_A=0;
if(++Flash_Count != 10) return;
Flash_Count=0;
Operation_Type = 3;
break;
case 3:
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
if(++Time_Count != 100) return;
Time_Count=0;
Operation_Type = 4;
break;
case 4:
if(++Time_Count != 20) return;
Time_Count=0;
YELLOW_B=!YELLOW_B;
GREEN_B=0;
if(++Flash_Count !=10)
return;
Flash_Count=0;
Operation_Type = 1;
break;
}
}
附 仿真圖
1.S2未按下之前的狀態(tài),交通燈未開始工作
1.076.jpg (23.12 KB, 下載次數(shù): 105)
下載附件
2016-9-24 15:18 上傳
1.077.jpg (22.37 KB, 下載次數(shù): 80)
下載附件
2016-9-24 15:18 上傳
3.S3按下,全為紅燈
1.078.jpg (22.24 KB, 下載次數(shù): 76)
下載附件
2016-9-24 15:18 上傳
4.S4按下,南北方向通行
1.079.jpg (20.77 KB, 下載次數(shù): 93)
下載附件
2016-9-24 15:18 上傳
5.S5按下,東西方向通行
1.080.jpg (21.24 KB, 下載次數(shù): 74)
下載附件
2016-9-24 15:18 上傳
總結(jié)及心得體會(huì)
本次課設(shè)很有收獲,自己的獨(dú)立思考能力,動(dòng)手能力和發(fā)現(xiàn)問題,解決問題的能力都有所提高。
在完成課設(shè)的過程中我們熟悉了完成一個(gè)作品需要的步驟。選定題目之后,我們進(jìn)行了構(gòu)思,對(duì)相關(guān)電路進(jìn)行了設(shè)計(jì),制作了一個(gè)操作流程,完成了自己的初步設(shè)計(jì)之后我們上網(wǎng)查閱了相關(guān)的模塊,并對(duì)每個(gè)模塊進(jìn)行了分析,取長(zhǎng)補(bǔ)短,將處理的比較好的部分加以升華用于我們的課設(shè)。通過分析和比較,加上自己的設(shè)計(jì),我們最終明確了自己的設(shè)計(jì)思路,以及每一部分需要改進(jìn)的地方。然后,我們著手開始課設(shè)的制作,硬件方面我們按所需基于AT89C51單片機(jī)的最小系統(tǒng)設(shè)計(jì)了交通燈電路,并用AD軟件進(jìn)行了原理圖和PCB板的設(shè)計(jì),確認(rèn)硬件電路無誤后我們進(jìn)行了軟件部分的設(shè)計(jì),通過4個(gè)開關(guān)實(shí)現(xiàn)交通燈的手動(dòng)控制,為此我們?cè)诔绦蚶锛尤肓送獠恐袛唷T诔绦虻木帉戇^程中我們用了韋福6000和keil編譯軟件對(duì)程序進(jìn)行編譯,編譯無誤之后我們用Proteus ISIS進(jìn)行了仿真,看是否符合我們需要的現(xiàn)象。如果與要求不符,返回編譯軟件繼續(xù)進(jìn)行程序的編譯和調(diào)試。在程序編寫和調(diào)試的過程中,我們進(jìn)一步鍛煉了自己編寫程序的能力,更好的運(yùn)用C51語言控制單片機(jī)實(shí)現(xiàn)一定的功能。在調(diào)試過程中我們也遇到了許多問題,程序改了又改,由于功能較多,得協(xié)調(diào)各個(gè)中斷。在編寫調(diào)試過程中由于編寫不正確,往往實(shí)現(xiàn)這個(gè)功能,那個(gè)功能沒了,不過還好,最后這些問題都解決了。最后,通過努力,我們編寫的程序?qū)崿F(xiàn)了要求的功能,仿真也符合要求,AD和PCB 制作也弄好之后,我們開始進(jìn)行報(bào)告的撰寫,報(bào)告的撰寫也挺重要的,因?yàn)樗菍?duì)所做成果的一個(gè)總結(jié)。
通過這次課設(shè)我不僅熟悉了做一件產(chǎn)品的具體流程,還進(jìn)一步鞏固了課上所學(xué)的理論知識(shí),并將理論轉(zhuǎn)化為實(shí)踐,即將知識(shí)用活,致力于實(shí)際應(yīng)用。硬件制作中,我進(jìn)一步熟悉了常用元件的用途,接法,相關(guān)參數(shù)的意思。在軟件,即程序的編寫調(diào)試過程中,進(jìn)一步掌握了用C51語言實(shí)現(xiàn)單片機(jī)對(duì)外部電路的控制。同時(shí),進(jìn)行程序編寫了進(jìn)一步熟練掌握了程序編譯軟件韋福6000和keil的使用。在進(jìn)行硬件電路設(shè)計(jì)過程中學(xué)會(huì)用AD進(jìn)行硬件電路的設(shè)計(jì)。在仿真過程中,學(xué)會(huì)用Proteus ISIS軟件進(jìn)行仿真。這些軟件對(duì)于以后的學(xué)習(xí)都會(huì)很有幫助,熟練掌握他們是我們應(yīng)該做到的。
|
|