实验室培训总结1
这个寒假有幸参与到了学校的实验室培训,真的是受益良多,也学习到了芯片的使用。
先讲以下首先学习到了1602的液晶屏的使用,驱动一个模块无非就是通过根据所给的时序图进行一系列的编写,下面是1602的时序图的历程
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200814200352987.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ4NzMzMDQw,size_16,color_FFFFFF,t_70#pic_center)
驱动一个芯片最重要的是学会看时许图,首先是1602有三个主要的IO口引脚,通过驱动这个三个IO口的高低电平和高低电平的时间,一般来说,驱动一个芯片分为三个步骤, 一是对芯片的初始化设置,二是对芯片进行写命令操作,三是对芯片所反馈的数值进行显示。
驱动这个1602的基本代码是对芯片进行写入三条语句
LCD1602Init()
{
write_com(0x38); //设置16 * 2显示 ,5 * 7 点阵,八位数据口
write_com(0x0e); //设置开启显示,不显示光标
write_com(0x06); 写入一个字符后地址指针加一
write_com(0x01); //进行清屏操作,将上一次残留
的显示删除掉
}
上面四条指令就是1602的初始化代码,对于芯片的驱动要严格遵守时序图进行读写,否则会出现显示乱码和无法显示的诸多问题,由于仅仅只是因为高低电平的延时不足导致的显示问题,进行错误排查是极为困难,所以每一次驱动芯片要严格遵守时序图所给的信号周期进行高低电平的切换。
按照上面那个时序图进行写命令的代码如下
void write_com(uint com)
{
E = 0;
RS = 0;
RW = 0;
P0 = com;
E = 1;
nop();
E = 0;
}
上面这一小段就是就是按照所给的时序图进行写命令的函数,由于硬件问题,所给的写命令所需要的延时有所差异,因为切不可以死记住如何写命令的代码,我们应该根据芯片的使用手册进行对代码的写入。
以下函数是对1602进行写函数
void Write_data(uchar dat)
{
check_busy(); //检查忙信号
E = 0;
RS= 1;
RW = 0;
P0 = dat;
E = 1;
nop();
E = 0;
}
从上面两端代码我们可以看出其实写命令和写数据仅仅是有一行不同而已,就是写命令的时候,RS = 0;
写数据的时候是 RS = 1;
我们应该掌握一些代码的相同点和不同点,进行深度的思考学习,同时在Keil软件中要特别注意变量的定义
我曾经定义一个变量 为 uchar data ; 结果老是进行报错
,原因是因为data是一个关键字,但是在keil软件中这个关键字又没有变成蓝色,导致编译不能通过。因为要特别注意关键字的定义,我们定义变量名尽量选择
有意义的变量名字,比如说com ,data 之类的。
其实驱动1602和12864的代码相差不大,12864就是多一个并行模式和串行模式的选择,12864和1602最大的区别是12864可以显示中文汉字,驱动的代码驱动都差不多的。
但是经过多次使用12864和1602液晶显示屏,12864显示比较多那些硬件问题,比如说你要显示中文,按照位置的偶数位置进行写入,因为一个汉字占两个字节,如果你在第二个字节进行汉字的写入的话会出现乱码,可能是芯片的内部是按照相邻的两个字节进行读取的。
以上就是分析小结,LCD1602液晶模块的作用就是显示作用,既然是显示,无非就是显示什么内容,在哪个位置进行显示,那么如何知道哪一个位置呢?无非就是多看一下使用手册
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200814204405914.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ4NzMzMDQw,size_16,color_FFFFFF,t_70#pic_center)
我们通过单片机控制LCD1602液晶模块的时候,也就是两个不同的对象进行沟通,一定要打招呼嘛,打招呼无非就是初始化设置,如何初始化呢?直接看使用手册就行了。
以上仅仅是LCD1602简单的使用,具体更多的功能实现还是需要看使用手册的。如果能够仅仅看使用手册就可以编写出代码,那是真正掌握了器件的使用了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)