注册 登录
编程论坛 单片机编程

X5045的问题

a295281315 发布于 2011-08-02 22:03, 532 次点击
            for (i=0;i<8;i++)     //送读状态寄存器指令
        {
            sck_5045=0;
            if ((tmp&0x80)==0)
            {
                si_5045=0;
            }
            else
            {
                si_5045=1;
            }
            tmp=tmp<<1;
            sck_5045=1;
        }
    这是一段关于芯片X5045的读状态寄存器指令代码。我的理解是这样的送个8位信号,在时钟端信号的上升沿读取数据并锁存,如果暂存器tmp取址80H,并判断信号有没有(暂时这么理解,我就是这里感觉理解好拗口,求帮忙),无信号就5045输入端输入0,有就输入1,然后是数据左移,就是i+次就左移一次。
本人总感觉很别扭……
   
3 回复
#2
a2952813152011-08-02 22:10
我也知道这个是监视CPU工作的独立芯片,通过单片机送信号,从而使单片的复位定时器复位,如果一直低电平或高电平或超过信号的限制的定时时间都会使X5045的复位端产生一个复位信号使他监视的单片机复位。上面的就是感觉老是不对。。。
本人表达能力有限!
#3
a2952813152011-08-02 22:45
//-----------------------求高人指点!!!!!!!!!------------------
//--------------------------跟我说说呀--------------------------
#4
kidwillow2011-08-04 09:14
if((tmp&0x80)==0)判断tmp最高位是否为0,即状态寄存器最高位,是则si_5045=0,不是则si_5045=1。tmp<<1,将状态寄存器第二位移至tmp最高位,再比较判断该位值。循环8次,读入状态寄存器8位的值。
1