请教一个74HC595动态显示的问题

[复制链接]
3161|7
 楼主| longhappy 发表于 2009-3-29 11:42 | 显示全部楼层 |阅读模式
想用595来控制流水灯,自己写了个程序,但只能静态显示第一个控制,找不到哪里出了问题,还请各位匠人指教,谢谢!

下面是我的程序:
#include<reg52.h>
#define uchar unsigned char
sbit DS=P1^5;
sbit ST=P1^4;
sbit SH=P1^3;
void show(uchar temp)
{
    uchar i;
    ST=0;
    for(i=0;i<8;i++)
    {
        DS=temp&0x80;
        temp=temp<<1;
        SH=0;
        SH=1;
    }
    ST=1;
}
void delay(uchar j)
{
    uchar i,n;
    for(;j>0;j--)
        for(i=0;i<255;i++)
        for(n=0;n<255;n++)
        {;}
}
void main()
{
    while(1){
        show(0xf1);
        delay(255);
        show(0xff);
        delay(255);
    }
}
想先试着实行0xf1再0xff,程序比较谫陋,还请各位多给点意见...
hotpower 发表于 2009-3-29 12:16 | 显示全部楼层
 楼主| longhappy 发表于 2009-3-30 21:52 | 显示全部楼层

谢谢

谢谢楼上,问题解决了,顿时学习热情暴增!
hotpower 发表于 2009-3-30 22:17 | 显示全部楼层

估计倒了个位置~~~总有人认为595有“片选”~~~

void show(uchar temp)
{
    uchar i;
//    ST=0;//移到后面,估计当成595的CS~~~
    for(i=0;i<8;i++)
    {
        DS=temp&0x80;
        temp=temp<<1;
        SH=0;
        SH=1;
    }
ST=0;//移到此处
    ST=1;
}
McuPlayer 发表于 2009-3-30 22:45 | 显示全部楼层

595的片选要发抖才管用,呵呵

王紫豪 发表于 2009-3-31 11:57 | 显示全部楼层

发抖,就是抖一下

甄蔡组合 发表于 2009-3-31 14:08 | 显示全部楼层

编程就是考验细心啊

liuforever 发表于 2009-3-31 19:35 | 显示全部楼层

要学的还有很多呀!!

见识了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

0

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