打印

求助,,NEC8255A接12864,怎么无法显示呢

[复制链接]
1832|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 355643303 于 2011-9-10 13:22 编辑

用的是NEC8255A,,并口控制,,连接如图所示,,12864程序如下,,但12864无法显示,,求助,,,急求!!


12864带字库,,,数据口连接8255APA口,,,控制方式为0xa4;,,,外部地址如程序所示
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#include<absacc.h>
#define PA XBYTE[0x3fff]
#define PB XBYTE[0x7fff]
//#define PC XBYTE[0xbfff]
#define PD XBYTE[0xffff]
uchar num[]="单片机";
uchar num1[]="诺基亚";
sbit RS=P2^0;     
sbit RW=P2^1;      
sbit E=P2^2;   
sbit PSB=P2^3;  
void delay(uchar z)
{ uchar x,y;
  for(x=z;x>0;x--)
   for(y=8;y>0;y--);
}
void COM(uchar com)
{
  RS=0;
  RW=0;
  PA=com;
  delay(2);
  E=1;
  delay(2);
  E=0;
  delay(2);
}
void DATE(uchar date)
{
  RS=1;
  RW=0;
  PA=date;
  delay(2);
  E=1;
  delay(2);
  E=0;
  delay(2);
}
void INIT()
{PSB=1;       //并口显示(先设置串口还是并口显示方式
COM(0x30);   //功能设置,设置为8-bit接口方式
delay(2);
COM(0x0f);  //设置显示方式,整体显示,显示光标,且反白闪烁
delay(4);
}
void display()
{  uchar i;
    COM(0x80);
    for(i=0;i<6;i++)
{
  DATE(num);
  }
  delay(4);
}
void display1()
{  uchar i;
    COM(0x90);
    for(i=0;i<6;i++)
{
  DATE(num1);
  }
  delay(4);
}
void main()
{ PD=0XA4;     
INIT();   
   display();
      display1();
    while(1);

}

1,疑问一:8255A,在方式0时输入无锁存,故选用方式1 PD=0xa4;
疑问2::8255A,输出电压只有2.4伏,,是不是12864不能识别高低电平????
求助,,电路有问题吗???还是程序问题???或其他???

[local]1[/local]

09f34905c7bb66a23ac763a8[1].jpg (97.76 KB )

09f34905c7bb66a23ac763a8[1].jpg

相关帖子

沙发
airwill| | 2011-9-4 19:47 | 只看该作者
1,疑问一:8255A,在方式0时输入无锁存,故选用方式1 PD=0xa4;
疑问2::8255A,输出电压只有2.4伏,,是不是12864不能识别高低电平????

输出电压只有2.4伏, 应该不成问题, 要不, 可以加上拉电阻试试.
我觉得关键在于控制时序方面的问题.
因为是模拟的总线逻辑, 未必需要方式1, 关键是符合 12864 的控制逻辑. 检查一下控制逻辑

使用特权

评论回复
板凳
355643303|  楼主 | 2011-9-7 18:20 | 只看该作者
2# airwill


控制逻辑也就是时序吧,,,我直接连接开发板单片机的I/O  P0口能正常显示,(说明程序没问题),但是把P0连接到8255A,在由8255A的PA口引出到LCD,,不行了呢,,程序中8255A初始化没问题吧。。

使用特权

评论回复
地板
355643303|  楼主 | 2011-9-7 18:21 | 只看该作者
控制逻辑也就是时序吧,,,我直接连接开发板单片机的I/O  P0口能正常显示,(说明程序没问题),但是把P0连接到8255A,在由8255A的PA口引出到LCD,,不行了呢,,程序中8255A初始化没问题吧。。

使用特权

评论回复
5
355643303|  楼主 | 2011-9-7 18:21 | 只看该作者
2# airwill

控制逻辑也就是时序吧,,,我直接连接开发板单片机的I/O  P0口能正常显示,(说明程序没问题),但是把P0连接到8255A,在由8255A的PA口引出到LCD,,不行了呢,,程序中8255A初始化没问题吧。。

使用特权

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

本版积分规则

4

主题

94

帖子

1

粉丝