74hc595驱动数码管程序
74hc595驱动数码管程序 74HC595是在单片机系统中常用的芯片之一,他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片。
使用74HC595驱动数码管的单片机程序(基于Arduino)
下面是一个完整的Arduino程序,使用74HC595移位寄存器驱动4位共阴数码管。该程序实现了数码管的动态扫描显示功能。
// 74HC595引脚定义
const int dataPin = 2; // DS (数据引脚) -> Arduino D2
const int latchPin = 3; // ST_CP (锁存引脚) -> Arduino D3
const int clockPin = 4; // SH_CP (时钟引脚) -> Arduino D4
// 数码管段码表 (共阴极, 0-9)
byte digitPattern[10] = {
0x3F, // 0: ABCDEF
0x06, // 1: BC
0x5B, // 2: ABDEG
0x4F, // 3: ABCDG
0x66, // 4: BCFG
0x6D, // 5: ACDFG
0x7D, // 6: ACDEFG
0x07, // 7: ABC
0x7F, // 8: ABCDEFG
0x6F // 9: ABCDFG
};
// 数码管位选 (共阴极, 低电平选中)
byte digitSelect[4] = {
0xF7, // 11110111 - 第4位 (Q7')
0xFB, // 11111011 - 第3位 (Q6')
0xFD, // 11111101 - 第2位 (Q5')
0xFE // 11111110 - 第1位 (Q4')
};
// 当前显示值
int number = 1234;
void setup() {
// 设置引脚为输出
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
displayNumber(number); // 显示数字
number = (number + 1) % 10000; // 数字递增
delay(100); // 延迟控制速度
}
// 向74HC595发送数据
void shiftOutData(byte data) {
digitalWrite(latchPin, LOW); // 锁存引脚置低
shiftOut(dataPin, clockPin, MSBFIRST, data); // 发送数据
digitalWrite(latchPin, HIGH); // 锁存引脚置高,更新输出
}
// 显示数字函数
void displayNumber(int num) {
// 分解每一位数字
int digits[4];
digits[0] = num / 1000; // 千位
digits[1] = (num % 1000) / 100; // 百位
digits[2] = (num % 100) / 10; // 十位
digits[3] = num % 10; // 个位
// 循环扫描显示每一位
for (int i = 0; i < 4; i++) {
// 发送位选信号和段码
byte dataOut = digitSelect[i]; // 选择当前位
byte segment = digitPattern[digits[i]]; // 当前位数字段码
// 通过位运算组合位选和段选信号
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, segment); // 发送段码
shiftOut(dataPin, clockPin, MSBFIRST, dataOut); // 发送位选
digitalWrite(latchPin, HIGH);
// 延迟一段时间(控制亮度),同时实现动态扫描
delay(5);
// 短暂关闭显示以消除鬼影
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0x00); // 清空段码
shiftOut(dataPin, clockPin, MSBFIRST, 0xFF); // 关闭所有位选
digitalWrite(latchPin, HIGH);
}
}
硬件连接说明
74HC595引脚连接:
DS(引脚14) -> Arduino D2 (数据输入)SH_CP(引脚11) -> Arduino D4 (时钟)ST_CP(引脚12) -> Arduino D3 (锁存)VCC-> 5VGND-> GNDQ0' - Q7'-> 数码管位选控制
数码管连接:
- 共阴极数码管
- 段码引脚(abcde fg dp)连接到74HC595的Q0-Q7
- 公共阴极连接到位选控制信号(通过另一片74HC595)
程序说明
-
初始化:
- 设置74HC595控制引脚
- 定义0-9的段码表(共阴极)
- 定义位选控制信号
-
显示数字逻辑:
shiftOutData()函数向74HC595发送数据displayNumber()函数处理数字分解和动态扫描显示- 通过快速轮流显示每个数码管实现"静态"显示效果
- 每5ms切换一个数码管
-
动态扫描优点:
- 节省引脚:只需3个控制引脚即可驱动多位数码管
- 减少功耗:一次只点亮一个数码管
- 避免交叉串扰:每次显示后短暂关闭所有数码管
扩展改进建议
-
添加小数点:
- 在段码表中增加带小数点的编码
- 例如:
digitPattern[10] = 0x80; // 小数点
-
亮度控制:
- 添加PWM控制显示亮度
analogWrite()控制位选通电流
-
双级联74HC595:
- 若驱动更多数码管,可级联多个74HC595
- 修改数据发送为两个字节:
shiftOut(dataPin, clockPin, MSBFIRST, segData); shiftOut(dataPin, clockPin, MSBFIRST, digData);
这个程序实现了基本的数码管驱动功能,可以通过调整显示值和时间延迟来满足不同应用需求。
如何利用stm32的两片74hc595芯片控制2个4位共阳极数码管
基于stm32的两片74hc595芯片控制2个4位共阳极数码管程序基于stm32的两片74hc595芯片控制2个4位共阳极
嵌入式单片机基础篇(二十二)之基于stm32的两片74hc595芯片控制2个4位共阳极数码管程序
基于stm32的两片74hc595芯片控制2个4位共阳极数码管程序基于stm32的两片74hc595芯片控制2个4位共阳极
资料下载
张勇
2021-11-24 11:36:07
硬件探索——STM32F4控制74HC595数码管
使用STM32F407VET6,通过串行方式驱动74HC595控制的4位数码管使用了PD0(DIO)、PD1(RCLK)、PD2(SCLK)三个
资料下载
张亮
2021-11-24 10:06:09
【STM32学习】(14)两个74HC595控制四个数码管显示
74HC595是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用
资料下载
golabs
2021-11-23 18:06:48
74HC595怎么使用
一、74HC595使用方法74HC595的数据端Q0--Q7:八位并行输出端,可以直接控制数码管的8个段。Q7:级联输出端。将它接下一个
STM32F4控制74HC595数码管的方法
使用STM32F407VET6,通过串行方式驱动74HC595控制的4位数码管使用了PD0(DIO)、PD1(RCLK)、PD2(SCLK)三个
74HC595芯片的作用是什么
74HC595是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览