微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 各位大神帮帮忙 啊~

各位大神帮帮忙 啊~

时间:10-02 整理:3721RD 点击:
#include<reg51.h>
unsigned int i;
unsigned int j;
unsigned int b;
unsigned int m;
unsigned int n;
unsigned int flag;
sbit gewei=P0^6;
sbit shiwei=P0^7;
unsigned char code table[]={~0x3f,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,~0x6f,~0x40};
void delay(unsigned int i)
{ for(i;i>0;i--)
  for(j=500;j>0;j--);
}
void zhengchang()
{ EA=1;
EX1=1;
IT1=1;
}
void INT_1() interrupt 2
{
m=30;
n=10;
}
void gaofeng()
{ EA=1;
EX0=1;
IT0=1;

}
void INT_0() interrupt 0
{
m=5;
n=5;
EX0=0;
}
void shumaguanhongdeng() // 数码管计数 红灯

{

   
gaofeng();

TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
TMOD=0X01;
ET0=1;
TR0=1;
while(m>0)
{ if(b==1)
{  m--;
  b=0;

}
  
gewei=1;
P1=table[m/10];
delay(2);
gewei=0;
shiwei=1;
P1=table[m%10];
delay(2);
shiwei=0;
}
}
void time0() interrupt 1
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(flag++<20) return ;
flag=0;
b=1;
}
void shumaguanhuangdeng() // 数码管计数 黄灯
{  
gaofeng();
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
TMOD=0X01;
ET0=1;
TR0=1;
while(n>0)
{ if(b==1)
{  n--;
  b=0;

}
  
gewei=1;
P1=table[n/10];
delay(2);
gewei=0;
shiwei=1;
P1=table[n%10];
delay(2);
shiwei=0;
}
}
void time1() interrupt 1
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(flag++<20) return ;
flag=0;
b=1;
}
void traffic()
{ while(1)
   
{

P0=0X35; // 东西绿灯,南北红灯
shumaguanhongdeng();
P0=0Xf3; // 东西黄灯
shumaguanhuangdeng();
P0=0X2E;  // 南北绿灯,东西红灯
shumaguanhongdeng();


P0=0X1E;  // 东西黄灯

shumaguanhuangdeng();
        
}
}
void main()
{
traffic();
}
为什么进入几次中断之后就进不去了,数码管显示几次之后就不显示了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top