智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1804|回复: 3
打印 上一主题 下一主题

[其他] tm12864z-1使用,但始终无法显示,附源程序

[复制链接]

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
65
威望
38
贡献
19
兑换币
21
注册时间
2013-7-27
在线时间
4 小时
毕业学校
中北大学
跳转到指定楼层
1#
发表于 2013-7-27 21:53:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
最近一直在调12864,但是始终无法显示任何东西。希望各位能帮帮忙,纠结很久了。控制芯片MC9S12XS128。
ps:程序并非原创  只是自己稍作修改。

#define LCD_RS    PTT_PTT0
#define LCD_RW    PTT_PTT1
#define LCD_E     PTT_PTT2
uchar Tab1[]={"hello world!"};
uchar Tab2[]={"哈哈哈"};

void delay_10us(long m)
{
  while(m--);
}

void delay_1ms(unsigned int t)
{
  unsigned int i;
  for(i=0;i<t;i++)
  delay_10us(102);
}

void Write_Data(unsigned char dat)
{
  DDRA = 0xff;
  DDRT = 0xff;
  DisableInterrupts;
  delay_1ms(10);
  LCD_RS = 1;
  LCD_RW = 0;
  delay_10us(5);
  LCD_E = 0;
  LCD_E = 1;
  delay_10us(5);
  PORTA = dat;
  delay_10us(0);
  LCD_E = 0;
  LCD_RS = 0;
  LCD_RW = 1;
  EnableInterrupts;
}

void Write_Command(unsigned char dat)
{
  DDRT = 0xff;
  DDRA = 0xff;
  DisableInterrupts;
  delay_1ms(10);
  LCD_RS = 0;
  LCD_RW = 0;
  delay_10us(5);
  LCD_E = 0;
  LCD_E = 1;
  delay_10us(5);
  PORTA = dat;
  delay_10us(5);
  LCD_E = 0;
  LCD_RS = 1;
  LCD_RW = 1;
  EnableInterrupts;
}

void Write_String(unsigned char *p)
{
  char cnt=0;
  while(*(p+cnt)!='\0')
  {
    Write_Data(*(p+cnt));
    delay_1ms(10);
    cnt++;
  }
}

void Set_Position(unsigned char x,unsigned char y)
{
  unsigned char p;
  switch(x%4)
  {
    case 0:p = 0x80; break;
    case 1:p = 0x90; break;
    case 2:p = 0x88; break;
    case 3:p = 0x98; break;
  }
  p += y;
  Write_Command(p);
}

void LCD_Init()
{
  Write_Command(0x30);
  delay_1ms(10);
  Write_Command(0x0c);
  delay_1ms(10);
  Write_Command(0x14);
  delay_1ms(10);
  Write_Command(0x01);
  delay_1ms(10);
}

void main(void)
{
  PTT_PTT3 = 1;
  EnableInterrupts;
  delay_1ms(100);
  LCD_Init();
  Set_Position(0,0);
  delay_1ms(10);
  Write_String(Tab1);
  Set_Position(2,0);
  Write_String(Tab2);
  for(;;) {}
}

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
65
威望
38
贡献
19
兑换币
21
注册时间
2013-7-27
在线时间
4 小时
毕业学校
中北大学
2#
 楼主| 发表于 2013-7-31 17:08:20 | 只看该作者
或者提供tm12864z-1可用的程序也行
回复

使用道具 举报

1

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
65
威望
38
贡献
19
兑换币
21
注册时间
2013-7-27
在线时间
4 小时
毕业学校
中北大学
3#
 楼主| 发表于 2013-8-1 15:27:44 | 只看该作者
已解决,该程序没问题。是屏幕对比度的问题,只要在V0和GND(分别对应12864上3管脚和18管脚)之间接一个27k的电阻即可。
回复

使用道具 举报

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
29
威望
27
贡献
2
兑换币
3
注册时间
2014-5-16
在线时间
0 小时
毕业学校
兰州理工大学
4#
发表于 2014-5-16 09:53:29 | 只看该作者
gjs0558 发表于 2013-8-1 15:27
已解决,该程序没问题。是屏幕对比度的问题,只要在V0和GND(分别对应12864上3管脚和18管脚)之间接一个27k ...

兄弟,只能加27k的电阻吗???急急急急
回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-25 06:31 , Processed in 0.053713 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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