Arduino基础之十一 74HC595的使用------控制1位数码管

本文介绍了如何使用Arduino配合74HC595芯片控制1位数码管。通过理解74HC595的串行输入、并行输出特性及各引脚功能,实现仅用3个数字引脚驱动数码管。同时,展示了通过74HC595的代码实现数码管随机显示数字,以及按钮控制显示固定数字的功能。涉及的知识点包括数码管接线、移位寄存器和存储寄存器的工作原理,以及randomSeed()和random()函数的应用。
摘要由CSDN通过智能技术生成

一 硬件

 

74HC595是一种8位串行输入,并行输出的寄存器芯片,一共有16个引脚,如下图。

        首先需要理解串行和并行的概念,这个比较容易,串行输入就是一个一个数地输入,并行输出就是8位一道输出,见下图【1】

其次需要明确芯片每个引脚的功能,见下表【2,3】

74HC595引脚功能
符号 引脚 功能
Q0~Q7 15,1~7 8位并行数据(parallel data)输出
GND 8 接地
可以使用74HC595芯片结合共阴数码管来实现循环显示0-9、A-F。以下是基本的接线方式: - 74HC595的Q0~Q7接入8个共阴数码管的段选端 - 数码管选端依次连接到74HC595的ST_CP、SH_CP、OE引脚 - 74HC595的DS引脚连接到Arduino的数字输出口 - 数码管的公共端连接到GND 接线完成后,可以使用以下代码实现循环显示0-9、A-F: ``` int latchPin = 8; // 74HC595的ST_CP引脚 int clockPin = 12; // 74HC595的SH_CP引脚 int dataPin = 11; // 74HC595的DS引脚 int digitPins[] = {2, 3, 4, 5}; // 数码管选引脚 byte digits[] = { // 数码管显示的字符 B00111111, // 0 B00000110, // 1 B01011011, // 2 B01001111, // 3 B01100110, // 4 B01101101, // 5 B01111101, // 6 B00000111, // 7 B01111111, // 8 B01101111, // 9 B01110111, // A B01111100, // b B00111001, // C B01011110, // d B01111001, // E B01110001 // F }; void setup() { pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); for (int i = 0; i < 4; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { for (int i = 0; i < 16; i++) { for (int j = 0; j < 4; j++) { digitalWrite(digitPins[j], LOW); // 关闭当前选 shiftOut(dataPin, clockPin, MSBFIRST, digits[i]); // 输出字符 digitalWrite(latchPin, HIGH); // 上升沿锁存 digitalWrite(latchPin, LOW); digitalWrite(digitPins[j], HIGH); // 打开下一选 delay(2); // 延时 } } } ``` 代码中的digits数组存储了0-9、A-F对应的字符,每次循环输出一个字符并切换到下一个数码管。通过控制选引脚的状态,可以依次选中四个数码管进行显示,从而实现循环显示的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值