找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2812|回复: 8
收起左侧

如何用单片机点亮一个74HC595控制的二极管

[复制链接]
ID:424795 发表于 2018-12-15 00:01 | 显示全部楼层 |阅读模式
10黑币
2018-12-14_235916.png 谁能告诉我,这个LED如何点亮?
有了74HC595控制我就不会了,麻烦讲一下,这个的工作原理。



最佳答案

查看完整内容

哈哈哈,你发的问题,正是我有的板子,程序也有啊。 #include #include sbit SRCLK=P3^6; sbit RCLK=P3^5; sbit SER=P3^4; void Hc595SendByte(unsigned char dat); void Delay10ms(unsigned int ) ; void main() { unsigned char ledNum; ledNum=0xfe; while(1) { Hc595SendByte(ledNum); ledNum=_cror_(ledNum,1); Delay10ms(50); } } /***************************************************** ...
回复

使用道具 举报

ID:164602 发表于 2018-12-15 00:01 | 显示全部楼层
哈哈哈,你发的问题,正是我有的板子,程序也有啊。
#include<reg51.h>
#include<intrins.h>

sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
void Hc595SendByte(unsigned char dat);
void Delay10ms(unsigned int ) ;
void main()
{
        unsigned char ledNum;
        ledNum=0xfe;
        while(1)
        {
                Hc595SendByte(ledNum);
                ledNum=_cror_(ledNum,1);
                Delay10ms(50);
        }       
}
/*******************************************************************************
* 函数名         : Hc595SendByte(unsigned char dat)
* 函数功能                   : 想74H595发送一个字节的数据
* 输入           : 无
* 输出                  : 无
*******************************************************************************/
void Hc595SendByte(unsigned char dat)
{
        unsigned char a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;

                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;       
        }

        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}
/*******************************************************************************
* 函数名         : Delay10ms
* 函数功能                   : 延时函数,延时10ms
* 输入           : c
* 输出                  : 无
*******************************************************************************/
void Delay10ms(unsigned int c)   //误差 0us
{
    unsigned char a,b;
    for(;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}

注意:需要将JOE跳线帽J13接GND,595模块的JP595跳线帽J14接上,595的LED才会亮!!
回复

使用道具 举报

ID:354282 发表于 2018-12-15 08:22 | 显示全部楼层
单片机控制74hc595输出进而控制发光二极管点亮:74hc595是一个反极性驱动,也就是说如果用的是共阳数码管,段选端本应低电平点亮,如果在单片机的p口送个高电平,但是经过74hc595后你的高电平就变成低电平了,所以要在单片机那面往595送低电平,共阳相反,然后在将位选选通,如果想固定显示某个数或者循环显示某几个数的话,就直接只一个表这个表就是八字码,然后通过查表就可以了,如果不是的话就能麻烦点,需要将待显示的数据转成十进制然后经过处理后再查表送显示。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:275671 发表于 2018-12-15 08:34 | 显示全部楼层
1. 打开百度
2. 搜对应的数据手册
3. 仔细看数据手册
4. 可以开始画流程图了
5. 写程序
6. 测试

适用所有外围电路
回复

使用道具 举报

ID:423511 发表于 2018-12-15 09:23 | 显示全部楼层
看一下这段程序
void led(u16 dat)
{
        u8 a;
        SRCLK=0;
        RCLK=0;
        for(a=0;a<8;a++)
        {
                SER=dat>>7;
                dat<<=1;
               
                SRCLK=1;
                _nop_();
                _nop_();
                SRCLK=0;
        }
        RCLK=1;
        _nop_();
        _nop_();
        RCLK=0;
}
回复

使用道具 举报

ID:424795 发表于 2018-12-15 09:30 | 显示全部楼层
jefelee 发表于 2018-12-15 08:22
单片机控制74hc595输出进而控制发光二极管点亮:74hc595是一个反极性驱动,也就是说如果用的是共阳数码管, ...

能给我写段程序看看吗?就点亮两个灯就可以
回复

使用道具 举报

ID:317383 发表于 2018-12-15 09:44 | 显示全部楼层
74hc595是串入并出的芯片,利用51单片机模拟串行接口使用,简单使用如下

sbit data_595 = P3^4;
sbit clk_595 = P3^6;
sbit LATCH_595 = P3^5;

void wr_bits(uchar num)
{
        uchar i;
        for(i=0;i<8;i++)
        {
                if(num&0x80)         //′ó¸ßλËí
                        data_595 =1;
                else
                        data_595 =0;       
                clk_595 =0;
                _nop_();
                clk_595 =1; //½«êy¾YD′èë595  
                num<<=1;                //Ïò×óòƶˉò»Î»               
        }
        LATCH_595=0;
        _nop_();
        LATCH_595=1;//éÏéyÑØËø′æ
}
void main()
{
    while(1)
                wr_bits(0xfe);
}
回复

使用道具 举报

ID:317383 发表于 2018-12-15 09:57 | 显示全部楼层
file:///C:/Users/Administrator/Desktop/595-2-seg.gif
595-2-seg.gif

4个按键功能.rar

48.24 KB, 下载次数: 17

回复

使用道具 举报

ID:424795 发表于 2018-12-24 13:32 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-12-15 00:01
哈哈哈,你发的问题,正是我有的板子,程序也有啊。
#include
#include

你有这个板子的电子钟(C语言)的程序没有?只要求能调节时间就可以
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表