您的位置 首页 新能源

单片机操控LCD1602显现字符(测试通过)

本次测试的是常用LCD1602显示屏,操作流程很简单,但有些小问题要注意,如该LCD处理速度有些慢,单片机在发送控制指令时需要适当延时,否则

本次测验的是常用LCD1602显现屏,操作流程很简单,但有些小问题要留意,如该LCD处理速度有些慢,单片机在发送控制指令时需求恰当延时,否则或许操作失利。

一、硬件简介

1>引脚介绍

详细引脚如下:

单片机需求操作的引脚有:RS、RW、E及DB0~7

2>指令介绍

在这里,只是介绍下什么是CGRAM、什么是DDRAM?

CGRAM:是用户自界说字符寄存存储器,能够自己在指定地址界说字符

DDRAM:是对应屏幕方位的存储器,设定了该地址,就确认了从屏幕什么方位开端显现字符

二、软件部分

#include
#include
#define DATA P0
sbit RS=P2^6;
sbit RW=P2^5;
sbit EN=P2^7;
unsigned char zifu[]={“Hello,World!0”};
unsigned char wangzhi[]={“http://shop108408772.taobao.com/”};
void delayms(unsigned char m) //恰当延时
{unsigned char i;
while(m–)
{
for(i=0;i<=250;i++)
{_nop_();
}
}
}
void WRITE_BYTE(unsigned char canshu) //写1个字节
{
RW=0;
_nop_();
_nop_();
EN=1;
_nop_();
DATA=canshu;
EN=0;
_nop_();
_nop_();
}

void main()
{
unsigned char *point;
RS=0;
WRITE_BYTE(1);//清屏
delayms(10);//约延时23ms
WRITE_BYTE(2);//光标归位
delayms(10);
WRITE_BYTE(6);// AC主动增1,屏幕不动
delayms(10);
WRITE_BYTE(0x0F);//光标显现闪耀
delayms(10);
WRITE_BYTE(0x14);//光标右移
delayms(10);
WRITE_BYTE(0x38);//两行显现,5X7字符
delayms(10);
WRITE_BYTE(0x80);//设定DDRAM地址
delayms(10);
_nop_();
point=wangzhi;
while(*point!=)//Hello,world!,http://shop108408772.taobao.com
{RS=1;
_nop_();
WRITE_BYTE(*point);
point=point+1;
delayms(10);
if(point==wangzhi+16)
{RS=0;
WRITE_BYTE(0xC0);//设定DDRAM地址为下行榜首个字符处
delayms(10);
}
}
while(1);
}

三、测验中问题

1>在每条指令之后留意恰当延时,否则操作犯错

2>本次测验中就不读忙标志位了,直接延时再操作基本能经过

四、测验成果

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部