12864液晶显示串行程序调试总结.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12864液晶显示串行程序调试总结 ??? 先说说我的调试初衷 ??? 前一阵看实验室的兄弟姐妹们都闲的无聊,就有人DIY了,有人个BF做电子时钟,一个液晶30多,一个12C887 20多,板子加器件还有单片机算下来少说也有70大洋。感觉实在不划算,但是对液晶还是蛮感兴趣的,一方面熟悉一下串行设备,一方面为以后做准备,毕竟液晶显示操作起来要比LED简单,而且能实时显示,到什么时候都能用上。所以,这次液晶屏的调试,我就想搜集一些常用的程序,适当的修改,让液晶屏达到“拿来就能用上”的目的。 ??? 先说说我这次调试的液晶屏,12864,带子库的,蓝色屏幕。就是这张图了 1201_181323.jpg (155.6 KB) 2010-12-1 18:59 ??? 单片机我选的是英飞凌xc824,新出的哦。不是有啥特殊偏好,手头就有这个,就先用这个吧,主要是我对这个最小系统板上的触摸按键比较感兴趣。当然了,它也有缺点,内存太小,连一个12864的图片都装不下。:Q ? ??? 闲话少说,先从最基本的数据手册开始吧 中显液晶12864.pdf (1.31 MB) 中显液晶12864.pdf (1.31 MB) 下载次数: 91 2010-12-1 18:59 ??? 这是中文资料,因为这种东西已经被使用的多的不能再多了,而且厂家众多,但是有细微差别,比如串行和并行,有的是焊点切换的,有的是软件切换的。我这个是后者。 刚接线的时候还出了个笑话,太相信实物和datasheet和对应的了,结果屏幕的背光接反了,幸好没烧。 ? ??? 硬件方面,我选串行是因为它用线少,我很懒的。?? P1.0口对应CS,P1.1口对应SID,P1.2口对应CLK. ??? 参考时序在datasheet上写的很清楚 ? ? ? 时序.jpg (74.63 KB) 2010-12-1 18:59 有这个当指导思想,照着写程序吧.动手之前,要先弄明白液晶屏是如何控制的,它内部也有控制芯片,这款的芯片是ST7920,对液晶的操作分为控制指令部分和数据传送部分。 指令呢,数据手册给了很多。用到再看吧。 指令.jpg (76.27 KB) 2010-12-1 18:59 ? ??? 做了这么多铺垫,该说说程序了。下面以子程序的形式逐一贴出来,这里面有的是我找的,有的是我自己编写的,就一个目的,好用。 ??? //-----------------发送命令子程序----------------------- P1.0(cs),P1.1(SID),P1.2(CLK) void send_command(unsigned char command_data)?//发送命令 { unsigned char i; unsigned char i_data; i_data=0xf8;?? //串行方式,数据从MCU到LCD,倒数第二位L代表数据控制指令,H代表显示数据 P1_0=1; P1_2=0; for(i=0;i8;i++) ????? { ???????? P1_1=(bit)(i_data0x80); ???????? P1_2=0; ???????? P1_2=1; ???????? i_data=i_data1; ?????? } ?? i_data=command_data;??? //发送用户指定指令 ?? i_data=0xf0; ?? for(i=0;i8;i++)???? //发送高位 ??????? { ???????? P1_1=(bit)(i_data0x80); ???????? P1_2=0; ???????? P1_2=1; ???????? i_data=i_data1; ??????? } ?? i_data=command_data; ?? i_data=4; ?? for(i=0;i8;i++)???? //发送低位 ??????? { ???????? P1_1=(bit)(i_data0x80); ???????? P1_2=0; ???????? P1_2=1; ???????? i_data=i_data1; ??????? } ???? P1_0=0; ???? delay_1ms(10); ???? } ? //-----------------发送数据子程序----------------------- void send_data(unsigned char command_data)? { ?unsigned char i; ?unsigned char i_data; ?i_data=0xfa; ??? P1_0=1; ?? for(i=0;i8;i++) ??????? { ???????? P1_1=(bit

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档