想请问一下这个代码哪里有问题?测试了一下程序没有进入if语句这是为什么?
#include "regx52.h"
#include "key.h"
#include "Delay.h"
#include "Matrx.h"
unsigned char keynumber,i=0;
unsigned char m;
unsigned char arr[] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
void main()
{
while (1)
{
keynumber = key();
if(keynumber==1)
{
if(m==-1)
{
Matrx(0, arr[(i+2) % 16]);i++;m=1;
}
else
{
Matrx(0, arr[i % 16]);
i++;m=1;
}
}
if (keynumber == 2)
{
if(m==1 )
{
Matrx(0, arr[(i-2) % 16]);i=i-3;m=-1;
}
else
{
Matrx(0, arr[i % 16]);
--i;m=-1;
}
if (i <= -1)
{
i = 15;
}
}
}
}
你这里的m是无符号数,这个条件不会满足啊!应该将m定义为char类型的数据!
【相关推荐】