PIC I/O口

512213634   2012-7-31 13:13 楼主
用PIC24写一个LCD12864的程序,写了三天,都不行,将51的程序。M430的程序修改了,运行都不行,三天都调试不出来,心情是很郁闷的啊,后来用单步运行的时候,发觉程序在单步运行的时候,可以显示出来,但是在全速运行的时候,就是出不来结果,显示不出来字。查了一些资料,说是失序有问题,延迟delay函数,我也倾向于这个问题,因为单步显示的时候能出来结果,但是在其他没写的地方也显示出来了错误的点,LCD12864RAM中没有写的地方也有了值,我也觉得可能真的是我的时序出错了,所以修改了很久的时序,都没成功,后来想到会出现错误的乱码会不会是我PIC端口的问题,查了一下PIC 的I/O的手册,发觉I/O口的PORT的读写很是容易产生错误的数值。连续对PORT的读写,会产生错误,要对引脚赋值,最好就是对LAT锁存器赋值,这样值写进去之后不会和PORT口一样产生错误。对I/O的读写要区分对待,读比较好用PORT口,但是写端口用LAT比较好,不会产生错误的数据


如果对PORT端口的读写出现错误,则改成对LAT锁存器写

回复评论 (2)

延时有问题吧
点赞  2012-7-31 14:39

不是

改过寄存器以后,一样的延时,程序就可以运行了
点赞  2012-7-31 18:50
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复