51单片机写LCD1602代码
#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;
51单片机LCD1602代 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)