共阳极数码管显示c语言,基于74HC595单片机驱动数码管设计
描述
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单片机驱动数码管设计相关推荐
- 51单片机入门之五:数码管显示(动态),单片机驱动数码
本文旨在介绍单片机入门的基础知识,为初接触或即将接触单片的新手提供一个入门指导.本文章会陆续推出,隔几天一个章节.所使用单片机为ATMEL公司的AT89C52,软件为PROTEUS和KEIL;只提供原 ...
- LED数码管静态显示 C语言程序,PIC单片机驱动LED数码管显示程序
;*****该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1.2.3.4.5.6.7.8******* ;****http://www.51hei.com 单片机学习网经典程序已测试 ...
- c51时钟数码管显示流程图_基于51单片机的8位数码管电子时钟仿真图及源代码详细资料概述...
描述 利用8位数码管显示时间,原理与4位数码管显示的基本一样 仿真图: 程序源代码: 本程序已经通过在线软件仿真和硬件制作. org 0000h ;程序开始入口地址 sjmp main ;跳转至主程序 ...
- 单片机课程设计洗衣机c语言,基于51单片机洗衣机控制器的设计(附程序)☆
基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘 要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...
- 台灯c语言,基于msp430单片机的智能台灯设计(C语言).doc
基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 名: 学 号: 组 员: 指导老师: 实习时间: 目 录1概述3 1.1 题目 ...
- 台灯c语言,基于msp单片机的智能台灯设计(C语言).doc
基于msp单片机的智能台灯设计(C语言).doc 基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 设计题目: 基于单片机的智能 ...
- 声控灯程序C语言,基于51单片机的声控灯设计设计-包含完整设计与指导文件.doc...
基于51单片机的声控灯设计设计-包含完整设计与指导文件 工 学 院 毕 业 设 计(论文) 题 目:基于单片机的智能光控路灯的设计 专 业: 机电技术教育 班 级: *** 姓 名: *** 学 号: ...
- 基于单片机的血压计c语言,基于51单片机的电子血压计的设计.doc
摘 要 针对采用传统单片机的电子血压计成本高.测量精度低等缺点,以AT89S51单片机为控制核心,采用气体压力传感器US9111.串行A/D转换芯片ADC0832.LCD驱动芯片和外围模拟电路设计了新 ...
- 8255数码管显示c语言,用汇编语言编写七段数码管显示1~9,用8255A接口芯片,用中断方式控制。...
满意答案 vgvm7321 2013.07.19 采纳率:52% 等级:11 已帮助:11521人 正好我们做了这个实验 你知道的,把数据段中的端口地址改为你的计算机可识别的8255A的端口地址 ...
- 单片机简易电子钟设计c语言,基于51单片机的简易电子钟设计
单片机实现电子钟主要有两种方案.一种是利用单片机内部的定时/计数器产生标准秒信号,并根据时间系统的进位原则进行加1调整.另一种方法是为单片机配置一片可独立走时的实时钟(RTC)芯片,单片机通过串行信号 ...
最新文章
- DL之DNN:自定义MultiLayerNet(5*100+ReLU+SGD/Momentum/AdaGrad/Adam四种最优化)对MNIST数据集训练进而比较不同方法的性能
- #2989. 数列(cdq分治/曼哈顿距离)
- Linux 部分常用命令
- Week06-接口、内部类
- mybatis映射多对多查询实现
- 搭建Discuz论坛的两种方式
- linux windows下重启oracle
- python web框架 多线程_Django基础一之web框架的本质
- 计算机课程新讨论话题,信息技术组内主题讨论-.DOC
- Ubuntu下为Hadoop安装配置Hbase教程
- mysql 好用 客户端_5款好用的mysql客户端
- ansys toolkit教程_「实用」ANSYS电磁仿真工具推荐,做仿真的你可以试试
- 服务器修改ip socket,socket不能选择本地IP连接的解决方法
- adodb 连接oracle php,c# 利用ADODB连接ORACLE数据库
- 怎样在线制作gif表情包?教你快速制作gif表情包
- mysql right syntax_Mysql 出现the right syntax to use near USING BTREE错误解决办法
- 什么是 Holdout Set?
- 【Hive】Both left and right aliases encountered in JOIN
- 如何在oracle官网下载ojdbc8,想不想在maven里直接下载ojdbc这个jar?
- 线段树——区间合并(模板题)