74HC595移位寄存器

2024-06-18 21:08
文章标签 移位 寄存器 74hc595

本文主要是介绍74HC595移位寄存器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文章
参考文章

1-7,15号端口接8个LED或者8位数码管;
8号口接地;
9号口连接下一个595或者置空;
10号口接vcc;
11号口接D2;
11脚SRCLK移位寄存器时钟输入:当一个新的位数据要进来时,已经进入的位数据就在移位寄存器时钟脉冲的控制下,整体后移,让出位置。
12号口D3;
12脚RCLK存储寄存器:数据从位移寄存器转移到存储寄存器,也是需要时钟脉冲驱动的,这就是12脚的作用。它也是上升沿有效。
13号接口置空或者接GND;
14号接D4;
14脚串行输入:595的数据来源只有这一个口,一次只能输入一个位,那么连续输入8次,就可以积攒为一个字节了。
16号口接vcc

//淘宝店主配的代码,发觉后2个函数根本没用到,而是直接用shiftout函数
int data = 4; 
int clock = 3;
int latch = 2;
int ledState = 0;
const int ON = HIGH;
const int OFF = LOW;
void setup()
{
pinMode(data, OUTPUT);
pinMode(clock, OUTPUT);
pinMode(latch, OUTPUT);
}
void loop()
{
int delayTime = 100;
for(int i = 0; i < 256; i++)
{
updateLEDs(i);
delay(delayTime);
}
}
void updateLEDs(int value)
{
digitalWrite(latch, LOW);    //移位寄存器
shiftOut(data, clock, MSBFIRST, value);
digitalWrite(latch, HIGH);
}
/*void updateLEDsLong(int value){digitalWrite(latch, LOW);for(int i = 0; i < 8; i++){int bit = value & B10000000;value = value << 1;if(bit == 128){digitalWrite(data, HIGH);}else{digitalWrite(data, LOW);}digitalWrite(clock, HIGH);delay(1);digitalWrite(clock, LOW);}digitalWrite(latch, HIGH);}
int bits[]={B00000001, B00000010, B00000100, B00001000, B00010000, B00100000,
B01000000, B10000000};
int masks[] ={B11111110, B11111101, B11111011, B11110111, B11101111, B11011111,
B10111111, B01111111};
void changeLED(int led, int state)
{
ledState = ledState & masks[led];
if(state == ON){ledState = ledState | bits[led];}
updateLEDs(ledState);
}*/

Arduino中shiftOut怎么用?
文章同步至Daoker小站,欢迎交流学习

这篇关于74HC595移位寄存器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073062

相关文章

寄存器B

MCS-51单片机的中央处理器包含运算部件和控制部件两部分。         1. 运算部件         运算部件以算术逻辑运算单元ALU为核心,包含累加器ACC、B寄存器、暂存器、标志寄存器PSW等许多部件,它能实现算术运算、逻辑运算、位运算、数据传输等处理。         算术逻辑运算单元ALU是一个8位的运算器,它不仅可以完成8位二进制数据加、减、乘、除等基本的算

士兰微 SC32F5432 通过配置寄存器方式 将管脚配成开漏输出模式和TTL输入模式

目录 前言: 士兰微电子介绍 士兰微 SC32F5432介绍 士兰微 SC32F5432 通过配置寄存器方式 将管脚配成开漏输出模式和TTL输入模式 开漏输出模式 TTL输入模式 前言: 下面是对我在工作时公司所使用的一款国产芯片(士兰微 SC32F5432)开发过程所遇到的一些问题的记录与解决。 士兰微电子介绍 杭州士兰微电子股份有限公司(600460)坐落于杭州

笔记 14 : 彭老师课本第 8 章, UART : 寄存器介绍 ,

(99) 继续介绍 uart 的关于通道的 一整套 寄存器, UCON 等: ++ 接着介绍寄存器 UTRSTAT : ++ 接着介绍读写数据的寄存器: ++ 设置 uart 的波特率,有关的寄存器: ++ (100) (101) 谢谢

AUXR-特殊功能寄存器(只写)

AUXR : Auxiliary Register(只写) MnemonicAddbitB7B6B5B4B3B2B1B0Reset ValueAUXR8EHname -  -  - - - -EXTRAMALEOFFxxxx,xx00 禁止ALE信号输出(应用示例供参考,C语言):sfr AUXR = 0x8e; //声明AUXR寄存器的地址AUXR = 0x01;//ALEOFF位置1

[编程之美] 2.17 字符串循环移位

题目 将字符串向右循环移动 k 位 s = "abcd123" k = 3Return "123abcd" 思路 方法一 翻转法 将子串 s[0:str.length() - k)] 翻转,子串s[str.length() - k,str.length()] 翻转。然后将整个字符翻转可以到最终结果。 eg: 将 abcd123 中的 abcd 和 123 单独翻转,得到 dcba3

[编程之美] 3.1 字符串循环移位包含

题目 s1 = AABCD, s2 = CDAA Return : true 给定两个字符串 s1 和 s2,要求判定 s2 是否能够被 s1 做循环移位得到的字符串包含。 思路 以S1 = ABCD 为例,对其循环移位的后果为: ABCD -> BCDA -> CDAB -> DABC -> ABCD S1S1 = ABCDABCD 看出对S1做循环移位所得到的字符串都将是字符串S1S1的

FPGA编程基础(一)--参数传递与寄存器使用

一、参数映射 参数映射的功能就是实现参数化元件。所谓的”参数化元件“就是指元件的某些参数是可调的,通过调整这些参数从而可实现一类结构类似而功能不同的电路。在应用中,很多电路都可采用参数映射来达到统一设计,如计数器、分频器、不同位宽的加法器以及不同刷新频率的VGA视频接口驱动电路等。 参数传递 参数传递就是在编译时对参数重新赋值而改变其值。传递的参数是子模块中定义的parameter,其传递方

日系编曲:日系架子鼓写作思路 支点音符 幽灵音 抢拍(重音移位)半速与倍速

分子大于3的拍子都是由若干个二拍子和三拍子组成的,且在组成时要保证三拍子的最大数量,且在排列时三拍子尽可能在前。 二拍子与三拍子 分子大于3的拍子都是由若干个二拍子和三拍子组成的,且在组成时要保证三拍子的最大数量,且在排列时三拍子尽可能在前。 比如8/4拍就是3+3+2形式,7/4拍则是3+2+2形式 二拍子:强、弱 三拍子:强、弱、弱 当复合时,除了第一个强拍,后面的强拍都成

Java:位运算符,移位运算

一 位运算符 1.按位与------ & 运算法则: 2.按位或------ | 运算法则: 3.按位异或------ ^ 运算法则: 4.按位取反------ ~ 运算法则: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0 二  移位运算 1.左移  << 运算法则: 2.右移  >> 运算法则: 3.无符号右移  >>>

【软件逆向】第38课,软件逆向安全工程师之操作标志寄存器实例,每天5分钟学习逆向吧!

在这些实例学习中,我们使用汇编指令来操作标志寄存器,并根据标志寄存器的状态进行条件分支。这些操作对于编写高效的汇编程序以及理解程序的行为至关重要 实例 1:使用 PUSHF 和 POPF 保存和恢复标志寄存器状态 section .text global _start _start: ; 初始化 AL 寄存器 MOV AL, 0xFF ; 对 AL 寄存器进行加一操作,这将导致 AL 寄存器的