打印

大家帮忙看看这个驱动595程序

[复制链接]
1899|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongjia|  楼主 | 2007-3-21 14:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void OUT595(unsigned int Outdata[],unsigned char num)
{
    unsigned code char i,j;
    SRCLR=0;
    SRCLR=1;
    for(i=0;i<num;i++)
    for(j=0;j<8;j++)
    {
     if (LedData[2-i]&0x80)     
       SER595 = 1;    //判断数据      
     else                            
       SER595 = 0;    //判断数据      
       SRCLK595 = 0;   //时钟上半周期     
       SRCLK595 = 1;   //时钟下半周期
       Led_Buffer[2-i] <<= 1;        //移位
    }
     RCLK595=0;
    RCLK595=1;

}
大家帮我看看这个程序,有懂的就忙烦你告诉我一下。
LedData[2-i]里面的2-i是什么意思?
LedData[2-i]为什么要和0x80与?
我在线等,谢谢大家了。

相关帖子

沙发
eastbest| | 2007-3-21 14:29 | 只看该作者

我做过一个箭头屏

用的也是HC595,移位寄存器。
LedData[2-i] & 0x80  :判断这个数的最高位是否为1

使用特权

评论回复
板凳
dongjia|  楼主 | 2007-3-21 14:54 | 只看该作者

是不是这样?

这个是串口输入,是不是LedData[2-i]的每个字节,都和0x80与一次?

使用特权

评论回复
地板
dongjia|  楼主 | 2007-3-21 14:57 | 只看该作者

这样可以吗?

我把0x80换成1

使用特权

评论回复
5
wangzh99| | 2007-3-21 15:20 | 只看该作者

这个可能与outdata[]有关系

led_buffer[]中的2-i与outdata[]的存贮数据有关系
LedData[2-i]为什么要和0x80与,是要判断当前要移的位是什么

使用特权

评论回复
6
dongjia|  楼主 | 2007-3-22 11:13 | 只看该作者

是不是这样?

LedData[2-i]和0x80与,意思是从高位,也就是从BIT7开始发。
要是和0x01与就是从低位开始发?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

38

帖子

0

粉丝