登录
|
立即注册
|
使用QQ帐号登录
论坛
>
24小时必答区
发帖
|
液晶12864不知道为什么不能正常显示
看3868
|
回6
|
收藏
楼主
ID:388655
只看他
2018-8-22 09:26
小白学液晶,在课本上照写的代码,不知道为什么不能正常显示,有没有大神可以帮忙看一下,这代码有没有问题
十分感谢
代码:
#include<reg52.h>
#include<intrins.h>
#include<stdlib.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD_data P0
sbit LCD_RS=P3^5;
sbit LCD_RW=P3^6;
sbit LCD_EN=P3^4;
sbit LCD_PSB=P3^7;
sbit wela=P2^6;
sbit dula=P2^7;
uchar dis1[10];
uchar code dis2[]={"www.txmcu.com"};
uchar code dis3[]={"天祥电子"};
uchar code dis4[]={"--------"};
void delay(uint x)
{
uint i,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++);
}
void write_cmd(uchar cmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
void write_dat(uchar dat)
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delay(5);
LCD_EN=1;
delay(5);
LCD_EN=0;
}
void lcd_pos(uchar x,uchar y)
{
uchar pos;
if(x==0)
{x=0x80;}
else if(x==1)
{x=0x90;}
else if(x==2)
{x=0x88;}
else if(x==3)
{x=0x98;}
pos=x+y;
write_cmd(pos);
}
void makerand()
{
uint ran;
ran=rand();
dis1[0]=ran/10000+0x30;
dis1[1]=ran%10000/1000+0x30;
dis1[2]=ran%1000/100+0x30;
dis1[3]=ran%100/10+0x30;
dis1[4]=ran%10+0x30;
ran=rand();
dis1[5]=ran/10000+0x30;
dis1[6]=ran%10000/1000+0x30;
dis1[7]=ran%1000/100+0x30;
dis1[8]=ran%100/10+0x30;
dis1[9]=ran%10+0x30;
}
void lcd_init()
{
LCD_PSB=1;
write_cmd(0x30);
delay(5);
write_cmd(0x0C);
delay(5);
write_cmd(0x01);
delay(5);
}
main()
{
uchar i;
wela=0;
dula=0;
delay(10);
lcd_init();
lcd_pos(1,0);
i=0;
while(dis2[i]!='\0')
{
write_dat(dis2[i]);
i++;
}
lcd_pos(2,0);
i=0;
while(dis3[i]!='\0')
{
write_dat(dis3[i]);
i++;
}
lcd_pos(3,0);
i=0;
while(dis4[i]!='\0')
{
write_dat(dis4[i]);
i++;
}
while(1)
{
lcd_pos(0,0);
makerand();
for(i=0;i<10;i++)
{
write_dat(dis1[i]);
}
}
}
沙发
ID:111634
只看他
2018-8-23 16:43
本帖最后由 zl2168 于 2018-8-23 22:00 编辑
LCD12864显示屏显示汉字
先
Proteus
仿真一下,
确认有效。
实验25 LCD12864显示屏显示.rar
(60.48 KB)
(下载次数: 19, 2018-8-23 21:59 上传)
以上摘自张志良编著《
80C51
单片机仿真设计实例教程
——
基于
Keil C
和
Proteus
》清华大学出版社
ISBN 978-7-302-41682-1
,
内有常用的单片机应用
100
案例,用于仿真实验操作,
电路与程序真实可靠可信可行,可演示,可观测,程序语句条条有注解。
板凳
ID:389489
只看他
2018-8-24 08:37
p0口驱动能力有限,这个问题困扰我太久,之前所有屏到我手里都不显示,就是这原因
地板
ID:389564
只看他
2018-8-24 10:33
不是很懂 来学习的
5
#
ID:382243
只看他
2018-8-24 11:37
接口对不对
6
#
ID:389621
只看他
2018-8-24 13:40
不是很懂 来学习的
7
#
ID:98526
只看他
2018-8-24 17:18
看看液晶屏后面的串并口跳线端是不是直接被短接成串行通信了。应该是有个S P字样的
51黑电子论坛
Powered by
Discuz!
X3.1
首页
|
标准版
|
触屏版
|
电脑版