在1602液晶上显示两行英文字符

//功能:显示两行英文字符
/***********************头文件*********************/
#include "regx52.h"
#define uint unsigned int
#define uchar unsigned char

sbit lcdrs=P1^5; //1602:0写指令,1写数据
sbit lcdwr=P1^6; //1602读写信号
sbit lcden=P1^7; //1602片选信号

uchar code dispbuf[]=" i love mcu";
uchar code dispbuf1[]="welcome to using";

/***********************1ms延时函数**********************/
void delayms(uint ms)
{
uint y;
while(ms--)
{
for(y=0;y<125;y++);
}
}

/***********************LCD写指令 写数据**********************/
void write_comdata(uchar rs,uchar comdata)
{
lcdrs=rs; //0写指令,1写数据
lcdwr=0; //0写数据,1读数据
P0=comdata;
;
lcden=1;
delayms(1);
lcden=0;
}

/***********************指针形式写一个字符串*********************/
void write_charchuan(uchar add, uchar *zfc)
{
write_comdata(0,add);
for(;*zfc!='\0';zfc++)
{
write_comdata(1,*zfc);
}

}

/***********************LCD初始化*********************/
void lcdinitial()
{
lcden=0;
write_comdata(0,0x38); //显示模式5*7
write_comdata(0,0x0c);
write_comdata(0,0x06); //设置指针+1 屏幕不移动
write_comdata(0,0x01); //清屏
write_comdata(0,0x80); //初始化显示地址
}

/**********************主函数*********************/
main()
{
lcdinitial(); //液晶显示初始化
write_charchuan(0x80,dispbuf); //写第二行字
write_charchuan(0x80+0x40,dispbuf1);//写第一行字
//为稳定性考虑,最好把它写到循环里面
while(1);
}

相关文档
最新文档