久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6793|回復: 1
收起左側

基礎80c51單片機交通信號燈控制程序與Proteus仿真+設計文檔

[復制鏈接]
ID:426659 發表于 2019-1-15 13:24 | 顯示全部樓層 |閱讀模式
單片機代碼如下,按鍵1按下觸發中斷,相當于總開關,可以控制南北信號燈,此外可以用串口發送16進制數據,控制信號燈時間(只做了南北方向的,東西方向需要另做一個res接受位)

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

protuse仿真

protuse仿真


目錄
一、選題一理論部分              2
1.1 課題的要求與內容              2
1.1.1 課題內容: 十字路口交通燈系統設計              2
1.1.2 課題要求:              2
1.2  系統的方案設計              2
1.2.1 系統方案:              2
1.2.2系統的構成:              2
1.3系統的硬件設計              2
1.3.1 系統硬件的設計步驟              2
1.3.2 系統硬件電路連接效果              3
1.4  系統的軟件設計              4
1.4.1 系統的軟件設計步驟              4
二、選題一實踐部分              4
2.1 系統的硬件原理與說明              4
2.1.1 系統的硬件仿真效果圖              4
2.1.2 仿真圖說明:              5
2.2系統硬件調試的過程中出現的問題以及解決的措施              5
2.3系統軟件調試的過程中出現的問題以及解決的措施              6

一、(選題一)理論部分
1.1 課題的要求與內容
1.1.1 課題內容 十字路口交通燈系統設計
為了減少交通事故,確保交通順暢,十字路口必須安置信號燈,以一定的時間間隔輪流點亮和熄滅。系統要求利用單片機的定時器定時功能,令十字路口的紅黃綠燈交替點亮和熄滅,并且用LED數碼管顯示時間。
1.1.2 課題要求
(1)開機或復位后,信號燈全滅,南北和東西各有兩組信號燈,分別是直行和左轉彎,LED數碼管顯示2位:顯示秒。南北方向直行綠燈時間為20s,左轉綠燈時間為17s;東西方向直行綠燈時間為27s,左轉方向為22s。黃燈時間為3s。
(2)發揮部分
a.系統存儲兩套十字路口配時方案,可以通過按鍵來進行選擇;
b.利用串口調試助手或編寫上位機軟件,通過上位機來人工設定十字路口配時方案。
1.2  系統的方案設計
1.2.1 系統方案:
本次課程設計所采用的方案是用單片機控制十字路口交通燈。單片機具有結構簡單、編程方便、經濟、易于連接等優點,特別是其內部定時器計數器、中斷系統資源豐富可對交通燈進行精確的控制,有應用價值,可擴展功能多,靈活性比較強
1.2.2系統的構成:
整個系統的構成以80C51單片機為核心,由I/O口擴展,LED數碼管顯示,緊急情況中斷電路還有復位電路等組成。
單片機作為整個硬件系統的核心,它既是協調整工作系統的控制器,又是數據處理器。它由單片機、時鐘電路、復位電路等組成。行車方向指示采用LED發光二極管,可有紅、綠兩種顏色指示放行與禁止,黃燈作為紅綠轉換的提示,形象直觀。
本系統為交通信號燈設計了兩種不同的配時方案,可以根據道路實時交通量的大小選擇最佳配時方案。同時本系統還配有串口調試助手,可以通過串口發送數據從而達到改變配時時間的效果。
1.3系統的硬件設計
本系統的硬件主要由以下幾部分組成:80C51單片機、電阻、LED數碼管、LED發光二極管、電容、電解電容、晶體振蕩器、開關、標準RS232端口。電路圖是在Proteus中來連接完成的。
1.3.1 系統硬件的設計步驟

                  
                      圖1    系統硬件設計流程圖

1.3.2 系統硬件電路連接效果

                   圖2   硬件電路連接效果圖


1.4  系統的軟件設計
本系統的軟件設計部分全部在Keil uvision4中完成,采用的編程語言為Keil C51.
1.4.1 系統的軟件設計步驟


                      圖3  系統軟件設計流程圖

二、(選題一)實踐部分
2.1 系統的硬件原理與說明
   2.1.1 系統的硬件仿真效果

         
                圖4   硬件仿真效果圖


2.1.2 仿真圖說明:
當開關1按下時,交通信號燈首先執行第一套配時方案,首先,南北方向的直行是綠燈,東西方向的直行和左轉均為紅燈,待南北方向的直行時間變為0時,黃燈閃爍3秒,然后南北方向的左轉變為綠燈,東西方向的直行和左轉仍然全部為紅燈;待南北方向的左轉時間變為0時,黃燈仍然閃爍3秒,然后東西方向的直行變為綠燈,以此類推,信號燈亮的順序和南北方向一致。配時方案2中信號燈亮的順序和配時方案一的順序一致,只是亮的時間不同。
本系統在設計的過程中還使用了串口調試助手,修改的是南北方向直行的時間的個位上的數值。
2.2系統硬件調試的過程中出現的問題以及解決的措施
問題:
信號燈點亮的順序不對。
串口不能正常使用。
措施:
重新計算信號燈的字模。
重新連接串口。
2.3系統軟件調試的過程中出現的問題以及解決的措施
問題:
接收不到串口發來的數據。
措施:
給定義的變量賦初值。

三、(選題一)結束語
通過本次課程設計,使我得到了一次用專業知識、專業技能分析和解決問題全面系統的鍛煉。使我在51單片機的基本原理、單片機應用系統開發過程,以及在常用編程設計思路技巧(特別是C語言)的掌握方面都能向前邁了堅實的一步。
首先,我感觸最深的當屬查閱大量的設計資料了。為了讓自己的設計更加完善,查閱這方面的設計資料是十分必要的,在資料中查看與自己的設計相似的只是,在此基礎上完善直至符合設計要求。
其次,在這次課程設計中,我們運用到了以前所學的專業知識,如:C語言、proteus制圖。編寫的程序與仿真電路圖配合使用,發現問題,解決問題,在解決問題的過程中,我受益頗多。
最后,要做好一個課程設計,就必須要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,一次性就將整個程序設計好的概率很小,反復修改、不斷改進是程序設計的必經之路,一個完美的代碼通常是要修改很多次的;要養成注釋程序的好習慣,一個程序的完美與否不僅僅是實現功能,而應該讓人一目了然地明白設計者的思路,這樣也為資料的保存和交流提供了方便;在設計過程中應該將每次遇到的問題記錄下來,并分析清楚,從中學到的知識也會讓我受益終身。


單片機源碼:
#include<reg51.h>
sbit LED1=P1^0;
sbit LED2=P1^1;
unsigned char code DIG_CODE[10]={0x6f/*9*/,0x7f/*8*/,0x07/*7*/,0x7d/*6*/,0x6d/*5*/,0x66/*4*/,0x4f/*3*/,0x5b/*2*/,0x06/*1*/,0x3f/*0*/};

unsigned int time;              
unsigned int LedNumVal[2];     
unsigned int button;
static unsigned char rec;
static unsigned char recs;
static unsigned char recg;

void Delay (unsigned int a )
{  
   unsigned char i=1;
   unsigned int time=0;
   if(time==a)
      {i++;
   }
}
void Display_show( int a , int b )  
{  
    int i=1;
    int j;
    int k;
    LedNumVal[0] = (9 - b) * 1000;
    LedNumVal[1] = (9 - a) * 1000;
     while(i==1)
    {   
       LED2=0;
       P0=DIG_CODE[LedNumVal[0] / 1000];   
       Delay(5);
        if(LedNumVal[0] > 10000)            //
  {
   LedNumVal[1] = LedNumVal[1] + 1000;   //
   LedNumVal[0] = 0;           //b=9
  }
        j = 10;      
  while(j--);
  P0 = 0x00;
  LED2 = 1;
        LED1=0;
        P0=DIG_CODE[LedNumVal[1] / 1000];
        Delay(5);
        if(LedNumVal[1] == 9000)   //
     {
   if(LedNumVal[0] > 9500)    //
   {
    i++;        //??b<0
   }
  }     
        k = 10;    //
  while(k--);
  P0 = 0x00;//
  LED1 = 1;
       }
}

void main(void)
{
    TMOD = 0x21;     //
    TH0 = 0xFE;   //
    TL0 = 0x0C ;   //
TH1=TL1=0xf4;    //
TR1=1;       /
ES=1;            //
PS=1;           //
PT0=0;          /
PCON=0;         //
SCON=0x50;     
    IT0=1;         //      
    EA = 1;        //        
    ET0=1;        //?
    TR0= 1;        /  
EX0=1;        /
    EX1=1;
rec=0;  //receive初值
while(1)
{   
        if(button==1)
  {
     if((button==1)&&(rec==0)) P2=0X7E; Display_show(1,2); //南北方向12s
     if((button==1)&&(rec!=0)) P2=0x7e; Display_show(recs,recg);
  P2=0X7D;
  Display_show(0,3);
       //??????3s
  P2=0X7B;
  Display_show(0,7);
       //7s
  P2=0X7D;
  Display_show(0,3);
       //3s
  P2=0XE7;
  Display_show(0,7);
       //7s
  P2=0XD7;
  Display_show(0,3);
       //3s
  P2=0XB7;
  Display_show(0,7);
       //7s
  P2=0XD7;;
  Display_show(0,3);
            //3s
  }

  if(button==2)
  {

        P2=0X7E;  
  Display_show(2,8);
       //28s
  P2=0X7D;
  Display_show(0,3);
       //3s
  P2=0X7B;
  Display_show(1,2);
       //12s
  P2=0X7D;
  Display_show(0,3);
       //3s
  P2=0XE7;
  Display_show(2,3);
       //23s
  P2=0XD7;
  Display_show(0,3);
       //3s
  P2=0XB7;
  Display_show(1,0);
       //10s
  P2=0XD7;;
  Display_show(0,3);
             //3s
  }

}   
}
void T0zd(void) interrupt 1         //T0 (1ms)     
{
  TH0 = 0xFE;
  TL0 = 0x0C ;
   LedNumVal[0]++;
  time++;  
}
void  int0(void) interrupt 0  using 0
{
      EX0=0;
      button = 1;
      EX0=1;
}
void  int1(void) interrupt 2  using 0
{
      EX1=0;
      button = 2;
      EX1=1;
}
void receiver() interrupt 4
{
   if(RI==1)
    {
      RI=0;
      rec=SBUF;  
      SBUF=rec;
      while(TI==0);
       TI=0;         
       recg=rec%16; //個位
    recs=rec/16*10;  //十位
    }
}

0.png

全部資料51hei下載地址:
交通信號燈.zip (8.04 MB, 下載次數: 113)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:104982 發表于 2019-3-6 17:21 | 顯示全部樓層
非常完整的設計,樓主辛苦了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产综合久久久久蜜臀 | 国产伦精品一区二区三区高清 | 麻豆久久久久久久久久 | 成人h视频在线 | 国产欧美日韩视频 | 亚洲h在线观看 | 欧美日韩一区精品 | 成人在线观 | 色男人天堂av | 91av免费观看 | 免费av播放 | 亚洲激情自拍偷拍 | 2020天天操 | 操久久 | 国产一区精品在线 | ririsao久久精品一区 | 男女羞羞视频免费看 | 天天干.com | 国产97碰免费视频 | 亚洲综合无码一区二区 | 国产精品不卡一区 | 成人性视频在线播放 | 欧美一区免费在线观看 | 亚洲精品一级 | 久久99蜜桃综合影院免费观看 | 伊人超碰 | 精品国产第一区二区三区 | 中文字幕亚洲一区二区三区 | 伊人热久久 | 狠狠的日 | 久久久亚洲一区 | 欧美精品一区三区 | 久久久久久99 | 国产一卡二卡三卡 | 亚洲精品视频免费观看 | 在线观看亚洲一区二区 | 亚洲精品中文字幕在线观看 | 国产精品资源在线观看 | 久久草在线视频 | 91视频在线 | 国产在线一区二区三区 |