430G2553通过74HC595驱动8个LED

2019-03-24 09:31发布

有谁做过用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;
} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
shj_23
1楼-- · 2019-03-24 16:47
貌似里面没有设置IO口的数据传输方向啊。
Li_Lei
2楼-- · 2019-03-24 17:11
 精彩回答 2  元偷偷看……
wfarlen
3楼-- · 2019-03-24 21:38
你是说P1DIR?这个在初始化函数里有,这一部分只是595串转并的代码。目前,能使LED灯亮了,但还没确定出来的现象正不正确。
木子风
4楼-- · 2019-03-25 01:20
楼主,做成功了吗?求资料,我也卡在这个地方了
一个人独白
5楼-- · 2019-03-25 05:14
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章