導航:首頁 > 操作系統 > 單片機循環燈電路圖

單片機循環燈電路圖

發布時間:2024-03-31 04:55:36

⑴ 鍥涚粍嫻佹按鐏寰鐜鐐逛寒鐢佃礬鍥(閫昏緫鐢佃礬)

555 杈撳嚭2縐掑懆鏈鏂規嘗鑴夊啿渚汣D4017浣滄椂鍩轟俊鍙鳳紝瀵瑰簲鏃跺熀淇″彿 3, 2, 4 ,7鑴氶『搴忔瘡2縐掕緭鍑楂樼數騫錛屾墍灞炵殑Led涓插啀鐢8050椹卞姩鐐逛寒錛7鑴氬畬鎴2縐掕緭鍑洪珮鐢靛鉤寰岋紝涓嬩竴涓杈撳嚭楂樼數騫蟲槸10鑴氾紝榪欎釜楂樼數騫蟲帴鍒15鑴氫綔閲嶇疆淇″彿浠CD4017閲嶆柊寮濮嬩箣鍓嶇殑鍔ㄤ綔銆

單片機中斷實驗交通燈的實驗原理

根據圖3.2電路,用單片機的IO口控制4組紅綠黃共12個發光二極體,使發光二極體按照一定規則與次序發光與閃亮以實現模擬交通燈的功能。假設初始狀態為:(南北通行狀態)南北綠燈、東西紅燈(25s);後轉為過度狀態:南北黃燈、東西紅燈(5s);再轉為東西通行狀態:東西綠燈、南北紅燈25(s)。再轉為過渡狀態:東西黃燈、南北紅燈(5s),然後循環往復。

要求採用定時器實現所需要的定時時間。

2、鍵控交通燈。

按一下K1鍵

,保持南北通行狀態;按一下K2鍵

,保持東西通行狀態;按一下K3鍵

,保持正常交通燈。

要求在中斷中進行按鍵處理。

3、具有閃爍的交通燈。

在2的基礎上增加,綠燈最後5s閃爍,即亮0.5S滅0.5S閃爍。

四、實驗原理圖

圖3.2交通燈實驗電路原理圖
圖3.2共有4個按鍵K1、K2、K3、K4,分別連接到單片機P2.0、P2.1、P2.2、P2.3引腳,按鍵後對應引腳為低電平,通過4個二極體D17、D18、D19、D20連接到P3.2(外部中斷0),這是二極體構成的相與電路,即任意按一個鍵能在P3.2上產生一個低電平或下降,作為中斷觸發信號。

五、軟體設計思想

1、定時思想。

採用定時器T0或T1的方式1定時500ms,每500ms中斷進行計數,計數10次即0.5s,計數20次即1s,對秒計數實現所需要的定時時間。

2、亮燈控制思想。

單片機控制燈引腳與燈對應如下,0點亮。

一共有四種狀態S0、S1、S2、S3,

a、南北通行S0狀態:

南北綠燈、東西紅燈,P0=11110111=0xf7,P1=10011110=0x9e;

南北通行S0
b、過渡狀態S1:

南北黃燈、東西紅燈,P0=11111011=0xfb,P1=10101110=0xae;​

過渡狀態S1
c、東西通行狀態S2:

東西綠燈、南北紅燈,P0=11111100=0xfc,P1=11110011=0xf3;​

東西通行狀態S2
d、過渡狀態S3:

東西黃燈、南北紅燈,P0=11111101=0xfd,P1=01110101=0x75;

過渡狀態S3
設置一個秒計數單元SEC每秒+1,設置兩個控制值變數a,b。

⑶ 基於51單片機控制交通燈的電路圖與C語言程序

思路:

紅燈停,綠燈行,黃燈閃爍提示行人紅綠燈即將切換。四個方向各有一個紅、黃、綠顯示和兩個數碼管。

東西道為人行道(20秒),南北道為車行道(60秒),黃燈延時最後三秒時,閃爍並切換。

三、硬體電路設計

此電中路設計採用AT89C51單片機,74LS47(數碼管驅動)74LS373(數碼管驅動輸出鎖存),8個數碼管顯示其延時值,四個紅、黃、綠指示燈。硬體設計關鍵在於,延時顯示時,要考慮到當個位數字顯示時,要確保十位數字顯示輸出的不變。因此,可加輸出鎖存器。在延時最後三秒時,要讓黃燈進行閃爍,並同時顯示數字(這一步在軟體設計上很關鍵)。

四、軟體程序(C語言)

以下是整個設計的軟體程序,直接可以編譯成*。Hex代碼。通過以上電路,下載到單片機,可直接運行。

//*****************************//

//程序名:十字路口交通燈控制

//編寫人:黃庭劍

//初寫時間:2009年1月2日

//程序功能:南北為車行道,延時60秒;東西方向為人行道,延時20秒,且在最後3秒黃燈顯示2秒鍾再實現切換.

//CPU說明:AT89C51型單片機;24MHZ晶體振盪器

//完成時間:2009年1月6日

//*****************************//

#include<stdio.h>

#include<reg51.h>

#include<intrins.h>

sfrp0=0x80;

sfrp1=0x90;

sfrp2=0xA0;

sfrp3=0xb0;//這部分內容其實在「#include<reg51.h>」里已經有,但裡面定義的必須區分大小寫,在這里,因為我程序採用的是小寫,reg51.h里對各個埠與寄存器的定義都是大寫,所以在編譯連接時,會報錯,所以,在本設計程序里,我只用到了埠,在這里也就只定義了四個,而沒有去改reg51.h裡面的內容。其實兩者是一樣的。

sbitsw=p0^0;

sbitOE=P0^6;

sbitLE=P0^7;//74LS373鎖存器控制端定義

chardisplay[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99};//p1口的數碼管時間顯示調用,利用74L74BCD碼,8位驅動輸出;

//函數聲明begin

voiddelay1(intcount);

voiddelay_long(intnumber1,intnumber2);

voidpeople_car_drive();

//函數聲明end

//***********************//延時子程序

voiddelay1(intcount)

{inti;

for(i=count;i>0;i--)

{;}

}

voiddelay_long(intnumber1,intnumber2)

{

inta,b;

for(a=number1;a>0;a--)

{

for(b=number2;b>0;b--)

{_nop_();}

}

}

//**********************//延時子程序

voidpeople_car_drive()

{

intp_1=2,i,j=9,p_2=6;//****************//行人通行時,延時20秒

p2=0x09;//南北紅燈亮

p3=0x24;//東西綠燈亮

while(p_1-->0)

{LE=1;

OE=0;

if(p_1==0){OE=1;}//當十位數減到0時,只顯示個位數

p1=display[p_1];

delay1(1000);

LE=0;

j=9;

for(i=10;i>0;i--)

{

if(p_1==0&&j==3)break;//減到3時退出循環,讓其黃燈閃爍顯示

p1=display[j--];

delay_long(16000,2);

if(sw==1)return;

}

}

//*******************************************************************************//

p2=0x12;//南北黃燈閃爍三秒,以提醒行人注意

p3=0x12;

p1=display[3];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[2];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[1];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

//*****************以下是車輛通行時延時60秒//

p2=0x24;//南北綠燈亮

p3=0x09;//東西紅燈亮

while(p_2-->0)

{LE=1;

OE=0;

if(p_2==0){OE=1;}//當十位數減到0時,只顯示個位數

p1=display[p_2];

delay1(1000);

LE=0;

j=9;

for(i=10;i>0;i--)

{

if(p_2==0&&j==3)break;//減到2時退出循環

p1=display[j--];

delay_long(16000,2);

if(sw==1)return;

}

}

p2=0x12;//南北黃燈閃爍三秒,以提醒行人注意

p3=0x12;

p1=display[3];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[2];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[1];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);//南北黃燈閃爍三秒完畢

}

voidmain()//主函數入口處

{

p0=0x01;

p1=0x00;

p2=0x00;

p3=0x00;//初始化各埠

{while(1)

{

if(sw==0)

{people_car_drive();}

else

{

p2=0x00;

p3=0x00;//關閉所有交通燈

}

}

}

}

詳情訪問:http://hi..com/hjiannew/

⑷ 循環流水燈電路原理

方法一:
NE555產生秒脈沖,74LS161作計數器,用75LS154解碼輸出顯示。
154的1~12輸出接LED(通過限流電阻共正),13輸出接161的清零端。
圖就不畫了。
方法二:
用一89c52最小系統。
方法一省心;方法二省錢。
當按下按鈕開關SB時,電容C1充電,繼電器KA1吸合,觸點KA1-2接通,所連燈組點亮,同時觸點KA1-1將電容C2接通電源,C2充電。當放開SB後,由於C1放電,使KA1仍保持吸合。過一段時間後,繼電器KA1觸點釋放,電容C2對KA2放電,致使KA2吸合,其觸點KA2-2接通,所連燈組點亮,同時觸點KA2-1將C3電容接通電源,C3充電。經過一段時間後,KA2釋放,電容C3又通過觸點KA2-1對KA3放電,使KA3吸合,觸點KA3-2接通,所連燈組點亮,同時觸點KA3-1又將電容C1接通電源,使C1充電。如此周而復始,三個繼電器輪流接通、釋放,三組燈泡輪流點亮、熄滅,就形成了流水式彩燈效果。通過調整C1~C3的數值,可改變三組彩燈的點亮時間。
流水彩燈電路工作原理圖解
另一種流水彩燈電路,電路採用晶體管多諧三態電路,電路驅動三個繼電器負載,繼電器的觸點分別控制三組彩燈。電路中晶體管VT1、VT3、VT5組成三相多諧振盪器,三隻晶體管輪流導通,經VT2、VT4、VT6管進行電流放大,驅動繼電器;繼電器KA1、KA2、KA3輪流吸合,它們的觸點作為三態彩燈鏈的轉換開關。繼電器線圈並聯的二極體VD1~VD3為線圈提供續流迴路,避免在VT2、VT4、VT6由導 通變為截止時,繼電器線圈產生感應電勢擊穿三極體。電路工 作電壓為9V。繼電器可選用JR-2型。

閱讀全文

與單片機循環燈電路圖相關的資料

熱點內容
面試程序員被問數學問題怎麼辦 瀏覽:91
背大學英語的app哪個最好 瀏覽:719
哪個app買的衣服好 瀏覽:467
天刀以前玩過的伺服器忘了怎麼辦 瀏覽:211
單片機基礎代碼解讀 瀏覽:233
廣東青少年編程學習 瀏覽:509
買男士香水去哪個app 瀏覽:548
androidsleep函數 瀏覽:151
android內核代碼下載 瀏覽:665
伺服器如何添加墨跡 瀏覽:747
diglinux安裝 瀏覽:279
虛擬機執行命令 瀏覽:444
cctv16奧林匹克頻道加密播出 瀏覽:899
c盤微信文件夾隱私 瀏覽:229
asp壓縮mdb 瀏覽:670
node開源論壇源碼 瀏覽:10
單片機比手機晶元還貴 瀏覽:35
java課表 瀏覽:557
如何在pdf裡面修改 瀏覽:931
橙光製作器檔案框在哪個文件夾 瀏覽:992