精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

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

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

精通單片機與嵌入式 ? 來源:精通單片機與嵌入式 ? 2023-09-04 09:52 ? 次閱讀

功能

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

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

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

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

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

操作說明

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

參考論文

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

原理圖

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

程序源代碼

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


  if(k2!=1)              //當K2(時間減)按鍵按下時
  {    
    display();               //調(diào)用顯示,用于延時消抖  
    if(k2!=1)            //如果確定按下
    {  
       TR0=0;                 //關(guān)定時器0  
      shanruo=0;          //閃爍標志位關(guān)
      P2=0x00;          //滅顯示
      TR1=0;            //關(guān)定時器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)用顯示,用于延時
      }
      while(k2!=1);         //等待按鍵釋放
    }
  }


  if(k3!=1)              //當K3(確認)鍵按下時
  {  
    display();               //調(diào)用顯示,用于延時消抖
    if(k3!=1)            //如果確定按下
    {
      TR0=1;              //啟動定時器0
      sec_nb=set_timenb;        //從中斷回復(fù),仍顯示設(shè)置過的數(shù)值
      sec_dx=set_timedx;        //顯示設(shè)置過的時間
      TR1=0;              //關(guān)定時器1  
      if(set==0)            //時間倒時到0時
      { 
        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)              //當K4(切換)鍵按下
    {
    display();               //調(diào)用顯示,用于延時消抖
    if(k4!=1)            //如果確定按下
    {  
       TR0=0;            //關(guān)定時器0  
      set=!set;          //取反set標志位,以切換調(diào)節(jié)方向
      TR1=0;            //關(guān)定時器1
      dx_nb=set;
      do
      {
        display();          //調(diào)用顯示,用于延時
      }        
      while(k4!=1);        //等待按鍵釋放
    }
  }  


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

審核編輯:湯梓紅

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

    關(guān)注

    6032

    文章

    44525

    瀏覽量

    633249
  • STC89C52
    +關(guān)注

    關(guān)注

    41

    文章

    330

    瀏覽量

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

    關(guān)注

    32

    文章

    1876

    瀏覽量

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

    關(guān)注

    0

    文章

    15

    瀏覽量

    9573

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    基于單片機STC89C52的搖搖棒

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

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

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

    單片機STC89C52程序

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

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

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

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

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

    基于STC89C52單片機智能循跡小車設(shè)計

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

    STC89C52單片機介紹

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

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

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

    基于STC89C52單片機智能小車設(shè)計

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

    基于單片機STC89C52控制的智能小車簡介

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

    STC89C52單片機

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

    STC89C52_51單片機_例程4_交通燈_C語言代碼

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

    基于STC89C52單片機的霓虹

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

    STC89C52單片機器件手冊

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