单片机
返回首页

C51 液晶显示1602模块

2022-01-25 来源:eefocus

代码:


#include

#define uchar unsigned char

#define uint unsigned int

uchar num;

uint i,j;

sbit rs=P3^5; 定义液晶数据命令选择端

sbit wr=P3^6; 定义液晶读写选择端

sbit lcden=P3^4; 定义液晶使能选择端

sbit dula=P2^6;

sbit wela=P2^7;

uchar code table1[]='study every day';

uchar code table2[]='thanks for reading';


void delay(uint x)

{

for(i=x;i>0;i--)

{

for(j=120;j>0;j--);

}

}


void write_com(uchar com) //写命令函数

{

rs=0; 数据命令选择端,写命令时设为0

wr=0; 读写选择段,写数据设为0

lcden=0;

P0=com; 将要写的命令传送到数据总线上

lcden=1; 使能端电平变换,形成一个高脉冲将命令写入到液晶控制器

delay(5);

lcden=0; 再把使能端置0


}

void write_data(uchar dat)  //写数据函数

{

rs=1;

wr=0;

lcden=0;

P0=dat;

lcden=1;

delay(5);

lcden=0;


}


void init() //1602液晶初始化设置函数

{

write_com(0x38); 显示模式,设置成16x2显示,5x7点阵,8位数据口

write_com(0x08); 关闭显示

write_com(0x01); 显示清屏:数据指针清零,所有显示清零

write_com(0x06); 显示光标移动设置:写一个字符之后地址指针加一,光标也加一

write_com(0x0f); 显示开及光标设置:开显示,显示光标,把光标设置位闪烁


}

void main()

{

P0=0; 关闭数码管

dula=0;

wela=0;

init();

for(num=0;num<9 ;num++)

{

write_data(table1[num]);

delay(300);

}

write_com(0x80+0x40);

for(num=0;num<16 ;num++)

{

write_data(table2[num]);

delay(300);

}

while(1);


}


1602模块参数表

在这里插入图片描述

引脚功能:

1、VL 脚:改变VL脚的电压可以调节液晶显示的对比度,通过调整可调电阻(10k)的分压值改变VL的电压

2、RS脚:为高电平时,写入的是显示数据;为低电平时,写入的是命令

3、R/W脚:为高电平可以读取液晶数据;低电平时可以往液晶里写数据

4、E脚:让液晶工作的信号,类似与AD和DA芯片的片选信号

5、D0~D7脚:八位并行数据端口


RAM地址映射图:

在这里插入图片描述

1、00 ~ 0F地址对应液晶显示区域的第一行16位;40 ~ 4F 对应第二行16位

10 ~ 27 和50 ~67 是不会显示出来的,需要用到移屏命令

例如输入 0x18 命令后整屏左移一位;输入 0x1c 右移一位


状态字:

在这里插入图片描述

1、 STA=1时,禁止进行读写操作,因为1602模块操作速度有限,在模块还没忙完的时候

对它进行读写操作会导致数据丢失(51芯片工作速度比1602慢,ARM较快)

因此每次对模块操作都要去读模块是否忙完了


初始化设置:

1、

在这里插入图片描述

其中 5x7 是指用35个点阵组成的区域显示一个字符

5x7点阵 在这里插入图片描述

2、显示开/关及光标设置

在这里插入图片描述

3、

在这里插入图片描述

数据指针设置:

在这里插入图片描述

要在1602上显示字符,首先要设置数据地址指针RAM进行访问,他的指令码是 80H+地址码 ,而不能直接写地址码表示

例如 80H+01 所在的位置是液晶显示区域的第一行,第二个位置


操作时序

在这里插入图片描述

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 简洁的过零调功器电路设计与分析

  • 永不缺相启动运行的电动机控制电路

  • IGBT模块通过控制门极阻断过电流

  • CCFL的工作原理及电子驱动电路解析

  • 基于M66T旋律发​​生器的电路图解析

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章