您的位置 首页 系统

51单片机对1602液晶显示的驱动规划

51单片机对1602液晶显示的驱动设计-#include

#define uchar unsigned char

#define uint unsigned int

sbit RS=P3^0; //数据/命令选择端(H/L)

sbit EN=P3^2; //使能端

sbit RW=P3^1; //读/写选择端(H/L),本文章只写,所以该端口供低电平

sbit wela=P3^3;//锁存器位选信号

uchar table1[]=“Hello,Welcome to my ”;//字符表1

uchar table2[]=“site,my friends.”;//字符表2

void delay(uint x) //延时函数

本部分首要介绍1602液晶显现,显现内容为“Hello,Welcome to my site,my friends.”。

原理图如下:

51单片机对1602液晶显现的驱动规划

程序如下:

#include

#define uchar unsigned char

#define uint unsigned int

sbit RS=P3^0; //数据/指令挑选端(H/L)

sbit EN=P3^2; //使能端

sbit RW=P3^1; //读/写挑选端(H/L),本文章只写,所以该端口供低电平

sbit wela=P3^3;//锁存器位选信号

uchar table1[]=“Hello,Welcome to my ”;//字符表1

uchar table2[]=“site,my friends.”;//字符表2

void delay(uint x) //延时函数

{

uint a,b;

for(a=x;a》0;a–)

for(b=10;b》0;b–);

}

void delay1(uint x) //延时函数

{

uint a,b;

for(a=x;a》0;a–)

for(b=100;b》0;b–);

}

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

{

wela=1; //锁存器位选翻开

P2=com; //向P2口写指令

wela=0; //锁存器位选封闭

RS=0; //以下部分跟据1602手册的时序图写出

EN=0;

RW=0;

delay(10);

EN=1;

delay(10);

EN=0;

}

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

{

wela=1;

P2=date;

wela=0;

RS=1;

EN=0;

RW=0;

delay(10);

EN=1;

delay(10);

EN=0;

}

void init() //初始化函数

{

write_com(0x38); //显现形式设置

delay(20);

write_com(0x0f);//显现开/关及光标设置

delay(20);

write_com(0x06);//当写一个字符后地址指针加一,光标加一

delay(20);

}

void main() //主函数

{

uchar a;

init();

write_com(0x80); //榜首行开始地址

delay(20);

for(a=0;a《25;a++)

{

write_date(table1[a]);//读取字符表

delay(20);

}

write_com(0xc0); //第二行开始地址

delay(20);

for(a=0;a《17;a++)

{

write_date(table2[a]);//读取字符表

delay(20);

}

while(1); //坚持显现

}

实验成果如下:

51单片机对1602液晶显现的驱动规划

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/344910.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部