打印

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

[复制链接]
2140|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 | 只看该作者

74ls595"速射"

使用特权

评论回复
板凳
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;
}

使用特权

评论回复
5
McuPlayer| | 2009-3-30 22:45 | 只看该作者

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

使用特权

评论回复
6
王紫豪| | 2009-3-31 11:57 | 只看该作者

发抖,就是抖一下

使用特权

评论回复
7
甄蔡组合| | 2009-3-31 14:08 | 只看该作者

编程就是考验细心啊

使用特权

评论回复
8
liuforever| | 2009-3-31 19:35 | 只看该作者

要学的还有很多呀!!

见识了!!

使用特权

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

本版积分规则

3

主题

4

帖子

0

粉丝