打印
[ZLG-ARM]

帮我看一下这些代码

[复制链接]
950|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotyong|  楼主 | 2008-9-24 10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是一个液晶程序的底层驱动的几个函数,原来在51中可以正常工作,移植到LPC2114上却不行了.
它是16位数据方式,在51中P1输出高8位,P0输出低8位,
在2114中P0.0~P0.15为数据,P0.16~20为控制信号


#define LCD_RST               (1<<20)  //复位
#define LCD_RD        (1<<19)  //读
#define LCD_WR        (1<<18)  //写
#define LCD_RS        (1<<17)  //命令
#define LCD_CE               (1<<16)  //片选

/******************DRIVE IC寄存器寻址 8080 SERIES*******************************/
void write_command(uint8 addr1,uint8 addr2)
{    
    IO0CLR = LCD_RS;                //rs=0;
    IO0CLR = LCD_CE ;                  //ce=0;
    IO0SET = LCD_RD;                //rd=1;
     
    //OutData((addr1<<8)+addr2);    
    IO0CLR = 0xffff;            
    IO0SET = (addr1<<8)&0xff00;                 //p1=dat1;
    IO0SET = addr2 & 0xff;            //p0=dat2;
    
    IO0CLR = LCD_WR;                //wr=0;
    IO0SET = LCD_WR;                //wr=1;
    IO0SET = LCD_CE;                //ce=1;
}

/*****************DRIVE IC寄存器写数据 8080 SERIES******************************/
void write_para(uint8 para1,uint8 para2)

     
    IO0SET = LCD_RS;                //rs=1;
    IO0CLR = LCD_CE ;                 //ce=0;
    IO0SET = LCD_RD;                //rd=1;
    //OutData((para1<<8)+para2);    
    IO0CLR = 0xffff;
    IO0SET = (para1<<8)&0xff00;                 //p1=para1;
    IO0SET = para2 & 0xff;            //p0=pata2;
    
    IO0CLR = LCD_WR;                //wr=0;
    IO0SET = LCD_WR;                //wr=1;
    IO0SET = LCD_CE;                //ce=1
}
 
/****************DRIVE IC GDRAM 写数据 16BITS 8080 SERIES*****************************/
void write_data(uint8 dat1,uint8 dat2)
{    
    IO0SET = LCD_RS;                //rs=1;
    IO0CLR = LCD_CE ;                 //ce=0;
    IO0SET = LCD_RD;                //rd=1;
    
    //OutData((dat1<<8)+dat2);
    IO0CLR = 0xffff;
    IO0SET = (dat1<<8)&0xff00;                 //p1=dat1;
    IO0SET = dat2 & 0xff;            //p0=dat2;
        
    IO0CLR = LCD_WR;                //wr=0;
     IO0SET = LCD_WR;                //wr=1;
     IO0SET = LCD_CE;                //ce=1
}

相关帖子

沙发
zlgarm| | 2008-9-24 17:11 | 只看该作者

RE:hotyong

您好!
您使用的液晶有没有判忙信号,ARM可比51快得多。
分析您使用的液晶的时序要求,可能移植后时序已经不满足液晶要求了。

使用特权

评论回复
板凳
hotyong|  楼主 | 2008-9-26 09:23 | 只看该作者

应该不是这样的

ARM的CPU速度是比51快多了,但IO的速度比51的快不了多少,CPU主频为44M时,IO速度才5M多,而我的51的IO速度为4M,理论上以这ARM的速度对于这液晶来说太慢了!

使用特权

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

本版积分规则

20

主题

652

帖子

2

粉丝