74HC595

74HC595

输入:串行输入

输出:并行/串行输出

用74HC595做一个流水灯

电路图

74HC595

程序

/*======================
  测试74HC595
  =======================*/

#include <REGX51.H>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit st_cp = P3^2;
sbit sh_cp = P2^7;
sbit ds = P3^0;
uchar led = 0xfe;

void message_get(uchar led);
void message_send();
void delay(uchar time_delay);

void main()
{
    while(1)
    {
        message_get(led);
        message_send();
        delay(5000);
        led = _crol_(led, 1);
    }    
}
//将数据放到移位寄存器中
void message_get(uchar led)
{
    uchar i = 0;
    for(; i < 8; i ++)
    {
        sh_cp = 0;
        ds = led & 0x80;
        led <<= 1;
        delay(5);
        sh_cp = 1;//上升沿    
    }    
}
//将数据从移位寄存器中放到存储寄存器中
void message_send()
{
    st_cp = 0;
    delay(5);
    st_cp = 1;//数据从移位寄存器放到数据寄存器中    
}
void delay(uchar time_delay)
{
    uchar x,y;
    for(x = time_delay; x > 0; x--)
        for(y = time_delay; y > 0; y--)
        {}
}

 

posted @ 2013-11-17 20:07  逐梦蜗牛  阅读(1010)  评论(0)    收藏  举报