已经帮你修改好了,而且在51hei单片机开发板上测试通过了,
你这个程序延时2秒的那个函数都是错的,我帮你修改了一下,参考的本论坛制定的 延时函数编写那一帖
还有就是你那个主函数在逻辑上也有问题
修改过的程序在下面 我这里已经测试通过了:
#include <reg51.h>
typedef unsigned int uint;
sbit led=P0^0;
sbit key=P3^2;
sbit sj=P1^4;
void delay(uint z);
void main(void)
{
unsigned char i,j;
sj=0;
while(key==1) //判断是否有键按下否则不往下执行
{
;
}
{
for(j=10;j>0;j--)
for(i=248;i>0;i--);
if(key==0)
led=0;
delay(2000);
led=1;
}
while(key==0)
{
;
}
}
void delay (unsigned int ms)
{
unsigned int i;
unsigned char j;
for(i=0;i<ms;i++)
{
for(j=0;j<200;j++);
for(j=0;j<102;j++);
}
}
|