STC89C58RD+单片机P0口同时实现输入输出功能

工作刚接触单片机,请各位大侠指点,不胜感激。
如图,jkbd端接一个有六个按键的按键面膜,通过C语言编程实现:不同按键按下,LCD显示屏显示不同的字符。
我的程序如下:
void main(void)
{
KCtrl=1; //单片机输出功能
LCDInit(); //LCD屏初始化
P0=0xff; //P0端赋初值
while(1)
{
KCtrl=0; //单片机实现输入功能,锁存器低电平有效,输入=输出
Kcom=0; //jkbd接地,按键有效
if (P0=0xfe) //按键1按下
{
KCtrl=1; //锁存器成高阻态,单片机实现LCD输出功能
LCDDispAChar(1,3,'b');
}
if (P0=0xfd) //按键2按下
{
KCtrl=1; //锁存器成高阻态,单片机实现LCD输出功能
LCDDispAChar(1,3,'b');
}
if (P0=0xfc) //按键3按下
{
KCtrl=1; //锁存器成高阻态,单片机实现LCD输出功能
LCDDispAChar(1,3,'b');
}
if (P0=0xfb) //按键4按下
{
KCtrl=1; //锁存器成高阻态,单片机实现LCD输出功能
LCDDispAChar(1,3,'b');
}
if (P0=0xfa) //按键5按下
{
KCtrl=1; //锁存器成高阻态,单片机实现LCD输出功能
LCDDispAChar(1,3,'b');
}
if (P0=0xef) //按键6按下
{
KCtrl=1; //锁存器成高阻态,单片机实现LCD输出功能
LCDDispAChar(1,3,'b');
}
}
}
程序完全走不通,请各位大侠指点,在线等。

第1个回答  2012-06-18
这个错得很离谱啊。

所有的P0口判断代码全写错了。 if (P0=0xfe) //按键1按下
应该改成if(P0==0xfe)

判断相不相等是用==号,赋值才是=号啊。

希望我的回答对你有所帮助,谢谢。
第2个回答  2012-06-15
淘宝网like科技店路过,用空可以去看看
第3个回答  2012-06-15
路过,不过可搜一下 “匠人手记”,可能找到答案
第4个回答  2012-06-16
你好我给你模拟了一下,你的kctrl 的没有定义一下
相似回答
大家正在搜