uchar code table怎么确定(uchar code table[8])

uchar code table怎么确定(uchar code table[8])右边那个用于插入 1602 左边那个电位器 滑动变阻器 用于调节液晶的对比度 转动后 字符的颜色会发生深浅变化 这样插上去 插反了容易把液晶烧坏 1602 1 行可以显示 16 个字符 一共两行 还有 1601 0801 0802 12864 12232 12864 图形液晶 横着有 128 个点 竖着有 64 个点 要让显示东西 控制矩阵内这些任何的点就会显示图形或汉字

大家好,我是讯享网,很高兴认识大家。




讯享网

右边那个用于插入1602,左边那个电位器(滑动变阻器)用于调节液晶的对比度,转动后,字符的颜色会发生深浅变化。

这样插上去,插反了容易把液晶烧坏。

1602:1行可以显示16个字符,一共两行。

还有1601,0801,0802,12864,12232、、。

12864:图形液晶,横着有128个点,竖着有64个点。要让显示东西,控制矩阵内这些任何的点就会显示图形或汉字。如果是带字库的液晶,写字的时候,直接把汉字赋给液晶的数据口,这些字体就能出来。

1602只能显示数字和字符,即数字、英文字母、符号,所有的asc码,不能显示汉字。

这种液晶就是两色,还有带有灰度值得,可以显示出动画,还有wei 彩的、真彩的就是彩色液晶,也可以由单片机驱动。


液晶比数码管有意思多了,而且比数码管简单。

1602有好几种接口,这里是并行接口。

3VL就是液晶对比度调节。

4RS液晶写数据之前要先接收命令,表示他要干什么,命令是要让液晶内部进行一些设置,数据就是直接要显示的数据。首先命令在什么位置显示什么东西,就像光标闪烁就是命令。H电平接收数据,L电平接收命令。

5RW读写数据,液晶可以写数据,也可以从里面读数据。今天简化一下,就不读数据了。

D0~D7,8位数据口。

15~16不接背光就不亮了。

设计电路板才需要考虑尺寸,所以不看了。

控制器接口这是液晶内部。

要读当前状态是否允许写,比如上一个状态还没有显示出来又写了一个,这就不行,数据会丢失。这是高速操作用的。

我们只看写,1.2:RS=L(选中了命令,命令就是指令),RW=L(写),D0~D7指令码(后面讲,D0~D7可以送指令也可以送数据,由RS决定),E=高脉冲前者为高脉冲,后者为低脉冲。输出就不管了。

1.3也是读,就不看了。

1.4:RS=H(选中数据),RW=L(写),D0~D7(数据),E=高脉冲。

数字芯片要读懂时序图。

读的就不看了,看写的。

能看到许多都是两条线,那是因为一个是写,一个是读。

我们只看写的,首先RS,RW变低,过一段时间,再给E一个高脉冲,持续一段时间,再拉为低电平,持续一段时间,再将RS、RW变回高。具体写程序再看。

延时多少时间,要看时序参数:

不同厂家操作时序不一样,这里郭天祥说按照长沙太阳人公司(就是上面这些内容的出处)的不能正常工作…..然后看了英文原版的。

 

我们可以不检测,我们做个延时,等他忙完,在进行第二个操作,可以省不少事情,不至于程序写的麻烦。

看到省略号后面还有,视频中字符是从右侧慢慢移到左边的,实际上就是写到了后面,先全部写完,有一个整屏移动指令,就全都移动出来了。还有别的方向的。但是省略号后面那些不在显示范围内。

5*7点阵:其实每个字符是由5行7列的点阵组成的

要显示东西,肯定要让D=1,光标显示关闭等会我们分别试试看看效果。

N=1,每写一个字节,地址指针自动加1,下一次直接写数据就可以了,N=0,就是倒着往前写。

80字节RAM:00~67。

数据指针,也是指令,要先设置数据指到什么位置,然后再写数据,不能直接写0-27,前面要有个80H+,80H+1地址就是01,80H就是00。

我们写的时候不按照这个,按照自己的方法。

1602和51单片机的接口

这里中间74LS00那里不看,可能是自动写入方法。RD和WR第二功能还没讲,用的时候自己看。

    

 

15、16背光,加了一个10Ω电阻,怕直接加5V电压后电流过大把芯片烧坏,用它限流。

D0~D7数据口接了P0口,6接口是使能端,接了P3.4。然后5这个IO口和我们的不一样,因为这里只写,所以视频中直接接了低电平,4是数据命令选择端,接了P3.5,3是偏压信号,接地,液晶显示需要负电压,并用滑动变阻器调节,电压就会变化,内部对比度就会变化。


接下来程序,我们先把光标写出来

注意D0~D7连接着数码管的,写数据时,数码管也会变,实验板是usb供电,同时把数码管和液晶打开,功耗会过大,usb供电电流比较小,功耗不够,液晶就会不亮,所以我们把数码管全部关端,把锁存端关闭就可以。

然后就照着下面的图写就可以了

这里我先尝试按照视频中的电路接法,用的仿真,把RW接地。由于RW一直为低,所以就不需要tSP1的等待时间了

代码是成功的,我们也可以让光标不闪烁,即将0x0f改为0x0e;

但是会发现,前面有一个黑块,这这么回事?

本以为没有初始化光标,所以在init中write_com(0x06)后面加了一个write_com(0x80);结果不行,光标没了...

可能是一开始有数据,我们先清屏一下,加上write_com(0x01)

光标有了,接下来可以写数据了,我们先写一个1

成功并且光标后移1位

如果我们直接写write_com(1)

那么显示就不对。

这里可以看一个手册

这里给出了每个字符对应的16进制数,即asc值。

这就是各个字符的16进制编码,从图中可以看到1的是31,a是41,之前串口通信的时候我们也看到过。

我们写'1'就是给了1的asc

如果我们直接给了0x31,那么也是输出1

如果我们想多输入几个,那么主函数如下

接下来我们写两行,第一行:I LIKE MCU! 第二行:,那么为了简便,我们要用到循环,不过有的人可能会这么写:

一行哪有那么多字符额...

所以我们要换行

如果想让每一个字符出现的慢一点,就把delay加长。

接下来我们让所有字符从右往左移动出来。

之前的不全,少了这个指令

cursor光标,display shift显示移动

在不改变DD RAM的情况下,他会移动光标或显示

00:光标左移

01:光标右移

10:显示左移,光标跟随显示移动

11:显示右移

写一条指令移动一下

首先我们就不能写在00了,就要从10开始

怪异,视频中是0x10,我的必须是0x1c,方向和上面的数据手册相反,下次实验板试试好了

仿真用0x1c,单片机用0x18

小讯
上一篇 2025-04-26 17:05
下一篇 2025-05-14 14:54

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/191916.html