四、关于CGRAM的使用:
可以参考这个网站的程序: http://bbs.友好站点,请勿转贴.com/ShowTopic.aspx?id=81220 ST7920自行产生RAM提供使用者图像定义(造字)功能,可以提供四组16*16点的自定义图像空间,使用者可以将内部自行没有提供的图像自行定义到CGRAM中,便可以通过DDRAM显示在液晶屏上。注意:网上介绍说ST7920芯片同屏幕不能显示4个以上自定义汉字(用CGRAM)。显示CGRAM字型:将16位元资料写入DDRAM中,一共有0000H,0002H,0004H,0006H四种编码。
操作步骤:
1> 设置为扩充指令集;
2> 设置SR=O,允许设定CGRAM地址;
3> 设置为基本指令集;
4> 循环执行以下操作写入16个字节数据(设定CGRAM的存储地址;写入自定义数据);
5> 设置DDRAM地址
6> 写入显示CGRAM显示码
五、关于GDRAM绘图模式的操作
ST7920提供64×32 个字节的空间(由扩充指令设定绘图RAM 地址),最多可以控制256×64 点阵的二维绘图缓冲空间,在更改绘图RAM时,由扩充指令设置GDRAM地址先垂直地址后水平地址(连续2个字节的数据来定义垂直和水平地址),再2个字节的数据给绘图RAM(先高8位后低8 位)。地址分布如下:
操作步骤:
1>设置为扩充指令集,关闭绘图模式;
2>写两字节的GDRAM地址,先写垂直地址,后写水平地址地址;
3>写入两字节的数据,先写高八位数据,后写低八位数据;
4>打开绘图模式;
5>设置回基本指令集;
应用实例:
/*************************GUI全屏填充********************/
GUI_Fill_GDRAM(0xcc); //竖条显示
实物图:
1、打点
打点操作是作图的基础,众所周知,画任何图形均可以由画一个个点来实现。
具体打点的操作步骤:
1>确定打点的位置;
2>读出该点所在的数据值;
3>修改该点相应的位的值,对于单色液晶来说,只有两种操作,已是点亮该点,二是熄灭该点;
4>将修改后的数据值写入对应的地址;
由于打点首先需要进行读操作,因此需要编写读数据的驱动函数:
读操作的编写:
时序图:
操作如下:
1>释放总线:DB=0;
2>RS=1(读数据操作);或者RS=0(读状态操作);
3>RW=1;//指明为读操作
4> E=1;
5>data=DB;//data为存储读回数据的变量
6>E=0;
读操作参考程序:
打点参考程序:
应用实例:
/***************************GUI作图操作**********************/
GUI_Point(64,32,1); //打点操作
应用例子:
GUI_HLine(10,120,10,1); //画水平线操作
GUI_RLine(10,10,60,1); //画垂直线操作
任意两点画线:
应用例子:
GUI_Line(0,0,127,63,1); //画线操作
画矩形:
应用例子: GUI_Rectangle(5,5,122,58,1); //画矩形操作
|
应用例子:
GUI_Rectangle_Fill(5,5,122,58,1); //填充矩形操作
画正方形和填充正方形:
应用例子: GUI_Square(10,10,50,1); //画正方形操作
GUI_Square_Fill(20,20,20,1); //填充正方形操作
再来个画圆的程序:
应用例子: GUI_Circle(32,32,30,1); //画圆操作
|