找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3144|回復: 4
打印 上一主題 下一主題
收起左側

求一份十字路口交通燈控制代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:355770 發(fā)表于 2018-6-23 12:05 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
一、簡述
本項目為典型的LED顯示和中斷定時電路。利用定時器T0產(chǎn)生每10ms一次的中斷,每100次中斷為1s。對兩個方向分別顯示紅、綠、黃燈,已經(jīng)相應的剩余時間即可。值得注意的是,需要意識到,A方向紅燈時間=B方向綠燈時間+黃燈緩沖時間這一常識。本項目使用的MAX7219芯片使用方法請參考題目3。
二、設計任務和要求
設計一個十字路口交通燈控制器。用單片機控制LED燈模擬指示。模擬東西方向的十字路口交通信號控制情況。東西向通行時間為80s,南北向通行時間為60s,緩沖時間為3s。

求代碼,急用,謝謝各位大佬!!!!
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P0^0; //????
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P1^0; //????
sbit YELLOW_B=P1^1;
sbit GREEN_B=P1^2;
sbit DIN=P3^0;
sbit LOAD=P3^1;
sbit CLK=P3^2;
uchar Flash_Count=0,Operation_Type=1,Time_Count=0,hh=1,i=80,mm=1,tt=9;

void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i<120;i++);
}

void Traffic_Light()
{
switch(Operation_Type)
{
case 1:
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
DelayMS(2000);
Operation_Type=2;
break;
case 2:
DelayMS(300);
YELLOW_A=~YELLOW_A;GREEN_A=1;
if(++Flash_Count!=10) return;
Flash_Count=0;
Operation_Type=3;
break;
case 3:
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
DelayMS(2000);
Operation_Type=4;
break;
case 4:
DelayMS(300);
YELLOW_B=~YELLOW_B;GREEN_B=1;
if(++Flash_Count!=10) return;
Flash_Count=0;
Operation_Type=1;
}
}
void Write(uchar Addr,uchar Dat)
{
uchar i;
LOAD=0;
for(i=0;i<8;i++)
{
CLK=0;Addr<<=1;DIN=CY;
CLK=1;_nop_();
CLK=0;
}
for(i=0;i<8;i++)
{
CLK=0;Dat<<=1;DIN=CY;
CLK=1;_nop_();
CLK=0;
}
LOAD=1;
}

void Initialise()
{
Write(0x09,0x3f);
Write(0x0a,0x07);
Write(0x0b,0x01);
Write(0x0c,0x01);
}

void main()
{
Initialise();
TMOD=0x01;   //定時器0工作在方式1
EA=1;
ET0=1;
TR0=1;
while(1)
{
       
        Traffic_Light();
}
}

void T0_INT()interrupt 1
{
TH0=-50000/256;
TL0=-50000%256;
if(tt--==0)
{
tt=9;
if(hh--==0)
{
hh=1;
Write(1,i/0x0a);
Write(2,i%0x0a);
if(i--==0)
{
if(mm==0)
{
mm=1;
i=80;
}
else
{
mm=0;
i=60;
}
}
}
}
}
這是我寫的代碼,但是數(shù)碼管不會動,不知道是什么原因,求教。。!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:355770 發(fā)表于 2018-6-23 12:07 | 只看該作者
求一份可以運行的完整代碼,急用,謝謝各位大佬。!
回復

使用道具 舉報

板凳
ID:303383 發(fā)表于 2018-6-23 17:04 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
回復

使用道具 舉報

地板
ID:362137 發(fā)表于 2018-7-3 17:53 | 只看該作者
樓主可以把你的這一套設計發(fā)一遍嗎
回復

使用道具 舉報

5#
ID:668663 發(fā)表于 2019-12-19 20:11 | 只看該作者
樓主寫出來了嗎,可以把正確的發(fā)一遍嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表