您的位置:首页 > 其它

51单片机学习笔记【五】——1602液晶屏

2015-07-21 15:22 567 查看

一.1602液晶屏基础

1.LCD1602简介

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x11的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。本次使用型号为SMC1602A LCM的液晶屏。

2.LCD1602接口信号说明



3.控制接口说明



4.指令说明



初始化过程

第一步:写指令38H,显示模式设置;

第二步:写指令08H,显示关闭;

第三步;写指令01H,显示清屏;

第四步:写指令06H,显示光标移动设置;

第五步:写指令0CH,显示光标开及光标设置

二.实验例程

1.电路原理图



2.实验说明

本实验通过在1602液晶屏上显示两行字母学习LCD液晶屏的使用方法,接线为JP11接JP12,并插上LCD1602液晶屏,实验中为不影响实验需要把红外遥控模块拆下。

3.程序源代码

[code]/**************************************
  > File Name: LCD1602实验
  > Author: pengshp
  > Mail: pengshp3@outlook.com
  > Date: 2015年 7 月 21 日
***************************************/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit RD_RS=P2^6;
sbit LCDE_E=P2^7;
sbit WR_RW=P2^5;

uchar code table1[]="STC-51 MCU";
uchar code table2[]=" pengshp ";

uchar i,j;
uchar num;
void Delay(uint x)
{
    for(i=x;i>0;i--)
    {
        for(j=120;j>0;j--)
        {
        }
    }
}

/*写命令函数*/
void write_com(uchar com)
{
    RD_RS=0;
    WR_RW=0;
    LCDE_E=0;
    P0=com;
    LCDE_E=1;
    Delay(5);
    LCDE_E=0;
}

/*写数据函数*/
void write_data(uchar dat)
{
    RD_RS=1;
    WR_RW=0;
    LCDE_E=0;
    P0=dat;
    LCDE_E=1;
    Delay(5);
    LCDE_E=0;
}

/*初始化函数*/
void intt()
{
    write_com(0x38);//显示模式
    write_com(0x08);//显示关闭
    write_com(0x01);//显示清屏
    write_com(0x06);//显示光标移动
    write_com(0x0F);//显示开及光标设置
}

void main()
{
    intt();
    for(num=0;num<10;num++)
    {
        write_data(table1[num]);
        Delay(300);
    }
    write_com(0x80+0x40);//第二行显示
    for(num=0;num<9;num++)
    {
        write_data(table2[num]);
        Delay(10);
    }
    while(1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: