找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4935|回复: 4
打印 上一主题 下一主题
收起左侧

请教 12864液晶显示字符问题

[复制链接]
跳转到指定楼层
楼主
ID:21334 发表于 2010-1-25 12:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
fyd12864-0204b 液晶  st7920控制器  程序烧进去 ,本来输入的是 “ 床前明月光,疑是地上霜。举头望明月,低头思故乡。” 可是却显示 “ 党潜明彰广一 由饲蒂上双。抠头望明彰一 低头私顾乡。”我刚学单片机,在此请教大家了。以下是我用的程序,字数对,位置也对,就是字错。
#include<reg52.h>
#include<intrins.h>
//#include<stdlib.h>  //rand();
#define uint unsigned int
#define uchar unsigned char

#define LCD_data P0;
sbit LCD_RS =P2^6;
sbit LCD_RW =P2^5;
sbit LCD_EN =P2^7;
sbit LCD_PSB = P3^2;
sbit wela =P1^2;
sbit dula=P1^3;

//uchar dis1[10];
uchar code dis1[]={"床前明月光,"};
uchar code dis2[]={"疑是地上霜。"};
uchar code dis3[]={"举头望明月,"};
uchar code dis4[]={"低头思故乡。"};
void delay_1ms(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_1ms(5);
LCD_EN = 1;
delay_1ms(5);
LCD_EN= 0;                           
}

void write_dat(uchar dat)
{
LCD_RS = 1;
LCD_RW= 0;
LCD_EN= 0;
P0=dat;
delay_1ms(5);
LCD_EN= 1;
delay_1ms(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 lcd_init()
{
LCD_PSB=1;
write_cmd(0x30);
delay_1ms(5);
write_cmd(0x0c);
delay_1ms(5);
write_cmd(0x01);
delay_1ms(5);
}

void main()
{
uchar i;
wela=0;
dula=0;
delay_1ms(5);
lcd_init();

while(1)
{
  lcd_pos(0,0);
  i=0;
  while(dis1!='\0')
  {
   write_dat(dis1);
   i++;
  }

lcd_pos(1,0);
i=0;
while(dis2!='\0')
{
  write_dat(dis2);
  i++;
}
delay_1ms(10);


lcd_pos(2,0);
i=0;
while(dis3!='\0')
{
  write_dat(dis3);
  i++;
}
delay_1ms(10);


lcd_pos(3,0);
i=0;
while(dis4!='\0')
{
  write_dat(dis4);
  i++;
}
delay_1ms(10);
}


//delay_1ms(10);


}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:21265 发表于 2010-1-25 13:05 | 只看该作者
现在没有时间,回家找时间板你看看,
回复

使用道具 举报

板凳
ID:2724 发表于 2010-1-26 03:23 | 只看该作者
你这个问题比较怪,你把标点符号去掉看看,或者换一个keil版本
回复

使用道具 举报

地板
ID:82476 发表于 2015-6-9 11:06 | 只看该作者
原因可能是:12864本身自带的中文字库是不全的,有些中文字显示不了。这里不能显示这么多汉字,不大可能是这个原因。,
回复

使用道具 举报

5#
ID:7485 发表于 2015-6-9 21:26 | 只看该作者
标点符号也要用全角字符才行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表