本人是新人小白,单片机C语言基础很差,在书上看到案例程序编译出错了,如果没判断错的话是声明的问题。。。吗?所以请问lcd_wdat应该如何声明,格式是怎样的,在这段程序里应该怎么更改呢?
大神求助
void pass_in(void)
{
uchar m,n,sec10,key,pass_ok,T0_count,RELAY,cdis5,cdis6;
uchar TR0 = 1;
uchar PASS_NEW[6]={0,1,2,3,4,5};
void lcd_pos(unsigned char i,unsigned char j);
for(m = 0;m<3;m++)//允许最多3次密码输入
{
lcd_pos(9,2);//第二行9列
n=0;
while((n<6)&(!sec10))//10s时间限制
{
keyscan();
if(key <=9)//数字键0~9为有效键
{
PASS_NEW[n] = key;
lcd_wdat(PASS_NEW[n]+0x30);
n++;
beep();
}
}
pass_comp();//密码比较
if(pass_ok)//如果比较正确
{
T0_count = 0;//清计数单元
sec10 = 0;//清10s标志位
RELAY = 0;//继电器吸合
lcd_pos(0,2);//设置显示位置为第二行
wr_string(cdis5,0);//显示字符串5
return;
}
else//如果比较错误
{
T0_count = 0;//清计数单元
sec10 = 0;//清10s标志位
lcd_pos(0,2);//设置显示位置为第二行
wr_string(cdis6,0);//显示字符串6
delayms(1000);//延时1s
lcd_pos(0,2);//设置显示位置为第二行
wr_string(cdis2,0);//显示字符串2
}
}
TR0 = 0;
lcd_pos(0,2);//设置显示位置为第二行
wr_string(cdis6,0);//显示字符串6
delayms(2000);//延时2s
menu1();//显示菜单1
}
编译出错是红色部分
另外顺带问一下,有时候keil编译不会一下指出所有问题,因为我解决一个问题又会出现新的问题,这是问什么呢?
综上,请大神指教!!