为怎么在单片机中定义局部变量不行而定义为全局变量可以
问题:如下:为怎么变量x定义为局部变量时单步运行到第五行时x=0x01;不正确如果把变量x定义为全局变量时单步运行到第五行时x=0x07;正确麻烦高手门帮忙看下#incl...
问题: 如下:为怎么变量 x 定义为局部变量时 单步运行到第五行时x=0x01;不正确
如果把变量 x 定义为全局变量时 单步运行到第五行时x=0x07; 正确 麻烦高手门帮忙看下
#include<reg51.h>
sbit fKYE1=P3^0;
sbit fKYE2=P3^1;
sbit fKYE2=P3^2;
MKEY_SCAN()
{
uchar x;
x=0;
x=(x<<1)|fKYE1; //2行
x=(x<<1)|fKYE2; //3行
x=(x<<1)|fKYE1; //4行
if(x&0x07)!=0x07) //5行
...........
} 展开
如果把变量 x 定义为全局变量时 单步运行到第五行时x=0x07; 正确 麻烦高手门帮忙看下
#include<reg51.h>
sbit fKYE1=P3^0;
sbit fKYE2=P3^1;
sbit fKYE2=P3^2;
MKEY_SCAN()
{
uchar x;
x=0;
x=(x<<1)|fKYE1; //2行
x=(x<<1)|fKYE2; //3行
x=(x<<1)|fKYE1; //4行
if(x&0x07)!=0x07) //5行
...........
} 展开
1个回答
展开全部
现在就是局部变量,怎么,这样就不对吗?不管是全局或局部变量,前面已有赋初值语句,x=0; 所以,与变量是否为全局无关。
更多追问追答
追问
现在这样执行结果x=0x01;单步运行只有第二行有执行 第3、4行没有执行的
追答
是在keil中仿真运行的吧,那P3.0,P3.1,P3.2引脚的状态怎么输入0?这种有引脚输入的程序调试时,把P3口打开,就可以置位和复位,才能正确调试。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询