level 10
牛沐原
楼主
#include <REG51.h>
sbit GREEN = P1^7;
sbit YELLOW = P1^6;
sbit RED = P1^5;
sbit PAUSE = P3^2;
/*#define BEGIN P2*/
void delay (unsigned int a){
unsigned int i;
while( --a != 0){
for(i = 0;i <600; i++);//延时1ms
}
}
void main(void){
BEGIN = 0;
EA = 1; //全中断允许
EX0 = 1; //允许使用外部中断
IT0 = 0; //选择负跳来触发中断
/*if(BEGIN == 1){
delay(20);
if(BEGIN == 1){*/
while(1){
GREEN = 0xff;
YELLOW = 0xff;
RED = 0xff;
unsigned int sG;
sG = 0;
do{
GREEN = 0x00;
sG++;
/*数码管显示*/
delay(1000)
}
while(sG<14)/*绿灯15s*/
GREEN = 0xff;
unsigned int sY;
sY = 0;
do{
YELLOW = ~YELLOW;
sY++;
/*数码管显示*/
delay(250);
YELLOW = ~YELLOW;
delay(250);
YELLOW = ~YELLOW;
delay(250);
YELLOW = ~YELLOW;
delay(250);
}
while(sY<3)/*黄灯3s*/
unsigned int sR;
sR = 0;
do{
RED = 0x00
sR++;
/*数码管显示*/
delay(1000);
}
while(sR<14)/*红灯15s*/
}
}
void pause (void) interrupt 0 using 0{//暂停中断函数
for( ;1; )//空循环
请问是哪里错了、、、我自学了半天实在是找不到
2014年10月19日 04点10分
1
sbit GREEN = P1^7;
sbit YELLOW = P1^6;
sbit RED = P1^5;
sbit PAUSE = P3^2;
/*#define BEGIN P2*/
void delay (unsigned int a){
unsigned int i;
while( --a != 0){
for(i = 0;i <600; i++);//延时1ms
}
}
void main(void){
BEGIN = 0;
EA = 1; //全中断允许
EX0 = 1; //允许使用外部中断
IT0 = 0; //选择负跳来触发中断
/*if(BEGIN == 1){
delay(20);
if(BEGIN == 1){*/
while(1){
GREEN = 0xff;
YELLOW = 0xff;
RED = 0xff;
unsigned int sG;
sG = 0;
do{
GREEN = 0x00;
sG++;
/*数码管显示*/
delay(1000)
}
while(sG<14)/*绿灯15s*/
GREEN = 0xff;
unsigned int sY;
sY = 0;
do{
YELLOW = ~YELLOW;
sY++;
/*数码管显示*/
delay(250);
YELLOW = ~YELLOW;
delay(250);
YELLOW = ~YELLOW;
delay(250);
YELLOW = ~YELLOW;
delay(250);
}
while(sY<3)/*黄灯3s*/
unsigned int sR;
sR = 0;
do{
RED = 0x00
sR++;
/*数码管显示*/
delay(1000);
}
while(sR<14)/*红灯15s*/
}
}
void pause (void) interrupt 0 using 0{//暂停中断函数
for( ;1; )//空循环
请问是哪里错了、、、我自学了半天实在是找不到