各位大哥!能否帮小弟看看这程序?
时间:10-02
整理:3721RD
点击:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define led P2
sbit sb = P0^0;
void ys(uint i)
{
unsigned char j;
for(i; i > 0; i--) //循环 600*255 次
for(j = 255; j > 0; j--);
}
void KAISHI(uchar x)
{
uchar i;
for(i = 0; i < x; i ++)
{
led = 0xff;
ys(600);
led = 0x00;
ys(600);
}
}
void main(void)
{
EA = 1; //打开总中断
EX1 = 1; //INT1中断使能位
IT1 = 1; //负边沿触发
while(1)
{
led = 0x00;
ys(600);
led = 0xff;
ys(600);
}
}
void MY_INT1(void) interrupt 2 //中断
{
uchar bhled = led;
EX1 =0;
ys(20);
if(sb == 0) //判断开关
{
KAISHI(5); //五次
led = bhled;
}
if(sb !=1)
ys(20);
EX1 = 1;
}
什么要求都没有说。
中断函数中的
if(sb == 0)
{}
if(sb !=1)
{}
这两句不是一样的吗?
小编想表明 傻逼看这个帖子。用的时间。哎。
这是确定是否还按下的
假设sb=0;那么
中断函数中的
if(sb == 0)
{}
if(sb !=1)
{}
都会执行。
假设sb=1;那么
中断函数中的
if(sb == 0)
{}
if(sb !=1)
{}
都不会执行。
请以后发表类似贴的朋友注意一下吧,不要只是把程序贴上来就说看一下。你这究竟是要别人学习呢,还是要别人纠错呢?不要误导了别人,至少要说明你的程序的功能和错误点先!