本帖最后由 houjue 于 2016-7-23 10:10 编辑
其实第一个程序是可以运行的,只是你马虎少些一行而已~~~~~这一行你在第二个程序里竟然写上了,你没发现么??哈哈~~~~~
下面是我帮你改的,你重新编译一下看看是否可以运行。
程序要求:按下P3^2,流水灯左移,按下P3^3,流水灯右移。
/************ 头 文 件 ************/
#include
#include
/************ 宏 定 义 ************/
#define LED P2
unsigned char Keyvalue = 0;
/************ 延 时 程 序 ************/
void delay(unsigned int n) {
unsigned char a,b;
for(;n>0;n--) {
for(b=1;b>0;b--)
for(a=22;a>0;a--);
}
}
/************ 主 程 序 ************/
void main() {
LED = 0xfe;
IT0 = 1;
EX0 = 1;
IT1 = 1;
EX1 = 1; //这一行你没写,外部中断 1 肯定不能运行了!
EA = 1;
while(1) {
if(Keyvalue)
LED=_crol_(LED,1);
delay(2000); //这一行你也没写!不延时估计P2口的LED会呈全亮状态吧??
else
LED=_cror_(LED,1);
delay(2000);
}
}
/************ 外部中断 0 ************/
void IN0() interrupt 0 {
Keyvalue =! Keyvalue; //静心体会一下我为什么这样写,和你写的有哪些不同。
}
/************ 外部中断 1 ************/
void IN1() interrupt 2 {
Keyvalue =! Keyvalue; //原理同上
}
/* 这段程序我没上机验证,相信不会有啥问题,你编译验证一下吧。若成功了就来报个信,打赏多少积分你看着办 ^_^ */
本帖最后由 houjue 于 2016-7-23 10:10 编辑
其实第一个程序是可以运行的,只是你马虎少些一行而已~~~~~这一行你在第二个程序里竟然写上了,你没发现么??哈哈~~~~~
下面是我帮你改的,你重新编译一下看看是否可以运行。
程序要求:按下P3^2,流水灯左移,按下P3^3,流水灯右移。
/************ 头 文 件 ************/
#include
#include
/************ 宏 定 义 ************/
#define LED P2
unsigned char Keyvalue = 0;
/************ 延 时 程 序 ************/
void delay(unsigned int n) {
unsigned char a,b;
for(;n>0;n--) {
for(b=1;b>0;b--)
for(a=22;a>0;a--);
}
}
/************ 主 程 序 ************/
void main() {
LED = 0xfe;
IT0 = 1;
EX0 = 1;
IT1 = 1;
EX1 = 1; //这一行你没写,外部中断 1 肯定不能运行了!
EA = 1;
while(1) {
if(Keyvalue)
LED=_crol_(LED,1);
delay(2000); //这一行你也没写!不延时估计P2口的LED会呈全亮状态吧??
else
LED=_cror_(LED,1);
delay(2000);
}
}
/************ 外部中断 0 ************/
void IN0() interrupt 0 {
Keyvalue =! Keyvalue; //静心体会一下我为什么这样写,和你写的有哪些不同。
}
/************ 外部中断 1 ************/
void IN1() interrupt 2 {
Keyvalue =! Keyvalue; //原理同上
}
/* 这段程序我没上机验证,相信不会有啥问题,你编译验证一下吧。若成功了就来报个信,打赏多少积分你看着办 ^_^ */
举报