有谁做过用G2553或者其他430系列,通过74HC595,来驱动8个LED么?希望能指导一下,最近在写这个程序,但是,没法让LED灯亮,找不到问题的原因。贴上595的代码,高手帮忙看看对么这样写。
void writ_595(uchar dat)
{
uchar i;
P1OUT&=~MR; //寄存器清0,避免数据错位MR=0
P1OUT|=MR; //MR=1
for(i=0;i<8;i++)
{
P1OUT&=~CLK; //CLK=0
if((dat&0x80) == 0x80)
P1OUT|=DS;//DS = 1; //串行数据输入
else
P1OUT&=~DS; //DS = 0;
P1OUT|=CLK; //CLK=1; //移位输入时钟,上升沿输入
dat<<=1;
}
P1OUT&=~RCK; //RCK=0; //并行输出时钟
P1OUT|=RCK; //RCK=1;
}
430G2553通过74HC595驱动8个LED问题
貌似里面没有设置IO口的数据传输方向啊。
回复 沙发 shj_23 的帖子
你是说P1DIR?这个在初始化函数里有,这一部分只是595串转并的代码。目前,能使LED灯亮了,但还没确定出来的现象正不正确。