单片机对1602液晶的驱动

来源:本站
导读:目前正在解读《单片机对1602液晶的驱动》的相关信息,《单片机对1602液晶的驱动》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机对1602液晶的驱动》的详细说明。
简介:1602液晶只能显示ASCI,今天把1602液晶驱动起来,液晶操作要比数码管简单

液晶的操作:

1602液晶只能显示ASCI,今天把1602液晶驱动起来,液晶操作要比数码管简单

液晶的基本操作时序:

1.1读状态:输入:RS= L,RW =H,E = H输出D0~D7

1.2写指令:输入:RS = L,RW = L,D0~D7指令码,E = 高脉冲,输出:无;

RS是数据命令选择端(H/L);

1.3读数据:输入RS= H,RW=H,E=H

1.4写指令:输出,RS = L,RW = L,D0~D7=数据,E=高脉冲

注意:对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0,可以用简单的延时来代替

初始化设置

显示模式设置

指令码:00111000 功能16*2显示,5*7点阵,8为数据接口0x38的指令

显示开/关光标的设置

因此左移和右由N和S设置

数据指针的指令码

80H+地址码(0-27H,40H到67H)

其他设置

指令码 01H 功能是显示清屏:1数据指针清零,2所有显示清零

02H显示回车:1数据指针清零

电路图如图所示:

单片机对1602液晶的驱动

示例代码:动态显示

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit lcden = P2^6;//这几个端口要和硬件电路先联系

sbit lcdrw = P2^5;

sbit lcdrs = P2^4;

sbit dula = P3^1;

sbit wela = P3^2;

uchar num;

uchar code table[]=“I LIkeMCU!”;

uchar code table1[]=“I LIke HULeiHao”;

void delay(uint z)

{

uint x,y;

for(x= z;x》0;x--)

for(y =110;y》0;y--);

}

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

{

lcdrs = 0;//使能端置0低脉冲写指令,高脉冲写数据

_nop_();//推迟一个机器周期

lcdrw = 0;//低电平往里面写数据

P0= com;

delay(5);

lcden = 1;//使能端给一个高电平读走数据

delay(5);

lcden = 0;//使能端给一个低电平回位

}

void write_date(uchar date)//写数据函数

{

lcdrs = 1;//使能端置0低脉冲写指令,高脉冲写数据

_nop_();//推迟一个机器周期

lcdrw = 0;

P0= date;

delay(5);

lcden = 1;

delay(5);

lcden = 0;

}

void init()

{

dula = 0;

wela = 0;//关闭数码管

lcden = 0;

write_com(0x38);//显示模式设置

write_com(0x0e);//显示开关以及光标设置

write_com(0x06);

write_com(0x80+0x10);

}

void main()

{

init();

for(num=0;num《11; num++)

{

write_date(table[num]);

delay(20);

}

// write_com = 1;//清屏操作

write_com(0x80+0x53);//设置数据指针

for(num=0;num《15; num++)

{

write_date(table1[num]);

delay(20);

}

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

{

write_com(0x18);//整个屏幕左移

delay(20);

}

while(1);

}

提醒:《单片机对1602液晶的驱动》最后刷新时间 2024-03-14 01:07:01,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机对1602液晶的驱动》该内容的真实性请自行鉴别。