欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      基于AT89C51的交通燈控制系統(tǒng)設計范文合集

      時間:2019-05-15 11:39:31下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《基于AT89C51的交通燈控制系統(tǒng)設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《基于AT89C51的交通燈控制系統(tǒng)設計》。

      第一篇:基于AT89C51的交通燈控制系統(tǒng)設計

      基于AT89C51的交通燈控制系統(tǒng)

      作品設計、發(fā)明的目的和基本思路

      隨著我國經濟的高速發(fā)展,人們對各種交通車輛的需求量不斷增大,城市的交通擁護問題日益嚴重,目前,大部分城市的十字路口的交通控制燈,通常的做法是:事先經過車輛流量的調查,利用傳統(tǒng)的方法設計好紅綠燈的延時,然而,實際上的車流量是不斷變化的,有的路口在不同的時間段車流量的大小甚至有很大的差異,所以說,統(tǒng)計的方法己不能適應迅速發(fā)展的交通現(xiàn)狀。

      目前,國內的交通燈一般設在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據實際行車過程中出現(xiàn)的情況,還存在以下缺點:1.兩車道的車輛輪流放行時間相同且固定,在十字路口,經常一個車道為主干道,車輛較多,放行時間應該長些;另一車道為副干道,車輛較少,放行時間應該短些。2.沒有考慮緊急車通過時,兩車道應采取的措施,臂如,消防車執(zhí)行緊急任務通過時,兩車道的車都應停止,讓緊急車通過。

      本系統(tǒng)是以AT89C51單片機作為控制系統(tǒng)的核心,模擬定周期交通信號燈的工作狀態(tài)。并采用PROTEUS進行仿真,仿真結果滿足預期性能要求。

      設計內容和要求:

      利用AT89C51單片機設計一十字路口交通燈控制系統(tǒng)。

      1:系統(tǒng)由單片機系統(tǒng)、數碼管顯示、交通燈演示系統(tǒng)組成。2:具有人行道、左轉、右轉,以及基本的交通燈的功能。3:具有數碼管倒計時功能。

      4:要求甲乙車道的車輛交替運行,每次通行為60秒。為綠燈的車道先顯示40秒的直行,再顯示20秒的左行。

      5:要求黃燈先亮四秒,才能變換車道,黃燈亮時要求閃亮。

      硬件設計

      控制流程分析:

      (1)從十字路口交通燈示意圖1分析可知:東西、南北方向信號燈控制是中心對稱的,即無論是主干道還是支干道兩側系統(tǒng)對同方向的信號燈控制是同步的。

      (2)從示意圖分析可知,人行道各個方向,系統(tǒng)對兩側的信號燈的控制也是同步的,且人行道的紅綠燈變化和行車道的紅綠燈變化應該是一致的。

      (3)通過上面的分析,可以采用單片機的p0-p3口及r0到r7寄存器配合來實現(xiàn)控制發(fā)光二極管燈和數碼管。

      系統(tǒng)的硬件設計

      本系統(tǒng)選用通過P0到p3口 用做輸出顯示控制口。P0口用作輸出南北方向led數碼管字符編碼,P1口用作輸出東西方向led數碼管字符編碼。P2 口用于輸出東西、南北方面LED數碼管的位選信號,以及各個人行道發(fā)光二極管的控制信號的輸出。P3口用于輸出東西、南北方向信號燈控制信號。

      LED數碼管采用動態(tài)顯示方式實現(xiàn)倒計時讀秒,并且本系統(tǒng)的了led采用的是LED的共陽極接法,共陽極接法如圖2所示:

      共陽極7段LED顯示字型編碼表(表一):

      LED動態(tài)顯示,在多位LED顯示時,為了簡化電路,降低成本,將段選位并聯(lián)在一起,由一個八位的I/O口控制,而位選由另一個口控制,段選碼、位選碼每次送入后演示1ms,而人的視覺暫留時間為0.1s,所以在人看來數碼管一直亮著,從而在應用中通過動態(tài)掃描的方法顯示。

      交通燈的正常顯示

      交通燈系統(tǒng)的工作狀態(tài):

      上電后,南北方向數碼管顯示40,東西方向數碼管顯示60,南北方向的直行綠燈亮,車輛可以直行可以右行,人行紅燈亮行人不能通過;東西方向紅燈亮車輛不能通行,人行綠燈亮人可以通行。當南北數碼管顯示為4時,直行綠燈熄滅,黃燈閃爍4秒,然后南北數碼管顯示20,左轉綠燈亮車輛可以左行,人行燈和東西方向燈同上一狀態(tài),當數碼管減到四時南北黃燈閃爍4秒,然后紅燈亮,數碼管顯示60,南北車輛禁止通行,人行綠燈亮;南北數碼管顯示60的同時東西數碼管顯示40,直行綠燈亮,車輛可以直行可以右行,人行紅燈亮,當東西數碼管顯示為4時,直行綠燈熄滅,黃燈閃爍4秒,然后東西數碼管顯示20,左轉綠燈亮車輛可以左行,人行燈和南北方向燈同上一狀態(tài),當數碼管減到4時東西黃燈閃爍4秒,然后紅燈亮,東西數碼管顯示60,南北顯示40,隨后依次循環(huán)……

      交通燈原理圖:

      軟件設計:

      根據設計要求有匯編語言編寫的交通燈源程序如下: ORG 0000H;主函數地址 LJMP MAIN ORG 000BH;中斷定時器0地址 LJMP INTERPUT ORG 0030H;表的首地址 LJMP TABLE TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H MAIN: MOV P2, #00H;給P2口賦初值,讓數碼管剛開始都不亮 MOV R2, #60;給R2賦60,使東西的數碼管顯示初值為60 MOV R3, #40;給R3賦40,使南北的數碼管顯示初值為40 MOV P3, #0;使人形道的燈初始都不亮 MOV R5, #0;給R5,R6賦初值0 MOV R6, #0 MOV TMOD, #01H;定時器0工作方式1 MOV TH0, #79;給定時器賦初值 MOV TL0, #0AEH SETB EA

      ;允許總中斷 SETB ET0

      ;開啟定時器0中斷 SETB

      TR0

      ;開啟定時器計時

      L2: LCALL DISPLAY1

      ;顯示東西數碼管 LCALL DISPLAY2

      ;顯示南北數碼管 LCALL CHOOSE1

      ;調用東西判斷函數 LCALL CHOOSE2;調用南北判斷函數 SJMP

      L2;一直循環(huán)

      INTERPUT: MOV

      TH0, #22H;定時器中斷里重現(xiàn)給定時器0賦初值 MOV

      TL0, #0D8H MOV

      A,R4 INC

      R4

      ;定時器中斷一次50MS,中斷一次R4+1 CJNE

      A, #20,L3;判斷是不是加到20了,即定時器定時1S MOV R4, #0;R4加到20,則清0 DEC R3;要是定時1S到了,則把R2,和R3的值都減1 DEC R2 L3: RETI

      ;中斷退出 CHOOSE1:

      ;東西判斷函數 MOV A, R5;熱是一個標志 CJNE A, #1, K1;判斷R5是不是等于1,不等于1跳到K1 MOV A, R2

      ;要是標志位等于1 CJNE A, #4, K5;而且R2等于4,則開啟黃燈,關閉車道綠燈 SETB P3.2 CLR P3.3 K1: K7: K2:

      K6: SJMP K3 K5: JNC K3;要是R2小于4則閃爍綠燈 CPL P3.2 MOV A, R2 CJNE A, #0, K3;判斷R2是不是等于0,INC R5

      ;等于0則讓標志位+1 CLR P3.2;清黃燈,開車道的左行綠燈,置人行道紅燈 SETB P3.0 MOV R2, #20 SETB P2.6 CLR P2.7 SJMP K3 JNC K2

      ;CJNE這個指令比較好R5和1的值,要是R5大于1,則C=0,反之C=1,這里判斷C是否等于0,既判斷是否小于1,小于1執(zhí)行下行,大于1則跳轉K2 MOV A, R2 CJNE A, #60, K7;初值狀態(tài)R2是60,判斷R2是不是60,60的話開車道的紅燈,開人行道的綠燈 SETB P3.1 SETB P2.7 CLR P2.6 SJMP K3

      ;退出

      CJNE A, #0, K3;要是R2不等于60,判斷R2是不是等于0,等于0則把標志位R5加1,讓車道綠燈亮,紅燈滅,人行道紅燈亮 INC R5 CLR P3.1 SETB P3.3 MOV R2, #40;再給數碼管賦初值 CLR

      P2.7 SETB P2.6 SJMP K3

      ;退出 MOV A, R2;標志位R5大于1則跳到這里 CJNE A, #4, K6;判斷R2和4的值,等于4則開啟黃燈,關閉車道的綠燈,要是不等于是,則跳到K6 CLR P3.0 SETB P3.2 SJMP K3 JNC K3;判斷R2是不是小于4,小于4則閃爍黃燈,大于4則直接退出 CPL P3.2;取反 MOV A, R3 CJNE A, #0, K3;判斷R2是不是等于0 MOV R5, #0;等于0則清標志位,因為我們只設置了0.1.2這三個狀態(tài),到2了以后要清0,讓他重新開始循環(huán)

      MOV R2, #60;給R2賦初值,開車道紅燈,關車道左行綠燈,開人行道綠燈,關人行道紅燈 SETB P3.1 CLR P3.2 SETB P2.7 CLR P2.6 K3: RET CHOOSE2:

      ;南、北判斷函數,程序和東、西判斷一致,這里就不寫注釋了

      MOV A, R6 CJNE A, #1, H2 MOV CJNE SETB CLR SJMP H6: JNC CPL CJNE INC CLR SETB MOV SETB CLR SJMP H2: JNC MOV CJNE SETB SETB CLR SJMP H7: MOV CJNE SETB CLR

      SJMP H5: JNC CPL CJNE SETB CLR

      INC MOV SETB A, R3 A, #4, H6 P3.6 P3.4 H3 H3 P3.6 A, #0, H3 R6 P3.6 P3.5 R3, #60 P2.4 P2.5 H3 H4 A, R3 A, #40,H7 P3.7 P2.5 P2.4 H3 A, R3 A, #4, H5 P3.6 P3.7 H3 H3 P3.6 A, #0, H3 P3.4 P3.6 R6 R3, #20 P2.5 CLR P2.4 SJMP H3 H4: MOV A, R3 CJNE A, #0, H3 SETB P3.7 CLR P3.5 MOV R6, #0 MOV R3, #40 SETB P2.5 CLR P2.4 H3: RET DISPLAY1:

      ;顯示東西數碼管(動態(tài)顯示)

      MOV A, R2;將R2放到A中 MOV B, #10 DIV AB

      ;將2位的10進制數的十位和個位分開 MOV DPTR, #TABLE;取TABLE表的首地址給DPTR MOVC A, @A+DPTR;把表的第N個數據給A MOV P1, A

      ;把數據送到數碼管中 SETB P2.0

      ;顯示數碼管 LCALL DELAY

      ;延時 CLR P2.0

      ;把數碼管暗掉 MOV A ,B

      ;把個位給A MOVC A, @A+DPTR;把表的個位個數給A MOV P1, A

      ;把數據送到數碼管中 SETB

      P2.1

      ;顯示數據 LCALL DELAY

      ;延時 CLR P2.1

      ;讓數碼管暗掉 RET DISPLAY2:

      ;顯示南北數碼管(顯示函數和上面一樣,這里注釋就不寫了)

      MOV A, R3 MOV B, #10 DIV AB MOV DPTR, #TABLE MOVC A, @A+DPTR MOV P0, A SETB P2.2 LCALL DELAY CLR P2.2 MOV A, B MOVC A, @A+DPTR MOV P0, A SETB P2.3 LCALL DELAY CLR P2.3 RET DELAY:

      MOV R0, L1: MOV R1, DJNZ R1, DJNZ R0, RET END

      電路的仿真:;延時函數

      #20 #25 $ L1

      第二篇:基于單片機的交通燈控制系統(tǒng)設計

      P10P11P12P13設置鍵加鍵減鍵模式鍵P00P01P02P03P04P05P06U18765P134P123P112P101P1.7P1.6P1.5P1.4P1.3P1.2P1.1/T2EXP1.0/T2P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT0P3.1/TXDP3.0/RXDP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0******23222***373839P37P36P35P34P22P23P24D7D4P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P0098765432110KP27LED-REDD92H1HD1D6P25LED-YELLOWD11P26LED-YELLOWLED-GREENLED-REDC31uF313029EAALEPSEND12P26R0100RP1P25LED-GREENLED-GREENC120PF9RSTD5P00P01P02P03P04P05P06LED-YELLOWD3P27LED-REDX1C220PF12M19LED-REDLED-GREENLED-YELLOWP24P23P22XTAL1AT89C51Q1PNPQ2PNPQ3PNPQ4PNPP34P35657U2SCKSDAWP24C02CA0A1A2123R151R1HR251R2HR351R3HR451R4HP36P37P21P00P01P02P03P04P05P0651R51R51R51R2H1HR19R20R21P20R223H4HXTAL2P00P01P02P03P04P05P0618D2D10D83H4H

      #include

      //調用單片機頭文件

      #define uchar unsigned char

      //宏定義“uchar”代替“unsigned char”。#define uint unsigned int

      //宏定義“uint”用來定義無符號整型數。

      //數碼管段選定義 0

      7

      uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, //

      A B C

      D

      E

      F 不顯示

      0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//斷碼

      uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};uchar smg_i = 4;

      //顯示數碼管的個位數

      //數碼管位選定義

      sbit smg_we1 = P2^0;

      //數碼管位選定義 sbit smg_we2 = P2^1;sbit smg_we3 = P3^6;sbit smg_we4 = P3^7;

      char dx_s = 0;//東西

      南北 倒計時變量 sbit dx_red

      = P2^4;

      //東西紅燈 sbit dx_green = P2^3;//東西綠燈 sbit dx_yellow = P2^2;//東西黃燈

      sbit nb_red

      = P2^7;//南北紅燈 sbit nb_green = P2^6;//南北綠燈 sbit nb_yellow = P2^5;//南北黃燈

      sbit scl=P3^4;//寫24C02時鐘

      sbit sda=P3^5;//寫24C02數據

      uchar flag_jtd_mode;//交通燈的模式 根據時間

      bit flag_1s = 0;bit flag_500ms;bit flag_dx_nb;uchar flag_5m_value;uchar i;//東西南北模式

      uchar flag_alarm;//模式

      uchar dx_time = 30,nb_time = 20;

      //東西、南北的時間 uchar flag_jdgz;

      //交通管制

      //---延時函數---// void delay(){;;}

      void start()//起始信號 { sda=1;delay();scl=1;delay();sda=0;delay();}

      void stop()//停止信號 { sda=0;delay();scl=1;delay();sda=1;delay();}

      void respons()//應答信號 { uchar i;scl=1;delay();while((sda==1)&&(i<250))i++;scl=0;delay();}

      void init()//初始狀態(tài),24C02的數據和時鐘線都拉高 { sda=1;delay();scl=1;delay();}

      void writebyte(uchar date)//寫24C02 { uchar i,temp;temp=date;for(i=0;i<8;i++){

      temp=temp<<1;

      scl=0;

      delay();

      sda=CY;

      delay();

      scl=1;

      delay();} scl=0;delay();sda=1;delay();} uchar readbyte()//讀24C02 { uchar i,k;scl=0;delay();sda=1;delay();

      for(i=0;i<8;i++){

      scl=1;

      delay();

      k=(k<<1)|sda;

      scl=0;

      delay();} return k;}

      void writeadd(uchar address,uchar date)//寫24C02 {

      start();//起始信號

      writebyte(0xa0);//寫入器件地址寫 respons();

      writebyte(address);//寫入存儲單元地址 respons();

      writebyte(date);//寫入數據 respons();

      stop();//停止信號 }

      uchar readadd(uchar address)//讀24C02 { uchar date;

      start();//起始信號

      writebyte(0xa0);//寫入器件地址寫

      respons();

      writebyte(address);//寫入讀單元地址

      respons();

      }

      start();//起始信號

      writebyte(0xa1);//讀命令 respons();date=readbyte();//讀數據 stop();//停止信號 return date;/***********************數碼位選函數*****************************/ void smg_we_switch(uchar i){ switch(i){

      case 0: smg_we1 = 0;smg_we2 = 1;smg_we3 = 1;smg_we4 = 1;break;

      case 1: smg_we1 = 1;smg_we2 = 0;smg_we3 = 1;smg_we4 = 1;break;

      case 2: smg_we1 = 1;smg_we2 = 1;smg_we3 = 0;smg_we4 = 1;break;

      case 3: smg_we1 = 1;smg_we2 = 1;smg_we3 = 1;smg_we4 = 0;break;} }

      /******************************************************************** * 名稱 : delay_1ms()* 功能 : 延時1ms函數 * 輸入 : q * 輸出 : 無

      ***********************************************************************/ void delay_1ms(uint q){ uint i,j;for(i=0;i

      for(j=0;j<110;j++);}

      /******************************************************************** * 名稱 : display()* 功能 : 數碼管顯示 * 輸入 : 無 * 輸出 : 無 ***********************************************************************/ void display(){ uchar i;for(i=0;i

      P0 = 0xff;

      //消隱

      smg_we_switch(i);

      //位選

      P0 = dis_smg[i];

      //段選

      delay_1ms(3);} }

      /*********************定時器0、定時器1初始化******************/ void time0_init()

      { EA = 1;

      //開總中斷

      TMOD = 0X11;//定時器0、定時器1工作方式1 ET0 = 1;

      //開定時器0中斷

      TR0 = 1;

      //允許定時器0定時

      }

      /*********************交通燈處理函數*********************************/ void jiaotongdeng_dis(){

      char dx,nb;

      if(flag_dx_nb == 0){ dx=dx_s;nb=dx_s-5;if(nb<=0)nb=dx_s;}

      if(flag_dx_nb == 1){ dx=dx_s-5;nb=dx_s;if(dx<=0)dx=dx_s;}

      if(flag_1s == 1){ dx_s--;flag_1s = 0;

      if(dx_s == 0){

      if(flag_dx_nb == 1)

      dx_s = nb_time;

      //南北時間

      else

      dx_s = dx_time;

      //東西時間

      flag_dx_nb = ~flag_dx_nb;

      }

      }

      dis_smg[0] = smg_du[dx % 10];dis_smg[1] = smg_du[dx / 10];dis_smg[2] = smg_du[nb % 10];dis_smg[3] = smg_du[nb / 10];

      /***********************南北時間*********************************/

      if(flag_dx_nb == 0)

      {

      if(dx_s > 5)

      {

      dx_red

      = 1;//滅

      dx_green = 0;//亮

      dx_yellow = 1;//滅

      nb_red

      = 0;//亮

      nb_green = 1;//滅

      nb_yellow = 1;//滅

      flag_5m_value = 0;

      }else if(dx_s <= 5)

      //當小于5秒時

      黃燈要閃了

      {

      dx_red

      = 1;

      //滅

      }

      } dx_green = 1;

      //滅 nb_red

      = 0;

      //亮 nb_green = 1;

      //滅 nb_yellow = 1;

      //滅 if(flag_500ms == 0){ dx_yellow = 0;//亮

      } else { } dx_yellow = 1;//滅

      /***********************東西時間*********************************/

      if(flag_dx_nb == 1)

      {

      if(dx_s > 5)

      {

      dx_red

      = 0;

      //亮

      dx_green = 1;

      //滅

      dx_yellow = 1;

      //滅

      nb_red

      = 1;

      //滅

      nb_green = 0;

      //亮

      nb_yellow = 1;

      //滅

      flag_5m_value = 0;

      }else if(dx_s <= 5)

      //當小于5秒時

      黃燈要閃了

      {

      dx_red

      = 0;

      //滅

      dx_green = 1;

      //滅

      dx_yellow = 1;

      //滅

      nb_red

      = 1;

      //滅

      nb_green = 1;

      //滅

      if(flag_500ms == 0)

      //黃燈閃爍

      {

      }

      }

      } nb_yellow = 0;//亮 } else { nb_yellow = 1;//滅 }

      /********************獨立按鍵程序*****************/ uchar key_can;//按鍵值

      void key()//獨立按鍵程序 { static uchar key_new;key_can = 20;

      //按鍵值還原

      P1 |= 0x1f;

      if((P1 & 0x1f)!= 0x1f)//按鍵按下 { delay_1ms(1);

      //按鍵消抖動

      if(((P1 & 0x1f)!= 0x1f)&&(key_new == 1))

      {

      key_new = 0;switch(P1 & 0x1f){

      //確認是按鍵按下

      case 0x1e: key_can = 1;break;//得到按鍵值

      case 0x1d: key_can = 2;break;//得到按鍵值

      case 0x1b: key_can = 3;break;//得到按鍵值

      case 0x17: key_can = 4;break;//得到按鍵值

      }

      }

      } else

      key_new = 1;}

      uchar menu_1,flag_s;

      /********************設置函數*****************/ void key_with(){ if(key_can == 4)

      //交通管制按鍵

      {

      flag_jdgz ++;

      if(flag_jdgz > 5)

      flag_jdgz = 0;

      if(flag_jdgz == 1)// 全部亮紅燈

      {

      dx_red

      = 0;//亮

      dx_green = 1;//滅

      dx_yellow = 1;//滅

      } nb_red

      = 0;//亮

      nb_green = 1;//滅 nb_yellow = 1;//滅

      if(flag_jdgz == 2)// 東西紅燈

      南北綠燈

      {

      dx_red

      = 0;//亮

      dx_green = 1;//滅

      dx_yellow = 1;//滅

      nb_red

      = 1;//滅

      nb_green = 0;//亮

      nb_yellow = 1;//滅

      } if(flag_jdgz == 3)// 南北紅燈 {

      dx_red

      = 1;//滅

      dx_green = 0;//亮

      dx_yellow = 1;//滅

      nb_red

      = 0;//亮

      nb_green = 1;//滅

      nb_yellow = 1;//滅

      } if(flag_jdgz == 4)// 南北綠燈 {

      dx_red

      = 1;//滅

      dx_green = 0;//亮

      dx_yellow = 1;//滅

      nb_red

      = 1;//滅

      nb_green = 0;//亮

      nb_yellow = 1;//滅

      } if(flag_jdgz == 5)// 南北黃燈 {

      dx_red

      = 1;//滅

      dx_green = 1;//滅

      dx_yellow = 0;//亮

      nb_red

      = 1;//滅

      nb_green = 1;//滅

      nb_yellow = 0;//亮

      } } if(key_can == 1)

      //設置鍵 { menu_1 ++;

      東西綠燈 東西綠燈

      東西黃燈

      if(menu_1 >= 3){

      menu_1 = 0;} } if(menu_1 == 1)

      //設置東西的時間 { if(key_can == 2){

      dx_time ++;//加1

      if(dx_time > 99)

      dx_time = 99;} if(key_can == 3){

      dx_time--;//減1

      if(dx_time <= 10)

      dx_time = 10;} dis_smg[0] = smg_du[10];//顯示為A dis_smg[1] = smg_du[10];//顯示為A dis_smg[2] = smg_du[dx_time % 10];dis_smg[3] = smg_du[dx_time / 10];

      writeadd(4,dx_time);//保存數據

      } if(menu_1 == 2)

      //設置南北的時間 { if(key_can == 2){

      nb_time ++;//加1

      if(nb_time > 99)

      nb_time = 99;} if(key_can == 3){

      nb_time--;//減1

      //顯示東西設置的時候

      if(nb_time <= 10)

      nb_time = 10;} dis_smg[0] = smg_du[11];//顯示為B dis_smg[1] = smg_du[11];//顯示為B dis_smg[2] = smg_du[nb_time % 10];dis_smg[3] = smg_du[nb_time / 10];

      //顯示東西設置的時候

      writeadd(2,nb_time);//保存數據

      } }

      /******************************************************************** * 名稱 : main()* 功能 : 實現(xiàn)燈的閃爍 * 輸入 : 無 * 輸出 : 無

      ***********************************************************************/ void main(){ time0_init();

      init();//24C02初始化

      nb_time=readadd(2);//讀取地址2處一個字節(jié)給

      dx_time=readadd(4);//讀取地址4處一個字節(jié)給

      if(nb_time>99)nb_time=20;

      if(dx_time>99)dx_time=30;

      dx_s = nb_time;

      //東西時間

      while(1){

      key();

      if(key_can < 20)

      key_with();

      if((menu_1 == 0)&&(flag_jdgz == 0))

      } }

      jiaotongdeng_dis();display();/*********************定時器0中斷服務程序************************/ void time0_int()interrupt 1

      {

      } static uchar value;

      //定時10ms中斷一次 TH0 = 0x3c;TL0 = 0xb0;

      //50ms value ++;flag_5m_value++;if(flag_5m_value % 10 == 0)flag_500ms = ~flag_500ms;if(value >= 20){ value = 0;flag_1s = 1;}

      第三篇:基于單片機的交通燈控制系統(tǒng)設計

      基于單片機的交通燈控制系統(tǒng)設計

      摘要:十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠的就是交通信號燈的自動指揮系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機ATSC51和可編程并行I/O接口芯片8255A為中心器件來設計交通燈控制囂,實現(xiàn)了能根據實際車流量通過8051芯片的P1口設置紅、綠燈燃亮時間的功能;紅綠燈循環(huán)點亮。倒計時剩5秒時黃燈閃爍警示;車輛闖紅燈報警;綠燈時間可檢測車流量并可通過雙位數碼管顯示。本系統(tǒng)實用性強、操作簡單、擴展功能強。

      關鍵詞:單片機;交通燈

      單片機技術的發(fā)展對社會進步產生了巨大的影響。今天,單片機及其應用技術的發(fā)展速度、深度及其廣度,在國防、科學研究、政治經濟、教育文化等方面幾乎無所不及。將之用于交通燈控制系統(tǒng)設計,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。

      1、單片機涵義

      一臺能夠工作的計算機要有這樣幾個部份構成:CPU(進行運算、控制)、RAM(數據存儲)、ROM(程序存儲)、輸入,輸出設備(例如:串行口、并行輸出口等)。在個人計算機上這些部份被分成若干塊芯片,安裝一個稱之為主板的印刷線路板上。而在單片機中,這些部份,全部被做到一塊集成電路芯片中了,所以就際=缸單片(單芯片)機,單片機即微控制器(Microniroller μC)有一些單片機中除了上述部份外,還集成了其它部份如AID,DIA,定時計數器,RTC,各種串行接口等。

      2、MSC-51芯片簡介

      2.1 MSC-51結構

      8051是MCS-51系列單片機的典型產品,8051單片機包含中央處理器、程序存儲器(ROM)、數據存儲器(RAM)、定時,計數器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數據總線、地址總線和控制總線等三大總線。

      2.2 8255芯片簡介

      8255可編程并行接口芯片有三個輸入輸出端口,即A口、B口和c口,對應于引腳PAT—PA0、PB7-PB0和PC7-PC0。其內部還有一個控制寄存器,即控制口。通常A口、B口作為輸入輸出的數據端口。c口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個端口包含一個4位鎖存器。它們分別與端口A/B配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。

      8255有兩種控制命令字;一個是方式選擇控制字;另一個是c口按位置位/復位控制字。

      2.3 74LS373簡介

      SN74LS373。SN74LS374常用的8d鎖存器。常用作地址鎖存和I/0輸出,可以用74he373代換,74H373是高速CMOS器件,功能與74LS373相同,兩者可以互換。74LS373內有8個相同的D型(三態(tài)同相)鎖存器,由兩個控制端(11腳c或EN;1腳OUT、CONT、OE)控制。當OE接地時,若G為高電平,741Ls373接收由PPU輸出的地址信號;如果G為低電平,則將地址信號鎖存。

      3、系統(tǒng)硬件

      3.1 交通管理的方案論證 東西、南北兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行。綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮時間為東西、南北兩千道的公共停車時問。設東西道比南北道的車流量。

      3.2 系統(tǒng)硬件設計

      選用設備8031單片機一片選用設備:8031彈片機一片,8255并行通用接口芯片一片,74LS07兩片,MAX692‘看門狗’一片,共陰極的七段數碼管兩個雙向晶閘管若干,7805三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個。開關鍵盤、連線若干。

      4、控制器的軟件設計

      4.1 每秒鐘的設定

      延時方法可以有兩種:一種是利用NCS-51內部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。

      4.2 計數器硬件延時

      4.2.1 初值計算

      定時器工作時必須給計數器送計數器初值,這個值是送到TH和TL中的。他是以加法記數的,并能從全1到全0時自動產生溢出中斷請求。因此,我們可以把計數器記滿為零所需的計數值設定為c和計數初值設定為TC。

      4.2.2 1秒的方法

      我們采用在主程序中設定一個初值為20的軟件計數器和使TO定時5O毫秒,這樣每當TO到50毫秒時cPu就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,cPu先使軟件計數器減1,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時間顯示程序。

      4.3 計數器軟件延時

      MCS-51的工作頻率為2-12MHZ,我們選用的8031單片機的工作頻率為6MHZ。機器周期與主頻有關,機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數,這樣我們就可以通過指令的執(zhí)行條數來確定1秒的時間。

      4.4 時間及信號燈的顯示

      4.4.1 8051并行口的擴展

      8051雖然有4個8位I/0端口,但真正能提供借用的只有Pl口。因為P2和P0口通常用于傳送外部傳送地址和數據,P3口也有它的第二功能。因此,8031通常需要擴展。由于我們用外部輸入設定紅綠燈倒計時初值、數碼管的輸出顯示、紅綠黃信號燈的顯示都要用到一個I/0端口,顯然8031的端口是不夠,需要擴展。

      擴展的方法有兩種:(1)借用外部RAM地址來擴展I/0端口;(2)采用I/0接口新片來擴充。我們用8255并行接口信片來擴展I/0端口。

      4.4.2 8255與8051的連接

      用8051的PO口的pO.7連接8255的片選信號,我們用8031的地址采用全譯碼方式,當pO.7:0時片選有效,其他無效,pO.1用于選擇8255端口。

      5、結 論

      本系統(tǒng)就是充分利用了8051和8255芯片的I/O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機Intel8051和可編程并行I/0接口芯片8255A為中心器件來設計交通燈控制器,實現(xiàn)了能根據實際車流量通過8031芯片的Pl口設置紅、綠燈燃亮時間的功能;紅綠燈循環(huán)點亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過PA口輸出,顯示時間直接通過8255的PC口輸出至雙位數碼管);車輛闖紅燈報警;綠燈時間可檢測車流量并可通過雙位數碼管顯示。

      參考文獻:

      [1]張毅剛,新編MCS-51單片機應用系統(tǒng)設計[M]哈爾濱:哈爾濱工業(yè)大學出版社,2006

      [2]王義軍,單片機原理及應用習題與實驗指導書[M],北京:中國電力出版社,2006

      [3]陳明熒8051單片機課程設計實訓教材[M],北京:清華大學出版社。2004

      第四篇:單片機:交通燈控制系統(tǒng)設計

      交通燈控制系統(tǒng)設計

      摘要:本系統(tǒng)由單片機系統(tǒng)、鍵盤、LED 顯示、交通燈演示系統(tǒng)組成。系統(tǒng)包括人行道、左轉、右轉、以及基本的交通燈的功能。系統(tǒng)除基本交通燈功能外,還具有倒計時、時間設置、緊急情況處理、分時段調整信號燈的點亮時間以及根據具體情況手動控制等功能。關鍵詞:AT89S51,交通規(guī)則

      一、方案比較、設計與論證 1 電源提供方案

      為使模塊穩(wěn)定工作,須有可靠電源。我們考慮了兩種電源方案

      方案一:采用獨立的穩(wěn)壓電源。此方案的優(yōu)點是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點是各模塊都采用獨立電源,會使系統(tǒng)復雜,且可能影響電路電平。方案二:采用單片機控制模塊提供電源。改方案的優(yōu)點是系統(tǒng)簡明扼要,節(jié)約成本;缺點是輸出功率不高。綜上所述,我們選擇第二種方案。2 顯示界面方案

      該系統(tǒng)要求完成倒計時、狀態(tài)燈等功能?;谏鲜鲈颍覀兛紤]了三種方案: 方案一:完全采用數碼管顯示。這種方案只顯示有限的符號和數碼字苻,無法勝任題目要求。

      方案二:完全采用點陣式LED 顯示。這種方案實現(xiàn)復雜,且須完成大量的軟件工作;但功能強大,可方便的顯示各種英文字符,漢字,圖形等。

      方案三:采用數碼管與點陣LED 相結合的方法因為設計既要求倒計時數字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實情況,用數碼管與LED燈分別顯示時間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實現(xiàn)的復雜度。權衡利弊,第三種方案可互補一二方案的優(yōu)缺,我們決定采用方案三以實現(xiàn)系統(tǒng)的顯示功能。3 輸入方案:

      題目要求系統(tǒng)能手動設燈亮時間、緊急情況處理,我們討論了兩種方案: 方案一:采用8155擴展I/O 口及鍵盤,顯示等。該方案的優(yōu)點是:

      使用靈活可編程,并且有RAM,及計數器。若用該方案,可提供較多I/O 口,但操作起來稍顯復雜。

      方案二: 直接在IO口線上接上按鍵開關。因為設計時精簡和優(yōu)化了電路,所以剩余的口資源還比較多,我們使用四個按鍵,分別是K1、K2、K3、K4。由于該系統(tǒng)對于交通燈及數碼管的控制,只用單片機本身的I/O 口就可實現(xiàn),且本身的計數器及RAM已經夠用,故選擇方案二。

      二、理論分析與計算

      1.交通燈顯示時序的理論分析與計算

      對于一個交通路口來說,能在最短的時間內達到最大的車流量,就算是達到了最佳的性能,我們稱在單位時間內多能達到的最大車流為車流量,用公式:車流量= 車流 / 時間 來表示。

      先設定一些標號如圖2-1 所示。

      說明:此圖為直方圖,上邊為北路口燈,右邊為東路口燈,下邊為南路口燈,左邊為西 路口燈。

      圖2-2 所示為一種紅綠燈規(guī)則的狀態(tài)圖,分別設定為S1、S2、S3、S4,交通燈以這四 的狀態(tài)為一個周期,循環(huán)執(zhí)行(見圖2-3)。

      請注意圖2-1b和圖2-1d,它們在一個時間段中四個方向都可以通車,這種狀態(tài)能在

      一定的時間內達到較大的車流量,效率特別高。

      依據上述的車輛行駛的狀態(tài)圖,可以列出各個路口燈的邏輯表,由于相向的燈的狀態(tài)圖

      是一樣的,所以只需寫出相鄰路口的燈的邏輯表;根據圖2-3 可以看出,相鄰路口的燈它

      們的狀態(tài)在相位上相差180°。因此最終只需寫出一組S1、S2、S3、S4的邏輯狀態(tài)表。

      如表2-1 所示。

      表中的“×”代表是紅燈亮(也代表邏輯上的0),“√”是代表綠燈亮(也代表邏輯上 的1),依上表,就可以向相應的端口送邏輯值。2.交通燈顯示時間的理論分析與計算

      東西和南北方向的放行時間的長短是依據路口的各個方向平時的車流量來設定,并且

      S1、S2、S3、S4各個狀態(tài)保持的時間之有嚴格的對應關系,其公式如下所示。T-S1+T-S2=T-S3 T-S2=T-S4 T-S1=T-S3 我們可以依據上述的標準來改變車輛的放行時間。按照一般的規(guī)則,一個十字路口可分

      為主干道和次干道,主干道的放行時間大于次干道的放行時間,我們設定值時也應以此為參 考。

      三、電路圖及設計文件 1.燈控制電路設計

      由于32個LED 來實現(xiàn)紅綠燈狀態(tài),若直接接在單片機的口線,路口倒計時的顯示就不

      能實現(xiàn),所以本次設計中采用一種新型的電路如圖3-1 所示。

      圖中74LS04的作用是倒相和驅動,它輸出的電流大約48mA,實際測試發(fā)現(xiàn)足以滿足要

      求,而且發(fā)光管也能達到足夠的亮度。

      觀察圖可以看出:兩組發(fā)光管(一組紅、一組綠)由于反相器的作用,其邏輯狀態(tài)恰恰 相反。

      圖中和電阻串聯(lián)的二極管的作用是為了分壓,防止因上下兩組發(fā)光管分壓不同導致邏輯 的錯誤。

      共四組和上述相同的電路分別代表東西南北四個方向的紅綠燈,使用兩片74LS04 作為 驅動。

      2.倒計時顯示電路設計

      前面已經分析過相向的燈的狀態(tài)和倒計時都是相同的,所以為了節(jié)省,采用兩組四個數碼管

      作為倒計時的顯示;同時為了節(jié)省口資源,采用串口顯示的方式驅動數碼管。見圖3-2 所 示。

      四、程序設計思路與流程圖 1.主程序流程圖

      主程序中主要是一個死循環(huán),不停的循環(huán)四個狀態(tài),如圖4-1 所示。

      2.按鍵子程序流程圖

      它包含倒計時調整和緊急狀態(tài)兩個狀態(tài)。

      主程序中放了一個按鍵的判斷指令,當有按鍵按下的時候,程序就自動的跳轉到按鍵子

      程序處理。當檢測到K2鍵按下的時候就自動返回到主程序。當出現(xiàn)緊急的情況的時候,按下K3或者K4 就切換到緊急狀態(tài),當緊急事件處理完畢 的時候,按下K2,就可以返回正常狀態(tài)。

      五、測試、數據及結果分析 1.狀態(tài)燈顯示測試

      當電路連接完畢后,將寫好的測試程序刷寫到芯片內,K1 和K2分別給端口送高電平和

      低電平,通電即可檢測。2.數碼管的測試

      將串口的和電路板上的接口連接,將寫好的測試程序刷寫到芯片內,開電源即可測試。

      3.整體電路測試

      系統(tǒng)上電,刷寫好程序即可開始測試,觀測一個周期(共計S1~S4四個狀態(tài),默認140 秒)燈的顯示狀態(tài)是否正常,同時觀察倒計的計數是否正常。

      六、總結

      由于使用的是單片機作為核心的控制元件,使得電路的可靠性比較高,功能也比較強大,而且可以隨時的更新系統(tǒng),進行不同狀態(tài)的組合。

      但是在我們設計和調試的過程中,也發(fā)現(xiàn)了一些問題,譬如紅燈和綠燈的切換還不夠迅

      速,紅綠燈規(guī)則不效率還不是很高等等,這需要在實踐中進一步完善。附錄 系統(tǒng)總體電路圖

      1.滿足南北向紅綠燈亮,東西向紅燈亮,占25秒——南北向黃燈亮,東西向紅燈亮,占5秒——南北向紅燈亮,東西向綠燈亮,占25秒——南北向紅燈亮,東西向黃燈亮,占5秒。如此循環(huán),周而復始。2.十字路口要有數字顯示,提示行人把握時間:當某方向綠燈亮時,置顯示器為24,然后以每秒減1計數方式工作,直到減為0,綠燈滅,黃燈亮。黃燈滅,紅燈亮時,再次置顯示器為29,并開始減計數,直到為0,十字路口紅綠燈交換,完成一次工作循環(huán)。

      3.可手動調整和自動調整,夜間為黃燈閃耀。下面是一個單片機交通燈程序 /*

      ****************************************************************************************** * *

      * Keil C 89S51 交通信號控制程序 * *(C)版權所有 Dai_Weis@hotmail.com * * *

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

      #include “reg51.h” #define UINT unsigned int #define ULONG unsigned long #define UCHAR unsigned char /*

      信號燈變量

      南北方向綠燈

      sbit n_bike_g = P1^0;//自行車

      sbit n_right_g = P1^1;//右轉

      sbit n_up_g = P1^2;//直行

      sbit n_left_g = P1^3;//左轉 調頭

      南北方向紅燈

      sbit n_bike_r = P1^4;//自行車

      sbit n_right_r = P1^5;//右轉

      sbit n_up_r = P1^6;//直行

      sbit n_left_r = P1^7;//左轉 調頭 南北方向黃燈

      sbit n_bike_y = P3^0;//自行車

      sbit n_right_y = P3^1;//右轉

      sbit n_up_y = P3^2;//直行

      sbit n_left_y = P3^3;//左轉 調頭

      東西方向綠燈

      sbit e_bike_g = P2^0;//自行車

      sbit e_right_g = P2^1;//右轉

      sbit e_up_g = P2^2;//直行

      東西方向紅燈

      sbit e_bike_r = P2^4;//自行車

      sbit e_right_r = P2^5;//右轉

      sbit e_up_r = P2^6;//直行

      東西方向黃燈

      sbit e_bike_y = P3^4;//自行車

      sbit e_right_y = P3^5;//右轉

      sbit e_up_y = P3^6;//直行

      */ //延時

      void delay(UINT t, UINT s){ while(t){ UINT i;

      for(i = 0;i < s;i++){ } t--;} }

      //信號燈狀態(tài)

      void time_x(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3){

      P1 = P_P1;P2 = P_P2;P3 = P_P3;delay(150, 65535);}

      void time_s(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3, UCHAR P_P11, UCHAR P_P22){ UINT i;

      for(i = 0;i < 3;i ++){

      P1 = P_P1;P2 = P_P2;delay(5, 65535);P1 = P_P11;P2 = P_P22;delay(5, 65535);}

      P1 = P_P1;P2 = P_P2;P3 = P_P3;delay(10, 65535);} //主程序

      void main(){

      P1 = P2 = P3 = 0x0;while(1){

      time_x(0xA5, 0x38, 0x0);

      time_s(0xA4, 0x38, 0x1, 0xA5, 0x38);time_x(0x96, 0x52, 0x0);

      time_s(0x92, 0x52, 0x4, 0x96, 0x52);time_x(0x5A, 0x52, 0x0);

      time_s(0x50, 0x50, 0x2A, 0x5A, 0x52);time_x(0xF0, 0x25, 0x0);

      time_s(0xF0, 0x24, 0x20, 0xF0, 0x25);time_x(0xD2, 0x16, 0x0);

      time_s(0xD0, 0x10, 0x62, 0xD2, 0x16);} }

      給你一個定時控制的信號系統(tǒng),我只做的簡單的測試,至于延時我用的軟件,你自己想辦法。^_^

      Dai_Weis 于 2005-5-4 13:43:23 重新給你說明

      /*

      *********************************************************************************** * *

      * Keil C AT89S51 交通信號控制程序 * *(C)版權所有 Dai_Weis@hotmail.com * * *

      *********************************************************************************** 開發(fā)說明:

      固定時間信號變換,南北設置調頭、左傳、直行、右轉、自行車。

      東西設置左傳、直行、右轉、自行車。

      時序狀態(tài):

      紅 綠 紅 綠

      序號 左 前 右 自 左 前 右 自 前 右 自 前 右 自1 0 1 0 0 1 0 1 1 1 1 0 0 0 2 1 0 0 1 0 1 1 0 1 0 1 0 1 0 3 0 1 0 1 1 0 1 0 1 0 1 0 1 0 4 1 1 1 1 0 0 0 0 0 1 0 1 0 1 5 1 1 0 1 0 0 1 0 0 0 1 1 1 0 */

      另外修正個錯誤

      while(1){

      time_x(0xA5, 0x70, 0x0);time_s(0xA4, 0x70, 0x1, 0xA5, 0x70);

      材料: 1、89S51 11.0592M 晶振

      1K電阻、10UF電容

      12個燈,紅、黃、綠各四個,12個1K電阻

      ,十字路口嘛。蜂鳴器一個。

      按鍵一個,按鍵復位

      采用AT89s51型號的單片機,由于交通十字路口的對稱性,所以一個引腳可以同時控制兩個燈,將發(fā)光二極管分別接到P1各個引腳,在其中加入一個時振蕩當電路,來控制時間,在P3.0引腳接入蜂鳴器只黃燈亮的時候發(fā)出聲響,這里我們讓每次黃燈亮的時候發(fā)出六聲響,通過C程序的控制就可以實現(xiàn),每次循環(huán)是10秒。2、9cm*15cm萬用板 1片 單片機及IC座 1套 12M晶振 1只 22P電容 2只 10uF電容 1只 10K電阻 1只 1K排阻 1只 兩位一體數碼管 2只 DC座 1只 自鎖開關 1只

      發(fā)光二極管紅綠黃

      各4只 按鍵 7只 USB電源線 1條 導線

      若干

      1、基于51系列單片機(型號:STC89C52、AT89C51/C52、AT89S51/S52,隨機選擇,如有特

      殊要求請與店主討論)設計實現(xiàn)。(以上幾種單片機全部為51系列單片機,除了名字不一樣外,功能及應用完全一樣,互相

      兼容)

      2、兩個兩位一體數碼管顯示東西、南北方向時間。

      3、四方向各有紅綠黃三顆燈。

      4、七個按鍵操作,分別是:禁止通行、東西通行、南北通行、時間加、時間減、切換方向、確認。

      第五篇:畢業(yè)論文---智能交通燈控制系統(tǒng)設計

      目 錄

      摘 要...........................................................2 第一章 概述.....................................................3 1.1交通燈的發(fā)展及現(xiàn)狀...........................................3 1.2 單片機說明.................................................3 第二章 智能交通燈的設計原理.....................................6 2.1 智能交通燈的設計框圖........................................6 2.2智能交通燈的設計方案及改進措施...............................6 第三章 智能交通燈電路設計.......................................6 3.1控制器的系統(tǒng)框圖.............................................7 3.2智能交通燈控制系統(tǒng)電路圖.....................錯誤!未定義書簽。3.3工作原理....................................................8 第四章 智能交通燈軟件系統(tǒng)設計..................................14 4.1 智能交通燈的軟件設計流程圖.................................14 4.2 程序源代碼.................................................14 第五章 智能交通燈方案的仿真....................................14 小結...........................................................18 致謝詞.........................................................18 參考文獻.......................................................18 附 錄..........................................................21 附錄A:智能交通燈控制程序:....................................21

      摘 要

      本文介紹的是一個基于PROTEUS的智能交通燈控制系統(tǒng)的設計與仿真,系統(tǒng)根據交通十字路口雙車道車流量的情況控制交通信號燈按特定的規(guī)律變化。

      本文首先對智能交通燈的研究意義和智能交通燈的研究現(xiàn)狀進行了分析,指出了現(xiàn)狀交通燈存在的缺點,并提出了改進方法。智能交通燈控制系統(tǒng)通常要實現(xiàn)自動控制和在緊急情況下能夠手動切換信號燈讓特殊車輛優(yōu)先通行。本文還對AT89C51單片機的結構特點和重要引腳功能進行了介紹,同時對智能交通燈控制系統(tǒng)的設計進行了詳細的分析。最后利用PROTEUS軟件,通過其平臺對交通燈控制系統(tǒng)進行了仿真,仿真結果表明系統(tǒng)工作性能良好。

      關 鍵 詞:PROTEUS、AT89C51單片機、智能交通燈;

      第一章 概述

      1.1交通燈的發(fā)展及現(xiàn)狀

      中國車輛數量不斷增加,交通管制的工作量越來越大,利用計算機代替人進行高效交通管理是必然的發(fā)展趨勢,而讓計算機控制的交通燈擁有類似人類的感知智能,具有很強的現(xiàn)實意義,比如通過攝像機讓交通燈控制系統(tǒng)獲得視覺感知功能,就可以代替人類的眼睛,使系統(tǒng)根據所“看到”交通情況自適應改變管制策略,提高了交通管理的自動化水平,使得交通更高效、更順暢。

      目前設計交通燈的方案有很多,有應用CPLD設計實現(xiàn)交通信號燈控制器方法;有應用PLC實現(xiàn)對交通燈控制系統(tǒng)的設計;有應用單片機實現(xiàn)對交通信號燈設計的方法。目前,國內的交通燈一般設在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個倒計時的顯示計時器來控制行車。對于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據實際行車過程中出現(xiàn)的情況,還存在以下缺點:1.兩車道的車輛輪流放行時間相同且固定,在十字路口,經常一個車道為主干道,車輛較多,放行時間應該長些;另一車道為副干道,車輛較少,放行時間應該短些。2.沒有考慮緊急車通過時,兩車道應采取的措施,臂如,消防車執(zhí)行緊急任務通過時,兩車道的車都應停止,讓緊急車通過。

      1.2 單片機說明

      按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C51單片機是美國ATMEL公司生產的低電壓、高性能CMOS 8位單片機,具有豐富的內部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數器、5個向量兩級中斷結構、2個全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此,本流水燈實際上就是一個帶有八個發(fā)光二極管的單片機最小應用系統(tǒng),即為由發(fā)光二極管、晶振、復位、電源等電路和必要的軟件組成的單個單片機。

      1.2.1 AT89C51單片機硬件結構

      AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的單片機芯片,它采用靜態(tài)CMOS 工藝制造8位微處理器,最高工作頻率位24MHZ。AT89C5外形及引腳排列如圖1所示:

      圖1

      1.2.2管腳說明

      RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。

      P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。

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

      P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。

      P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。

      ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。

      PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN有效。但在訪問外部數據存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。

      EA/VPP:當EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,EA將內部鎖定為RESET;當EA端保持高電平時,此間內部程序存儲器。

      XTAL1和XTAL2:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。

      第二章 智能交通燈的設計原理

      2.1 智能交通燈的設計框圖

      2.2智能交通燈的設計方案及改進措施

      交通燈系統(tǒng)由四部分組成:車檢測電路,信號燈電路,時間顯示電路,緊急轉換開關。

      針對道路交通擁擠,交叉路口經常出現(xiàn)擁堵的情況利用單片機控制技術提出了軟件和硬件設計方案及兩點改進措施。

      1、根據各道路路口車流量的大小自動調節(jié)通行時間。

      2、考慮特殊車輛通行情況,設計緊急切換開關。

      AT89S51單片機有2計數器,6個中斷源,能滿足系統(tǒng)的設計要求。用其設計的交通燈也滿足了要求,所以本文采用單片機設計交通燈。

      第三章 智能交通燈電路設計

      根據設計任務和要求,可畫出該控制器的原理框圖, 為確保十字路口的交通安全,往往都采用交通燈自動控制系統(tǒng)來控制交通信號。其中紅燈(R)亮,表示禁止通行;黃燈(Y)亮表示暫停;綠燈(G)亮表示允許通行。

      3.1控制器的系統(tǒng)框圖如圖3所示

      圖3

      3.2智能交通燈控制系統(tǒng)電路圖 智能交通燈電路圖如圖4所示:

      圖4

      交通燈系統(tǒng)由四部分組成:車檢測電路,信號燈電路,時間顯示電路,緊急轉換開關。

      3.3工作原理

      綠燈的放行時間與車輛通過數量不成正比。比如說20秒內每車道可以通過20輛車,40秒內每車道卻可以通過45輛車。因為這有一個起步的問題,還有一個黃燈等待問題。也就是說,綠燈放行時間越長,單位時間通過車輛的數量就越多。我們來計算一下,每車道通行20秒內可以通過20輛車,一個紅綠燈循環(huán)是40秒(單交叉路口),加上每次狀態(tài)轉換的黃燈5秒(一個循環(huán)要兩次轉換),即一個紅綠黃燈循環(huán)要50秒,即50秒內通行的車輛為40輛。通過一輛車的平均時間是1.25秒。如果每次車輛通行的時間改為40秒,40秒內每車道可以通過45輛,一個紅綠燈循環(huán)是80秒(單交叉路口),加上每次狀態(tài)轉換的黃燈5秒(一個循環(huán)要兩次轉換),即一個紅綠黃燈循環(huán)要90秒,即90秒內通行的車輛為90輛。通過一輛車的平均時間只需1秒。顯然在車輛擁擠的情況下綠燈的通行時間越長,單位時間內通行的車輛越多,可以有效緩解車輛擁堵問題。我設定了綠燈通行時間的上限為40秒。在非擁擠時段綠燈的通行時間的下限為20秒,當交叉路口雙方車輛較少時通行時間設為20秒,這樣可以大大縮短車輛在紅燈面前的等待時間。當交叉路口雙方車輛較多時通行時間設為40秒。3.3.1車檢測電路

      用來判斷各方向車輛狀況,比如:20秒內可以通過的車輛為20輛,當20秒內南往北方向車輛通過車輛達不到20輛時,判斷該方向為少車,當20秒內北往南方向車輛通過車輛也達不到20輛時,判斷該方向也為少車,下一次通行仍為20秒,當20秒時間內南往北或北往南任意一個方向通過的車輛達20輛時證明該狀態(tài)車輛較多,下一次該方向綠燈放行時間改為40秒,當40秒內通過的車輛數達45輛時車輛判斷為擁擠,下一次綠燈放行時間改仍為40秒,當40秒車輛上通過車輛達不到45輛時,判斷為少車,下次綠燈放行時間改為20秒,依此類推。綠燈下限時間為20秒,上限值為40秒,初始時間為20秒。這樣檢測,某次可能不準確,但下次肯定能彌補回來,累積計算是很準確的,這就是人們常說的“模糊控制”。因為路上的車不可能突然增多,塞車都有一個累積過程。這樣控制可以把不斷增多的車輛一步一步消化,雖然最后由于每個路口的綠燈放行時間延長而使等候的時間變長,但比塞車等候的時間短得多。本系統(tǒng)的特點是成本低,控制準確。十字路口車輛通行順序如圖5所示:

      圖5十字路口車輛通行順序

      由于南往北,北往南時間顯示相同,所以只要一個方向多車,下次時間就要加長東往西,西往東也一樣,顯示時間選擇如表1。

      表1 顯示時間選擇

      車輛情況

      本次該方向通行時間 20秒 20秒 20秒 20秒 20秒 20秒 20秒 20秒

      下次該方向通行時間 20秒 40秒 40秒 40秒 20秒 40秒 40秒 40秒

      本次該方向通行時

      間 40秒 40秒 40秒 40秒 40秒 40秒 40秒 40秒

      本次該方向通行時間 20秒 40秒 40秒 40秒 20秒 40秒 40秒 40秒 南往北少車,北往南少車

      南往北少車,北往南多車

      南往北多車,北往南少車

      南往北多車,北往南多車

      東往西少車,西往東少車

      東往西少車,西往東多車

      東往西多車,西往東少車

      東往西多車,西往東多車

      3.3.2信號燈電路

      信號燈用來顯示車輛通行狀況,下面以一個十字路口為例,說明一個交通燈的四種狀態(tài)見圖6。每個路口的信號的的轉換順序為:綠—>黃—>紅 綠燈表示允許通行,黃燈表示禁止通行,但已經駛過安全線的車輛可以繼續(xù)通行,是綠燈過渡到紅燈提示燈。紅燈表示禁止通行。綠燈的最短時間為20秒,最長時間為40秒,紅紅最短時間為25秒,最長時間為45秒,黃燈時間為5秒。

      圖6交通信號燈運行狀態(tài)

      3.3.3時間顯示電路

      在交通信號燈的正上方安裝一個可以顯示綠燈通行時間,紅燈等待時間的顯示電路,采用數碼管顯示電路是一種很好的方法。由于東往西方向和西往東方向顯示的時間相同,南往北方向和北往南方向顯示的時間也相同,所以只需要考慮四位數碼管顯示電路,其中東西方向兩位,南北方向兩位,兩位數碼管可以時間的時間為0-99秒完全可以滿足系統(tǒng)的要求,數碼管連接方法如圖7所示。

      圖7 數碼管連接方法

      下面我們用這種方法顯示交通燈的時間,南北方向要顯示20秒,東西方向要顯示25秒,那么我們先給P0口送2的共陰極碼即5BH,讓第一位2要顯示的 位碼GND段為低電平,其它三位的控制端都接高電平,那么第一位就顯示2,其它三位不亮。讓其顯示1MS后再給P0口送0的共陰極碼即3FH,讓第二位要顯示0的位碼GND段為低電平,其它三位的控制端都接高電平,那么第二位就顯示0,其它三位不亮。依此類推分別送完第一位2,第二位0,第三位2,第四位5,每一位點亮1MS一個掃描周期為4MS,一秒時間就要掃描250次其程序如下: MOV R6,#250;顯掃描次數 LOOP:

      MOV P0,#5BH;送2的共陰極碼 CLR P2.0;第一位顯示2 ACALL D1MS;延時1MS SETB P2.0;滅第一位

      MOV P0,#3FH;送0的共陰極碼 CLR P2.1;第二位顯示0 ACALL D1MS;延時1MS SETB P2.1;滅第二位

      MOV P0,#5BH;送2的共陰極碼 CLR P2.2;第三位顯示2 ACALL D1MS;延時1MS SETB P2.2;滅第三位

      MOV P0,#6DH;送5的共陰極碼 CLR P2.3;第四位顯示5 ACALL D1MS;延時1MS SETB P2.3;滅第四位

      DJNZ R7,LOOP;不夠一秒,繼續(xù)掃描 NEXTNUMBER;到一秒顯示下一個數 D1MS:;1MS延時程序

      STAT1:MOV R4,#2 MOV R3,#250 DJNZ R3,$ DJNZ R4,STAT1 RET

      3.3.4緊急轉換開關電路

      一般情況下交通燈按照車流量大小合理分配通行時間,按一定規(guī)律變化,但考慮緊急車通行車況,設計緊急通行開關,下面簡述單片機的中斷原理。

      1、Mcs—51的中斷源

      8051有5個中斷源,它們是兩個外中斷INT0(P3.2)和INT1(P3.3)、兩個片內定時/計數器溢出中斷TF0和TF1,一個是片內串行口中斷TI或RI,這幾個中斷源由TCON和SCON兩個特殊功能寄存器進行控制,其中5個中斷源的程序 11 入口地址如表2所示:

      表2 中斷源程序入口 中斷源的服務程序入口地址 中斷源 外中斷0 定時/計數器0 外中斷1 定時/計數器0 串行口中斷

      2、中斷的處理流程

      CPU響應中斷請求后,就立即轉入執(zhí)行中斷服務程序。不同的中斷源、不同的中斷要求可能有不同的中斷處理方法,但它們的處理流程一般都如下所述:

      1)現(xiàn)場保護和現(xiàn)場恢復:

      中斷是在執(zhí)行其它任務的過程中轉去執(zhí)行臨時的任務,為了在執(zhí)行完中斷服務程序后,回頭執(zhí)行原先的程序時,知道程序原來在何處打斷的,各有關寄存器的內容如何,就必須在轉入執(zhí)行中斷服務程序前,將這些內容和狀態(tài)進行備份——即保護現(xiàn)場。中斷開始前需將有關寄存器的內容壓入堆棧進行保存,以便在恢復原來程序時使用。中斷服務程序完成后,繼續(xù)執(zhí)行原先的程序,就需把保存的現(xiàn)場內容從堆棧中彈出,恢復積存器和存儲單元的原有內容,這就是現(xiàn)場恢復。如果在執(zhí)行中斷服務時不是按上述方法進行現(xiàn)場保護和恢復現(xiàn)場,就會是程序運行紊亂,單片機不能正常工作。

      2)中斷打開和中斷關閉:

      在中斷處理進行過程中,可能又有新的中斷請求到來,這里規(guī)定,現(xiàn)場保護和現(xiàn)場恢復的操作是不允許打擾的,否則保護和恢復的過程就可能使數據出錯,為此在進行現(xiàn)場保護和現(xiàn)場恢復的過程中,必須關閉總中斷,屏蔽其它所有的中斷,待這個操作完成后再打開總中斷,以便實現(xiàn)中斷嵌套。

      3)中斷服務程序:

      既然有中斷產生,就必然有其具體的需執(zhí)行的任務,中斷服務程序就是執(zhí)行中斷處理的具體內容,一般以子程序的形式出現(xiàn),所有的中斷都要轉去執(zhí)行中斷服務程序,進行中斷服務。

      4)中斷返回:

      入口地址 0003H 000BH 0013H 001BH 0023H 執(zhí)行完中斷服務程序后,必然要返回,中斷返回就是被程序運行從中斷服務程序轉回到原工作程序上來。在MCS-51單片機中,中斷返回是通過一條專門的指令實現(xiàn)的,自然這條指令是中斷服務程序的最后一條指令。

      5)交通燈中的中斷處理流程:(1)現(xiàn)場保護和現(xiàn)場恢復:

      有特殊車輛要通過時就要進行中斷,在中斷之前,先將交通燈中斷前情況保護好,當中斷執(zhí)行后再恢復現(xiàn)場,包括信號燈和時間顯示電路。

      (2)中斷打開和中斷關閉:

      為了使特殊車輛通行按一下打開中斷開關就可以打開中斷,關閉中斷開關就關閉中斷。

      (3)中斷服務程序:

      有中斷產生,就必然有其具體的需執(zhí)行的任務,中斷服務程序就是執(zhí)行中斷處理的具體內容:即如果南北方向有特殊車輛要求通過,南北方向轉換為綠燈,東西方向為紅燈;如果東西方向有特殊車輛要求通過,東西方向轉換為綠燈,南北方向為紅燈。

      (4)中斷返回:

      執(zhí)行完中斷服務程序后,必然要返回,即回交通燈信號回到中斷前狀態(tài),顯示時間也和中斷前一樣。

      第四章 智能交通燈軟件系統(tǒng)設計

      4.1 智能交通燈的軟件設計流程圖

      智能交通燈的軟件設計流程圖如圖8所示:

      圖8交通燈的軟件設計流程圖

      4.2 程序源代碼

      見附錄

      第五章 智能交通燈方案的仿真

      PROTEUS嵌入式系統(tǒng)仿真軟件在設計時已經注意到和單片機各種編譯程序的整合了,如它可以和Keil ,Wave6000等編譯模擬軟件結合使用。由于Wave6000使用方便,具備強大的軟件仿真和硬件仿真功能。把Proteus和Wave6000結合起來調試硬件就方便多了,這里就是采用“Proteus+Wave6000”的仿真方法,具體步驟如下:

      1)首先運行PROTEUS VSM 的ISIS,選擇Source→Define Code Generation Tool 菜單項,將出現(xiàn)如圖8所示定義代碼生成工具對話框。

      圖9 定義代碼生成工具對話框

      在Tool下拉列表框中選擇代碼生成工具,在這一示例中,電路中的微處理器為8051系列單片機,因此選擇ASEM51, 單擊Browse按鈕,選取Wave6000的安裝路徑。單擊OK按鈕,結束代碼生成工具的定義。

      選擇Source→Add/Remove Source File 菜單項,將出現(xiàn)Add/Remove Source Code Files對話框,如圖10所示:

      圖10添加/刪除源文件對話框

      2)在Code Generation Tool 選項區(qū),單擊下三角按鈕,選擇ASEM51工具 單擊New按鈕,將出現(xiàn)如圖11所示對話框。

      圖11 創(chuàng)建源代碼對話框

      選擇用Wave6000創(chuàng)建好的AA.ASM文件,即完成了文件的創(chuàng)建。就這樣當用Wave6000對AA.ASM 文件進行更改時每一次運行PROTEUS VSM 的ISIS對電路進行仿真時Wave6000都會對AA.ASM進行編譯,AA.HEX文件也會隨時更新。

      電路圖繪制完成后, 再添加AT89C51 的應用程序。將鼠標移至AT89C51 上, 單擊鼠標右鍵使之處于選中狀態(tài), 在該器件上單擊左鍵, 打開如圖12所示的對話框。在 Program File 欄添加編譯好的十六進制格式的程序文件AA.hex(可以接受3 種格式的文件),給AT89C51輸入晶振頻率,此處默認為12MHZ,單擊OK 按鈕完成程序添加工作, 下面就可以進行系統(tǒng)仿真了。單擊主界面下方的按鈕開始系統(tǒng)仿真。PROTEUS VSM 所進行的是一種交互式仿真, 在仿真進行中可以對各控制按鈕、開關等進行操作, 系統(tǒng)對輸入的響應會被真實的反映出來如圖13。

      圖12 AT89C51添加程序文件

      圖13 交通燈仿真界面

      在畢業(yè)設計的整個過程中,我深切地體會到:實踐是理論運用的最好檢驗。畢業(yè)設計是對我們3年所學知識的一次綜合性測試和考驗,無論是在動手能力方面還是理論知識的運用能力方面,都使得我有了很大的提高。

      經過總結和分析,我意識到在設計程序之前,對所用單片機的內部結構有一個系統(tǒng)的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設計課程過程中遇到問題是很正常,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。本次畢業(yè)設計為我的大學生活畫上了圓滿的句號,為我即將的工作和生活奠定了堅實的基礎。

      致謝詞

      在整個畢業(yè)設計中,我得到了學校電子實驗室的大力支持,為我提供了各種所需的儀器設備。感謝學校為我們安排了本次畢業(yè)設計,讓我們的理論知識和實際操作經驗更加緊密的結合了在一起;同時又拓展了我們的知識面。同時十分感激夏老師對我的悉心指導和幫助,使我能夠順利的完成此次畢業(yè)設計。此次畢業(yè)設計讓我從中受益匪淺,最后再次感謝老師對我的培養(yǎng)和教育!

      參考文獻

      [1] 徐愛鈞 《智能化測量控制儀表原理與設計》(第二版)[M].北京:北京航空航天大學出版社,2004年;

      [2] 吳金戌、沈慶陽、郭庭吉 《8051單片機實踐與應用》[M].北京:清華大學出版社,2002年;

      [3] 謝自美 《電子線路設計·實驗·測試》(第三版)[M].武漢:華中科技大學出版社,2006年;

      [4] 謝維成、楊加國 主編 《單片機原理與應用及C51程序設計》[M].北京:清華大學出版社,2006年;

      [5] 楊立、鄧振杰、荊淑霞 《微型計算機原理與接口技術》[M].中國鐵道出版社,2006年;

      [6] 黃智偉 《全國大學生電子設計競賽技能訓練》 [M].北京:北京航空航天大學出版社,2007年 [7] 高峰,《單片微型計算機與接口技術》[M].北京:科學出版社,2003; [8] 華成英、童詩白 主編,《模擬電子技術基礎》(第四版)[M].高等教育出版社,2006年.[9] 黃海萍、陳用昌 編 《微機原理與接口技術實驗指導》[M].北京:國防工業(yè)出版社,2004年

      [10] 黃智偉: 《凌陽單片機設計指導》,北京: 北京航空航天大學出版社,2007年

      附 錄

      附錄A:智能交通燈控制程序:

      ORG 0000H A_BIT EQU 20H;用于存放南北十位數 B_BIT EQU 21H;用于存放南北十位數 C_BIT EQU 22H;用于存放東西十位數 D_BIT EQU 23H;用于存放東西位數

      TEMP1 EQU 24H;用于存放第一二南北狀態(tài)要顯示的時間 TEMP2 EQU 25H;用于存放第一二東西狀態(tài)要顯示的時間 TEMP3 EQU 26H;用于存放第三第四南北狀態(tài)要顯示的時間 TEMP4 EQU 27H;用于存放第三第四南北狀態(tài)要顯示的時間 LJMP MAIN ORG 0003H;外部中斷0入口 LJMP INT0;跳轉到外部0中斷 ORG 0013H;外部中斷1入口 LJMP INT1;跳轉到外部1中斷 INT0: MOV A,P1;外部0中斷 PUSH ACC MOV A,P2;中斷保護 PUSH ACC MOV P1,#0FFH;清除先前狀態(tài) MOV P2,#0FFH CLR P1.0 CLR P1.4;南北通行,東西禁止通行 CLR P1.6 CLR P2.3 JNB P3.2 ,$;判斷是否還在中斷狀態(tài) POP ACC MOV P2,A;返回中斷前狀態(tài) POP ACC MOV P1,ACC RETI;中斷返回 INT1:MOV A,P1;外部1中斷 PUSH ACC;中斷保護 MOV A,P2 PUSH ACC MOV P1,#0FFH;清除先前狀態(tài) MOV P2,#0FFH CLR P1.2 CLR P2.1 CLR P1.3;東西通行,南北禁止通行 CLR P1.5 JNB P3.3 ,$;判斷是否還在中斷狀態(tài) POP ACC MOV P2,A;返回中斷前狀態(tài) POP ACC MOV P1,A RETI;中斷返回 MAIN: ORG 0100H;初始情況 MOV P1,#0FFH MOV P2,#0FFH;滅所有燈

      MOV TMOD,#55H;計數方式方式1 MOV IE,#85H;開中斷 MOV TEMP1,#20;MOV TEMP2,#25 MOV TEMP3,#25 MOV TEMP4,#20 STAR: MOV P1,#0FFH MOV P2,#0FFH;滅所有燈 MOV A,24H;將顯示時間送A CJNE A,#20,T40T;判斷時間,選初始值

      T20T:;南北通行要顯示的時間為20的計數器初始值 CLR TF0;清TF0 CLR TF1;清TF1 MOV TH1 ,#0FFH;送20秒時的初始值

      MOV TL1 ,#0FCH;在些設計20秒6輛為多車 MOV TH0 ,#0FFH MOV TL0 ,#0FCH LJMP TEMP20;跳到20秒

      T40T:;南北通行要顯示的時間為40的計數器初始值 CLR TF0;清TF0 CLR TF1;清TF1 MOV TH1,#0FFH;送40秒時的初始值

      MOV TL1 ,#0F8H;在些設計40秒8輛為多車 MOV TH0 ,#0FFH MOV TL0 ,#0F8H LJMP TEMP40;跳到40秒 TEMP20:;TEMP1=20情況 SETB TR0;開始計數 SETB TR1 CLR P1.2 CLR P2.1;南北通行,東西禁止通行 CLR P1.3 CLR P1.5 MOV TEMP1,#20;南北要顯示的時間,MOV TEMP2,#25;東西要顯示的時間 STLOP: ACALL DISPLAY1;調用顯示

      DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR2;若顯示時間為 0跳到第二狀態(tài) NEXT: LJMP STLOP STAR2:;狀態(tài)1 SETB P1.2 CLR P1.1;南北黃燈,東西禁止通行 SETB P1.3 CLR P1.4 MOV TEMP1,#05;南北要顯示的時間,MOV TEMP2,#05;東西要顯示的時間,STLOP2: ACALL DISPLAY1;調用顯示

      DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT2;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T40;判斷南北是否多車 JB TF0 ,T40;判斷北南是否多車

      MOV TEMP1,#20;少車下次顯示時間為20秒 LJMP STAR3;跳到狀態(tài)3 T40: MOV TEMP1,#40;多車下次顯示時間為40秒 LJMP STAR3;若顯示時間為 0跳到第三狀態(tài) NEXT2:LJMP STLOP2 TEMP40:;TEM=40 程序 SETB TR0;開始計數 SETB TR1 CLR P1.2 CLR P2.1;南北通行,東西禁止通行 CLR P1.3 CLR P1.5 MOV TEMP1,#40;南北要顯示的時間,MOV TEMP2,#45;東西要顯示的時間 STLOP11: ACALL DISPLAY1;調用顯示

      DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT11;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR22;若顯示時間為 0跳到第二狀態(tài) NEXT11: LJMP STLOP11 STAR22:;狀態(tài)1 SETB P1.2 CLR P1.1;南北黃燈,東西禁止通行 SETB P1.3 CLR P1.4 MOV TEMP1,#05;南北要顯示的時間,MOV TEMP2,#05;東西要顯示的時間,STLOP22: ACALL DISPLAY1;調用顯示

      DEC TEMP1;時間夠一秒顯示時間減1 DEC TEMP2 MOV A,TEMP1 CJNE A,#0,NEXT22;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T401;判斷是否多車 JB TF0 ,T401 MOV TEMP1,#20;少車下次顯示時間為20秒 LJMP STAR3 T401:MOV TEMP1,#40;多車下次顯示時間為40秒 LJMP STAR3;若顯示時間為 0跳到第三狀態(tài) NEXT22:LJMP STLOP22 STAR3: MOV A,26H CJNE A,#25,T40T1;判斷時間,選初始值

      T20T1:;南北通行要顯示的時間為20的計數器初始值 CLR TF0;清溢出位 CLR TF1 MOV TH1 ,#0FFH;給初值 MOV TL1 ,#0FCH MOV TH0 ,#0FFH MOV TL0 ,#0FCH LJMP TEMP320 T40T1:;南北通行要顯示的時間為40的計數器初始值 CLR TF0;CLR TF1 MOV TH1,#0FFH;給初值 MOV TL1 ,#0F8H MOV TH0 ,#0FFH MOV TL0 ,#0F8H LJMP TEMP340 TEMP320:;狀態(tài)三

      SETB TR1;南北停止計數 SETB TR0;東西開始計數

      SETB P1.1;東西通行,南北禁止通行 CLR P1.0 SETB P1.1 CLR P1.0 SETB P1.5 CLR P1.6 SETB P2.1 CLR P2.3 MOV TEMP3,#25;南北要顯示的時間,MOV TEMP4,#20;東西要顯示的時間,STLOP33: ACALL DISPLAY;調用顯示

      DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT33;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR34;若顯示時間為 0跳到第四狀態(tài) NEXT33:LJMP STLOP33 STAR34:;狀態(tài)四 SETB P2.3 CLR P2.2 SETB P1.6;東西黃燈,南北禁止通行 CLR P1.5 MOV TEMP3,#05;南北要顯示的時間,MOV TEMP4,#05;東西要顯示的時間,STLOP34: ACALL DISPLAY;調用顯示

      DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT34;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T402 JB TF0 ,T402 MOV TEMP3,#25 LJMP STAR T402: MOV TEMP3,#45 LJMP STAR NEXT34: LJMP STLOP34 TEMP340 : SETB TR1;南北停止計數 SETB TR0;東西開始計數

      SETB P1.1;東西通行,南北禁止通行 CLR P1.0 SETB P1.1 CLR P1.0 SETB P1.5 CLR P1.6 SETB P2.1 CLR P2.3 MOV TEMP3,#45;南北要顯示的時間,MOV TEMP4,#40;東西要顯示的時間,STLOP43: ACALL DISPLAY;調用顯示

      DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP4 CJNE A,#0,NEXT43;若顯示時間不為0保持現(xiàn)在狀態(tài) LJMP STAR44;若顯示時間為 0跳到第四狀態(tài) NEXT43:LJMP STLOP43 STAR44:;狀態(tài)四 SETB P2.3 CLR P2.2 SETB P1.6;東西黃燈,南北禁止通行 CLR P1.5 MOV TEMP3,#05;南北要顯示的時間,MOV TEMP4,#05;東西要顯示的時間,STLOP44: ACALL DISPLAY;調用顯示

      DEC TEMP3;時間夠一秒顯示時間減1 DEC TEMP4 MOV A,TEMP3 CJNE A,#0,NEXT44;若顯示時間不為0保持現(xiàn)在狀態(tài) JB TF1 ,T403 JB TF0 ,T403 MOV TEMP3,#25 LJMP STAR T403: MOV TEMP3,#45 LJMP STAR NEXT44: LJMP STLOP44;顯示 DISPLAY1: MOV A,TEMP1;將南北要顯示的數存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數B MOV B_BIT,A;將A放到20H MOV A_BIT,B;將B放到21H MOV A,TEMP2;將東西要顯示的數存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數B MOV C_BIT,A;將A放到22H MOV D_BIT,B;將B放到23H MOV DPTR ,#NUMT;MOV R0,#2;R0=2 DPL11: MOV R1,#250;R1=250 DPLOP1: MOV A,A_BIT;將南北要顯示的10位數送A MOVC A,@A+DPTR;查表

      MOV P0,A;顯示南北10位數 CLR P2.7 ACALL D1MS;延時1MS SETB P2.7;滅南北10位數

      MOV A,B_BIT;將南北要顯示的個位數送A MOVC A,@A+DPTR;查表

      MOV P0,A;顯示南北個位數 CLR P2.6 ACALL D1MS;延時1MS SETB P2.6;滅南北個位數

      MOV A,C_BIT;將東西要顯示的10位數送A MOVC A,@A+DPTR;查表

      MOV P0,A;顯示東西10位數 CLR P2.5 ACALL D1MS;延時1MS SETB P2.5;滅東西10位數

      MOV A,D_BIT;將東西要顯示的個位數送A MOVC A,@A+DPTR;查表

      MOV P0,A;顯示東西東西位數 CLR P2.4 ACALL D1MS;延時1MS SETB P2.4;滅東西個位數 DJNZ R1,DPLOP;循環(huán)掃描 DJNZ R0,DPL1 RET;;等待1秒返回 顯示 DISPLAY: MOV A,TEMP3;將南北要顯示的數存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數B MOV B_BIT,A;將A放到20H MOV A_BIT,B;將B放到21H MOV A,TEMP4;將東西要顯示的數存放到A MOV B,#10;B=10 DIV AB;A除以B商存A,余數B MOV C_BIT,A;將A放到22H MOV D_BIT,B;將B放到23H MOV DPTR ,#NUMT;MOV R0,#2;R0=2 DPL1: MOV R1,#250;R1=250 DPLOP: MOV A,A_BIT;將南北要顯示的10位數送A MOVC A,@A+DPTR;查表 MOV P0,A;顯示南北10位數 CLR P2.7 ACALL D1MS;延時1MS SETB P2.7;滅南北10位數

      MOV A,B_BIT;將南北要顯示的個位數送A MOVC A,@A+DPTR;查表

      MOV P0,A;顯示南北個位數 CLR P2.6 ACALL D1MS;延時1MS SETB P2.6;滅南北個位數

      MOV A,C_BIT;將東西要顯示的10位數送A MOVC A,@A+DPTR;查表

      MOV P0,A;顯示東西10位數 CLR P2.5 ACALL D1MS;延時1MS SETB P2.5;滅東西10位數

      MOV A,D_BIT;將東西要顯示的個位數送A MOVC A,@A+DPTR;查表

      MOV P0,A;顯示東西東西位數 CLR P2.4 ACALL D1MS;延時1MS SETB P2.4;滅東西個位數 DJNZ R1,DPLOP;循環(huán)掃描 DJNZ R0,DPL1 RET;等待1秒返回

      D1MS: MOV R7,#250;1MS延時程序 DJNZ R7,$ RET;

      1到10對應電路圖數碼管表

      NUMT: DB 7EH,48H,67H,6BH,59H DB 3BH,3FH,68H,7FH,7BH

      中英文摘要---目錄---引言----研究現(xiàn)狀---背景----思路---整體原理---部分電路介紹--程序介紹----總結---------------謝詞==參考文獻===附件 可以聯(lián)系我,有程序。仿真,原理圖,等

      .南北方向綠燈和東西方向綠燈不能同時亮,如果同時亮,則立刻關閉信號燈系統(tǒng),并報警。同理,東西向綠燈與南北向轉彎燈也不能同時亮。

      2.南北及南北轉彎紅燈亮并保持40秒,同時東西綠燈亮,但只保持35秒,到35秒時東西綠燈閃3次(每周期為1秒)后熄滅,繼而東西黃燈亮,并保持2秒,到2秒后,東西黃燈滅,東西紅燈亮,同時南北紅燈熄滅和南北綠燈亮;南北轉彎紅燈繼續(xù)亮著。

      3.東西及南北轉彎紅燈亮并保持30秒,同時南北綠燈亮,但只保持25秒,到25秒時南北綠燈閃亮3次(每周期1秒)后熄滅,繼而南北黃燈亮,并保持2秒,到2秒后,南北黃燈滅,南北紅燈亮,同時南北向轉彎紅燈滅,綠燈亮。

      4.南北向轉彎綠燈亮25秒,同時南北向和東西向紅燈亮并保持25秒,待南北向轉彎綠燈亮25秒后,紅燈亮起,東西向紅燈滅,綠燈亮,并保持35秒,南北向紅燈繼續(xù)亮著,后接2.中繼續(xù)循環(huán)。

      5.各燈能手動控制也能自動轉換,并且能周而復始的進行工作。緒論

      1.1 道路交通控制的發(fā)展背景

      隨著經濟發(fā)展,城市化速度加快,機動車輛占有量急劇增加,由此引發(fā)出日益嚴重的交通問題:交通擁擠甚至堵塞,交通事故頻繁,空氣和噪聲污染嚴重,公共運輸系統(tǒng)效率下降等。解決這一問題通常有兩種辦法,一種是修路造橋,這對道路交通狀況的改善是一種最直接的辦法,但它需要巨額的投資,且在城市中心區(qū)受拆遷的限制,很難實施.另一種是在現(xiàn)有的道路交通條件下,實施交通控制和管理,充分發(fā)揮現(xiàn)有道路的通行能力,大量事實已經證明這種方法的有效性。

      通常,一個經驗豐富的交通警察能在極短的時間內把一個交叉路口的交通阻塞緩解或解除,但他的作用范圍往往局限于單個交叉路口。而現(xiàn)代的道路交通非常復雜,常常是幾個或幾十個甚至是成百上千個路口互相關聯(lián),在這種情況下,任何一個經驗豐富的交通警察都無能為力了.因此,人們越來越關注把先進的科學技術用于交通管理,從而促進了交通自動控制技術的不斷發(fā)展。

      1.2 道路交通控制的目的和作用

      道路交通控制的目的可定義為:在確定的行政規(guī)定約束下,采用合適的營運 方法來確保公共和私人運輸方式具有最佳的交通運行狀態(tài)。圍繞這一目的研制出的道路交通控制系統(tǒng),把受控對象看成一個整體,采用對交通流科學地時間分割的方法,最大限度地保證交通流運動的連續(xù)性,使受控區(qū)域的交通流減少沖突,同時平穩(wěn)地、有規(guī)則地運動。道路交通控制的作用主要表現(xiàn)為以下幾個方面:

      (1)改善交通秩序,增加交通安全。

      (2)減少交通延誤,提高經濟效益。

      (3)降低污染程度,保護生態(tài)環(huán)境。(4)節(jié)省能源和土地消耗。

      1.3 我國城市交通特點分析

      人、車、路是構成城市交通的三大要素,要探討我國城市交通特點,必須從分析這三大要素的基本特點著手。

      1.3.1 人的交通素質

      人是交通的主體,與世界發(fā)達國家相比,我國人的社會交通意識還沒有真正形成,少數領導部門交通觀念淡薄,對城市交通建設在國民經濟建設中的重要性認識不足,交通政策時有失誤。機動車駕駛員文化水平低,又缺乏系統(tǒng)訓練,尤其缺乏心理素質,感知能力和判斷能力的培養(yǎng),因而,對人,車的運動特征不能很好掌握。行人與非機動車駕駛員普遍不懂,甚至漠視交通法規(guī)。交通管理人員交通工程和心理學知識貧乏,感知,分析交通信息和處理特發(fā)性事件的能力不強??偟膩砜?,我國人的交通素質距離現(xiàn)代化城市交通要求還相差甚遠,而交通與人密切相關,城市交通中出現(xiàn)的問題幾乎都離不開人的因素,因此,想方設法提高全社會的文化素質,健全交通法規(guī),加強交通宣傳教育,增強人的社會交通意識,培養(yǎng)良好的交通習慣,使參與交通的每個人都認識到交通的重要性,自覺順應交通規(guī)律,是建立我國城市交通控制系統(tǒng),使之有效運行的前提條件。

      1.3.2 城市道路狀況

      路是交通的物質基礎,有路才能通車,行人。我國是一個文明古國,許多城市已有上千年的歷史,城市布局和道路結構是在漫長的歷史進程中逐步形成的,近幾年雖然作了些改建和擴建,但畢竟還難以沖破原來的基本格局。我國城市道路普遍存在的弊端是:

      (1)路網密度低

      (2)交通干道少

      (3)路口平面交叉

      1.3.3 我國城市交通的特殊性

      道路狀況與車輛狀況的綜合作用形成了我國城市交通的特殊性,主要表現(xiàn)是:

      城市路網稀,干道少,間距大,市區(qū)人口稠密,出行需求集中,迫使車輛集中于少數干道上行駛。至于中小城市,干道特征更為明顯,往往只有一兩條干道貫穿全市,而其他支路上交通量極小。從流量變化情況來看,除外圍過境干道外,都是有一定規(guī)律的,高峰小時基本上都集中在幾個時段內。

      我國城市機動車車種繁雜,從50年代的老式車到80年代的新型車,從大貨車到小轎車 30 都在一個平面上行駛,不少城市拖拉機還是一種主要運輸工具,前面一輛舊車擋道,尾隨的新型車只能跟著爬行,過交叉口時經常出現(xiàn)啟動慢的車擋住啟動快的車,使交通工程師精心設計的交通配時方案不能很好發(fā)揮效益。

      1.4 我國城市交通控制策略探討

      本著不盲目照搬現(xiàn)成系統(tǒng)的經驗,或一味追求控制策略與原理的新穎性,而是根據我國城市交通的實際情況,從簡從易,逐步完善的原則,我國城市交通控制策略宜采?。?/p>

      (1)根據干道特征明顯的特點,系統(tǒng)以線控制為主。

      (2)根據干線上交通流有規(guī)律可循的特點,系統(tǒng)以定時控制為主。

      (3)根據車種混雜和路網稀,路口間距相差懸殊,難以建立精確交通預測模型的特點,系統(tǒng)應加強路口應變能力,強化感應控制功能。

      (4)根據機非混合交通特點,系統(tǒng)要處理好自行車交通,常用的方法有: 1)實現(xiàn)自行車與機動車的分離

      自行車與機動車的突出矛盾在于混行,要在我國現(xiàn)有道路基礎上,開辟出規(guī)模龐大的自行車道路網是不現(xiàn)實的,但各城市確有許多小街小巷可利用,對它們進行合理規(guī)劃,造成自行車專用道,消除或減少自行車與機動車的相互干擾是可能的。

      2)增設左轉相位

      對機動車干擾最大的是 左 轉自行車,在自行車高峰時,對左 轉自行車流較大的路口增設 左 轉相位,時間不需很長便可利用自行車啟動,疏散快的特點,使左轉自行車基本通過。

      3)控制信號分時使用

      自行車與機動車高峰出現(xiàn)時間是交錯的,在自行車高峰期間,自行車是構成交通流的主體,系統(tǒng)進行信號配時優(yōu)化時,可優(yōu)先考慮自行車。

      (5)可能的系統(tǒng)結構

      確定系統(tǒng)的硬件結構主要是依據系統(tǒng)控制策略要求,系統(tǒng)成本分析和城市的財政承受能力,同時也要受到系統(tǒng)管理維護人員技術水平的制約??v合考慮,我國城市采用兩級控制結構為宜,即由中心計算機和終端——交通信號控制器組成,信號配時方案存于終端中,終端將處理好的檢測器數據和交叉口工作狀態(tài)數據定時傳送至中心計算機,中心計算機經優(yōu)化計算后給出下一個配時方案指令,由交通信號控制器執(zhí)行。這種結構形式的突出優(yōu)點是:

      1)減少數據傳輸量,控制中心與終端間只需低容量傳輸系統(tǒng)即可有效地進行數據通信。

      2)主要控制和處理功能由終端——交通信號控制器完成,大大減輕了中心計算機的負擔,只要配置功能稍強的微機系統(tǒng)即可建成一個相當規(guī)模的控制系統(tǒng)。

      按上述設想建立起來的將是一個旨在解決機非混合交通問題,以線控制為主,方案選擇型實時自適應城市交通控制系統(tǒng)。

      (6)可能出現(xiàn)的動向

      1)系統(tǒng)功能的縮小

      我國建制市370多個,絕大多數還難以投入足夠的資金建立一個功能齊備的控制系統(tǒng),從幾個引進系統(tǒng)的實施情況來看,并不需要,實際上也沒有用到這些系統(tǒng)的全部功能,因此,系統(tǒng)發(fā)展的一個可能趨勢是系統(tǒng)功能的縮小,國外也提出了基本系統(tǒng)的概念,基本系統(tǒng)不以交通應答作為基本設計依據,只是按照一天內劃分的時段或根據控制中心的人工干預執(zhí)行簡單的時間表,因而不需車輛檢測器和大量的數據處理。功能縮小后的系統(tǒng)不需配置動態(tài)地圖顯示板等外圍設備,便于控制中心主機微機化,耗資少,使用方便,對我國大中城市有很吸引力。

      2)交通信號控制器微機化、系列化

      我國有2000多個縣,每個縣都有幾個城鎮(zhèn),計算機區(qū)域控制目前對這些小城市來說是不現(xiàn)實的,以微機為基礎的交通信號控制器功能靈活,便于實現(xiàn)無電纜協(xié)調控制,必將成為小城市交通控制的主體。大中小城市對信號控制器的使用要求不同,對交通信號控制器的微機化,系列化勢在必行。

      本論文正是以此為出發(fā)點,對單片機控制的交通信號燈模型作了較詳盡的介紹。

      下載基于AT89C51的交通燈控制系統(tǒng)設計范文合集word格式文檔
      下載基于AT89C51的交通燈控制系統(tǒng)設計范文合集.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現(xiàn)有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯(lián)系你,一經查實,本站將立刻刪除涉嫌侵權內容。

      相關范文推薦

        智能交通燈控制系統(tǒng)設計文獻綜述

        石河子大學信息科學與技術學院 畢業(yè)設計(論文)文獻綜述 課題名稱: 智能交通燈控制系統(tǒng)設計 學生姓名: 學 號: 學 院: 信息科學與技術學院 專業(yè)年級: 電子信息工程 指導教師: 職......

        基于單片機的交通燈控制系統(tǒng)

        單片機原理及系統(tǒng)課程設計報告基于單片機的交通燈控制系統(tǒng) 1 引言 單片機是一種集成電路芯片,是采用超大規(guī)模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、......

        智能交通燈控制系統(tǒng) 畢業(yè)設計總結

        無錫職業(yè)技術學院 畢業(yè)設計總結 畢業(yè)設計總結 本次畢業(yè)設計,我的指導老師是李麗老師,首先,我們進行總體規(guī)劃,包括控制系統(tǒng)組成、控制系統(tǒng)工作過程、控制系統(tǒng)功能、控制系統(tǒng)技術......

        基于FPGA的交通燈控制系統(tǒng)

        基于FPGA的交通燈控制系統(tǒng) 摘 要:針對現(xiàn)實中越來越嚴重的城市交通擁堵現(xiàn)象,提出了一種城市十字路口 交通信號燈控制與FPGA實現(xiàn)的新方法。利用超高速硬件描述語言VHDL設計十字......

        基于單片機的交通燈控制系統(tǒng)設計與實現(xiàn)

        基于單片機的交通燈控制系統(tǒng)設計與實現(xiàn) 目的:本文以AT89S51 單片機為核心器件,設計了多功能交通燈控制系統(tǒng)。 軟件仿真和硬件實現(xiàn)的結果表明該系統(tǒng)具有紅綠燈顯示功能、時間......

        基于WSN的智能交通燈控制系統(tǒng)設計概要

        收稿日期:2009-06-16 作者簡介:田豐(1958—,男,遼寧沈陽人,工學博士,教授,碩士生導師,主要研究方向為計算機測控技術、無線傳感器網絡等;杜富瑞(1981—,男,山東濱州人,碩士......

        單片機控制的交通燈控制系統(tǒng)設計[5篇范文]

        摘要 本設計是單片機控制的交通燈控制系統(tǒng)設計。由單片機系統(tǒng)、LED顯示、交通燈演示系統(tǒng)、鍵盤電路及其控制電路組成。該系統(tǒng)除基本交通燈功能外,還具有倒計時、緊急情況處理......

        基于AT89S51單片機多功能交通燈控制系統(tǒng)設計下載

        交通燈控制系統(tǒng)設計 摘要:本系統(tǒng)由單片機系統(tǒng)、鍵盤、LED 顯示、交通燈演示系統(tǒng)組成。系統(tǒng)包括人行道、左轉、右轉、以及基本的交通燈的功能。系統(tǒng)除基本交通燈功能外,還具有......