当前位置: 首页 > backend >正文

从零开始学习单片机14

数码管原理

数码管由8个发光二极管(LED)组成,8个发光二极管由两种连接方式,共阴极和共阳极

使用的是共阴极接法时,要想点亮LED,只需要在对应的二极管的阳极上接上高电平;使用的是共阳极接法时,要想点亮LED,只需要在对应的二极管的阴极上接上低电平

单片机控制数码管还存在一些的问题,51单片机的引脚电流能力只有1mA左右,驱动能力不足以直接点亮数码管,三极管电路可以增强IO的驱动能力,但每个LED都加上三极管电路,器件会很多,不是很方便

三极管电路

这时就可以选择集成芯片方案,用一颗74HC245芯片来增加单片机引脚的驱动能力,这颗芯片的引脚拉电流能够达到7.8mA。(原理就是把8个电路集成到一个芯片上了)

方向引脚接VCC,就代表A1-A8是输入。B1-B8是输出,把8个IO接到A1-A8,把B1-B8接到数码管,这样就可以完成数码管的驱动。控制IO的高低电平就可以控制LED的亮灭

51单片机总共32个IO口,如果每个数码管要占用8个IO,驱动3个数码管时需要24个IO,那其他功能就难以进行,使用74HC595芯片就可以使一个IO控制8个IO的输出(串行转并行)。

Q0-Q7输出引脚,GND接地,Q7S串口的输出(芯片同时支持并口和串口的输出),MR复位,OE是使能引脚,SHCP(移位寄存器时钟输入)、STCP(锁存寄存器时钟输入)为时钟信号,DS为输入引脚

74HC595D芯片工作原理:

1.开始工作前,MR必须是高电平(低电平时会让芯片复位),OE必须是低电平,595才能工作。

2.SHCP是上升沿的时候,芯片会读取DS上的信号,写入DS的数据,每写入一个数据时,移位寄存器中的数据依次移动一位

3.STCP是上升沿的时候,把数据从移位寄存器转存至锁存寄存器。OE为低电平时,把锁存寄存器的值输出到Q0-Q7

74HC595芯片的发送顺序是由Q0,一直到Q7。下图是发送1位数据的过程,先在Q7输出高位,低位在Q0输出

用代码表示为

void hc595_send_data(unsigned char byte)
{unsigned int i;for(i = 0; i < 8; i++){//串行输入引脚if(byte & 0x80)ds_pin = 1;elseds_pin = 0;//SHCP发生一次上升沿的时候,74HC595才会从DS引脚上取得当前的数据shcp_pin = 0;shcp_pin = 1;byte <<= 1;}stcp_pin = 0;stcp_pin = 1;
}
http://www.xdnf.cn/news/18736.html

相关文章:

  • 机器人中的李代数是什么
  • 基于波前编码成像系统模拟及图像复原的MATLAB实现
  • Rerank 与混合检索:协同提升检索精度
  • CUDA 工具包 13.0 正式发布:开启新一代 GPU 计算的基石!
  • 深入理解Linux进程程序替换:从原理到实践
  • 阿里云安装postgre数据库
  • 安全合规:AC(上网行为安全)--中
  • 2.认证与授权升级方案及使用
  • 力扣(有效括号)
  • 用蒙特卡洛法求解三门问题和Π
  • GPIO子系统自主实现(简单版)
  • 开发避坑指南(36):Java字符串Base64编码实战指南
  • 迭代器设计模式
  • 《XXL-Job 全面介绍:Java 开发中的分布式任务调度框架》
  • 【互动屏幕】为什么现在数字展厅偏爱地面互动装置?
  • 嵌入式Linux内核编译与配置
  • 神经网络与梯度算法:深度学习的底层逻辑与实战解析
  • 微论-神经网络中记忆的演变
  • “Datawhale AI夏令营--coze空间
  • Java 探针的原理
  • 深入解析:为什么应该避免使用 atoi、atol 和 atof 函数
  • 《C++ Primer 第五版》省略符号(...)
  • 【小增长电商技术分享】电商支付宝批量转账工具技术测评:架构特性、合规风险与选型方法论,支付宝官方|小增长|云方付|易推客省心返
  • vi/vim 查找字符串
  • Ajax笔记(上)
  • Spark面试题
  • Redis面试精讲 Day 30:Redis面试真题解析与答题技巧
  • 南京魔数团:AR技术引领远程协作新纪元
  • Java网络编程:从入门到精通
  • STM32之DMA详解