1602液晶屏中显示的问题:本人不会搞1602,高手帮我看下这个程序那里错了,

1602液晶屏中显示的问题:本人不会搞1602,高手帮我看下这个程序那里错了,,第1张

/看看吧,如果不行,稍微调试,实在不行联系我吧!祝你早日完成/

#include<reg52h>

#define uchar unsigned char

#define uint unsigned int

sbit lcden=P2^6;//使能端

sbit lcdrs=P2^4;//数据命令

sbit lcdrw=P2^5;//读写选择端

uchar SecondLine[]=" 自己写东西进来,如:NBA ";//他们两个用于液晶显示的数组

uchar FirstLine[]=" 同上 ";

void delay(uchar z)

{ uchar x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void xsj(uchar sj)

{

lcden=0;

lcdrs=1;

lcdrw=0;

P0=sj;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void dw(uchar dz)

{

lcden=0;

lcdrs=0;

lcdrw=0;

P0=dz;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void init()

{

/液晶显示的准备/

dw(0x38);

dw(0x0c);

dw(0x06);

dw(0x14);

dw(0x01);

}

main()

{uchar num;

init();

dw(0x80);

for(num=0;num<16;num++)

{ xsj(FirstLine[num]);//写入第一行字

delay(5);

}

dw(0x80+0x40);

for(num=0;num<16;num++)

{ xsj(SecondLine[num]);

delay(5);

}

}

不好意思,您的经验真得很不够,这是十分简单的程序,你不懂估计是没有去看液晶的数据手册,或者懒得去看,都是不好的

//

/ 写入字节函数 /

//

void ShowChar(unsigned char pos,unsigned char c)

{

unsigned char p;

if (pos>=0x10) //液晶中,写入不同的行,使用不同的命令,命令保存在p这个变量里面,如果写入第一行,使用else那里的命令,否则使用下面的

p=pos+0xb0; //命令代码高4位为0xc表示写入第二行,即0xb0+0x10=0xc0,后面的四位指示第二行具体哪一个位置,一共有16个位置

else

p=pos+0x80; //命令代码高4位为0x8表示写入第二行,即0x80+0x00=0x80,后面的四位指示第一行具体哪一个位置,一共有16个位置

WriteCommand (p);//写命令

WriteData (c); //写数据

}

//

/ 写入字符串函数 /

//

void ShowString (unsigned char line,char ptr)

{

unsigned char l,i;

l=line<<4; //就是乘以16,0-15在第一行,16-35在第二行

for (i=0;i<16;i++)

ShowChar (l++,(ptr+i));//循环显示16个字符 //调用上面的函数在l位置进行显示

}

以上就是关于1602液晶屏中显示的问题:本人不会搞1602,高手帮我看下这个程序那里错了,全部的内容,包括:1602液晶屏中显示的问题:本人不会搞1602,高手帮我看下这个程序那里错了,、单片机1602液晶显示中下面的程序什么意思不明白啊 下面带问号都不会啊、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9747894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存