#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^0;//寄存器选择位
sbit RW=P2^1;//读写选择位
sbit E=P2^2; //使能信号位
sbit BF=P0^7;//忙碌标志位
uchar table1[]={" HELLOW WORLD"};
/**************
函数功能:延时函数1秒
*******************/
void delaylms()
{
uchar i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++);
}
/*********
函数功能:延时若干秒***
*******入口参数:n
*****************/
void delay(uchar n)
{
uchar i;
for(i=0;i delaylms(); } /****** 函数功能;判断液晶模块的忙碌状态 返回值:result。result=1,忙碌;result=0,不忙碌**********/ uchar busytest(void) { bit result; RS=0; //RS为低电平RW为高电平,可以读状态 RW=1; E=1; //E=1允许写 _nop_(); _nop_(); _nop_(); _nop_(); result=BF; E=0; return result; } /********* 函数功能:将模式设置指令或显示地址写入液晶模块 入口参数:dictate******************/ void writeinstruction(uchar dictate) { while(busytest()==1); RS=0; //RS,RW同时为0时,可以写入指令 RW=0; E=0; //写指令时E为高脉冲,写指令就是让脉冲从0到1发生跳变 _nop_(); _nop_(); P0=dictate;//将数据写入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_();//四个空周期,给机器足够的反应时间 E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; //当E由1到0时液晶模块开始执行命令 } /********函数功能:指定字符显示的实际地址 入口参数:x**************/ void writeaddress(uchar x) { writeinstruction(x|0x80); } /********函数功能:将数据(字符的ASCII码)写入字符模块 入口函数:y*******************/ void writedate(uchar y) { while(busytest()==1); RS=1;//RS为高电平,RW为低电平可以写入数据 RW=0; E=0; P0=y;//将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0; } /********函数的功能:对液晶的显示功能进行初始化设置**************/ void lcdinitate() { delay(15);//延时15秒 writeinstruction(0x38);//设置显示模式16*2显示,5*7点阵,8位数据接口 delay(5); writeinstruction(0x38);//设置显示模式16*2显示,5*7点阵,8位数据接口 delay(5); writeinstruction(0x38);//设置显示模式16*2显示,5*7点阵,8位数据接口 delay(5); writeinstruction(0x0f);//设置显示模式:显示开有光标光标闪烁 writeinstruction(0x06);//设置显示模式:光标右移字符不移 delay(5); writeinstruction(0x01);//清屏指令 delay(5); } void main(void) { uchar i; lcdinitate(); delay(10); while(1) { writeinstruction(0x01); writeaddress(0x00);//设置显示位置为第一行的第五个字 i=0; while(table1[i]!='\0') { writedate(table1[i]); i++; delay(150); } for(i=0;i<4;i++) delay(250); } }
上一篇:51单片机配合超声波测距以及用1602液晶进行显示
下一篇:如何编写51单片机超声波测距SR04_lcd1602显示程序
推荐阅读最新更新时间:2024-03-16 16:06