描述

74HC595是我们在电路中比较常见的一种CMOS器件,本文只要探讨的是基于74HC595的单片机驱动数码管设计,这个电路说复杂也复杂,说简单那也简单,我们首先来了解一下74HC595的作用。

74HC595

74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。

74HC595是一个8位串行输入、平行输出的位移缓存器:平行输出为三态输出。在SCK的上升沿,单行数据由SDL输入到内部的8位位移缓存器,并由Q7‘输出,而平行输出则是在LCK的上升沿将在8位位移缓存器的数据存人到8位平行输出缓存器。当串行数据输人端OE的控制信号为低使能时,平行输出端的输出值等于平行输出缓存器所存储的值。而当OE为高电位,也就是输出关闭时,平行输出端会维持在高阻抗状态。

74HC595引脚图

74HC595管脚功能

上图是74HC595芯片逻辑图,输出使能端13脚我们一直让它使能,复位端10脚我们一直让它无效,这两个引脚在硬件设计时为了方便,就直接给它们连到相应的电平上了。程序中我们只需要关注数据输入引脚14脚、移位脉冲引脚11脚和锁存脉冲引脚12脚。

图中的SRA——SRH是移位寄存器(ShiftRegister),数据从它们的D引脚输入,从Q引脚输出,每次移位脉冲引脚(ShiftClock)提供一个脉冲,D引脚的数据就会输出并保持到Q引脚,因为这里的移位脉冲引脚(ShiftClock)是连到每一个SR上的,所以自然每次给一个移位脉冲的时候,所有的数据都向后移动了一位。

这里我们注意到,SRA的D脚连接的是串行数据输入,也就是我们的数据引脚。所以每次给脉冲移位之前,我们需要准备好该引脚的值,因为每次给一个脉冲,它的数据就会移入后方。

很直观的看到,我们给几个脉冲,数据引脚就会有几次被移入移位寄存器,并且这些值会保持在各个SR的Q脚。所以假设我们要将一个字节移入移位寄存器,因为1个字节是8位的,所以我们需要给出8个脉冲,那么SRA——SRH的Q脚就保持了这8位值,再看看这8位值,它是先在数据引脚输出的值就会走得越远,所以如果我们先输出数据高位的话,最高位在8个脉冲后就会跑到SRH的Q脚。这就像我们排队一样,一个寄存器里面有8个位置,每次给一个脉冲就好比一次呼叫:“大家可以往前移一位了!”就这样,队伍不断得往前移。

然后我们看到LRA——LRH,它们是锁存寄存器(LatchRegister),每次锁存脉冲引脚(LatchClock)给一个脉冲,Q脚就会输出并保持D脚的值。LR和SR其实是差不多的功能,只是SR多了个复位脚。

我们可以把LR看成是照相机,锁存脉冲引脚就相当于是照相机的快门,我们给一个锁存脉冲,那么数据就被锁存在了对应的Q脚。而当我们没有操作锁存引脚的时候,照相机只是摆在那里,不管队伍怎么前进了,照相机的输出始终是不变的。只有某次按下了快门,所有的照相机的照片就都更新了一次。

大概有人会问,图中的三角形加小圆圈是什么呢?那是非门,说白了就是如果它前面是0,后面就是1;前面是1,后面就是0。还有就是贴在方形锁存器上的那些小圆圈,也是起到反向的左右。

基于74HC595单片机驱动数码管设计

数码管显示系统需要占用过多的单片机口线,但是可以保证正常的亮度。为了解决占用口线较多而浪费硬件资源等问题,研究人员开发了一系列诸如74HC595的数码管驱动芯片,该类芯片可以实现串行转并行的工作方式,驱动数码管实现静态和动态显示。但是,这样一种工作方式暴露出控制系统实时性不足等问题,在某些对系统响应时间要求比较高的场合的应用产生了一定的限制。为了解决上述几个弊端,本文提出了一种基于单片机的数码管动态显示器的设计方案,以IAP15F2K61S2系列单片机做控制核心,并采用全新的软硬件电路实现数码管的动态显示。

数码管外观设计

本显示器采用六个共阳极的数码管,按照通常的做法,六个数码管水平排列在产品的最上方,如图1所示,这样的设计可以方便的将控制系统的控制状态显示出来。下方采用的是40管脚DIP封装的单片机,所有并行口线都安排了插针,可以方便的实现系统的外部扩展,增强本显示器的可移植性。

数码管外观图

控制电路原理图

本产品采用六个共阳极数码管制作了本显示器。设计共阳极数码管显示代码表如下:

为了充分发挥C语言的模块化编程优势,将动态显示子函数封装为一个通用的模块,程序如下:

总结

74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。 74HC595是8位串行输入/输出或者并行输出移位寄存器,具有高阻、关、断状态。用74HC595做数码管静态显示电路,一片595接一个数码管,数码管用共阳,共阴的都行。共阳的数码管,公共 端接到电源上,共阴的,公共端就接到地上,不用采用动态扫描的方式,就是静态显示电路了。

打开APP精彩内容

点击阅读全文

共阳极数码管显示c语言,基于74HC595单片机驱动数码管设计相关推荐

  1. 51单片机入门之五:数码管显示(动态),单片机驱动数码

    本文旨在介绍单片机入门的基础知识,为初接触或即将接触单片的新手提供一个入门指导.本文章会陆续推出,隔几天一个章节.所使用单片机为ATMEL公司的AT89C52,软件为PROTEUS和KEIL;只提供原 ...

  2. LED数码管静态显示 C语言程序,PIC单片机驱动LED数码管显示程序

    ;*****该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1.2.3.4.5.6.7.8******* ;****http://www.51hei.com 单片机学习网经典程序已测试 ...

  3. c51时钟数码管显示流程图_基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述...

    描述 利用8位数码管显示时间,原理与4位数码管显示的基本一样 仿真图: 程序源代码: 本程序已经通过在线软件仿真和硬件制作. org 0000h ;程序开始入口地址 sjmp main ;跳转至主程序 ...

  4. 单片机课程设计洗衣机c语言,基于51单片机洗衣机控制器的设计(附程序)☆

    基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘  要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...

  5. 台灯c语言,基于msp430单片机的智能台灯设计(C语言).doc

    基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 名: 学 号: 组 员: 指导老师: 实习时间: 目 录1概述3 1.1 题目 ...

  6. 台灯c语言,基于msp单片机的智能台灯设计(C语言).doc

    基于msp单片机的智能台灯设计(C语言).doc 基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 设计题目: 基于单片机的智能 ...

  7. 声控灯程序C语言,基于51单片机的声控灯设计设计-包含完整设计与指导文件.doc...

    基于51单片机的声控灯设计设计-包含完整设计与指导文件 工 学 院 毕 业 设 计(论文) 题 目:基于单片机的智能光控路灯的设计 专 业: 机电技术教育 班 级: *** 姓 名: *** 学 号: ...

  8. 基于单片机的血压计c语言,基于51单片机的电子血压计的设计.doc

    摘 要 针对采用传统单片机的电子血压计成本高.测量精度低等缺点,以AT89S51单片机为控制核心,采用气体压力传感器US9111.串行A/D转换芯片ADC0832.LCD驱动芯片和外围模拟电路设计了新 ...

  9. 8255数码管显示c语言,用汇编语言编写七段数码管显示1~9,用8255A接口芯片,用中断方式控制。...

    满意答案 vgvm7321 2013.07.19 采纳率:52%    等级:11 已帮助:11521人 正好我们做了这个实验 你知道的,把数据段中的端口地址改为你的计算机可识别的8255A的端口地址 ...

  10. 单片机简易电子钟设计c语言,基于51单片机的简易电子钟设计

    单片机实现电子钟主要有两种方案.一种是利用单片机内部的定时/计数器产生标准秒信号,并根据时间系统的进位原则进行加1调整.另一种方法是为单片机配置一片可独立走时的实时钟(RTC)芯片,单片机通过串行信号 ...

最新文章

  1. DL之DNN:自定义MultiLayerNet(5*100+ReLU+SGD/Momentum/AdaGrad/Adam四种最优化)对MNIST数据集训练进而比较不同方法的性能
  2. #2989. 数列(cdq分治/曼哈顿距离)
  3. Linux 部分常用命令
  4. Week06-接口、内部类
  5. mybatis映射多对多查询实现
  6. 搭建Discuz论坛的两种方式
  7. linux windows下重启oracle
  8. python web框架 多线程_Django基础一之web框架的本质
  9. 计算机课程新讨论话题,信息技术组内主题讨论-.DOC
  10. Ubuntu下为Hadoop安装配置Hbase教程
  11. mysql 好用 客户端_5款好用的mysql客户端
  12. ansys toolkit教程_「实用」ANSYS电磁仿真工具推荐,做仿真的你可以试试
  13. 服务器修改ip socket,socket不能选择本地IP连接的解决方法
  14. adodb 连接oracle php,c# 利用ADODB连接ORACLE数据库
  15. 怎样在线制作gif表情包?教你快速制作gif表情包
  16. mysql right syntax_Mysql 出现the right syntax to use near USING BTREE错误解决办法
  17. 什么是 Holdout Set?
  18. 【Hive】Both left and right aliases encountered in JOIN
  19. 如何在oracle官网下载ojdbc8,想不想在maven里直接下载ojdbc这个jar?
  20. 线段树——区间合并(模板题)

热门文章

  1. NESTEROV ACCELERATED GRADIENT AND SCALE INVARIANCE FOR ADVERSARIAL ATTACKS论文解读
  2. pytorch可视化
  3. leetcode动态规划
  4. iOS NSUserDefaults 存放位置
  5. Eventbus收录
  6. 前端小白案例-爱新鲜抽屉式特效制作
  7. boost shared_ptr 用法
  8. 基于Spring Boot,使用JPA操作Sql Server数据库完成CRUD
  9. 设计模式学习笔记—策略模式
  10. Laravel框架——增删改查