微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机C编程(十二、LM016L液晶显示)

51单片机C编程(十二、LM016L液晶显示)

时间:11-27 来源:互联网 点击:

#include
#define uchar unsigned char
#define uintunsigned int
#defineLCDPORT P0
uchar code tab[]="I LIKE MCU!";
uchar code tab1[]="HELLO!";

sbit LCDE=P3^5;
sbit LCDRW=P3^6;
sbit LCDRS=P3^7;

void WriteCMD(uchar);
void init();
void WriteData(uchar);
void Delay();
void mydelay(int);
void main()
{
uint i;
init();

for(i=0;i<11;i++)
{
WriteData(tab[i]);
mydelay(50);
}
mydelay(1000);
WriteCMD(0x01);
WriteCMD(0x80+0x40+10);
for(i=0;i<6;i++)
{
WriteData(tab1[i]);
mydelay(50);
}

while(1);
}
void Delay()
{
uint uiCount;
for(uiCount=0;uiCount<250;uiCount++);
}

//*************************************************************************************************
//**
//***************************把1个命令写入LCD**************************
//**
//*************************************************************************************************
void WriteCMD(uchar Command)
{
Delay();//先延时。

LCDE=1;//然后把LCD改为写入命令状态。
LCDRS=0;
LCDRW=0;

LCDPORT=Command;//再输出命令。

LCDE=0;//最后执行命令。
}

//*************************************************************************************************
//**
//****************************把1个数据写入LCD*************************
//**
//*************************************************************************************************
void WriteData(uchar dat)
{
Delay();//先延时。

LCDE=1;//然后把LCD改为写入数据状态。
LCDRS=1;
LCDRW=0;

LCDPORT=dat;//再输出数据。

LCDE=0;//最后显示数据。
}
void init()
{
LCDRW=0;
LCDE=0;
WriteCMD(0x38);
WriteCMD(0x0e);
WriteCMD(0x07);
WriteCMD(0x01);
WriteCMD(0x80+14);
}
void mydelay(int x)
{
int i,j;
for(i=x;i>0;i--)
for(j=255;j>0;j--);
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top