微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 一看就懂——DIY单片机开发板教程

一看就懂——DIY单片机开发板教程

时间:09-18 来源:张飞实战电子 点击:

定义。

那么如何对DDRAM 的内容和地址进行具体操作呢,下面先说说HD44780 的指令集及其设置说明,请浏览该指令集,并找出对DDRAM 的内容和地址进行操作的指令。

共11 条指令:

1.清屏指令

功能:

<1> 清除液晶显示器,即将DDRAM 的内容全部填入"空白"的ASCII 码20H;

<2> 光标归位,即将光标撤回液晶显示屏的左上方;

<3> 将地址计数器(AC)的值设为0。

2.光标归位指令

功能:

<1> 把光标撤回到显示器的左上方;

<2> 把地址计数器(AC)的值设置为0;

<3> 保持DDRAM 的内容不变。

3.进入模式设置指令

功能:设定每次定入1 位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示:

位名设置

I/D 0=写入新数据后光标左移          1=写入新数据后光标右移

S 0=写入新数据后显示屏不移动    1=写入新数据后显示屏整体右移一个字符

4.显示开关控制指令

5.设定显示屏或光标移动方向指令

6.功能设定指令

7.设定CGRAM 地址指令

功能:设定下一个要存入数据的CGRAM 的地址。

8.设定DDRAM 地址指令

功能:设定下一个要存入数据的CGRAM 的地址。

9.读取忙信号或AC 地址指令

功能:

<1> 读取忙碌信号BF 的内容,BF=1 表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0 时,液晶显示器可以接收单片机送来的数据或指令;

<2> 读取地址计数器(AC)的内容。

10.数据写入DDRAM 或CGRAM 指令一览

功能:

<1> 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;

<2> 将使用者自己设计的图形存入CGRAM。

11.从CGRAM 或DDRAM 读出数据的指令一览

(2)……LCD1602的驱动

具体电路的制作是很简单的,就接了两个电阻,一个是10 欧姆的背光限流电阻,另一个是2K 的LCD 极板电压调节电阻。这两个电阻的阻值怎么定呢?背光比较简单,它就相当于在后面接了几个发光二极管,任何时候你只要在15、16 脚串上个100 欧的电位器接上电源,调节电位器,觉得亮度合适。此时的阻值便可。LCD 液晶极板驱动电压调节电阻的确定就稍微麻烦一点。在各数据线,控制线接好关通上电源的前提下在第3 脚(VEE)和地之间接一个10K 的电位器。调节电位器。当3 脚电压高时为全亮,电压为0 时为全暗(液晶全显示为黑块)。你用电位器把屏幕从全暗刚好调到变亮。这时便可调试程序。待屏幕能正确显示后再细调电位器,使对比度合适。这时的阻值便可确定,然后换成等值的固定电阻焊上便可。

我们接着上次的系统板制做:

新买的1602LCD,20 元,贵不?

反面:

组装后:

具体电路图:

接口说明:

运行:

用户自定义字符的应用:

我们从CGROM 表上可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看着是16 个,实际只有8 个字节可用。它的字符码是00000000-00000111 这8 个地址,表的下面还有8 个字节,但因为这个CGRAM 的字符码规定0-2 位为地址,3 位无效,4-7 全为零。因此CGRAM 的字符码只有最后三位能用也就是8 个字节了。等效为0000X111,X 为无效位,最后三位为000-111共8 个。

如果我们要想显示这8 个用户自定义的字符,操作方法和显示CGROM 的一样,先设置DDRAM 位置,再向DDRAM 写入字符码,例如"A"就是41H。现在我们要显示CGRAM 的第一个自定义字符,就向DDRAM 写入00000000B(00H),如果要显示第8 个就写入00000111(08H),简单吧!

好!现在我们来看怎么向这八个自定义字符写入字模。有个设置CGRAM 地址的指

令大家还记得吗?赶快再找出来看看。

从这个指令可以看出指令数据的高2 位已固定是01,只有后面的6 位是地址数据,而这6 位中的高3 位就表示这八个自定义字符,最后的3 位就是字模数据的八个地址了。例如第一个自定义字符的字模地址为01000000-01000111 八个地址。我们向这8 个字节写入字模数据,让它能显示出"℃"

下面我们写一段程序让这8 个自定义字符显示出一个心的图案:

实际效果如图:

6.自制单片机之六……LCD12864的驱动

LCD12864 的驱动

LCD12864 在市面上主要分为两种,一种是采用st7920 控制器的,它一般带有中文字库字模,价格略高一点。另一种是采用KS0108 控制器,它只是点阵模式,不带字库。很可惜,我的这块就是KS0108 控制器不带汉字库的,不过不打算用它专

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top