打印

D12中断问题

[复制链接]
2115|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xjmjb|  楼主 | 2007-1-2 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
tmp, FOR, sd, dc, USB
现正在做USB通信,51+D12系统,主机是PC机,D12的中断通过10K的上拉电阻接在51单片机的INT0,D+通过SoftConnect控制,电路上没有15K上拉电阻.USB总线供电,通过周公的仿真器调试发现,只要将USB线插入PC即U口,进行仿真时必然进中断,此时SoftConnect还没有打开,既此位还是上电复位值.接着继续调试,只要不断电,就不会再进中断.但是只要重新断电再上电,还是会进中断.请教这个问题是不是正常的?如果正常,一般是什么引起的中断?


还有个问题:SoftConnect设置后,既软件连接PC机后,发现51并不进中断,既表示SoftConnect没有起作用,现在怀疑是读写寄存器有问题.或者其他问题,望大侠指点.现把读写函数贴出来.51时钟频率是20M.

void write_D12_command(unsigned char D12_command)       //写USB命令
{
 unsigned char tmp;
 for (tmp=0;tmp<250;tmp++);                  //TWC 写周期 低时间 最小500ns
 D12_A0=D12_COMMAND_ADD;
 for (tmp=0;tmp<130;tmp++);                  //TAVWL  A0 有效到WR_N 低时间 最小130ns 
 D12_DATA=D12_command;
 D12_WR=0;
 for (tmp=0;tmp<20;tmp++);                  //WR_N 低脉宽 最小20ns  
 D12_WR=1;
 for (tmp=0;tmp<10;tmp++);                  //TWDH 写数据保持时间 最小10ns  
 D12_DATA=0xFF;
}

void write_a_D12_data(unsigned char D12_data)        //写一字节USB数据
{
 unsigned char tmp;
 for (tmp=0;tmp<250;tmp++);                  //TWC 写周期 低时间 最小500ns 
 D12_A0=D12_DATA_ADD;
 for (tmp=0;tmp<130;tmp++);                  //TAVWL  A0 有效到WR_N 低时间 最小130ns 
 D12_DATA=D12_data;
 D12_WR=0;
 for (tmp=0;tmp<20;tmp++);                  //WR_N 低脉宽 最小20ns 
 D12_WR=1;
 for (tmp=0;tmp<10;tmp++);                  //TWDH 写数据保持时间 最小10ns  
 D12_DATA=0XFF;
}

unsigned char read_a_D12_data(void)                  //读一字节USB数据
{
 unsigned char temp,i;
 for (i=0;i<250;i++);                      //TRC 读周期 最小500ns 
 D12_A0=D12_DATA_ADD;
 for (i=0;i<10;i++);                      //TAVRL A0 有效到RD_N 低时间最小0ns 
 D12_RD=0;
 for (i=0;i<10;i++);                      //TRLDD RD_N 低到数据驱动时间 最大20ns 
 temp=D12_DATA;
 for (i=0;i<10;i++);                      //TRL RD_N 低脉宽  最小20ns 
 D12_RD=1;
 return temp;
}

相关帖子

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

本版积分规则

14

主题

32

帖子

1

粉丝