欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于MBI5026恒流芯片的用法 [打印本頁]

作者: liu_qing532    時間: 2016-2-29 18:01
標題: 關于MBI5026恒流芯片的用法
[img]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/1464216403/QQ/WinTemp/RichOle/[FFDS~[ZUZ)%605G6RMQ[KL$7.png[/img]
求助!有哪位大神知道MBI5026芯片怎么驅動,我想用STC11F02E單片機做個程序通過MBI5026顯示99倒計時,電路圖看附件

電路.jpg (331.81 KB, 下載次數: 180)

電路.jpg

作者: nsj21n    時間: 2016-3-1 09:11
程序寫出來了么?先參考時序圖寫寫貼出來大家給你參考
作者: liu_qing532    時間: 2016-3-1 13:38
nsj21n 發表于 2016-3-1 09:11
程序寫出來了么?先參考時序圖寫寫貼出來大家給你參考

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit MBI_SDI=P3^4;
sbit MBI_CLK=P3^5;
sbit MBI_LE=P3^7;
uchar num;

//顯示段碼表
uchar code Tab[]=
{
0xdfc0,        //  0
0x03c0,        //  1
0xc620,        //  2
0x86a0,        //  3
0x12a0,        //  4
0x94a0,        //  5
0xd4a0,        //  6
0x0680,        //  7
0xd6a0,        //  8
0x96a0,        //  9
};


void delayms(uint xms)
{
   uint i,j;
        for(i=xms;i>0;i--)
          for(j=100;j>0;j--);
}


void main()
{
    MBI_CLK = 0;
    MBI_SDI = 0;
    while(1)
   {
     for(num=9;num>0;num--)
      {
       MBI_SDI=Tab[num];
       MBI_CLK=1;
       MBI_CLK=0;
       MBI_LE=1;
       delayms(1000);
       MBI_LE=0;
       }
      }
}

初學,哪里錯??
作者: nsj21n    時間: 2016-3-1 15:03
MBI是16位串行數據,你這樣確定能把數據送出去?給你個參考發送16位數據,其它依照時序圖補上:for(i=0;i<16;i++)
    {
        MBI_SDI=(dat & 0x8000)?1:0;          //串口移位的數據
        MBI_CLK=1;
        dat<<=1;
                delay(10);
        MBI_CLK=0;
        //        delay(500);
    }
作者: liu_qing532    時間: 2016-3-2 15:56
nsj21n 發表于 2016-3-1 15:03
MBI是16位串行數據,你這樣確定能把數據送出去?給你個參考發送16位數據,其它依照時序圖補上:for(i=0;i

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit MBI_SDIG=P3^4;
sbit MBI_SDIR=P3^2;
sbit MBI_CLK=P3^5;
sbit MBI_LE=P3^7;


//顯示段碼表
uchar code Tab[]=
{
0xdfc0,        //  0
0x03c0,        //  1
0xc620,        //  2
0x86a0,        //  3
0x12a0,        //  4
0x94a0,        //  5
0xd4a0,        //  6
0x0680,        //  7
0xd6a0,        //  8
0x96a0,        //  9
};


void delay(uint xms)
{
   uint i,j;
        for(i=xms;i>0;i--)
          for(j=100;j>0;j--);
}

   
void mbi5026(uchar dat)
{
    uchar k;
   for(k=0;k<16;k++)
    {
       MBI_SDIR=(dat &0x8000)?1:0;
       MBI_CLK=1;
       dat<<=1;
       MBI_CLK=0;
    }
    MBI_LE = 1;
    delay(100);
    MBI_LE = 0;
}
void main()
{
    uchar q;
    MBI_CLK=0;
    MBI_SDIR=0;
    MBI_SDIG=0;
         for(q=0;q<10;q++)
    {
       mbi5026(Tab[q]);
       delay(1000);
    }
}
求教,大神!
作者: liu_qing532    時間: 2016-3-7 09:53
本帖最后由 liu_qing532 于 2016-3-12 15:55 編輯

終于可以顯示:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit MBI_SDIG=P3^4;
sbit MBI_SDIR=P3^2;
sbit MBI_CLK=P3^5;
sbit MBI_LE=P3^7;


uint code Tab[]=
{
0xd680, //  0
0x5000, //  1
0xc620, //  2
0xd420, //  3
0x50a0, //  4
0x94a0, //  5
0x96a0, //  6
0xd000, //  7
0xd6a0, //  8
0xd4a0 //  9
};

void delay(uint xms)
{
   uint i,j;
        for(i=xms;i>0;i--)
          for(j=100;j>0;j--);
}

   
void mbi5026(uint dat)
{
    uint k;
   for(k=0;k<16;k++)
    {
       MBI_SDIR=(dat &0x8000)?1:0;
       MBI_CLK=1;
       dat<<=1;
       MBI_CLK=0;
    }
    MBI_LE = 1;
    delay(1000);
    MBI_LE = 0;
}
void main()
{
    uchar q;
    MBI_CLK=0;
    MBI_SDIR=0;
    MBI_SDIG=0;
         for(q=0;q<10;q++)
    {
       mbi5026(Tab[q]);
       delay(1000);
    }
}

只能顯示零星的字段,不能顯示完整數字,求大神告知是哪錯了???數組編碼應該不會錯,對了好幾遍了。





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1