标题: 单片机控制74HC595 [打印本页]

作者: dzm8365    时间: 2017-6-25 13:32
标题: 单片机控制74HC595

单片机控制两个74HC595驱动16个LED灯,我要从第一个灯开始亮,到全部一起亮,然后所有灯常亮,不循环,程序要怎么写?

作者: HC6800-ES-V2.0    时间: 2017-6-26 09:35
我专门为你做的程序。
/*
AT89C52、共阳LED
*/
#include<reg51.h>
#include<INTRINS.H>

sbit SER=P2^0;//14脚
sbit RCLK=P2^2;//12脚
sbit SRCLK=P2^1;//11脚

void Delay10ms(unsigned int c)
{
    unsigned char a,b;
    for(c;c>0;c--)
    {
                for(b=44;b>0;b--)
                {
                        for (a=112;a>0;a--)
                        {
                        }
                }
        }
}

void HC595 (unsigned char dat)
{
        unsigned char i;
        SRCLK=0;
        RCLK=0;
        for (i=0;i<8;i++)
        {
                SER=dat>>7;
                dat<<=1;
                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;
        }
        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}

void main(void)//主函数
{
        unsigned char i=0x01,j;
        HC595(0x00);//初始化595
        HC595(0x00);
        for (j=0;j<8;j++)
        {
                HC595(0);
                HC595(i);
                i<<=1;
                Delay10ms(50);
        }
        i=0x01;
        for (j=0;j<8;j++)
        {
                HC595(i);
                HC595(0xff);
                i<<=1;
                Delay10ms(50);
        }
        while (1)//主循环
        {
        }
}


作者: zl2168    时间: 2017-6-27 11:26
本帖最后由 zl2168 于 2017-6-27 19:32 编辑

实例44  74HC595串入并出控制8/16循环灯
实例44 74HC595串行输出控制8-16循环灯.rar (72.58 KB, 下载次数: 18)

Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。



作者: jiqiuwei    时间: 2017-6-27 13:01
受教了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1