在1602液晶上显示两行英文字符
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//功能:显示两行英文字符
/***********************头文件*********************/
#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);
}