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

[复制链接]
3142|8
 楼主| dongjia 发表于 2007-3-21 14:20 | 显示全部楼层 |阅读模式
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与?
我在线等,谢谢大家了。 
ayb_ice 发表于 2007-3-21 14:43 | 显示全部楼层

随便说说

2-i是先发后面的数据,
与0X80相与是发送最高位BIT7.
 楼主| dongjia 发表于 2007-3-21 14:55 | 显示全部楼层

先发后面的?

能不能举个例子?
ayb_ice 发表于 2007-3-21 15:01 | 显示全部楼层

上传一个

这是我以前用的,传给你参考一下

//------------------------------------------------------
// spi_led_send
//------------------------------------------------------
//
// 向74HC595发送一个字节
// 注: 74HC595速度很快,MCU应用一般不需要做任何延时,移位时
// 钟与输出锁存时钟均为上升沿触发(高,低电平或下降沿均无效)
//
void spi_led_send(U8 byte)
{
    U8 i;

//-------------------------------------
// 负逻辑
#if _74HC595_NEGATIVE_LOGIC_OUT_EN
    byte = ~byte;
#endif


#if _74HC595_CLK_IDLE == 0
    SPI_CLK  = 0;       // 准备上升沿
    SPI_LATCH = 0;      // 准备上升沿

    for(i=8; i; i--){
        byte <<= 1;
        SPI_MOSI = CY;
        SPI_CLK  = 1;   // 上升沿发送数据(置于此处更合理)
        SPI_CLK  = 0;   // 准备上升沿
    }

//-------------------------------------
// 使能输出
    SPI_LATCH = 1;      // 上升沿将数据送到输出锁存器
    SPI_MOSI  = 1;      // 复位SPI_MOSI(省电)
    SPI_LATCH = 0;      // 准备上升沿

#else   // _74HC595_CLK_IDLE == 1(推荐使用这种方案)

    for(i=8; i; i--){
        SPI_CLK  = 0;   // 准备上升沿
        byte <<= 1;
        SPI_MOSI = CY;  // 准备数据
        SPI_CLK  = 1;   // 上升沿发送数据(置于此处更合理)
    }

//-------------------------------------
// 使能输出
    SPI_LATCH = 0;      // 准备上升沿
    SPI_MOSI  = 1;      // 复位SPI_MOSI(省电)
    SPI_LATCH = 1;      // 上升沿将数据送到输出锁存器
#endif
}
 楼主| dongjia 发表于 2007-3-21 15:03 | 显示全部楼层
 楼主| dongjia 发表于 2007-3-21 15:08 | 显示全部楼层

先看看,

能不能留下你的邮箱?
我想有问题的时候咨询咨询你。
ayb_ice 发表于 2007-3-21 15:09 | 显示全部楼层

随便说说

ayb_ice@yahoo.com.cn
 楼主| dongjia 发表于 2007-3-21 15:11 | 显示全部楼层

感谢感谢!

好人!
甄蔡组合 发表于 2007-3-28 20:17 | 显示全部楼层

想和你交个朋友 ayb_ice 好人呀

ayb_ice
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

38

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部