|
之前一直想用液晶播放bad apple,无奈实物的SD卡近1个月没调通,放了好长一段时间。后来在网上找到了proteus版的视频以及仿真程序,再次打算调试。下次再调试实物SD卡与彩屏。参考原帖:
http://proteus.5d6d.com/thread-20833-1-1.html
原帖源程序是C写的,我参考之后手工逐句转汇编,终于把SD卡的仿真解决了,兴奋啊。我去掉了XRAM做缓存,数据直接读出就发给液晶显示。帧间延时不精确,如果用定时器就能准确跟节拍走。12864液晶以前没用过,看程序"摸象"比较费劲。大致明白了12864液晶分左右两半屏,只有列指针到头会自动回零,页指针需要手动设置,所以读写比较麻烦。两半屏同时选中并写屏就会各出一幅,双屏拷贝-_-。刷屏按从左到右,从上到下的顺序,交替跨越左右半屏。
简单优化了下代码,不过还有很大的优化余地,比如程序里用的是读单块CMD17命令,如果改为读多块程序,将会进一步提升。虽然加入了延时与判忙,但太快还是会花屏,目前仿真的晶振减小到15Mhz就OK了。顺便对比一下C与汇编编译后的区别(Keil的设置与优化不懂怎么调, c的结果应该可以减小点):
.C编译后大小:
data=38, xdata=512, code=54304
.asm汇编后大小:
data=8, xdata=0, code=555
51单片机+12864+MMC卡运行效果图:
汇编程序及仿真文件:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|