新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机写LCD1602代码

51单片机写LCD1602代码

作者: 时间:2016-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);
voi d 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;


关键词:51单片机LCD1602代

评论


技术专区

关闭