- 积分
- 3553
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2014-11-13
- 精华
|
马上注册,获取阅读精华内容及下载权限
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include
#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);
}
}
求教,大神!!
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);
}
#include
#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;
}
}
}
初学,哪里错??
|
|