全球旧事资料 分类
defi
eLCD_MAX_X11每行字符,LCD_MAX_X18点
defi
eLCD_MAX_Y5共多少行,(LCD_MAX_Y1)8点
f
如果你写过单片机程序,就会知道任何程序的初始化阶段都是这么些步骤,定义再定义,最后是某些功能的初始化函数。这些就是刚开始的声明定义过程。前面的几个defi
e,i
clude我就不多说了,如果你连这个都看不懂,只能先去补习补习c语言了。
defi
eLCMD
XBYTE0xAf00和defi
eLCMCXBYTE0xAb00两句是用来定义外部总
线接口地址的。0xAf00用来传递数据,0xAb00用来传递命令,之前说过,是传输命令还是数据主要是取决于A10的,上面两个地址对应的A10其实就是0xaf00A101,0xab00A100。照电子白菜大虾的话说,地址的取值只要确保在A000AFFF之间就可以了,所以以下定义一样能正确驱动LCD:defi
eLCMDXBYTE0xA400液晶数据口defi
eLCMCXBYTE0xA000液晶命令口虽然地址不同了,但对A10的作用依然不变。
接下来的两句则是用LCD_DOT_X来表示lcd的宽点数,LCD_DOT_Y表示高点数。想象坐标轴,呵呵,是不是好理解了?这就说明我们现在用的lcd是LCD_DOT_X宽LCD_DOT_Y高的。
最后两句则是告诉我们,这个lcd可以显示5行,每行11个字符。这些参数都是可以根
f据lcd不同而变化的。

structcursortype

ucharx
uchary

structcursortypecursor
voidwridataucharch

LCMDch

fvoidwricmducharch

LCMCch


这几句也都属于初始化步骤。首先structcursortype这个结构体是用来定义光标的,光标在屏幕上当然可以用x和y两个值表示,这样我们到时候用cursorx或者cursory确定光标位置就方便多了。
Wridata和wricmd两个函数则是写数据和写命令功能。仔细看,LCMD就是液晶数据口,LCMC就是液晶命令口,我们对他们进行的操作实际上就是对0xAf00或0xA000地址进行操作。例如我们用wridata0x33,也就是说我们把0x33这个数据通过0xAf00这个外部总线接口地址送到SSD181X中。由于是0xAf00的地址,A10必然为1,控制器就知道此时你要传递的是数据拉~怎么样很方便吧。
voidlightuchar

f
LCMC0x81
LCMC


把这个程序单独列出来是因为想讲讲程序如何传递能够作用的有效参数。首先这是一个调节lcd亮度(其实更加严格得说是对比度)的函数。我们看到他用的LCMC,说明此时我们是发送程序给lcd,让他知道我们要调整亮度了。那么究竟传递什么东西,控制器才能知道我们的意图呢?不用担心,pdf上会告诉你按什么格式发送指令给控制器才有效。r
好听全球资料 返回顶部