作为一个小白,我只是想让这红绿灯亮而已啊!
单片机吧
全部回复
仅看楼主
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
level 6
网速这么慢居然抢到了2楼
2014年10月19日 04点10分 2
委婉的表达了没人理我这一事实啊
2014年10月19日 04点10分
level 10
牛沐原 楼主
用pro模拟一开始就亮啊
2014年10月19日 04点10分 3
level 7
小白能写出这程序??
2014年10月19日 06点10分 4
莫黑,只自学了半个月 为什么一模拟就全亮了啊
2014年10月19日 11点10分
回复 牛沐原 :这程序太乱,我看着晕。
2014年10月19日 12点10分
回复 V张大为 :好吧、
2014年10月19日 13点10分
level 10
牛沐原 楼主
求解答,能不能做到绿黄红轮流亮啊~
2014年10月19日 12点10分 5
1