amobbs.com 阿莫电子技术论坛
标题:
[古董贴][范例]使用级联595驱动的LCD12864 —— 595驱动LCD1602的姊妹篇
[打印本页]
作者:
Gorgon_Meducer
时间:
2006-2-16 21:35
标题:
[古董贴][范例]使用级联595驱动的LCD12864 —— 595驱动LCD1602的姊妹篇
在上一次成功使用 单个 595 驱动了1602以后,使用 级联 595 驱动 LCD12864的想法自然就浮出水面了。
参考了网友的 LCD12864驱动以后,我们编写了一个支持位操作、普通端口操作、并行操作、串行操作等多种模式的12864驱动。
试验成功,不敢独享,上传共勉。
点击此处下载armok01102811.rar
-----
此内容被Gorgon Meducer于2006-02-16,21:43:48编辑过
作者:
Gorgon_Meducer
时间:
2006-2-16 21:37
核心程序思想说明:
-----------------------------
1、这次使用了和上次一样SerialToCollateral.h的头文件。
2、编写了一个兼容位操作的LCD12864驱动,主要考虑到,很多人并不习惯使用位段方式作的位操作支持,所以这次使用宏定义的方法,把很多接口引了出来,提高的代码的适应性和复用性。
硬件连接说明:
595端:
VCC
SER PD5
SRCLK PD4
RCLK PD3
GND
595虚拟端口连接方式
第一级595
QA RS
QB R/W
QC E
QD CS1
QE CS2
QF RST
第二级595
QA~QH 数据端口
-----
此内容被Gorgon Meducer于2006-02-16,21:38:40编辑过
作者:
Gorgon_Meducer
时间:
2006-2-16 21:42
核心代码讲解:
-----------------------------------
# include "SerialToCollateral.h"
/*-----------------定义虚拟端口--------------------*/
# define LCD12864_RS PV0
# define LCD12864_RW PV1
# define LCD12864_E PV2
# define LCD12864_CSA PV3
# define LCD12864_CSB PV4
# define LCD12864_RST PV5
# define SETBIT_RS LCD12864_RS = High;
# define CLRBIT_RS LCD12864_RS = Low;
# define SETBIT_RW LCD12864_RW = High;
# define CLRBIT_RW LCD12864_RW = Low;
# define SETBIT_E LCD12864_E = High;refreshVirtualPORT();
# define CLRBIT_E LCD12864_E = Low;refreshVirtualPORT();
# define SETBIT_CS1 LCD12864_CSA = High;
# define CLRBIT_CS1 LCD12864_CSA = Low;
# define SETBIT_CS2 LCD12864_CSB = High;
# define CLRBIT_CS2 LCD12864_CSB = Low;
# define SETBIT_RST LCD12864_RST = High;refreshVirtualPORT();
# define CLRBIT_RST LCD12864_RST = Low;refreshVirtualPORT();
/*-----------------定义虚拟端口下的写数据方式------------------*/
# define LCD12864_DataTransfer(a) VPORT &= 0x00ff;VPORT |= (a<<8); refreshVirtualPORT();
/*------------------保持与并行模式兼容性的鸡肋宏定义--------------------*/
# define ReadDataPORT
# define SetDataPORTDirection_READ
# define SetDataPORTDirection_WRITE
/*---------说明驱动LCD12864不读取状态-----------*/
# define _LCD12864_WriteOnly
/*---------设置在只写状态下的延时等待周期---------*/
# define LCD12864_WaitTime 1
# include "RD_LCD12864.h"
作者:
avrboy
时间:
2006-2-16 22:28
呵呵,樓主用595用上隱了!!
作者:
Gorgon_Meducer
时间:
2006-2-16 22:49
伤自尊了……
作者:
avrboy
时间:
2006-2-16 22:53
其實我也是用上了隱的
http://www.ouravr.com/bbs/bbs_upload3433344123780210/files_5/armok0192766.gif
作者:
avrboy
时间:
2006-2-16 22:58
還有這個
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=448564&bbs_page_no=1&bbs_id=1000
作者:
Gorgon_Meducer
时间:
2006-2-16 23:09
晕……原来我们一样哈。
作者:
onorg
时间:
2006-2-17 08:47
够详细。。支持。。。
作者:
xusp
时间:
2006-6-12 17:01
请问楼主,这个LCD12864的主芯片是T6963C的吗
作者:
Gorgon_Meducer
时间:
2006-6-12 23:51
没有注意看过,应该是吧
作者:
yxlcarter
时间:
2008-9-11 15:33
方法是不错,可是驱动一个1602加两个595,省了,4个IO口,成本没考虑吗?
作者:
kdtcf
时间:
2008-9-11 17:25
用595传输会不会减慢刷新速度,视觉上会不会受影响呢?
作者:
Gorgon_Meducer
时间:
2008-9-13 17:05
to 【12楼】 kdtcf 春风
速度变慢是很明显的。在图像刷新速度要求不严格的场合可以使用。
作者:
linghu2
时间:
2011-5-9 15:15
用IO模拟SPI,速度肯定慢了!
作者:
pjn74a
时间:
2011-5-12 16:59
595传输线长了容易受到干扰
作者:
banye2010
时间:
2013-3-29 11:55
12864貌似本来就支持行的
作者:
sdyzxue
时间:
2013-4-1 10:14
谢谢分享,适用于端口紧张的情况下。
作者:
OYL
时间:
2013-4-23 09:22
其实12864不算VCC和GND只要两根线就可以驱动
作者:
YS126
时间:
2013-4-24 22:09
记号,留着以后找
作者:
jxchen
时间:
2019-3-15 23:50
棒棒棒~~~~~~~~~~~~~~~~
欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/)
Powered by Discuz! X3.4