谁能给我一个LCD12864(ST7920带字库的)硬件并行I/OK口连接电路图?

afobbi   2008-10-11 10:50 楼主
w3571604@163.com  

什么MPU都可以,51,430,arm的更好,I/O口模拟总线的。

如果有的话希望能发给我,我将非常感谢,多多加分!

回复评论 (4)

不知道  我也在找呀    过来骗分
点赞  2009-4-10 16:38
请问st7920的使能信号应该怎么接啊,我用的是c8051f020的单片机
是不是要用定时器自己产生一个波形啊
点赞  2009-4-11 16:37
我有,你跟我要把
点赞  2010-6-7 22:19

新手

#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit cs=P2^5;  //片选端 高电平有效
sbit sid=P2^6;  //数据线
sbit sclk=P2^7;  //串行时钟信号 下降沿有效
uchar table[]="我是个小兵却乐天知命,在你的世界说鸟语,在我的世界对不起请说汉语";
uchar datecnt;


void delayms(uint z)//单位延时一毫秒
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);

}
void send_byte(uchar byte)//发送一个字节函数
{
uchar j;
cs=1;
for(j=0;j<8;j++)
{
                 sclk=0;
  byte=byte<<1;
  sid=CY;
  sclk=1;
  sclk=0;
}
cs=0;
}

void writecom_12864(uchar com)//写命令控制函数
{
uchar HDATA,LDATA;
HDATA=com&0xf0;
LDATA=((com<<4)&0xf0);
send_byte(0xf8);
send_byte(HDATA);
send_byte(LDATA);
}

void writedate_12864(uchar date)//写数据控制函数
{
uchar HDATA,LDATA;
HDATA=date&0xf0;
LDATA=((date<<4)&0xf0);
send_byte(0xfa);
send_byte(HDATA);
send_byte(LDATA);
}

void init_12864()//初始化12864
{
writecom_12864(0x30);
writecom_12864(0x30);
writecom_12864(0x0c);
writecom_12864(0x01);//清屏
writecom_12864(0x06);
}

void display_12864()
{

for(datecnt=0;datecnt<64;datecnt++)
{  
  if(datecnt==0) writecom_12864(0x80);
  if(datecnt==16)writecom_12864(0x90);
  if(datecnt==32)writecom_12864(0x88);
  if(datecnt==48)writecom_12864(0x98);
  writedate_12864(table[datecnt]);
}
}


void main()
{
init_12864();
display_12864();
while(1);
}
点赞  2012-6-12 15:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复