keil单片机编程的问题 *** error 65: access violation at C:0x8813 : no 'execute/read' permission

keil给单片机编程时编译都通过了,可是debug时老有这个提示
*** error 65: access violation at C:0x8813 : no 'execute/read' permission
#include<reg52.h>
unsigned int i1=50;
unsigned int i2=120;
unsigned int i3=190;
unsigned int T=200;
unsigned int jg=5000;
sbit L1=P1^0;
sbit L2=P1^1;
sbit R1=P1^2;
sbit R2=P1^3;//对几个输出口申明方便看
void on1()
{
for (;i1>0;i1--);
}
//一档运动延时函数
void off1()
{
unsigned int j;
for (j=T-i1;j>0;j--);
}
//一档静止延时函数
void on2()
{
for (;i2>0;i2--);
}
//二档运动延时函数
void off2()
{
unsigned int j;
for (j=T-i2;j>0;j--);
}
//二档静止延时函数
void on3()
{
for (;i3>0;i3--);
}
//三档运动延时函数
void off3()
{
unsigned int j;
for (j=T-i3;j>0;j--);
}
//三档静止延时函数
void q1()
{
L1=0;
R1=0;
on1();
L1=1;
R1=1;
off1();
}//一档运动函数
void q2()
{
L1=0;
R1=0;
on2();
L1=1;
R1=1;
off2();
}//二档运动函数
void q3()
{
L1=0;
R1=0;
on3();
L1=1;
R1=1;
off3();
}//三档运动函数
void qm()
{
L1=0;
R1=0;
}
//全速前进函数
void back()
{
L2=0;
R2=0;
on3();
L2=1;
R2=1;
off3();
}//三档后退函数
void tl()
{
L2=0;
R1=0;
}//左转函数
void tr()
{
L1=0;
R2=0 ;
}//右转函数

void main()
{
for (;jg>0;jg--)
q1();
for (;jg>0;jg--)
back();
for (;jg>0;jg--)
q2();
for (;jg>0;jg--)
back ();
for (;jg>0;jg--)
q3();
for (;jg>0;jg--)
back ();
for (;jg>0;jg--)
qm();
for (;jg>0;jg--)
tl();
for (;jg>0;jg--)
tr();
}

unsigned int i1=50;
unsigned int i2=120;
unsigned int i3=190;
unsigned int T=200;
unsigned int jg=5000;
你定义的这些变量只是第一次调用时是该值,第二次就会变成65535了。所以达不到你的目的。for循环的第一个参数省略不了的。追问

这是改过的程序,为什么还是有

温馨提示:答案为网友推荐,仅供参考
相似回答