/*程序名:LCD1602液晶驱动程序*/
/*程序功能:LCD1602液晶显示字符*/
/*作者:POLO*/
#include<at89x51.h>
#define RS P3_0
#define RW P3_1
#define E P3_2
#define DB7_DB0 P0
#define DB7 P0_7
typedef unsigned char int8;
void lcd_busy(void)//判忙子程序
{
do
{
DB7_DB0=0x80;
RS="0";
RW="1";
E="0";
E="1";//读上升沿有效
}
while(DB7);
return;
}
void write_ir(int8 idat)//写指令子程序
{
DB7_DB0=idat;
RS="0";
RW="0";
E="1";
E="0";//写下降沿有效
return;
}
void write_dr(int8 ddat)//写数据子程序
{
DB7_DB0=ddat;
RS="1";
RW="0";
E="1";
E="0";//写下降沿有效
return;
}
void init_lcd(void)//初始化液晶子程序
{
lcd_busy();
write_ir(0x38);
lcd_busy();
write_ir(0x06);
lcd_busy();
write_ir(0x0f);
lcd_busy();
write_ir(0x01);
return;
}
int main(void)
{
init_lcd(); //调用初始化程序
lcd_busy();
write_ir(0x80); //显示位置设置
lcd_busy();
write_dr('A'); //显示字符
}
文章评论(0条评论)
登录后参与讨论