找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3445|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)中斷控制交通燈 源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:335380 發(fā)表于 2021-8-1 13:26 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
中斷控制交通燈
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit c=P1^1;
sbit d=P1^4;
uchar led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0到9數(shù)碼管顯示
void delay1(uchar j)//延時若干ms
{uchar i;
while(j--)
{for(i=0;i<125;i++)
for(i=0;i<125;i++);}
}
void delay(uchar i)  //延時1秒鐘
{
    unsigned char a,b,c;
                while(i--)
    {for(c=167;c>0;c--)
        for(b=171;b>0;b--)
            for(a=16;a>0;a--);
    _nop_; }
}
void nanbei(uchar a)//南北顯示紅綠燈
{uchar j=100;
P1=0X24;
for(a;a>0;a--)
{
while(j--)
{
P0=0XFE;
P2=led[a/10];//顯示十位倒計時
delay1(5);//延時5毫秒,給機(jī)器一點反應(yīng)時間
P0=0XFd;
P2=led[a%10];//顯示個位倒計時
delay1(5);//延時5毫秒,給機(jī)器一點反應(yīng)時間
if(a<=3)//如果a小于3,則開始黃燈閃爍
{
P1=0X12;               
delay1(10);
P1=0X00;
delay1(10);
}
}
}
}
void dongxi(uchar a)//東西顯示紅綠燈
{uchar j=100;
P1=0X09;
for(a;a>0;a--)
{
while(j--)
{
P0=0XFB;
P2=led[a/10];//顯示十位倒計時
delay1(5);//延時5毫秒,給機(jī)器一點反應(yīng)時間
P0=0XF7;
P2=led[a%10];//顯示個位倒計時
delay1(5);//延時5毫秒,給機(jī)器一點反應(yīng)時間
if(a<=3)//如果a小于3,則開始黃燈閃爍
{
P1=0X12;               
delay1(10);
P1=0X00;
delay1(10);
}
}
}
}
main()
{EA=1;//允許中斷
EX0=1;//允許外部中斷0
IT0=1;//跳沿觸發(fā)
while(1)
{dongxi(15);//東西通行時間15秒
nanbei(30);//南北通行時間30秒
}
}
void into(void) interrupt 0  //外部中斷0函數(shù),用于強(qiáng)行更改紅綠燈方向
{uchar i,j=1000,b;
P0=0XFF;
P1=P1&0X01;//判斷如果P1最后一位為1,則東西方向為綠燈,南北方向為紅燈
if(P1==0X01)
{P1=0X08;
for(b=0;b<3;b++)
{{for(i=0;i<10;i++)//黃燈閃爍次數(shù)
{delay1(100);
c=~c;
delay1(100);
}}}
P1=0Xe4;
delay(10);//改變之后的時間延時10秒
}
else
{P1=0X04;
for(b=0;b<3;b++)
{{for(i=0;i<10;i++)
{delay1(100);
d=~d;
delay1(100);
}}}
P1=0X09;
delay(10);//改變之后的時間延時10秒
}}   

2.png (157.73 KB, 下載次數(shù): 119)

2.png

帶中斷的紅綠燈.rar

60.72 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表