LCD1602显示的简单测试程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

原程序:
#include
unsigned char code str1[]={"count: "};
unsigned char data disdata[1];
unsigned int snum=0;
sbit RS=P3^0;
sbit RW=P3^1;
sbit EN=P3^2;

void delay1ms(unsigned int t)延时
{unsigned int i,j;
for(i=0;ifor(j=0;j<100;j++);
}

void wr_com(unsigned char com)//写指令//
{ delay1ms(1);
RS=0;
RW=0;
EN=0;
P2=com;
delay1ms(1);
EN=1;
delay1ms(1);
EN=0;

}

void wr_dat(unsigned char dat)//写数据//
{ delay1ms(1);;
RS=1;
RW=0;
EN=0;
P2=dat;
delay1ms(1);
EN=1;
delay1ms(1);
EN=0;
}
void lcd_init()//初始化设置//
{delay1ms(15);
wr_com(0x38);delay1ms(5);
wr_com(0x08);delay1ms(5);
wr_com(0x01);delay1ms(5);
wr_com(0x06);delay1ms(5);
wr_com(0x0c);delay1ms(5);
}


void numpro()循环显示数字
{ delay1ms(250);
delay1ms(250);
if(snum==20)
snum=0;
else
snum++;

disdata[0]=snum/10+0x30;
disdata[1]=snum%10+0x30;
wr_com(0x86);
wr_dat(disdata[0]);
wr_com(0x87);
wr_dat(disdata[1]);
wr_com(0xc6);
wr_dat(disdata[0]);
wr_com(0xc7);
wr_dat(disdata[1]);
}

void display(unsigned char *p)//显示字符串//
{
while(*p!='\0')
{
wr_dat(*p);
p++;
delay1ms(1);
}
}
void main()
{ lcd_init();
wr_com(0x80);
display(str1);
wr_com(0xc0);
display(str1);
while(1)
{numpro();
}
}


相关文档
最新文档