当前位置: 代码迷 >> 单片机 >> 51单片机学习笔记【5】——1602液晶屏
  详细解决方案

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

热度:428   发布时间:2016-04-28 14:41:59.0
51单片机学习笔记【五】——1602液晶屏

一.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.程序源代码

/**************************************  > File Name: LCD1602实验  > Author: pengshp  > Mail: [email protected]  > Date: 2015年 7 月 21 日***************************************/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit 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);}

版权声明:本文为博主原创文章,未经博主允许不得转载。