0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STC89C52單片機(jī)的智能交通燈設(shè)計(jì)

精通單片機(jī)與嵌入式 ? 來(lái)源:精通單片機(jī)與嵌入式 ? 2023-09-04 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

功能

1、本設(shè)計(jì)基于STC89C51/52(與AT89S51/52、AT89C51/52通用,可任選)單片機(jī)

2、數(shù)碼管倒計(jì)時(shí)顯示時(shí)間。

3、東西和南北方向各有兩個(gè)數(shù)碼管,分別顯示時(shí)間,東西和南北的時(shí)間是不一樣的哦,要相差黃燈的時(shí)間才是正確的。

4、可以分別設(shè)置主干道和支干道的通行時(shí)間。

5、有緊急模式,可以特種車(chē)輛優(yōu)先通行或交通事故應(yīng)急處理。

操作說(shuō)明

按鍵依次功能:黃燈長(zhǎng)亮(深夜模式)、紅燈長(zhǎng)亮(禁行)、確定調(diào)時(shí)時(shí)間、時(shí)間加、時(shí)間減、切換調(diào)時(shí)方向(東西和南北均可以分別設(shè)置通行時(shí)間)。單獨(dú)的是復(fù)位按鍵。

參考論文

206cf92a-4a5b-11ee-97a6-92fbcf53809c.png

原理圖

20ad5326-4a5b-11ee-97a6-92fbcf53809c.png

程序源代碼

//主程序
void main()
{
  TMOD=0X11;             //定時(shí)器設(shè)置
  TH1=0X3C;    
  TL1=0XB0;
  TH0=0X3C;          //定時(shí)器0置初值 0.05S
  TL0=0XB0;
  EA=1;            //開(kāi)總中斷
  ET0=1;            //定時(shí)器0中斷開(kāi)啟
  ET1=1;             //定時(shí)器1中斷開(kāi)啟
  TR0=1;            //啟動(dòng)定時(shí)0
  TR1=0;               //關(guān)閉定時(shí)1
    logo();            //開(kāi)機(jī)初始化
  P2=0Xc3;          // 開(kāi)始默認(rèn)狀態(tài),東西綠燈,南北黃燈   
    sec_nb=sec_dx+5;       //默認(rèn)南北通行時(shí)間比東西多5秒
  while(1)            //主循環(huán)
  {   
    key();           //調(diào)用按鍵掃描程序
    display();         //調(diào)用顯示程序
  }  
}
//函數(shù)的定義部分
void key(void)  //按鍵掃描子程序
{   
  if(k1!=1)              //當(dāng)K1(時(shí)間加)按下時(shí)
  {
    display();               //調(diào)用顯示,用于延時(shí)消抖
    if(k1!=1)              //如果確定按下
    {
        TR0=0;                 //關(guān)定時(shí)器  
      shanruo=0;          //閃爍標(biāo)志位關(guān)
      P2=0x00;          //滅顯示
      TR1=0;              //啟動(dòng)定時(shí)1
      if(set==0)          //設(shè)置鍵按下
        set_timedx++;       //南北加1S
      else
        set_timenb++;        //東西加1S
      if(set_timenb==100)
        set_timenb=1;
      if(  set_timedx==100)
        set_timedx=1;       //加到100置1
      sec_nb=set_timenb ;     //設(shè)置的數(shù)值賦給東西南北
      sec_dx=set_timedx;      
        do
       { 
        display();         //調(diào)用顯示,用于延時(shí)
      }
      while(k1!=1);       //等待按鍵釋放
    }
  }


  if(k2!=1)              //當(dāng)K2(時(shí)間減)按鍵按下時(shí)
  {    
    display();               //調(diào)用顯示,用于延時(shí)消抖  
    if(k2!=1)            //如果確定按下
    {  
       TR0=0;                 //關(guān)定時(shí)器0  
      shanruo=0;          //閃爍標(biāo)志位關(guān)
      P2=0x00;          //滅顯示
      TR1=0;            //關(guān)定時(shí)器1  
      if(set==0)
        set_timedx--;        //南北減1S
      else
        set_timenb--;        //東西減1S
      if(set_timenb==0)
        set_timenb=99;  
      if(  set_timedx==0 )
        set_timedx=99;       //減到1重置99
      sec_nb=set_timenb ;       //設(shè)置的數(shù)值賦給東西南北
      sec_dx=set_timedx;
        do  
        { 
        display();           //調(diào)用顯示,用于延時(shí)
      }
      while(k2!=1);         //等待按鍵釋放
    }
  }


  if(k3!=1)              //當(dāng)K3(確認(rèn))鍵按下時(shí)
  {  
    display();               //調(diào)用顯示,用于延時(shí)消抖
    if(k3!=1)            //如果確定按下
    {
      TR0=1;              //啟動(dòng)定時(shí)器0
      sec_nb=set_timenb;        //從中斷回復(fù),仍顯示設(shè)置過(guò)的數(shù)值
      sec_dx=set_timedx;        //顯示設(shè)置過(guò)的時(shí)間
      TR1=0;              //關(guān)定時(shí)器1  
      if(set==0)            //時(shí)間倒時(shí)到0時(shí)
      { 
        P2=0X00;           //滅顯示
        Green_dx=1;            //東西綠燈亮
        Red_nb=1;          //南北紅燈亮
        sec_nb=sec_dx+5;       //回到初值
      }
      else 
      { 
        P2=0x00;          //南北綠燈,東西紅燈
        Green_nb=1;
        Red_dx=1;
        sec_dx=sec_nb+5; 
      }
    }
  }


  if(k4!=1)              //當(dāng)K4(切換)鍵按下
    {
    display();               //調(diào)用顯示,用于延時(shí)消抖
    if(k4!=1)            //如果確定按下
    {  
       TR0=0;            //關(guān)定時(shí)器0  
      set=!set;          //取反set標(biāo)志位,以切換調(diào)節(jié)方向
      TR1=0;            //關(guān)定時(shí)器1
      dx_nb=set;
      do
      {
        display();          //調(diào)用顯示,用于延時(shí)
      }        
      while(k4!=1);        //等待按鍵釋放
    }
  }  


  if(k5!=1)              //當(dāng)K5(禁止)鍵按下時(shí)
  {
       display();               //調(diào)用顯示,用于延時(shí)消抖
       if(k5!=1)            //如果確定按下
       {   
        TR0=0;            //關(guān)定時(shí)器
      P2=0x00;          //滅顯示
      Red_dx=1;
      Red_nb=1;          //全部置紅燈
      TR1=0;
      sec_dx=00;          //四個(gè)方向的時(shí)間都為00
      sec_nb=00;
      do
      {
        display();         //調(diào)用顯示,用于延時(shí)
      }  
      while(k5!=1);      //等待按鍵釋放  
       }
  }
  if(k6!=1)              //當(dāng)K6(夜間模式)按下 
  {
       display();               //調(diào)用顯示,用于延時(shí)消抖 
       if(k6!=1)            //如果確定按下
       {   
        TR0=0;            //關(guān)定時(shí)器
      P2=0x00;
      TR1=1;
      sec_dx=00;          //四個(gè)方向的時(shí)間都為00
      sec_nb=00;
      do
      {
        display();         //調(diào)用顯示,用于延時(shí)
      }  
      while(k6!=1);      //等待按鍵釋放  
       }
  }
}

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44961

    瀏覽量

    648853
  • STC89C52
    +關(guān)注

    關(guān)注

    41

    文章

    330

    瀏覽量

    82958
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1889

    瀏覽量

    92401
  • 智能交通燈
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    9639

原文標(biāo)題:【畢業(yè)設(shè)計(jì)004】-基于STC89C52的智能交通燈(程序、原理圖、視頻講解、操作說(shuō)明、參考lunwen)

文章出處:【微信號(hào):精通單片機(jī)與嵌入式,微信公眾號(hào):精通單片機(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 4人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

  • jf_490008091
  • jf_890396981

評(píng)論

相關(guān)推薦
熱點(diǎn)推薦

怎樣去設(shè)計(jì)基于STC89C52單片機(jī)的霓虹

基于STC89C52單片機(jī)的霓虹1、設(shè)計(jì)要求使用PWM驅(qū)動(dòng)8個(gè)LED 人眼不能觀察到燈光全滅 燈光要有動(dòng)畫(huà)效果2、設(shè)計(jì)概述 本實(shí)驗(yàn)所用芯片為ST
發(fā)表于 12-02 07:03

基于單片機(jī)STC89C52的搖搖棒

基于單片機(jī)STC89C52的搖搖棒設(shè)計(jì),有電路圖和源程序
發(fā)表于 11-23 14:38 ?28次下載

基于STC89C52單片機(jī)交通燈控制系統(tǒng)設(shè)計(jì)

基于STC89C52單片機(jī)交通燈控制系統(tǒng)設(shè)計(jì) 論文類(lèi)
發(fā)表于 12-14 15:44 ?169次下載

單片機(jī)STC89C52程序

單片機(jī)STC89C52源程序。
發(fā)表于 01-11 18:16 ?113次下載

基于STC89C52單片機(jī)智能交通燈控系統(tǒng)設(shè)計(jì)

基于STC89C52單片機(jī)智能交通燈控系統(tǒng)設(shè)計(jì)
發(fā)表于 02-22 11:37 ?107次下載

基于STC89C52單片機(jī)智能窗簾控制系統(tǒng)

基于STC89C52單片機(jī)智能窗簾控制,但沒(méi)有程序圖和連線圖。
發(fā)表于 04-28 18:02 ?31次下載

基于STC89C52單片機(jī)智能循跡小車(chē)設(shè)計(jì)

基于STC89C52單片機(jī)智能循跡小車(chē)設(shè)計(jì),做畢業(yè)設(shè)計(jì)的人很有用。
發(fā)表于 05-09 10:59 ?88次下載

STC89C52單片機(jī)介紹

STC89C52單片機(jī)介紹。
發(fā)表于 05-20 13:55 ?260次下載

基于單片機(jī)STC89c52 GSM的智能家居報(bào)警系統(tǒng)設(shè)計(jì)

基于單片機(jī)STC89c52 GSM的智能家居報(bào)警系統(tǒng)設(shè)計(jì),分享給大家。
發(fā)表于 05-05 08:40 ?81次下載

基于STC89C52單片機(jī)智能小車(chē)設(shè)計(jì)

基于STC89C52單片機(jī)智能小車(chē)設(shè)計(jì)方法介紹。
發(fā)表于 05-28 10:57 ?103次下載

基于單片機(jī)STC89C52控制的智能小車(chē)簡(jiǎn)介

基于單片機(jī)STC89C52控制的智能小車(chē)簡(jiǎn)介(單片機(jī)原理圖)-該文檔為基于單片機(jī)STC89C52
發(fā)表于 07-22 14:21 ?68次下載
基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>STC89C52</b>控制的<b class='flag-5'>智能</b>小車(chē)簡(jiǎn)介

STC89C52單片機(jī)

STC89C52單片機(jī)STC89C52STC89C52看到濤哥這篇文章了,紀(jì)念一下還在搞嵌入式的我們!硬件實(shí)物圖實(shí)物抽象化的圖為:這個(gè)STC89C52名字是什么意思呢?
發(fā)表于 11-23 17:06 ?111次下載
<b class='flag-5'>STC89C52</b><b class='flag-5'>單片機(jī)</b>

STC89C52_51單片機(jī)_例程4_交通燈_C語(yǔ)言代碼

STC89C52_51單片機(jī)_例程3_交通燈_C語(yǔ)言代碼代碼及文件下載鏈接審核通過(guò)后掛上交通燈需要設(shè)置一個(gè)flag標(biāo)志位,當(dāng)?shù)竭_(dá)1s時(shí)調(diào)用d
發(fā)表于 11-23 17:06 ?22次下載
<b class='flag-5'>STC89C52</b>_51<b class='flag-5'>單片機(jī)</b>_例程4_<b class='flag-5'>交通燈</b>_<b class='flag-5'>C</b>語(yǔ)言代碼

基于STC89C52單片機(jī)的霓虹

基于STC89C52單片機(jī)的霓虹1、設(shè)計(jì)要求 使用PWM驅(qū)動(dòng)8個(gè)LED 人眼不能觀察到燈光全滅 燈光要有動(dòng)畫(huà)效果2、設(shè)計(jì)概述 本實(shí)驗(yàn)所用芯片為
發(fā)表于 11-23 17:21 ?29次下載
基于<b class='flag-5'>STC89C52</b><b class='flag-5'>單片機(jī)</b>的霓虹<b class='flag-5'>燈</b>

STC89C52單片機(jī)器件手冊(cè)

STC89C52系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖如下圖所示。STC89C52單片機(jī)中包含中央處理器(CPU)、程序存儲(chǔ)器(Flash)、數(shù)據(jù)存儲(chǔ)器(SRAM)、定時(shí)/計(jì)數(shù)器、UART串口、I/
發(fā)表于 09-05 10:41 ?8次下載

電子發(fā)燒友

中國(guó)電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會(huì)員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動(dòng)獲取豐厚的禮品