上述的dlcd,clcd1,clcd2,clcd3函数中,如果把控制器的片选信号接到低电平,cs这个管脚在程序可以略去;假如P4端口和其他端口相连接,cs管脚要通过I/O口控制驱动器是否选通。注意函数中的延迟函数:数据出现在端口上要经过T6的时间在wr的上升沿把数据写入控制器。
2.2 LCD高级程序设计
函数draw_point功能:把有颜色的点在LCD指定位置显示出来。函数参数意义(参考图3):
word_which_display:设置显示页;
word_which_write:设置操作页;
word_x,:新坐标O'在原坐标O下横坐标;
word_y:新坐标O'在原坐标O下纵坐标;
line_x:点G在坐标系O'下横坐标
line_y:点G在坐标系O'下纵坐标
yanse1,yanse2:连续写入的8位像素字节
说明:显示页的设置是为了显示两页缓存中的一页数据到LCD上,操作页的设置是为了把数据写入到两页缓存当中的一页。如果显示页为第1页,操作页为第0页,此时LCD显示的是第一页的缓存的数据,此时把数据写入到第0页缓存中,写入的数据在LCD上不被显示;如果显示页为第0页,操作页为第0页,此时LCD显示的是第0页的缓存的数据,此时把数据写入到第0页缓存中,写入的数据可以在LCD上实时的显示出来。程序依据图3中对坐标轴设计方法和LCD区域划分手段判断点G在新坐标系O'中坐标值。在程序中一定要注意每写两个字节显示数据列地址(列坐标)自动加1。为此设计如下函数:
这个函数功能比较多样化,是用新坐标系O'来确认点G的坐标。执行函数draw_point(0,0,511,255,8,9,0xf8,0x07)结果为,当前显示第0页,点为红色且被置到第0页。新坐标O'在原坐标O的(511,255)处,点G在坐标系O'的位置为(8,9),也就是被置到图3中的F区;如果执行函数draw_point(0,0,0,0,、520,364,0xf8,0x07),那么此点和上一个点将重合,此时坐标系O’和原坐标O重合。