打印

时序与c51

[复制链接]
1368|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
NE5532| | 2012-2-12 19:47 | 只看该作者
建议你先Google一下inter总线时序,或者找本微机原理的书看下8086外部总线部分,三言两语很难给你讲清楚。

使用特权

评论回复
板凳
mage心寒| | 2012-2-13 11:31 | 只看该作者
就是单片机与芯片比如说24c02的一个握手过程,就好比单片机觉得24c02很漂亮,想追求她,于是单片机就跟24c02打招呼,然后24c02回应单片机,这就是一个时序,握手成功后就可以通信啦,也就是说这个时候单片机可以开始追求24c02,可以为24c02做些事比如说向24c02写数据(就是说悄悄话吧)。至于你说的那个如何观察时序图,这个可以先找个简单的例子看下,太难的时序可以不用那么着急,就比如说SRAM的时序吧,很简单,比如说写,先送地址就是你要写数据的地址,送完后,拉低WE OE CS0,我用的是ARM7配置寄存器就好了,如果是你单片机就要每个信号未定义之后一个个拉低,延迟都是NS级不用管它,然后就可以写数据了。。


void sram_init()
{
PINSEL2=0x0e002020;          //拉低WE OE CS0
PINSEL2=PINSEL2&0xfffffff7;  //将P1.16-P1.25设置为GPIO口
IO1DIR=LED;                  //将P1.16-1.19设置为输出端
IO1SET=LED;

}
void write_data(uint32 Addr, uint8 data)
{
  volatile uint16  *ip;
  ip=(volatile uint16 *)(SRAM_ADDR|(Addr<<1));
  *ip=data;  
}

int main()
{
  volatile uint16  *addr;
  sram_init();
  while(1)
  {
      write_data(0x000002,0x01);
      addr=(volatile uint16 *)(SRAM_ADDR+(0x000002<<1));
      a=(*addr);  
          if(a==0x01)   
          {
            IO1CLR=LED;
          }
          else
          {
            IO1SET=LED;
          }
   }
  return(0);
}
源代码。。

使用特权

评论回复
地板
newstarman|  楼主 | 2012-2-24 21:42 | 只看该作者
very thank you,but i have knowed it now, already

使用特权

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

本版积分规则

0

主题

21

帖子

0

粉丝