⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 交通灯.c

📁 提出现代交通灯的单片机解决方法
💻 C
字号:
#include <reg51.h>
#define		uchar	unsigned	char
#define		uint	unsigned	int
sbit hong1 =P0^0;
sbit huang1 =P0^1;
sbit lan1 =P0^2;
sbit hong2 =P0^3;
sbit huang2 =P0^4;
sbit lan2 =P0^5;
uint s;
uchar t=0;
uchar m=0;
uchar n=0;
uchar u=0;
uchar p=0;
uchar h=0;
uchar g=0;
uchar code0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void display(void);//动态显示
uchar keyb(void);//键盘程序
uchar shijian(void);//
void delay(int k);
main()
{EA=1;EX0=1;IT0=1;
ET0=1;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TMOD=0X01;

hong1=0;lan2=0;huang1=0;lan1=0;hong2=0;huang2=0;P2=code0[0];
m=keyb();delay(100);
n=keyb();
delay(100);
p=m*10+n;
for(;;)
{s=p;TR0=1;
for(;;)
{hong1=1;lan2=1;huang1=0;lan1=0;hong2=0;huang2=0;
if(!s)break;
if(s<=5){hong1=1;lan2=0;huang1=0;lan1=0;hong2=0;huang2=1;}
display();}
s=p;
for(;;)
{hong1=0;lan2=0;huang1=0;lan1=1;hong2=1;huang2=0;
if(!s)break;
if(s<=5){hong1=0;lan2=0;huang1=1;lan1=0;hong2=1;huang2=0;}
display();
}}}
/////////////////////////////
void delay(int k)
{int i,j;
 for(;k>0;k--)
for(j=2;j>0;j--)
for(i=100;i>0;i--);}
////////////////////
void display(void)
{int i;for(i=5;i>0;i--)
{ 
  P3=0X1F;P2=code0[s/1000];delay(10);
  P3=0X2F;P2=code0[s%1000/100];delay(10);
  P3=0X4F;P2=code0[s%100/10];delay(10);
  P3=0X8F;P2=code0[s%10];delay(10);
 }}
 /////////////////////////////
uchar keyb(void)
{unsigned int a,b=0,c,jzhi,f=0,i=0,dma[]={0,0,0,0,0,0,0,3,0,0,0,2,0,1,0};
 int yw[]={0x7f,0xbf,0xdf,0xef};a=0x7f;
 for(;;)
{P1=a;a=P1;b=a;c=a;
  a=a&0x0f;
  if(a==0x0f) {i++;a=yw[i];if(i==4) {i=0;a=0x7f;}}
  else break;} 
  b=b>>4;f=c&0x0f;
  jzhi=dma[b]*4+dma[f];
  return jzhi;}
  /////////////////////////////
  void	waibu1(void)interrupt	0
  {int j; TR0=0;
for(j=30;j>0;j--)
{  hong1=1;lan2=0;huang1=0;lan1=0;hong2=1;huang2=0;display();}
TR0=1;
}
/////////////////////////////////////////
void	time(void)interrupt	1
{
u++;if(u==20){u=0;s--;}
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
}









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -