第一篇:交通燈單片機(jī)課程設(shè)計(jì)
《單片機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告》
課題:以交通燈為主的多功能任務(wù)設(shè)計(jì)
班級(jí) 學(xué)號(hào) 學(xué)生姓名
指導(dǎo)教師
淮陰工學(xué)院 電子與電氣工程學(xué)院
2015-6 1
目錄
一、課程設(shè)計(jì)目的......................................................................................................3
二、設(shè)計(jì)要求..............................................................................................................3 1. 總體要求........................................................................................................3 2. 具體要求........................................................................................................3 3. 系統(tǒng)硬件總框圖............................................................................................4 1)AT89C52單片機(jī).......................................................................................5 3)數(shù)碼管顯示電路........................................................................................6 4)LED燈顯示...............................................................................................7 5)鍵盤(pán)掃描模塊............................................................................................7 6)蜂鳴器電路................................................................................................8
三、硬件電路的設(shè)計(jì)及描述......................................................................................8 1. 硬件總框圖及原理圖....................................................................................8 2. 主程序流程圖..............................................................................................10 3. 各模塊流程圖..............................................................................................11 1)時(shí)間顯示程序流程圖..............................................................................12 2)流水燈程序流程圖..................................................................................12 3)利用蜂鳴器的音樂(lè)流程圖......................................................................13 4)交通燈控制..............................................................................................13
四、源程序代碼........................................................................................................14
六、調(diào)試情況
六、設(shè)計(jì)心得............................................................................................................20
七、參考文獻(xiàn)............................................................................................................20
一、設(shè)計(jì)目的
《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)是一項(xiàng)重要的實(shí)踐性教育環(huán)節(jié),是學(xué)生在校期間必須接受的一項(xiàng)工程訓(xùn)練。在課程設(shè)計(jì)過(guò)程中,在教師指導(dǎo)下,應(yīng)用工程的方法,通過(guò)一個(gè)簡(jiǎn)單課題的設(shè)計(jì)練習(xí),可使學(xué)生初步體驗(yàn)單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程、設(shè)計(jì)要求、完成的工作內(nèi)容和具體的設(shè)計(jì)方法,了解必須提交的各項(xiàng)工程文件,也達(dá)到鞏固、充實(shí)和綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的目的。
通過(guò)課程設(shè)計(jì),應(yīng)該能加強(qiáng)學(xué)生如下能力的培養(yǎng):(1)獨(dú)立工作能力和創(chuàng)造力;
(2)綜合運(yùn)用專(zhuān)業(yè)及基礎(chǔ)知識(shí),解決實(shí)際工程技術(shù)問(wèn)題的能力;(3)查閱圖書(shū)資料、產(chǎn)品手冊(cè)和各種工具書(shū)的能力;(4)工程繪圖的能力;
(5)編寫(xiě)技術(shù)報(bào)告和編寫(xiě)技術(shù)資料的能力。
二、設(shè)計(jì)要求
1.總體要求
(1)獨(dú)立完成設(shè)計(jì)任務(wù)(2)繪制系統(tǒng)硬件總框圖(3)繪制系統(tǒng)原理電路圖
(4)制定編寫(xiě)設(shè)計(jì)方案,編制軟件框圖,完成詳細(xì)完整的程序清單和注釋?zhuān)?)制定編寫(xiě)調(diào)試方案,編寫(xiě)用戶(hù)操作使用說(shuō)明書(shū)
(6)寫(xiě)出設(shè)計(jì)工作小結(jié)。對(duì)在完成以上文件過(guò)程所進(jìn)行的有關(guān)步驟如設(shè)計(jì)思想、指標(biāo)論證、方案確定、參數(shù)計(jì)算、元器件選擇、原理分析等作出說(shuō)明,并對(duì)所完成的設(shè)計(jì)作出評(píng)價(jià),對(duì)自己整個(gè)設(shè)計(jì)工作中經(jīng)驗(yàn)教訓(xùn),總結(jié)收獲和今后研究方向。
2.具體要求
本次工程實(shí)踐的校內(nèi)部分主要以單片機(jī)為基礎(chǔ),進(jìn)行單片機(jī)軟件編程,目的 3 是為了提高學(xué)生的軟件編程和系統(tǒng)設(shè)計(jì)能力,整個(gè)設(shè)計(jì)系統(tǒng)包括兩個(gè)部分,硬件及軟件部分,硬件部分已經(jīng)制作成功,學(xué)生只需要掌握其原理和焊接相應(yīng)的元器件,掌握元器件的辨別和元器件的作用以及應(yīng)用場(chǎng)所即可,另外對(duì)所焊接的電路還需要進(jìn)行仔細(xì)的檢查,判斷是否有焊接錯(cuò)誤的地方或者短路的地方,對(duì)出現(xiàn)的異常情況要能夠根據(jù)現(xiàn)象判別原因,并具備解決問(wèn)題的能力,從而切實(shí)提高學(xué)生的硬件電子電路的分析、判斷能力。
軟件編程是本次課程設(shè)計(jì)的重要環(huán)節(jié)。在為期兩周的工程實(shí)踐中,將占據(jù)主要時(shí)間,完成的軟件編程任務(wù)主要包括以下幾點(diǎn):
1)、熟悉Keil C51編程平臺(tái)及相關(guān)編程軟件
2)、編寫(xiě)、調(diào)試蜂鳴器、繼電器動(dòng)作、方波程序并進(jìn)行軟硬件聯(lián)調(diào) 3)、編寫(xiě)、調(diào)試LED流水燈(循環(huán)顯示)程序并進(jìn)行軟硬件聯(lián)調(diào) 4)、編寫(xiě)、調(diào)試鍵盤(pán)掃描子程序并進(jìn)行軟硬件聯(lián)調(diào) 5)、編寫(xiě)、調(diào)試數(shù)碼管動(dòng)態(tài)掃描程序并進(jìn)行軟硬件聯(lián)調(diào) 6)、基于交通燈的多功能控制設(shè)計(jì)
其中前五個(gè)內(nèi)容是后兩個(gè)內(nèi)容的基礎(chǔ),主要是編制一些子程序,為后繼的整個(gè)系統(tǒng)設(shè)計(jì)打下基礎(chǔ)。交通燈控制是在五個(gè)課題中選做的一個(gè)設(shè)計(jì),是一個(gè)簡(jiǎn)單的單片機(jī)編程設(shè)計(jì),來(lái)實(shí)現(xiàn)智能交通燈的多功能作用。
3.系統(tǒng)硬件總框圖
圖1 系統(tǒng)設(shè)計(jì)總框圖
此次課程設(shè)計(jì),AT89C52是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱(chēng)單片機(jī)。1)AT89C52單片機(jī)
設(shè)計(jì)中所用的單片機(jī)型號(hào)為AT89C52,其主要功能為:
AT89C52是低功耗、高性能的CMOS 8位單片機(jī)。片內(nèi)帶有8KB的Flash存儲(chǔ)器,且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。另外,AT89C52的指令系統(tǒng)和引腳與80C52完全兼容,所以,近幾年AT89C52單片機(jī)應(yīng)用極為廣泛。
AT89C52單片機(jī)除了含有8KB的Flash存儲(chǔ)器外,片內(nèi)還有256 B的RAM,32條I/O口線(xiàn),3個(gè)16位定時(shí)/計(jì)算器、6個(gè)中斷源、1個(gè)全雙工串行口等。同時(shí),與80C52一樣,有空閑和掉電兩種節(jié)電運(yùn)行方式。
AT89C52引腳如下圖所示:
圖2 AT89C52引腳
AT89C52單片機(jī)為40腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。
2)DS1302模塊
DS1302的RST是復(fù)位/片選線(xiàn),通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。
其管腳圖如下:
圖3 DS1302管腳圖
各引腳功能:Vcc1為后備電源,VCC2為主電源,X1和X2是振蕩源,SCLK為輸入端
RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。
3)數(shù)碼管顯示電路
圖4 數(shù)碼管顯示電路
設(shè)計(jì)中采用六位共陰極數(shù)碼管,通過(guò)單片機(jī)STC89C52的P0口控制其位選和段選,以達(dá)到動(dòng)態(tài)顯示相應(yīng)數(shù)值的效果。在其位選控制部分,采用了一個(gè)9012型三極管,要求當(dāng)P0口輸出低電平時(shí),位選成功。
所謂動(dòng)態(tài)掃描就是指我們采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,6 使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),但由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。
4)LED燈顯示
圖5 LED顯示模塊
本次課程設(shè)計(jì)中,“程序語(yǔ)言”通過(guò)“翻譯”軟件“翻譯”成單片機(jī)所需的二進(jìn)制代碼,單片機(jī)可工作。要用外加電源和分壓電阻來(lái)控制低電平驅(qū)動(dòng)點(diǎn)亮,因?yàn)閱纹瑱C(jī)不能直接高電平驅(qū)動(dòng)LED燈。如圖D1-D8和R1、R2以及R6-R11連接到單片機(jī)IO口,當(dāng)P1口某腳變低時(shí)相應(yīng)LED發(fā)光。實(shí)現(xiàn)LED燈的閃爍,只需利用編程方法依次從低位到高位逐個(gè)變?yōu)榈碗娖剑却僭S時(shí)刻再變高即可。
5)鍵盤(pán)掃描模塊
圖6 按鍵輸入電路
本模塊四個(gè)開(kāi)關(guān)分別用于控制流水燈控制電路,時(shí)間顯示電路,音樂(lè)蜂鳴器電路,交通燈四部分功能。當(dāng)按下其中一個(gè)開(kāi)關(guān)時(shí),該部分電路導(dǎo)通,給單片機(jī) 發(fā)出地址信號(hào),實(shí)現(xiàn)其中一項(xiàng)功能的運(yùn)做,如圖4所示。
KEYA鍵:其功能是當(dāng)該鍵按下時(shí),蜂鳴器程序工作; KEYB鍵:其功能是當(dāng)該鍵按下時(shí),流水燈程序工作;
KEYC鍵:其功能是當(dāng)該鍵按下時(shí),數(shù)碼管動(dòng)態(tài)掃描程序工作; KEYD鍵:其功能是當(dāng)該鍵按下時(shí),交通燈程序工作。
6)蜂鳴器電
圖7 蜂鳴器電路
路
蜂鳴器單元電路是通過(guò)一個(gè)PNP三極管來(lái)放大驅(qū)動(dòng)蜂鳴器,蜂鳴器的正極接到+5V電源上面,蜂鳴器的負(fù)極接到三極管的發(fā)射極,三極管的基極經(jīng)過(guò)限流電阻后由單片機(jī)的P3.4控制。
當(dāng)輸出高電平時(shí),三極管截止,蜂鳴器的兩引腳間的直流電壓接近于0V,沒(méi)有電流流過(guò)線(xiàn)圈,蜂鳴器不發(fā)聲;當(dāng)輸出低電平時(shí),三極管導(dǎo)通,使蜂鳴器的兩個(gè)引腳間獲得將接近+5V的直流電壓,這樣蜂鳴器的電流形成回路,發(fā)出聲音。因此,我們可以通過(guò)程序控制IO口輸出的電平來(lái)控制蜂鳴器是否發(fā)出聲音,實(shí)現(xiàn)各種可能音響的產(chǎn)生。
三、硬件電路的設(shè)計(jì)及描述
1.硬件總框圖及原理圖
圖8 硬件總框圖
圖9 硬件總原理圖
2.主程序流程圖
3.各模塊流程圖 1)時(shí)間顯示程序流程圖
2)流水燈程序流程圖
3)利用蜂鳴器的音樂(lè)流程圖
4)智能交通燈
四、源程序代碼
/******************************************************************** * 文件名
: 4個(gè)功能由按鍵控制.c * 描
述
: 按下A鍵,實(shí)現(xiàn)蜂鳴器動(dòng)作。
按下B鍵,實(shí)現(xiàn)LED流水燈循環(huán)顯示。
按下C鍵,實(shí)現(xiàn)數(shù)碼管動(dòng)態(tài)掃描顯示。
按下D鍵,實(shí)現(xiàn)交通燈功能。* 創(chuàng)建人
:
***********************************************************************/ #include
#define uint unsigned int
// 無(wú)符號(hào)整形習(xí)慣的定義
#define uchar unsigned char
//無(wú)符號(hào)字符型習(xí)慣的定義 void buzz_key(void);
//子函數(shù)聲明 void led_key(void);void tube_key(void);void traffic(void);unsigned char code duanma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 0 1 2 3 4 5 6 7 8 9
unsigned char code weima[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
// 選擇哪個(gè)數(shù)碼管
unsigned char temp[6];uchar i=35;uchar k=30;uchar l=5;uchar j;uchar b;
//定義變量
sbit duan=P2^6;//定義管腳 sbit wei=P2^7;sbit key_A=P3^4;sbit key_B=P3^5;sbit key_C=P3^6;sbit key_D=P3^7;sbit buzz=P2^3;sbit DIOLA=P2^5;sbit csda=P3^2;sbit red=P1^0;//交通燈管腳定義 sbit green=P1^1;sbit yellow=P1^2;/******************************************************************** * 名稱(chēng) : Delay_1ms()* 功能 : 延時(shí)子程序,延時(shí)時(shí)間為 1ms * x * 輸入 : x(延時(shí)一毫秒的個(gè)數(shù))* 輸出 : 無(wú)
***********************************************************************/
void Delay_1ms(unsigned int t){ unsigned char x,y;for(x=t;x>0;x--)for(y=110;y>0;y--);
}
/******************************************************************** * 名稱(chēng) : Main()* 功能 : 實(shí)現(xiàn)蜂鳴器,流水燈,數(shù)碼管,交通燈
***********************************************************************/ void main(){
DIOLA=0;//流水燈鎖存器關(guān) 流水燈未選通
wei=0;//位選關(guān)
duan=1;
P0=0;
duan=0;
csda=0;
while(1){
if(key_A==0 || key_B==0 || key_C==0|| key_D==0)
{
if(key_A==0)
//A鍵按下
{
buzz_key();
//調(diào)用蜂鳴器子程序
}
else if(key_B==0)//B鍵按下
{
led_key();
//調(diào)用流水燈子程序
}
else if(key_C==0)//C鍵按下時(shí)
{
tube_key();//調(diào)用數(shù)碼管顯示子程序
}
else
//D鍵按下時(shí)
{
traffic();
//調(diào)用交通燈子程序
i=35;
k=30;
l=5;
return;
}
}
} }
/******************************************************************** * 名稱(chēng) : buzz_key(void)* 功能 : 蜂鳴器子程序
***********************************************************************/
void buzz_key(void)
{
DIOLA=0;wei=0;
buzz=0;
//蜂鳴器響
while(key_B&&key_C&&key_D&&!key_A);
buzz=1;
//關(guān)蜂鳴器
}
/********************************************************************* * 名稱(chēng) : led_key(void)* 功能 : 流水燈子程序
***********************************************************************/ void led_key(void){
DIOLA=1;b=0xfe;
P1=b;//11111110 while(key_B==0){
b=_crol_(b,1);
//左移11111101
Delay_1ms(500);
P1=b;
//111111011
Delay_1ms(500);
}
while(key_A&&key_B&&key_C&&key_D);
P1=0xff;
}
/******************************************************************** * 名稱(chēng) : tube_key(void)* 功能 : 數(shù)碼管子程序
***********************************************************************/
void tube_key(void){
DIOLA=0;
//流水燈使能端置0 while(key_C==0)
{ unsigned int i;
for(i=0;i<6;i++)
{
wei=1;
P0=weima[i];
//位選信號(hào)
wei=0;
duan=1;
P0=duanma[i];//段選信號(hào)
duan=0;
Delay_1ms(500);
}
duan=1;
P0=0;
duan=0;
//清零
}
}
/******************************************************************** * 名稱(chēng) : traffic_key(void)* 功能 : 交通燈子程序
***********************************************************************/
void traffic(void)
{
DIOLA=0;
while(key_D==0)
{
if(i>0)
{
DIOLA=1;
b=0xfe;
P1=b;//11111110
for(j=0;j<40;j++)
{
P0 = 0;
wei=1;
//消隱
P0 = weima[0];
wei=0;
duan=1;
//第1位數(shù)碼管顯示
P0 = duanma[(i / 10)%10];//在這里取 i 的個(gè)位數(shù)
Delay_1ms(40);
//延時(shí)40毫秒后顯示下一個(gè)數(shù)
P0 = 0;
wei=1;
//消隱
P0 = weima[1];
wei=0;
duan=1;
//第2位數(shù)碼管顯示
P0 = duanma[i % 10];
//在這里取 i 的個(gè)位數(shù)
Delay_1ms(40);
//延時(shí)40毫秒后顯示下一個(gè)數(shù)
}
i--;
}
else if(k>0)
{
DIOLA=1;
b=0xfd;
P1=b;//11111110
for(j=0;j<40;j++)
{
P0 = 0;
wei=1;
//消隱
P0 = weima[0];
wei=0;
duan=1;
//第1位數(shù)碼管顯示
P0 = duanma[(k / 10)%10];//在這里取 i 的個(gè)位數(shù)
Delay_1ms(40);
//延時(shí)3毫秒后顯示下一個(gè)數(shù)
P0 = 0;
wei=1;
//消隱
P0 = weima[1];
wei=0;
duan=1;
//第2位數(shù)碼管顯示
P0 = duanma[k % 10];
//在這里取 i 的個(gè)位數(shù)
Delay_1ms(40);
//延時(shí)3毫秒后顯示下一個(gè)數(shù)
}
k--;
}
else if(l>0)
{
DIOLA=1;
b=0xfb;
P1=b;//11111110
for(j=0;j<40;j++)
{
P0 = 0;
wei=1;
//消隱
P0 = weima[0];
wei=0;
duan=1;
//第1位數(shù)碼管顯示
P0 = duanma[(l / 10)%10];//在這里取 i 的個(gè)位數(shù)
Delay_1ms(40);
//延時(shí)3毫秒后顯示下一個(gè)數(shù)
P0 = 0;
wei=1;
//消隱
P0 = weima[1];
wei=0;
duan=1;
//第2位數(shù)碼管顯示
P0 = duanma[l % 10];
//在這里取 i 的個(gè)位數(shù)
Delay_1ms(40);
//延時(shí)3毫秒后顯示下一個(gè)數(shù)
}
l--;
}
}
}
五、設(shè)計(jì)心得
通過(guò)兩個(gè)星期的實(shí)驗(yàn),我的設(shè)計(jì)雖然有一些毛病,但總體上還是成功的。兩周的時(shí)間雖然短暫,但我從中受益匪淺,畢竟在課堂學(xué)習(xí)到的東西真真正正的用到實(shí)際中還是有很大困難的,要把理論運(yùn)用于實(shí)踐確實(shí)并非一件易事。我從最初的設(shè)想設(shè)計(jì)一個(gè)什么樣的數(shù)字電路到繪制電路圖,然后打印排版,最后矯正設(shè)計(jì)中的漏洞與不足,整個(gè)過(guò)程我翻閱了大量的資料。
這次交通燈的課程設(shè)計(jì),也使我得到了一次用專(zhuān)業(yè)知識(shí)、專(zhuān)業(yè)技能分析和解決現(xiàn)實(shí)問(wèn)題的能力。使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用學(xué)習(xí)過(guò)程中,以及在常用編程設(shè)計(jì)思路技巧的掌握方面都能向前邁了一大步,為日后成為一名合格的應(yīng)用型人才打下良好的基礎(chǔ)。綜合課程設(shè)計(jì)讓我把以前學(xué)習(xí)到的知識(shí)得到鞏固和進(jìn)一步的提高認(rèn)識(shí),對(duì)已有知識(shí)有了更深層次的理解和認(rèn)識(shí)。在此,由于自身能力有限,在課程設(shè)計(jì)中碰到了很多的問(wèn)題,我通過(guò)查閱相關(guān)書(shū)籍、資料以及和周?chē)瑢W(xué)交流得到解決。
還有交通燈是我們生活中非常常見(jiàn)的一種東西,對(duì)于我們學(xué)以致用的這種能力得到了很好鍛煉,能夠?yàn)槲覀円院蟮墓ぷ饔趯W(xué)習(xí)打下基礎(chǔ)。
六、參考文獻(xiàn)
1.《單片機(jī)原理及接口技術(shù)》 李朝青 北京航空航天大學(xué)出版社,2004 2.《單片機(jī)原理及應(yīng)用》 李全力 高等教育出版社,2001 3.《電子系統(tǒng)設(shè)計(jì)與實(shí)踐》 楊剛,周群 電子工業(yè)出出版社,1997 4.《單片機(jī)微型計(jì)算機(jī)技術(shù)》 劉國(guó)榮 機(jī)械工業(yè)出版社,1997 5.《數(shù)字電子技術(shù)》 楊志忠 高等教育出版社,2003 6.《電子技術(shù)》 胡宴如 高等教育出版社,2001 7.《電子線(xiàn)路CAD》 王延才 機(jī)械工業(yè)出版社,2001 8.《單片機(jī)應(yīng)用技術(shù)選編》 何利民 北京航空航天大學(xué)出版社,1996 9.《單片機(jī)應(yīng)用技術(shù)》 吳國(guó)經(jīng) 中國(guó)電力出版社,2004 10.《單片機(jī)及接口技術(shù)實(shí)踐教程》 胡健 北京機(jī)械工業(yè)出版社,2002 11.《使用接口技術(shù)》 李廣軍 成都電子科技大學(xué)出版社,1998
第二篇:?jiǎn)纹瑱C(jī)課程設(shè)計(jì)任務(wù)書(shū)(交通燈)
單片機(jī)課程設(shè)計(jì)任務(wù)書(shū)
本次設(shè)計(jì)共 41×2 人。
一、設(shè)計(jì)任務(wù):
1、路口交通燈控制系統(tǒng)設(shè)計(jì) 1)A 道通行,B 道禁行 30s; 2)黃燈閃爍 5s; 3)A 道禁行,B 道通行 30s; 4)黃燈閃爍 5s。5)按下 K1,A 道通行,B 道禁行,直到 K1 復(fù)位; 6)按下 K2,B 道通行,A 道禁行,直到 K2 復(fù)位; 7)按下 K3,A、B 禁行。
二、設(shè)計(jì)要求 1)主控芯片:AT89S52,顯示器件可以選用發(fā)光二極管、數(shù)碼管或 LCD 其中一種; 2)系統(tǒng)總體設(shè)計(jì)和軟硬件功能劃分; 3)硬件電路設(shè)計(jì); 4)軟件設(shè)計(jì); 5)軟件、硬件仿真調(diào)試; 6)轉(zhuǎn)換 PCB 板; 7)生產(chǎn) PCB 板,焊接調(diào)試; 8)樣品試運(yùn)行。
三、時(shí)間分配: 整個(gè)設(shè)計(jì)時(shí)間為一周,根據(jù)實(shí)際進(jìn)度由指導(dǎo)教師控制。
四、設(shè)計(jì)者: 電氣 0812,共 41×2 人。
五、使用儀器、材料:
1、電腦、單片機(jī)實(shí)驗(yàn)箱、單片機(jī)編程器等。
2、AT89S52 單片機(jī)芯片,相應(yīng)的電子元器件等。
六、上繳材料:
1、設(shè)計(jì)任務(wù)書(shū)一份;設(shè)計(jì)說(shuō)明書(shū)(包括:系統(tǒng)功能描述,設(shè)計(jì)思路,軟、硬件設(shè)計(jì),設(shè) 計(jì)圖紙,樣品等);總結(jié)報(bào)告等。
2、樣品一件。
第三篇:基于AT89C51單片機(jī)的交通燈課程設(shè)計(jì)報(bào)告[定稿]
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)任務(wù)書(shū)
系(部):電子與通信工程系
課題名稱(chēng) 交通燈程序設(shè)計(jì)
設(shè)計(jì)內(nèi)容及要求(1)課題內(nèi)容:
以單片機(jī)為核心,設(shè)計(jì)一個(gè)簡(jiǎn)單交通燈控制系統(tǒng),用于十字路口車(chē)輛交通管理,東西、南北兩個(gè)方向分別設(shè)置紅、綠、黃3種通行指示燈,計(jì)時(shí)牌顯示路口通行轉(zhuǎn)換剩余時(shí)間,另外,在特種車(chē)輛如119、120通過(guò)路口時(shí),系統(tǒng)可轉(zhuǎn)為特種車(chē)輛放行,其他車(chē)輛禁止通行的狀態(tài),15s后系統(tǒng)恢復(fù)正常管理。
發(fā)揮部分:東西、南北兩個(gè)方向通行的時(shí)間可以通過(guò)鍵盤(pán)設(shè)置。
(2)要求:完成該系統(tǒng)的硬件和軟件的設(shè)計(jì),在Proteus軟件上仿真通過(guò)后,下載到單片機(jī)進(jìn)行硬件驗(yàn)證。最后就課程設(shè)計(jì)本身提交一篇課程設(shè)計(jì)說(shuō)明書(shū)。
設(shè)計(jì)工作量
1、匯編或C51語(yǔ)言程序設(shè)計(jì);
2、程序調(diào)試;
3、在Proteus上進(jìn)行仿真后,進(jìn)行下載;
4、提交一份完整的課程設(shè)計(jì)說(shuō)明書(shū),包括設(shè)計(jì)原理、程序設(shè)計(jì)、程序分析、仿真分析、調(diào)試過(guò)程,參考文獻(xiàn)、設(shè)計(jì)總結(jié)等。
進(jìn)度安排 起止日期(或時(shí)間量)設(shè)計(jì)內(nèi)容(或預(yù)期目標(biāo))備注
第一天 課題介紹,答疑,收集材料,C51介紹
第二天 設(shè)計(jì)方案論證,練習(xí)編寫(xiě)C51程序
第三天~第六天 程序設(shè)計(jì)
第六天~第八天程序調(diào)試、仿真
第九天~第十天 系統(tǒng)測(cè)試并編寫(xiě)設(shè)計(jì)說(shuō)明書(shū)
交通燈程序設(shè)計(jì)
摘要
本次單片機(jī)課程設(shè)計(jì)選擇的題目是交通燈程序設(shè)計(jì),主要是根據(jù)本學(xué)期所學(xué)的《單片機(jī)原理和接口技術(shù)》的知識(shí),編寫(xiě)交通燈的控制程序,在WAVE6000集成調(diào)試軟件上進(jìn)行編譯,并在Proteus 7 Professional軟件上進(jìn)行仿真,觀看結(jié)果。在經(jīng)過(guò)多次的調(diào)試和電路上的修改,實(shí)現(xiàn)了所需要的結(jié)果(達(dá)到了設(shè)計(jì)任務(wù)書(shū)上的要求)。主要涉及的內(nèi)容包括倒計(jì)時(shí)、中斷等,使用芯片80C51進(jìn)行程序控制。
關(guān)鍵詞
AT89C51LED顯示交通燈
目錄
1、交通燈程序 62、交通燈仿真電路 93、結(jié)論與心得 104、存在的不足及建議 10
參考文獻(xiàn) 101、交通燈程序
#include
//#include
#define ucharunsigned char
#define uintunsigned int
uchar h;
uint r=0;
uint s;
uchar codedis[]={ 0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90,0Xff};void delay(uint c)
{
uint i,j;
for(i=0;i for(j=0;j<100;j++); } //interrupt 1void t0(void)interrupt 0 using 1 { delay(2); if(INT0==0) { P1=0xdb; P0=0xff; } for(h=15;h>0;h--) { for(s=248;s>0;s--) { P0=0xff; P2=0x01; P0=dis[h/10]; delay(1); P0=0xff; P2=0x02; P0=dis[h%10]; delay(1); P0=0xff; P2=0x04; P0=dis[h/10]; delay(1); P2=0x00; P0=0xff; P2=0x08; P0=dis[h%10]; delay(1); } } } void main(void) { EA=1; EX0=1; while(1) { P1=0xeb; for(h=15;h>0;h--) { for(s=248;s>0;s--) {if(h<=3) P1=0xfb; if(s<=124) P1=0xeb; P0=0xff; P2=0x01; P0=dis[h/10]; delay(1); P0=0xff; P2=0x02; P0=dis[h%10]; delay(1); P0=0xff; P2=0x04; P0=dis[(h+3)/10]; delay(1); P2=0x00; P0=0xff; P2=0x08; P0=dis[(h+3)%10]; delay(1); } } P1=0xf3; for(h=3;h>0;h--) { delay(120); P0=0xff; P2=0x0a; P0=dis[h%10]; delay(900); } delay(248); P1=0xdd; for(h=10;h>0;h--) { for(s=248;s>0;s--) { if(h<=3) P1=0xdf; if(s<=124) P1=0xdd; P0=0xff; P2=0x01; P0=dis[(h+3)/10]; delay(1); P0=0xff; P2=0x02; P0=dis[(h+3)%10]; delay(1); P0=0xff; P2=0x04; P0=dis[h/10]; delay(1); P0=0xff; P2=0x08; P0=dis[h%10]; delay(1); } } P1=0xde; for(h=3;h>0;h--) { delay(120); P0=0xff; P2=0x0a; P0=dis[h%10]; delay(900); } delay(248); } } 2、交通燈仿真電路 3、結(jié)論與心得 本次單片機(jī)程設(shè)計(jì)收獲頗豐,不僅對(duì)于WAVE6000集成調(diào)試軟件和Proteus 7 Professional軟件有了進(jìn)一步的熟悉,使用WAVE6000集成調(diào)試軟件進(jìn)行了C語(yǔ)言的程序編寫(xiě)與編譯,也再次的復(fù)習(xí)了本學(xué)期所學(xué)的知識(shí)。 本學(xué)期學(xué)習(xí)了《單片機(jī)原理與接口技術(shù)》這門(mén)功課,主要學(xué)習(xí)了使用匯編語(yǔ)言進(jìn)行編寫(xiě)程序,利用單片機(jī)實(shí)現(xiàn)其功能。這次的課程設(shè)計(jì),根據(jù)所學(xué)知識(shí),包括LED的顯示、倒計(jì)數(shù)器、中斷等,進(jìn)行交通燈程序的設(shè)計(jì),對(duì)于軟件編程、排錯(cuò)調(diào)試、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高,也對(duì)單片機(jī)的使用有了更深刻的了解。遺憾的是沒(méi)有作出實(shí)物,只是在Proteus 7 Professional軟件進(jìn)行仿真,看到了所編程序所實(shí)現(xiàn)的功能,完全達(dá)到了課程設(shè)計(jì)的要求。也通過(guò)這次的課程設(shè)計(jì),對(duì)使用C語(yǔ)言進(jìn)行程序編寫(xiě),在AT89C51上實(shí)現(xiàn)功能,有了更多的了解與認(rèn)識(shí),也因?yàn)閷W(xué)習(xí)過(guò)C語(yǔ)言,所以很快就摸清了門(mén)路。整個(gè)設(shè)計(jì)過(guò)程很順利。 通過(guò)這次的課程設(shè)計(jì),對(duì)《單片機(jī)原理與接口技術(shù)》所學(xué)的知識(shí)有了更進(jìn)一步的了解,也看到單片機(jī)的優(yōu)點(diǎn)。收獲頗豐。 4、存在的不足及建議 由于實(shí)驗(yàn)室機(jī)器的落后,電腦的病毒太多,導(dǎo)致多次勞動(dòng)的成功打了水漂。實(shí)驗(yàn)室電腦不能連網(wǎng),交流不便。 參考文獻(xiàn) 曾屹.單片機(jī)原理與應(yīng)用[M].湖南:中南大學(xué)出版社,2009年. #include //*****define led port ********** sbit R1=P2^4;//east and west red led sbit Y1=P2^3;//east and west yellow led sbit G1=P2^2;//east and west green led sbit R2=P2^5;//south and north red led sbit Y2=P2^6;//south and north yellow led sbit G2=P2^7;//south and north green led //*********define key************** sbit k0=P3^0;//emergency sbit k1=P3^1;//east and west pass sbit k2=P3^2;//south and north pass sbit k3=P3^3;//start and subtract 1 sbit k4=P3^4;//pause and add 1 sbit k5=P3^5;//set time //*********define variable********* bit flag,flag_t;uchar dx_time,nb_time;uchar cnt,pass_time,cnt1,y_time;uchar k0num,k1num,k2num,k3num,k4num,k5num; //*********define key******** void delay(uint i){ uint x,y;for(x=i;x>0;x--) for(y=110;y>0;y--);} void timer0_init(){ TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;} void led_display(uchar dx,nb){ uchar dx1,dx2,nb1,nb2;dx2=dx/10;dx1=dx%10;nb2=nb/10;nb1=nb%10;if(dx>99){ led_w1=1; led_w2=1;} else { led_w1=0; P0=table[dx1]; delay(5); led_w1=1; if(dx<10&&dx>0)led_w2=1; else { led_w2=0; P0=table[dx2]; delay(5); led_w2=1; } } if(nb>99){ led_w3=1; led_w4=1;} else { led_w3=0; P0=table[nb1]; delay(5); led_w3=3; if(nb<10&&nb>0)led_w4=1; else { led_w4=0; P0=table[nb2]; delay(5); led_w4=4; } } } //*************light work********** void circle_led(){ if(!flag){ if(pass_time>5) { led_display(pass_time-5,pass_time); R1=1;Y1=1;G1=0; //east and west pass R2=0;Y2=1;G2=1; //south and north stop } if(pass_time<=5&&pass_time>0) { if(cnt>=10)led_display(pass_time,pass_time); else led_display(100,pass_time); R1=1;G1=1; //east and west yellow led flash if(cnt>=10)Y1=0; else Y1=1; R2=0;Y2=1;G2=1; } if(pass_time==0) { pass_time=nb_time; flag=1; } } else { if(pass_time>5) { led_display(pass_time,pass_time-5); R1=0;Y1=1;G1=1; //east and west stop R2=1;Y2=1;G2=0; //south and north pass } if(pass_time<=5&&pass_time>0) { if(cnt>=10)led_display(pass_time,pass_time); else led_display(pass_time,100); R1=0;Y1=1;G1=1; R2=1;G2=1; //south and north yellow led flash if(cnt>=10)Y2=0; else Y2=1; } if(pass_time==0) { pass_time=dx_time; flag=0; } } } void emergency() //east and west,south and north stop { led_display(0,0);R1=0;Y1=1;G1=1;R2=0;Y2=1;G2=1;} void dx_pass() //east and west pass,south and north stop { led_display(100,100);if(y_time<=5&&y_time>0){ TR1=1; R1=0;Y1=1;G1=1; R2=1;G2=1; //south and north yellow led flash if(cnt1>=10)Y2=0; else Y2=1;} if(y_time==0){ TR1=0; R1=1;Y1=1;G1=0; R2=0;Y2=1;G2=1;} } void nb_pass() //south and north pass,east and west stop { led_display(100,100);if(y_time<=5&&y_time>0){ TR1=1; R1=1;G1=1; if(cnt1>=10)Y1=0;//east and west yellow led flash else Y1=1; R2=0;Y2=1;G2=1; } if(y_time==0){ TR1=0; R1=0;Y1=1;G1=1; R2=1;Y2=1;G2=0;} } //***********keyboard scan************ void keyscan(){ if(!k5num) { if(k0==0)//*******emergency******* { delay(10); if(k0==0) { while(!k0); TR0=0; k0num=1; } } if(!k1num&&!k0num) { if(k1==0) { delay(10); if(k1==0) { while(!k1); k1num=1; k2num=0; y_time=5;//單方向通行時(shí),黃燈閃爍時(shí)間 TR0=0; TR1=1; } } } if(!k2num&&!k0num) { if(k2==0) { delay(10); if(k2==0) { while(!k2); k1num=0; k2num=1; y_time=5;//單方向通行時(shí),黃燈閃爍時(shí)間 TR0=0; TR1=1; } } } if(k3==0) { delay(10); if(k3==0) { while(!k3); if(k1num||k2num)pass_time=dx_time;//由東西或南北通行返回時(shí),重新開(kāi)始執(zhí)行。 k0num=0; k1num=0; k2num=0; k4num=0; k5num=0; TR0=1; TR1=0; flag_t=0; } } { } if(!k4&&!k0num) //pause { delay(10);if(k4==0){ while(!k4); TR0=0; k4num=1;} } if(k4num==1) //暫停鍵按下時(shí),才可以調(diào)整兩個(gè)方向通行時(shí)間 if(k5==0){ delay(10);if(k5==0){ k5num++; while(!k5); switch(k5num) { case 1: TR0=1; flag_t=1;//調(diào)整時(shí)間時(shí),pass_time值不變。 k5num=1; break; case 2: k5num=2; break; case 3: TR0=0; k5num=0; pass_time=dx_time;//重新賦值 break; } } } if(k5num!=0){ if(k3==0){ delay(10); if(k3==0) { while(!k3); switch(k5num) { case 1: dx_time--; if(dx_time<10) break; case 2: nb_time--; if(nb_time<10) break; } } } if(k4==0) { delay(10); if(k4==0) { while(!k4); switch(k5num) { case 1: dx_time++; if(dx_time>=100) break; case 2: nb_time++; if(nb_time>=100) break; } } } } } } void main(){ timer0_init();dx_time=45;nb_time=30; dx_time=99;nb_time=99;dx_time=10;nb_time=10; pass_time=dx_time;while(1){ keyscan();if(k0num)emergency();else { switch(k4num){ case 0: if(!k1num&&!k2num) circle_led(); else { if(k1num)dx_pass(); if(k2num)nb_pass(); } break; case 1: switch(k5num) { case 0: if(!k1num&&!k2num) circle_led(); else { if(k1num)dx_pass(); if(k2num)nb_pass(); } break; case 1: R1=1;Y1=1;G1=1;//調(diào)整時(shí)間時(shí),關(guān)閉所有燈 R2=1;Y2=1;G2=1; if(cnt<=10) led_display(100,nb_time); else led_display(dx_time,nb_time); break; case 2: R1=1;Y1=1;G1=1;//調(diào)整時(shí)間時(shí),關(guān)閉所有燈 R2=1;Y2=1;G2=1; if(cnt<=10) led_display(dx_time,100); else led_display(dx_time,nb_time); break; } break; } } } } void timer0()interrupt 1 { TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt++;if(cnt==20){ cnt=0; if(flag_t==0)pass_time--;//調(diào)整時(shí)間時(shí),不執(zhí)行此操作 } } void timer1()interrupt 3 { TH1=(65536-50000)/256;TL1=(65536-50000)%256;cnt1++;if(cnt1==20){ cnt1=0; y_time--;//單方向通行時(shí),黃燈閃爍時(shí)間。 } } PLC的定義及工作原理 ⒈定義:可編程控制器,簡(jiǎn)稱(chēng)PLC(Programmable logic Controller),是指以計(jì)算機(jī)技術(shù)為基礎(chǔ)的新型工業(yè)控制裝置。“PLC是一種專(zhuān)門(mén)為在工業(yè)環(huán)境下應(yīng)用而設(shè)計(jì)的數(shù)字運(yùn)算操作的電子裝置”。它采用可編程序的存儲(chǔ)器,用來(lái)在其內(nèi)部存儲(chǔ)執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)、計(jì)數(shù)和算術(shù)運(yùn)算等操作的指令,并通過(guò)數(shù)字式或模擬式的輸入和輸出,控制各種類(lèi)型的機(jī)械或生產(chǎn)過(guò)程。 ⒉工作原理: 當(dāng)PLC投入運(yùn)行后,其工作過(guò)程一般分為三個(gè)階段,即輸入采樣、用戶(hù)程序執(zhí)行和輸出刷新三個(gè)階段。完成三個(gè)階段稱(chēng)作一個(gè)掃描周期。在整個(gè)運(yùn)行期間,PLC的CPU以一定的掃描速度重復(fù)執(zhí)行三個(gè)階段。 (一)輸入采樣階段 在輸入采樣階段,PLC以?huà)呙璺绞揭来蔚刈x入所有輸入狀態(tài)和數(shù)據(jù),并將它們存入I/O映象區(qū)中的相應(yīng)得單元內(nèi)。 (二)用戶(hù)程序執(zhí)行階段 在用戶(hù)程序執(zhí)行階段,PLC總是按由上而下的順序依次地掃描用戶(hù)程序(梯形圖)。 (三)輸出刷新階段 當(dāng)掃描用戶(hù)程序結(jié)束后,PLC就進(jìn)入輸出刷新階段。在此期間,CPU按照I/O映象區(qū)內(nèi)對(duì)應(yīng)的狀態(tài)和數(shù)據(jù)刷新所有的輸出鎖存電路,再經(jīng)輸出電路驅(qū)動(dòng)相應(yīng)的外設(shè)。 隨著自動(dòng)化控制技術(shù)和微電子技術(shù)的迅猛發(fā)展,PLC作為前沿的工業(yè)控制器,具有體積小、可靠性高、易操作、靈活性強(qiáng)、抗干擾能力強(qiáng)等一系列優(yōu)點(diǎn),廣泛用于自動(dòng)化控制領(lǐng)域。用內(nèi)部編程取代繼電器邏輯控制電路中大量的中間繼電器和時(shí)間繼電器,簡(jiǎn)化了控制路線(xiàn),提高了系統(tǒng)控制的可靠性,這是PLC最大的優(yōu)點(diǎn)。借助于書(shū)序控制圖和梯形圖來(lái)編制用戶(hù)控制程序,實(shí)現(xiàn)自動(dòng)控制系統(tǒng)順序控制,是PLC的主要功能之一。 實(shí)訓(xùn)1 基礎(chǔ)試驗(yàn) 1.兩燈交替閃爍 指令表 梯形圖 工作過(guò)程: 按下啟動(dòng)開(kāi)關(guān)X0,Y0亮,且開(kāi)始計(jì)時(shí),2S后,T0動(dòng)作,T0常閉斷開(kāi)Y0熄滅,T0常開(kāi)閉合Y1亮,經(jīng)過(guò)2s,Y0亮;如此循環(huán),直到按下停止開(kāi)關(guān)X1。 2.利用計(jì)數(shù)器實(shí)現(xiàn)循環(huán) 指令表 梯形圖 工作過(guò)程: 按下啟動(dòng)開(kāi)關(guān)X0,Y0亮,開(kāi)始計(jì)時(shí)2S后,T0動(dòng)作,Y0熄滅,Y1亮,如此循環(huán),直到循環(huán)了5次,計(jì)數(shù)器CO動(dòng)作,常開(kāi)觸點(diǎn)閉合,整個(gè)過(guò)程停止。 實(shí)訓(xùn)2 十字路口交通燈控制系統(tǒng) 1、實(shí)訓(xùn)目的 ① 了解PLC基本功能指令使用方法 ②掌握功能指令圖的輸入方法 ③學(xué)會(huì)利用功能指令進(jìn)行設(shè)計(jì) 2、實(shí)訓(xùn)的內(nèi)容 該實(shí)驗(yàn)在十字路口交通信號(hào)燈控制實(shí)驗(yàn)區(qū)內(nèi)完成,按啟動(dòng)按鈕,六盞燈按如下時(shí)序工作:第一組綠燈亮5秒后閃爍3次(滅0.5秒,亮0.5秒),黃燈亮2秒,紅燈亮10秒;第二組紅燈亮10秒,綠燈亮5秒后閃爍3次(滅0.5秒,亮0.5秒),黃燈亮2秒。 從時(shí)序圖可以看出,該系統(tǒng)有一個(gè)輸入裝置和 6個(gè)輸出裝置。下表為輸入裝置與輸出裝置與PLC的地址編號(hào)對(duì)應(yīng)表。 指令表 ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ LD M8002 SET L0 STL S0 LD X000 OUT Y000 OUT Y003 SET S21 SET S31 STL S21 OUT Y000 OUT T0 K50 ⒓ LD T0 ⒔ SET S22 ⒕ STL S22 ⒖ OUT T1 K30 ⒗ LDI T1 ⒘ AND M8013 ⒙ OUT Y000 ⒚ LD T1 ⒛ SET S23 21.STL 22.OUT 23.OUT 24.LD 25.SET 26.STL 27.OUT 28.OUT 29.STL 30.OUT 31.OUT 32.LD 33.SET 34.STL 35.OUT 36.OUT 37.LD 38.SET 39.STL 40.OUT 41.LDI 42.AND 43.UT 44.LD 45.SET 46.STL 47.OUT 48.OUT 49.STL 50.STL 51.LD 52.AND 53.SET 54.RET 55.END S23 Y001 T2 K20 T2 S24 S24 Y002 T3 K100 S31 Y003 T4 K100 T4 S32 S32 Y004 T5 T5 S33 S33 T6 K30 T6 M8013 Y004 T6 S34 S34 Y005 T7 S24 S34 T3 T7 S0 附加任務(wù) 機(jī)械手手動(dòng)控制實(shí)驗(yàn) 控制要求1: 實(shí)現(xiàn)機(jī)械手左右移動(dòng)。 按下向左按鈕,機(jī)械手向左移動(dòng),到達(dá)左限位開(kāi)關(guān)后停止;按下向右按鈕,機(jī)械手向右移動(dòng),到達(dá)右限位開(kāi)關(guān)后停止。 控制要求2: 實(shí)現(xiàn)機(jī)械手上下移動(dòng)。 按下向上按鈕,機(jī)械手向上移動(dòng),到達(dá)上限位開(kāi)關(guān)后停止;按下向下按鈕,機(jī)械手向下移動(dòng),到達(dá)下限位開(kāi)關(guān)后停止。 控制要求3: 實(shí)現(xiàn)機(jī)械手左右、上下移動(dòng)。 按下向左按鈕,機(jī)械手向左移動(dòng),到達(dá)左限位開(kāi)關(guān)后停止,按下向右按鈕,機(jī)械手向右移動(dòng),到達(dá)右限位開(kāi)關(guān)后停止。 按下向上按鈕,機(jī)械手向上移動(dòng),到達(dá)上限位開(kāi)關(guān)后停止;按下向下按鈕,機(jī)械手向下移動(dòng),到達(dá)下限位開(kāi)關(guān)后停止。 控制要求4: 實(shí)現(xiàn)上述控制后,機(jī)械手電磁鐵在A位置可吸引提取物料(鐵塊)或釋放物料。機(jī)械手電磁鐵在B位置同樣可吸引提取物料(鐵塊)或釋放物料。 可手動(dòng)操作實(shí)現(xiàn)物料從A位置移動(dòng)到B位置或從B位置移到達(dá)A位置。 總 結(jié) 這是一個(gè)比較典型的十字路口交通燈的梯形圖設(shè)計(jì),最為一種設(shè)計(jì)實(shí)踐,主要是為PLC在交通控制系統(tǒng)中提出一種設(shè)計(jì)理論,為以后PLC在復(fù)雜的控制系統(tǒng)中提出一種可行的理論方案。在實(shí)際應(yīng)用中,采用PLC控制城市交通信號(hào)燈,能根據(jù)不同路況要求,隨時(shí)修改控制程序,以改變各信號(hào)燈的工作時(shí)間和工作狀況。與繼電器或邏輯電路控制系統(tǒng)相比,PLC控制系統(tǒng)具有更高的可靠性、靈活性和經(jīng)濟(jì)實(shí)用性。 通過(guò)這次設(shè)計(jì)實(shí)踐,我鞏固了PLC的基本編程方法,對(duì)PLC的工作原理和使用方法也有了更深刻的理解。在對(duì)理論的運(yùn)用中,提高了我們的工程素質(zhì),當(dāng)我們把自己想出來(lái)的程序與到PLC的時(shí)候問(wèn)題出現(xiàn)了,不是不能運(yùn)行,就是運(yùn)行的結(jié)果和要求的結(jié)果不相符。通過(guò)解決一個(gè)個(gè)在調(diào)試中出現(xiàn)的問(wèn)題,我們對(duì)PLC的理解加強(qiáng)了,看到了實(shí)踐與理論的差距,通過(guò)此次課程,讓我了解了PLC梯形圖、指令表、順序功能圖有了更好的了解,也讓我了解了關(guān)于PLC設(shè)計(jì)原理。有很多設(shè)計(jì)理念來(lái)源于實(shí)際,從中找出最合適的設(shè)計(jì)方法。第四篇:?jiǎn)纹瑱C(jī)交通燈控制程序
第五篇:PLC交通燈課程設(shè)計(jì)