您的位置 首页 元件

51单片机写LCD1602代码

#includeat89x51.h>#includestdio.h>//————-#defineRWP1_0#defineRSP1_1#defineENP1_2#defin

#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;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/264895.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部