if(GPIO_KEY!=0x0f)/这句有错,去掉/ |
打开KEIL行号[点击Edit-->Configuration。然后会弹出一个名为Configuration 的窗口,勾选 show line number],来定位出错具体位置,就好简单,syntax error, 即符号错了 |
#include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; #define GPIO_DIG P0 #define GPIO_KEY P1 u8 KeyValue; u8 code smgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; void delay(u16 i) { while(i--); } void KeyDown(void) { char a=0; GPIO_KEY=0x0f; if(GPIO_KEY!=0x0f) { delay(1000); if(GPIO_KEY!=0x0f)/ { GPIO_KEY=0X0F; switch(GPIO_KEY) { case(0X07): KeyValue=0;break; case(0X0b): KeyValue=1;break; case(0X0d): KeyValue=2;break; case(0X0e): KeyValue=3;break; } GPIO_KEY=0XF0; switch(GPIO_KEY) { case(0X70): KeyValue=KeyValue;break; case(0Xb0): KeyValue=KeyValue+4;break; case(0Xd0): KeyValue=KeyValue+8;break; case(0Xe0): KeyValue=KeyValue+12;break; } } } while((a<50)&&(GPIO_KEY!=0xf0)) { delay(100); a++; } } void main() { LSA=0; LSB=1; LSC=1; while(1) { KeyDown(); GPIO_DIG=~smgduan[KeyValue]; } } 这是源程序 运行显示/旁有错误应该为__asm 我就加了 也够了两个lrc 还是错误 |