微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于12864一直检测忙的问题

关于12864一直检测忙的问题

时间:10-02 整理:3721RD 点击:
手上有一块12864,相同的程序,用STC15W408AS驱动不了,用STC15F60S2正常显示。后来排查程序的时候发现STC15W408AS一直在检测忙,目前还不确定具体原因。

1)如果是时序问题,同样的STC15单片机执行速度应该是一样的把,所以我觉得可能不是时序的问题。
2)在STC15W408AS上12864_DB并行口上接了上拉10K排阻,在STC15F60S2没有接,会不会是这样问题?不过普通的51接12864应该也会接排阻的吧?

检测忙程序是在网上移植过来用的,大神帮忙看看,谢谢!
/*************************************************************
* @函数名称: Busy
* @参数:    none
* @返回值:  none
* @摘要:    忙检测*
*************************************************************/
bit lcd_busy()
{                          
    bit result;
    RS = 0;
    RW = 1;
    EN = 1;
    delayNOP();  //4个nop 约360ns。
    result = (bit)(DataPort&0x80);
    EN = 0;
        LED=~LED;;
        delay_1ms(1000);
        return(result);
}

补充一下,取消检测忙 延时可以正常显示。

有检测忙状态,就不需要再加延时了,两者有一个就行了

狼兄你好,就是因为一直在检测忙,所以用延时的方式作为缓解之计,但是延迟太影响整个程序了。我在程序总放了一个LED,这个LED就会一直不停的闪,代表这个忙一直在来回检测过不去。 就是不知道什么愿意。之前的帖子里也是这个问题。 还有 我在程序中用clk_div分频居然没有用,clk_div难道不能降低指令时间吗?

最好能把12864部分的程序都贴出来,不一定是查忙程序错,也可能是调用查忙程序部分错。
普通的12864是分两个半屏的,所以是有两个片选引脚来选择的,如果没有做片选,有可能会退不出查忙。
如果用查忙方式控制12864,那就和单片机的速度没什么关系了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top