tag 标签: 读数据

相关博文
  • 热度 3
    2013-6-6 00:46
    1275 次阅读|
    1 个评论
    最近在学习12864,在画点这一步上卡了.. 卡在读不出RAM的数据..奋斗了几天,终于成功了. 被网上坑爹的教程害了~~ DB是单片机上的并行接口,我接了P1,以后想换到PCF8574上, 用的是AMPIRE的12864.控制器是ks0108. 先说读 状态:    static void read_busy() { u8 c1,c2,bf; c1=CS1;c2=CS2; CS1=0;CS2=0; do {     DB=0xff;     LCDRW=1;     LCDRS=0;     _nop_();     LCDEN=1;     _nop_();_nop_();      bf=DB;     LCDEN=0; }while(bf0x80);                                   CS1=c1; CS2=c2;   }   关键点是什么呢? 一,CS1 和CS2 如果不被选中的话,是读不出来BF的状态的. 二.在第一次读BF的时候,要读两次,以后读的时候只读一次.     刚开始我没用DO WHILE循环,程序卡在第一次就不走了. 所以,要么用循环,要么在INIT的时候,先预读一次,要么就一直读两次. 三.机上的并口要初始化为0XFF,看网上的教程,有的是初始化为0X00,根本没有读到BF,是自欺欺人,有的是用延时,也是一种办法. 四. E 端在上升和下降前,都应该有一定的延时,这是时序的要求..   读RAM和读BF的程序差不多,实际在运行中,读数据的时候,每次都是要读两遍的,与读BF不同..   只要会了这一点,其它都不难了...   还有一点..51 52 的P1口不用接上拉也可以,P0口,必须要接上拉~~