打印

请教一下5502接外设的地址问题

[复制链接]
1342|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a1370268|  楼主 | 2010-4-13 17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是关于DSP5502和液晶模块连接的,例如我用CE1接了液晶的选通信号了,然后用D0-D7接液晶的D0-D7..CE1的映射空间的首地址是400000H,我地址线什么都不接,那么我要把数据写到液晶去,这个地址是多少

相关帖子

沙发
thf2008| | 2010-4-13 18:42 | 只看该作者
直接往对应的地址写数据不就行了

使用特权

评论回复
板凳
a1370268|  楼主 | 2010-4-13 18:53 | 只看该作者
那这个对应的地址是400000H么

使用特权

评论回复
地板
tiger2010| | 2010-4-13 18:55 | 只看该作者
恩,如果你设计的是这个地址的话,那就没错

使用特权

评论回复
5
a1370268|  楼主 | 2010-4-13 19:01 | 只看该作者
那就奇怪了.输出全是低电平...
我用GPIO控制了液晶的读写和指令数据选择,然后用CE1接了液晶的片选.
然后DSP的地址线什么都没接,然后我设数据地址为400000H,然后输出结果什么都没有,是不是地址错了,还是什么其他原因

使用特权

评论回复
6
love_life| | 2010-4-13 19:04 | 只看该作者
你是怎么操作的?你把相关的程序贴上来,让大家帮你看看

使用特权

评论回复
7
a1370268|  楼主 | 2010-4-13 19:10 | 只看该作者
我刚买回来的显示屏,想研究下它的显示模式,电压什么都转换正确的了
.程序就下面的
void main()
{
  int i,j;
  EnableAPLL( );
  CLK_init();
        init_cpu();
        init_lcd();
        cls();
    wr_cmd_data(0x24,0x00,0x00);
    wr_cmd(zdxsz);
    for(i=0;i<128;i++)
    {
        for(j=0;j<30;j++)
        {
           wr_data(0xf0);//就这里,我想测试下能不能输出,结果全部输出都是0
           wait(5000);
           }
     }
}
void init_cpu()
{
   GPIODIR=0xff;
   GPIODAT=0X00;
   wait(2000);
   GPIODAT=GPIODAT|0x02;
   wait(2000);
   escr=0x01; //设置EMIF模式
}

//写命令
void wr_cmd(uint value)
{
    GPIODAT=GPIODAT|0x01; //cd=1;
    GPIODAT=GPIODAT|0x04; //rd=1;
    GPIODAT=GPIODAT&0xf7; //wr=0;
    lcd_data=value;
    GPIODAT=GPIODAT|0x08; //wr=1;
}
void wr_data(uint value)
{
   GPIODAT=GPIODAT&0xfe;//cd=0;
   GPIODAT=GPIODAT|0x04; //rd=1;
   GPIODAT=GPIODAT&0xf7; //wr=0;
   lcd_data=value;
   GPIODAT=GPIODAT|0x08; //wr=1;
}
void wr_cmd_data(uint cmd,uint dat1,uint dat2)
{
  wr_data(dat1);
  wr_data(dat2);
  wr_cmd(cmd);
}
//清屏
void cls(void)
{
    int i,j;
    wr_cmd_data(0x24,0x00,0x00);
    wr_cmd(zdxsz);
    for(i=0;i<128;i++)
    {
        for(j=0;j<30;j++)
        {
           wr_data(0x00);
           }
     }
     wr_cmd(zddxe);
}

//LCM初始化
void init_lcd(void)
{
  wr_cmd_data(wbqsz,0x00,0x00);
  wr_cmd_data(wbqkd,0x1e,0x00);
  wr_cmd_data(txqsz,0x00,0x00);
  wr_cmd_data(txqkd,0x1e,0x00);
  
  wr_cmd(0x81);//显示方式设置
  //wr_cmd_data(gbwz,0x00,0x00)//光标位置
  //wr_cmd(gbxz)//光标形状
  //wr_cmd_data(wbqkd,0x00,0x00)
  wr_cmd(xskg);//显示开关设置
}

void wait( unsigned int cycles )
{
    int i;
    for ( i = 0 ; i < cycles ; i++ ){ }
}

使用特权

评论回复
8
xiaoxin1986| | 2010-4-13 19:20 | 只看该作者
不懂,进来学习~~

使用特权

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

本版积分规则

0

主题

8

帖子

1

粉丝