为什么程序一直死在忙信号检测这句?液晶是好的,不管是加了延时还是不加延时液晶都不会显示,程序一直死在忙信号检测,
这个是检测忙的函数,RS_CMD已经定义成0了
void ST7920_WaitBusy () //判忙
{
while (M6800_Read (RS_CMD)&0x80);
}
这个是读函数
u8 M6800_Read (u8 ucAddr) //读出数据
{
u8 ucData=0;
BUS6800_In (); //总线设置成输入模式
Bus6800_Delay(10); /* 延迟 */
if(ucAddr==0)
{
M6800_RS_0 ; //指令模式
}
else
{
M6800_RS_1 ; //数据模式
}
Bus6800_Delay(1); /* 必须延迟 */
M6800_RW_1; //选择读数据
Bus6800_Delay(1); /* 必须延迟 */
M6800_EN_1;
Bus6800_Delay(1); /* 必须延迟 */
ucData=M6800_Input;
MP6800_EN_0;
Bus6800_Delay(1); /* 必须延迟 */
BUS6800_Out (); //总线设置成输出模式
return (ucData);
}
不知道什么原因就是没有显示,注释掉检测忙函数用延时代替也一样不显示,
求大神指点一下是什么地方出了问题?
|