单片机C51语言for循环语句出错

来源:百度知道 编辑:UC知道 时间:2024/06/12 19:44:50
#include<reg51.h>
#include<stdio.h>
int hang;
int lie;
int KeyScan();
void Delay();
void main()
{
int Key;
while(1)
{
Key=KeyScan();
if(Key==1)
{
P2=0x80;
}
Delay();
P2=0x00;
}
}
void Delay()
{
long i;
for(i=10000;i>0;i--);
}
int KeyScan()
{
P1=0xF0;
if((P1&0xF0)!=0xF0)
{
Switch(P1)
{
case 0x70:
hang=1;
break;
case 0xB0:
hang=2;
break;
case 0xD0:
hang=3;
break;
case 0xE0:
hang=4;
break;
default:
break;
}
Delay();
P1=0x0F;
if((P1&0x0F)!=0x0F)
{
Switch(P1)
{
case 0x07:
lie=1;
break;
case 0x0B:
lie=2;
break;
case 0x0D:
lie=3;
break;
case 0x0E:
lie=4;
break;
default:
break;
}
return 1;
}
}
else
{
return 0;
}

你这键盘扫描函数,变量的类型定义没必要定义成int,long,尽量定义成unsigned char, unsigned int,开你的for循环不过是一个延时函数定义,你把long i换成unsigned int试试.0-65025范围

for循环语句出错??!!你怎么知道的?知道了还要问?程序肯定有错误。