打印

12864

[复制链接]
2865|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
SYHDJF|  楼主 | 2011-8-16 18:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调了一下午的12864,总是什么都不显示。希望有人能够给看看程序有没有问题。多谢了。
#include<reg52.h>
#include<stdlib.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LCD_EN=P2^4;
sbit LCD_RW=P2^2;
sbit LCD_RS=P2^3;
sbit LCD_RET=P2^5;
sbit LCD_CS1=P2^0;
sbit LCD_CS2=P2^1;
uchar dis1[10];
uchar code dis2[]={"www.21ic.com"};
uchar code dis3[]={"单片机学习网"};
uchar code dis4[]={"------------"};
void delay1ms(uint xms)//延时1ms
{
uint i,j;
for(i=xms;i>0;i--)
  for(j=112;j>0;j--);
}
void write_cmd(uchar cmd)//写指令
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delay1ms(5);
LCD_EN=1;
delay1ms(5);
LCD_EN=0;
}
void write_dat(uchar dat)//写显示数据
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delay1ms(5);
LCD_EN=1;
delay1ms(5);
LCD_EN=0;
}
void lcd_pos(uchar X,uchar Y)//设定显示位置
{
uchar pos;
if(X==1)
{X=0x80;}
else if(X==2)
{X=0x90;}
else if(X==3)
{X=0x88;}
else if(X==4)
{X=0x98;}
pos=X+Y;
write_cmd(X+Y);
}
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(void)//初始化
{
LCD_RET=0;
delay1ms(50);
LCD_RET=1;
write_cmd(0x30);
delay1ms(5);
write_cmd(0x30);
delay1ms(5);
write_cmd(0x0c);
delay1ms(5);
write_cmd(0x01);
  delay1ms(5);
}
void main()
{
uchar i;
lcd_init();
lcd_pos(2,0);
i=0;
while(dis2!='\0')
{
  write_dat(dis2);
  i++;
}
lcd_pos(3,0);
i=0;
while(dis3!='\0')
{
  write_dat(dis3);
  i++;
}
lcd_pos(4,0);
i=0;
while(dis4!='\0')
{
  write_dat(dis4);
  i++;
}
while(1)
{
  lcd_pos(1,0);
  makerand();
  for(i=0;i<10;i++)
  {write_dat(dis1[1]);}
}
}

相关帖子

沙发
lord_fan| | 2011-8-16 19:18 | 只看该作者
你有看控制芯片的手册没?多看看几遍应该可以自己写出来。

使用特权

评论回复
板凳
SYHDJF|  楼主 | 2011-8-16 19:56 | 只看该作者
我看着呢,感觉也没那么难啊。可就是只有黄色的屏幕,不显示字。

使用特权

评论回复
地板
huangqi412| | 2011-8-16 20:23 | 只看该作者
检查硬件,仔细检查, 然后参考别人的程序。。。

1286412864,我*,12864只是尺寸,不是驱动IC型号。。。你让别人怎么看程序。。。

使用特权

评论回复
5
SYHDJF|  楼主 | 2011-8-16 21:37 | 只看该作者
和同学要了他以前成功的程序,自己又改了下初始化。同时换了个电路板,成功了。
在此多谢两位的回帖,刚学单片机,很多东西不知道,问题有点不清楚,多多包涵。

使用特权

评论回复
6
joyme| | 2011-8-17 14:23 | 只看该作者
应该就是Reset后面要加点延时就好了
LCD_RET=0;
delay1ms(50);
LCD_RET=1;
delay1ms(20);
....

使用特权

评论回复
7
prodigals| | 2011-8-19 19:44 | 只看该作者
孩子 何必,郭大师的程序,你还把显示改了...uchar code dis2[]={"www.21ic.com"};
.....

使用特权

评论回复
8
NE5532| | 2011-8-19 19:50 | 只看该作者
你不用担心时很么都不知道,没人一来啥知道,重要的是你怎么去知道,因为你不可能总找得到人来问。

使用特权

评论回复
9
SYHDJF|  楼主 | 2011-8-19 21:03 | 只看该作者
8楼,这个主要是自己又按**敲了一遍程序,加深**,所以顺便改了。没有要偷郭大师原创的意思。另外,本人很钦佩他的。
谢谢9楼,我会努力的,一直在奋斗着,大学前2年半都玩了,现在虽然有点晚,但决定走这条路就会一直走下去的。

使用特权

评论回复
10
zbb564833642| | 2011-8-19 23:11 | 只看该作者
加油……

使用特权

评论回复
11
729144646| | 2011-8-19 23:55 | 只看该作者
这是郭天祥编写的书上面的程序,程序都调试过了,你是12864没有插好吧?

使用特权

评论回复
12
ydw1991| | 2011-8-20 01:09 | 只看该作者
顶一下

使用特权

评论回复
13
zhengyankkk| | 2013-1-13 18:14 | 只看该作者
12864带片选的话不带字库

使用特权

评论回复
14
ningling_21| | 2013-1-13 22:02 | 只看该作者
对比度先调好,再调程序...
这种屏好像可以选择串行还是并行模式工作的...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

199

帖子

1

粉丝