标题:
keil的报错main_plas.c(87): error C141: syntax error near 'P2'
[打印本页]
作者:
绯杰
时间:
2020-7-21 16:34
标题:
keil的报错main_plas.c(87): error C141: syntax error near 'P2'
附上源程序
#include "reg52.h"
#define KEY P3
#define key_state_0 0
#define key_state_1 1
#define key_state_2 2
char read_KBD(void)
{
static char key_state=0;
unsigned char key_press,key_return=0;
unsigned char key1,key2;
KEY=0xf0;
key1=KEY&0xf0;
KEY=0x0f;
key2=KEY&0x0f;
key_press=key1|key2;
switch(key_state)
{
case key_state_0:
if(key_press!=0xff) key_state=key_state_1;
break;
case key_state_1:
if(key_press!=0xff)
{
if(key_press==0x7e) key_return = 7; //S7
if(key_press==0x7d) key_return = 6; //S6
if(key_press==0xde) key_return = 15; //S15
if(key_press==0xdd) key_return = 14; //S14
}
else
key_state=key_state_0;
break;
case key_state_2:
if(key_press==0xff) key_state=key_state_0;
break;
}
return key_return;
}
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define FOSC 18432000L
#define T1MS (65536-FOSC/12/1000) //1ms timer calculation method in 12T mode
sbit TEST_LED = P1^0; //work LED, flash once per second
WORD count; //1000 times counter
WORD key_count;
unsigned char code T_display[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char key_val;
unsigned char key_table[2];
void tm0_isr() interrupt 1 using 1
{
static char i;
TL0 = T1MS; //reload timer0 low byte
TH0 = T1MS >> 8; //reload timer0 high byte
if (key_count-- == 0)
{
key_count = 10; //10ms
key_val=read_KBD();
if(key_val!=0)
{
key_table[0] = key_val/10; //ʮλ
key_table[1] = key_val%10; //¸öλ
}
}
if (count-- == 0) //1ms * 1000 -> 1s
{
count = 1 //1ms
P2=0xe0;P0=~T_display[key_table[i]];P2=0x00;
P2=0xc0;P0=T_COM[i];P2=0x00;
i++;
if(i==2) i=0;
}
}
void main()
{
TMOD = 0x01; //set timer0 as mode1 (16-bit)
TL0 = T1MS; //initial timer0 low byte
TH0 = T1MS >> 8; //initial timer0 high byte
TR0 = 1; //timer0 start running
ET0 = 1; //enable timer0 interrupt
EA = 1; //open global interrupt switch
count = 0; //initial counter
while (1); //loop
}
复制代码
求大佬解答一下,就是找不到哪里出错了
作者:
xianfajushi
时间:
2020-7-21 17:00
void tm0_isr() interrupt 1 using 1
{
static char i;
TL0 = T1MS; //reload timer0 low byte
TH0 = T1MS >> 8; //reload timer0 high byte
if (key_count-- == 0)
{
key_count = 10; //10ms
key_val=read_KBD();
if(key_val!=0)
{
key_table[0] = key_val/10; //ê???
key_table[1] = key_val%10; //????
}
}
if (count-- == 0) //1ms * 1000 -> 1s
{
count = 1; //1ms
P2=0xe0;
P0=~T_display[key_table[0]];
P2=0x00;
P2=0xc0;
P0=T_COM;
P2=0x00;
i++;
if(i==2) i=0;
}
}
复制代码
作者:
xxpp2011
时间:
2020-7-21 17:26
count = 1 //1ms
这一句后面没有分号,改为
count = 1; //1ms
作者:
lxbhcy
时间:
2020-7-28 16:57
没有分号。其实这种你直接百度就出来了的
作者:
SKYLAR123
时间:
2020-7-28 17:09
第74行count = 1 没有分号
作者:
lxbhcy
时间:
2020-7-29 11:14
语法问题,没分号
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1