本篇文章主要是讲解如何简单示用74HC595,更具体的讲解请移步

https://www.cnblogs.com/lulipro/p/5067835.html#undefined

这篇文章讲解的更加详细.

/**************************************************************************************/

在开始前要预习的一些东西

595里面有2个8位寄存器:移位寄存器SRCLK、存储寄存器RCLK;

SER:串行输入口;

先放一张原理图.

在图中我们可以看到三个管脚

P43-SRCLK;

P54-RCLK;

P40-SER;

工作路径是SER->SRCLK->RCLK;

下面简单演示下如何在右起第二个数码管显示2.

/*段码*/

unsigned char code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*位码*/
unsigned char code T_COM[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

sbit P_SRCLK=P4^3;//移动寄存器
sbit P_RCLK=P5^4;//存储寄存器
sbit P_SER=P4^0;//串行输入口

//我们首先定义一个函数

void Sent595_in(unsigned char dat){
unsigned int i=1;
for(i=1;i<=8;i++){
dat<<=1;
P_SER=CY;
P_SRCLK=1;
P_SRCLK=0;
}}

/*这个函数的作用是收到段码或位码dat后,8位二进制依次左移,溢出的数存储在CY中直接赋值给串行输入口P_SER,移动8次正好将8位二进制码全部输入.

然后移动寄存器上升沿有效给它一个高电平,

记得还原低电平.*/

//第二个函数

void Sent595_out(){
Sent595_in(T_COM[2]);
Sent595_in(smgduan[2]);
P_RCLK=1;
P_RCLK=0;
}

/*我们分别调用了两次Sent595_in,因为是两块HC595,所以必须是位码先放进去,位码放进去后再放入段码,于是原先的位码便会从Q7口进入上面的那块HC595中的SER口,起到位码的作用.

上面的HC595负责选择哪个数码管,下面的HC595负责选择数码管显示什么.

最后存储寄存器赋值高电平,然后还原.

1.简单使用两片74HC595实现动态显示数码管的更多相关文章

  1. 简单的两数之和再次乱入<< Add Two Numbers >>

    请看题目描述: You are given two linked lists representing two non-negative numbers. The digits are stored ...

  2. leetcode简单题目两道(3)

    本来打算写redis的,时间上有点没顾过来,只能是又拿出点自己的存货了. Problem Given an array nums, write a function to move all 's to ...

  3. leetcode简单题目两道(2)

    Problem Given an integer, write a function to determine if it is a power of three. Follow up: Could ...

  4. 通过简单的两数相加体会hashmap的好处

    目录 引入题目:两数相加 HashMap相关知识: Map集合 Map集合的特点 Map常用子类 HashMap集合 LinkedHashMap集合 Map集合的常用方法 Map集合的第一种遍历方式: ...

  5. leetcode简单题目两道(5)

    Problem Given an integer (signed bits), write a function to check whether it . Example: Given num = ...

  6. leetcode简单题目两道(4)

    心情还是有问题,保持每日更新,只能如此了. Problem Given a binary tree, return the level order traversal of its nodes' va ...

  7. Easy-UI中datebox的默认显示当前日期的最简单的两种方法

    在中有一个Today按钮就是实现显示当前日期,所以我们在src/jquery.datebox.js文件中可以找到currentText:'Today'.所以我们可以使用'currentText'和'T ...

  8. leetcode简单题目两道(1)

    Problem: You are playing the following Nim Game with your friend: There is a heap of stones on the t ...

  9. C语言播放声音最简单的两种方法

    1. 假设仅须要播放波形文件wav格式的声音,非常easy.仅仅需一句话: PlaySound(TEXT("Data\\1.wav"), NULL, SND_FILENAME | ...

随机推荐

  1. Unity使用transform.Rotate进行三维旋转角度出现偏差

    Unity使用transform.Rotate进行三维旋转角度出现偏差 情形 最开始遇到该问题的情况比较复杂,另写了一个例子.情形如下: 一个立方体上挂载脚本: transform.Rotate(25 ...

  2. 第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter

    上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一.    案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...

  3. Centos 7 下的java安装

    安装java 下载jdk的安装包,放到 /usr/local 目录下 创建一个 java 的目录存放 jdk 1 mkdir java 解压java安装包 1 tar -zxvf "jdk名 ...

  4. Flask框架登录日志模块编写

    web扫描器网站的框架搭建逐渐进入尾声,边搭建框架的时候负责前端的小姐姐也在完善页面设计,过两天就可以进行功能点的完善了. 在扫描器中我们用到了用户登录模块,想法是初始化一个账户和密码,比如说admi ...

  5. DVWA SQL Injection LOW

    最近在学习SQL注入,初出茅庐,就从dvwa开始吧 sql注入可以通过sqlmap工具实现,为了更好地了解原理,这里主要是手工注入 注入的一般流程为: 1,找到注入点,此步骤可通过工具 2,判断注入类 ...

  6. 初识Flask——基于python的web框架

    参考教程链接: https://dormousehole.readthedocs.io/en/latest/ (主要)https://www.w3cschool.cn/flask/ 目录: 1.写了一 ...

  7. SQL直接生成实体属性,简单粗暴型

    在java开发中,不可避免的要碰到根据表生成对应的实体,这个过程是比较机器且繁琐的,我也用过一些逆向工程的工具,比如IDEA自带的生成实体,还有网上开源的工具,用起来也是可以的. 我现在开发用的持久层 ...

  8. C++异常之五 异常和继承

    异常和继承 异常也是类,我们可以创建自己的异常类,在异常中可以使用(虚函数,派生,引用传递和数据成员等), 下面用一个自制的数组容器Vector,在对Vector初始化时来对Vector的元素个数进行 ...

  9. VMware & centos 7 配置克隆虚拟机

    VMware & centos 7 配置克隆虚拟机 之前一直使用的是centos6,买了新电脑试了一下centos7,安装过程果然采坑不少,下面是我成功安装的过程 克隆虚拟机 安装虚拟机,安装 ...

  10. 一文搞懂Java引用拷贝、浅拷贝、深拷贝

    微信搜一搜 「bigsai」 专注于Java和数据结构与算法的铁铁 文章收录在github/bigsai-algorithm 在开发.刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况 ...