找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4829|回复: 5
打印 上一主题 下一主题
收起左侧

51单片机+74hc595芯片实现跑马灯Proteus仿真程序

  [复制链接]
跳转到指定楼层
楼主
1、74HC595特点
串进并出,移位,锁存(相当于把8位输入送到Q0-Q7,锁存前Q0-Q7为上一次的值)
Q7‘为串行输出,即可以级联。
SCK(SH_CP)    //串行输入时钟, 串行输入
RCK(ST_CP)    //存储寄存器时钟,并行输出2、原理图如图所示

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>

  3. typedef unsigned char uchar;
  4. typedef unsigned int uint;
  5. void delayms(uint xms);
  6. void hc595(uchar byteData);

  7. sbit SER = P3^4;    //p3.4脚控制串行数据输入
  8. sbit SCK = P3^6;    //串行输入时钟
  9. sbit RCK = P3^5;    //存储寄存器时钟

  10. uchar code table[]=
  11.                                  {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  12. uchar num=0;
  13. void main()
  14. {
  15.         while(1)
  16.         {
  17.                    for(num=0;num<8;num++)
  18.                 {
  19.                         hc595(table[num]);        
  20.                         delayms(500);
  21.                 }
  22.         }        //        hc595(0x55);            // Q7~Q0=0101 0101                 }
  23. }



  24. /*功能:发送一个字节的数据给595,再并行输出*/
  25. void hc595(char byteData)
  26. {
  27.     char i=0;   
  28.     for(i=0;i<8;i++)
  29.     {
  30.         SER = byteData>>7;        //送出7位数据
  31.         byteData= byteData<<1;      

  32.         SCK = 0;          //上升沿,让串行输入时钟变为高电平,并延时2个时钟周期
  33.         _nop_();
  34.         _nop_();
  35.         SCK = 1;          //变为低电平,为下次准备
  36.     }  
  37.    
  38.    //位移寄存器数据准备完毕,转移到存储寄存器
  39.    RCK = 0;         //上升沿,让存储寄存器时钟变为高电平,并延时2个时钟周期
  40.    _nop_();
  41.    _nop_();
  42.    RCK = 1;

  43. }


  44. void delayms(uint xms )  //延时xms函数
  45. {
  46.         uint a,b;
  47.         for(a=xms;a>0;a--)
  48.          for(b=110;b>0;b--);
  49. }
  50.          
复制代码

所有资料51hei提供下载:
hc595 (8个led灯).zip (99.69 KB, 下载次数: 118)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:748788 发表于 2020-6-26 14:19 | 只看该作者
初次接触595,一下子就成了,便于进一步搞懂595,谢谢楼主
回复

使用道具 举报

板凳
ID:608923 发表于 2020-9-6 21:18 | 只看该作者
谢谢楼主的解析,让我懂得了跟多
回复

使用道具 举报

地板
ID:978629 发表于 2021-11-13 16:33 | 只看该作者
网上找了资料,对着楼主的资料,刚好手边有资料。就做了一个。补贴个实物图。

picture.jpg (5.35 MB, 下载次数: 37)

picture.jpg
回复

使用道具 举报

5#
ID:208271 发表于 2022-1-22 23:06 | 只看该作者
谢谢楼主,按照楼主的改了下,改为点阵控制,完全没问题。楼主对595的说明也很简洁:串进并出,移位,锁存
回复

使用道具 举报

6#
ID:997051 发表于 2022-1-24 08:29 | 只看该作者
        }        //        hc595(0x55);            // Q7~Q0=0101 0101                 }

※                 }多了!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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