单片机设计交通灯程序(交通灯程序)
大家好,我是小夏,我来为大家解答以上问题。单片机设计交通灯程序,交通灯程序很多人还不知道,现在让我们一起来看看吧!
我实训是做了这个项目,发给你看看,功能主要和e68a84e8a2ad3231313335323631343130323136353331333330356163交通灯的差不多,还可以显示具体的时间,跳转的时候,时间是倒计时的,当到0以后,下面灯转换
#include<reg51.h>
unsigned int shi,ge,js;
void delay(unsigned char i);
sbit P2_0=P2^0;
sbit P2_1=P2^1;
unsigned int i=0;
unsigned char key_press();
unsigned char key_scan();
unsigned int m=0;m2=0;n1=6;n2=2;
void TIMERO_1();
void TIMERO_0();
unsigned char led[4]={0xee,0xdb,0xf5,0xdb};
unsigned char code tabe[13]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x00};
unsigned char num;
unsigned char key_scan()
{ unsigned char hang,lie,key;
P3=0x0f;
if(P3!=0x0f)
delay(100);
if(P3!=0x0f)
{
switch(P3&0x0f)
{
case 0x0e:hang=0;break;
case 0x0d:hang=1;break;
case 0x0b:hang=2;break;
//case 0x07:hang=3;break;
}
P3=0xf0;
switch(P3&0xf0)
{
case 0xe0:lie=0;break;
case 0xd0:lie=1;break;
case 0xb0:lie=2;break;
case 0x70:lie=3;break;
}
while(P3!=0xf0);
key=hang*4+lie;
}
// else
// key=12;
return (key);
}
unsigned char key_press()
{
unsigned char temp,key_flag;
P3=0x0f;
delay(100);
temp=P3;
if (temp!=0x0f)
{
key_flag=1;
}
else
{
key_flag=0;
}
return key_flag;
}
void TIMERO_0() interrupt 1
{
TH0=0X3C;
TL0=0XB0;
m++;
if(m==20)
{
m=0;
n1--;
shi=n1/10;
ge=n1%10;
}
if(n1==0)
{i=i+1;
n2=3;
TR1=1;
TR0=0;
}
//if(ge==0)
//{ge=2;}
}
void TIMERO_1() interrupt 3
{
TH1=0X3C;
TL1=0XB0;
m2++;
if(m2==20)
{
m2=0;
n2--;
shi=n2/10;
ge=n2%10;
}
if(n2==0)
{
i=i+1;
n1=js;
TR0=1;
TR1=0;
if(i== 4)
{
i=0;
}
//if(ge==0)
//{ge=js;}
}
}
void display(unsigned char a,b,c,d,e,f)
{
P2_1=1;
P2_0=0;
P0=0x20;
P2_0=1;
P2_1=0;
P0=tabe[a];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0X10;
P2_0=1;
P2_1=0;
P0=tabe[b];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x08;
P2_0=1;
P2_1=0;
P0=tabe[c];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x04;
P2_0=1;
P2_1=0;
P0=tabe[d];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x02;
P2_0=1;
P2_1=0;
P0=tabe[e];
delay(10);
P0=0x00;
P2_1=1;
P2_0=0;
P0=0x01;
P2_0=1;
P2_1=0;
P0=tabe[f];
delay(10);
P0=0x00;
delay(10);
}
void main()
{
TMOD=0X11;
TH0=0X3C;
TL0=0XB0;
TH1=0X3C;
TL1=0XB0;
ET1=1;
ET0=1;
EA=1;
P1=0XFF;
while(1)
{
P0=0;
if(key_press())
{ num=key_scan();
if(num<=9)
{
shi=ge;
ge=num;
js=shi*10+ge;
n1=js;
}
if(num==10)
{
TR0=0;
TR1=0;
shi=ge;
ge=num;
}
if(num==11)
{
TR0=1;
i=0;
js=shi*10+ge;
}
}
P1=led[i];
display(12,12,12,12,shi,ge);
}
}
void delay(unsigned char i )
{
unsigned char j, k;
for(k=0;k<i;k++);
for(j=0;j<255;j++);
}
本文到此讲解完毕了,希望对大家有帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
试驾极狐阿尔法S(ARCFOX αS)是一次令人印象深刻的体验。从咨询开始,品牌的专业客服迅速回应了我的疑问,...浏览全文>>
-
如果您想预约哈弗猛龙的试驾体验,可以按照以下步骤快速在4S店完成预约:首先,您可以通过哈弗汽车的官方网站...浏览全文>>
-
如果您想体验零跑汽车的试驾服务,可以通过以下步骤在4S店快速预约:首先,访问零跑汽车的官方网站或通过其官...浏览全文>>
-
试驾奔驰迈巴赫S级的预约流程简单清晰,以下是具体步骤:首先,访问奔驰官方网站或联系当地授权经销商。在网站...浏览全文>>
-
纳米01试驾流程通常包括以下几个步骤:第一步:预约试驾用户可以通过品牌官网、4S店或电话预约试驾。提前预约...浏览全文>>
-
奔腾B70是一款集时尚设计与卓越性能于一身的中型轿车,近期有幸对其进行了一次深度试驾。这款车型不仅外观大气...浏览全文>>
-
想要快速预约福特蒙迪欧的试驾体验驾驶乐趣?以下是一些简单步骤帮助您轻松完成:首先,访问福特官网或通过福...浏览全文>>
-
大众试驾,轻松搞定试驾想要深入了解一款车的性能与驾驶感受?试驾是最佳选择!无论是追求操控感的运动型轿车...浏览全文>>
-
试驾现代胜达时,您需要满足一些基本条件以确保安全和顺利的体验。首先,您必须持有有效的驾驶证,并且驾龄通...浏览全文>>
-
小鹏G7是一款备受关注的智能电动车,对于新手来说,试驾前需要了解一些关键步骤和注意事项,确保安全且充分体...浏览全文>>
- 哈弗猛龙预约试驾,如何在4S店快速预约?
- 零跑汽车试驾,如何在4S店快速预约?
- 江淮iEV7试驾预约预约流程
- 试驾MG4 EV全攻略
- 奥迪SQ5 Sportback预约试驾,线上+线下操作指南
- 全顺试驾预约,一键搞定,开启豪华驾驶之旅
- 魏牌预约试驾全攻略
- 试驾零跑汽车零跑C01,畅享豪华驾乘,体验卓越性能
- 试驾哈弗H6操作指南
- 零跑T03试驾,畅享豪华驾乘,体验卓越性能
- 菱势汽车预约试驾,轻松搞定试驾流程
- MINI试驾,线上+线下操作指南
- 试驾沃尔沃XC60,从预约到试驾的完美旅程
- 试驾QQ多米,畅享豪华驾乘,体验卓越性能
- 试驾丰田汉兰达,一键搞定,开启豪华驾驶之旅
- 力帆预约试驾,一键搞定,开启豪华驾驶之旅
- 阿维塔12预约试驾,4S店体验全攻略
- 试驾江铃E路顺V6,简单几步,开启完美试驾之旅
- 灵悉L试驾预约,如何享受4S店的专业服务?
- 极氪7X试驾,如何享受4S店的专业服务?