找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5466|回复: 2
收起左侧

利用74HC595显示多个数码管

[复制链接]
ID:164146 发表于 2017-5-3 08:49 | 显示全部楼层 |阅读模式
74HC595显示多个数码管
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit ClOCK = P2^0;        //HC595第11脚,串行时钟输入端
  6. sbit DATA  = P2^1;        //HC595第14脚,串行数据输入端
  7. sbit LATCH = P2^2;        //HC595第12脚,输出锁存脉冲输入端

  8. //定义共阴数码管段码0-9
  9. uchar code segment[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F};

  10. //串行输出一个字节
  11. void HC595(uchar word)
  12. {
  13.     uchar i;
  14.     for (i=8;i>0;i--)
  15.     {
  16.         ClOCK=0;
  17.         DATA=0x80&word;
  18.         word=_crol_(word,1);
  19.         ClOCK=1;
  20.         _nop_();
  21.     }
  22. }


  23. void display(uchar S1, uchar S2, uchar S3, uchar S4, uchar S5, uchar S6)
  24. {
  25.         HC595(segment[S6]);
  26.         HC595(segment[S5]);
  27.         HC595(segment[S4]);
  28.         HC595(segment[S3]);
  29.         HC595(segment[S2]);
  30.         HC595(segment[S1]);
  31.         LATCH=1;
  32.     _nop_();
  33.         LATCH=0;
  34. }
  35. void main()
  36. {
  37.     LATCH = 0;
  38.         while(1)
  39.                 display(2, 0, 1, 3, 1, 4);
  40. }
复制代码


数码管显示-基于74HC595.rar

59.37 KB, 下载次数: 81, 下载积分: 黑币 -5

含Proteus仿真

回复

使用道具 举报

ID:275742 发表于 2018-8-28 17:15 | 显示全部楼层
这里有个参考设计,提供参考原理图和源代码,stm32f4通过hc595控制96个LED,可通过修改数组数据修改点亮或者熄灭任意一个LED灯,程序方便移植
//初始化hc595参数
uint8_t hc595_buf1[6] = {0x00,0x00,0x00,0x00,0x00,0x00,};
uint8_t hc595_buf2[6] = {0x00,0x00,0x00,0x00,0x00,0x00,};
上面两个数组每一位代表一个灯,假如灯是低电平点亮,该位就置0,否则置1,
12个字节,一共96个bit位,代表96个灯,可无限扩展灯的数量
http://www.cirmall.com/circuit/9 ... 4%B8%AALED#/details
回复

使用道具 举报

ID:6428 发表于 2019-1-8 12:40 来自手机 | 显示全部楼层
LONGSHEN1 发表于 2018-8-28 17:15
这里有个参考设计,提供参考原理图和源代码,stm32f4通过hc595控制96个LED,可通过修改数组数据修改点亮或 ...

谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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