微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机写LCD1602代码

51单片机写LCD1602代码

时间:11-19 来源:互联网 点击:
#include

#include

//-------------

#define RW P1_0

#define RS P1_1

#define EN P1_2

#define BUS_LCD P2

#define BF P2_7

//----------------------------

void init(void);

void init_lcd(void);

void write_ins_lcd(unsigned char);

void write_data_lcd(unsigned char,unsigned char);

void ack_lcd(void);

//--------------------------------

/*void main()

{

int i;

char *str="this is the text of cheh";

init();

for(i=0;i<24;i++)

{

write_data_lcd(str[i],i);

}

}

*/

//----------------

void init(void)

{

P1=0xff;

P2=0xff;

P3=0xff;

P0=0xff;

init_lcd();

}

//-------------------------

void init_lcd(void)

{

write_ins_lcd(0x01);

write_ins_lcd(0x38);

write_ins_lcd(0x0f);

write_ins_lcd(0x06);

write_ins_lcd(0x01);

write_ins_lcd(0x38);

write_ins_lcd(0x80);

}

//------------------------------------

void write_ins_lcd(unsigned char i)

{

ack_lcd();

RS=0;

RW=0;

EN=1;

BUS_LCD=i;

EN=0;

}

//-----------------

void write_data_lcd(unsigned char i,unsigned char j)

{

if(j<16)

{

write_ins_lcd(0x80+j);

}

else

{

write_ins_lcd(0x80+j+0x30);

}

ack_lcd();

RS=1;

RW=0;

EN=1;

BUS_LCD=i;

EN=0;

}

//------------------

void ack_lcd(void)

{

BUS_LCD=0xff;

while(BF)

{

RS=0;

RW=1;

EN=0;

BUS_LCD=0xff;

EN=1;

}

EN=0;

}

//------------------------------------END;

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

网站地图

Top