本帖最后由 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] |