我想用C51单片机控制控制器SED1335.直接用P0口驱动,驱动能力足够吗?
然后将A0,CS,WR,RD分别与P2.0,P2.1,P2.2,P2.3相连。但是我看到的程序例子中好像没看到对这A0,CS,WR,RS的操作啊。
搜到得程序中,发现很多这样使用的:
/* 定义LCM地址 */
#define LCM_BASE_ADD XBYTE[0x4000]
#define SA320240_COM XBYTE[LCM_BASE_ADD+1]
#define SA320240_DAT XBYTE[LCM_BASE_ADD]
在上面的程序段中,这个地址0x4000是怎么确定的?
直接挂在P0口的话,如果没有挂其他的器件,那么加上拉就可以了(4.7k或10k)
如果P0口还有挂其他器件的话,加一片总线驱动器来驱动一下吧,如74HC245
第二个问题仔细看一下1335的手册
如果用总线方式访问,可以不接上拉电阻.....如果用IO方式,则需要上拉
一般LCM需要用总线方式访问的,于是不可以像你说的那样"将A0,CS,WR,RD分别与P2.0,P2.1,P2.2,P2.3相连".......
一般A0和CS要接地址线,接IO也可以,但访问起来稍慢些.
WR,RD(如果不是WR和RD,而是RW和RS,可能还需要转换逻辑...)要接单片机的WR和RD...
引用: 引用 3 楼 great_bug 的回复:
一般LCM需要用总线方式访问的,于是不可以像你说的那样"将A0,CS,WR,RD分别与P2.0,P2.1,P2.2,P2.3相连".......
一般A0和CS要接地址线,接IO也可以,但访问起来稍慢些.
WR,RD(如果不是WR和RD,而是RW和RS,可能还需要转换逻辑...)要接单片机的WR和RD...
谢谢你的回复。
我现在就是想测试一下显示屏,手上元件也不多。主要就是有个51单片机。P2就是地址线啊。WR,RD必须与单片机的WR和RD连接么?
如果LCM控制线直接连I/O口,可以用程序模拟时序,具体参照规格书,如果用总线方式,要把控制线接地址总线,WR/RD接单片机WR RD
"但是我看到的程序例子中好像没看到对这A0,CS,WR,RS的操作啊"
-----------
那是因为你看的例子程序用的是总线方式,对"A0,CS,WR,RS"的操作被隐藏在对"SA320240_COM"和"SA320240_DAT"的访问中了.