用74HC595和74LS247驱动四位数码管
1 74HC595芯片
74HC595是一个8位串行输入、并行输出的移位寄存器
管脚如下:
2 74LS247芯片
74ls247是4线——七段译码器/驱动器
管脚如下:
其中, A,B,C,D为译码地址输入端;
a~g为段输出(低电平有效)
3 四位数码管
针脚定义:
1-4:位选
a-h:段选
3 原理图
注:该原理图只说明各针脚连接关系,未画出其它器件。
由图可见,对于共阳数码管,位选编码如下表:
位 |
1 |
2 |
3 |
4 |
编码 |
0xe0H |
0xd0H |
0xb0H |
0x70H |
注:表中编码将段选信号假设为0.
由于控制信号是由单片机等微处理器串行输入到74HC595,所以根据74LS247译码器编码对段选信号也编码如下:
数字 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
编码 |
0x00H |
0x01H |
0x02H |
0x03H |
0x04H |
0x05H |
0x06H |
0x07H |
0x08H |
0x09H |
注:表中编码将位选信号假设为0.
4 程序代码
unsigned char LED_0F[] = //共阳
{// 0 1 2 3 4 5 6 7 8 9
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
unsigned char LED[4]; //用于LED的4位显示缓存
int SCLK = 2;
int RCLK = 3;
int DIO = 4; //这里定义了那三个脚
void setup ()
{
pinMode(SCLK,OUTPUT);
pinMode(RCLK,OUTPUT);
pinMode(DIO,OUTPUT); //让三个脚都是输出状态
}
void loop()
{
LED[0]=1;
LED[1]=2;
LED[2]=3;
LED[3]=4;
while(1)
{
LED4_Display ();
}
}
void LED4_Display (void)
{
unsigned char *led_table; // 查表指针
unsigned char i;
unsigned char j;
//显示第1位
led_table = LED_0F + LED[0];
i = *led_table;
j=i|0xe0;
LED_OUT(j);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(1000);
//显示第2位
led_table = LED_0F + LED[1];
i = *led_table;
j=i|0xd0;
LED_OUT(j);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(1000);
//显示第3位
led_table = LED_0F + LED[2];
i = *led_table;
j=i|0xb0;
LED_OUT(j);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(1000);
//显示第4位
led_table = LED_0F + LED[3];
i = *led_table;
j=i|0x70;
LED_OUT(j);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(1000);
}
void LED_OUT(unsigned char X)
{
unsigned char i;
for(i=8;i>=1;i--)
{
if (X&0x80)
{
digitalWrite(DIO,HIGH);
}
else
{
digitalWrite(DIO,LOW);
}
X<<=1;
digitalWrite(SCLK,LOW);
digitalWrite(SCLK,HIGH);
}
}
用74HC595和74LS247驱动四位数码管相关推荐
- 74HC595驱动四位数码管
74HC595驱动四位数码管 数码管编码 出处 硬件原理图 出处 驱动程序 出处 1.数码管编码介绍 它每一段是一个发光二极管,排成一个"日"字形.通过控制某几段发光二极管的发光来 ...
- MicroPython-On-ESP8266——数码管的使用,2片HC595驱动四位数码管
MicroPython-On-ESP8266--数码管的使用,2片HC595驱动四位数码管 1. 背景 前面在使用四位数码管时,需要用来12个GPIO接口,结果咱micropython能驱动的esp8 ...
- Arduino Uno驱动四位数码管
Arduino Uno驱动四位数码管 我用的是 四位共阳极数码管 型号是5461BS-1数码管 接线方法 UNO引脚 数据码 3 1 4 2 5 3 6 4 7 A 8 B 9 C 10 D 11 E ...
- 74HC595/四位按键 驱动四位数码管
一.主要元器件和原理 GD32F303RCT6 74HC595 共阳数码管 按键(图片数码管名字有误) 风中凌乱的笔记: A1A2A3A4下拉工作模式.给A1A2A3A4一个低电平.当abcdefg来 ...
- TM1650芯片驱动四位数码管
文章目录 自言自语 一.芯片图 二.通讯协议 开始信号 终止信号 发送一字节数据 获取TM1650的应答 三.TM1650的各个功能 数码管显示 数码管关闭 数码管显示数字 自言自语 今天上班被丢了块 ...
- 树莓派模块化编程之TM1637驱动四位数码管
一.驱动TM1637的时序图 二.代码实现 #encoding:utf-8 import RPi.GPIO as GPIO import time GPIO.setwarnings(False) GP ...
- STM32 经过TM1637驱动四位数码管
产品简介 代码 TM1637.H ```c#ifndef __TM1637_H #define __TM1637_H #include "sys.h"#define GPIO_CL ...
- 【K210+micropython】驱动HS420561k-32四位数码管显示数字
[K210+micropython]使用HS420561k-32四位数码管显示数字 文章目录 [K210+micropython]使用HS420561k-32四位数码管显示数字 相关知识准备 一.四位 ...
- Arduino基础入门篇17—四位数码管的驱动
本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 数 ...
- 国产航顺HK32F030M:TM1624四位数码管驱动显示
1. 什么是数码管? 一位LED数码管的实物外形如图所示,它将a.b.c.d.e.f.g.dp共8个LED排成图示的 "8." 字形,通过让a.b.c.d.e.f.g不同的段发光来 ...
最新文章
- c 语言 声明 定义,C/C++语言声明与定义详解
- 盘点路由协议之RIP协议及IGRP协议
- 软件测试用例优秀例子_最全软件测试面试题汇总
- 基于intellij和meavn的整合开发struts2框架的web程序
- 在gcc中定义符号常量
- rsync+inotify实现实时同步案例
- java快捷键查看目录,java取得快捷方式指向的路径
- 一加9R国行版即将到来:搭载骁龙870 售价预计3K内
- 单元测试的编写(asp.net) (VS2017)
- java 函数式编程 示例_Java套接字编程–套接字服务器,客户端示例
- java提升性能_提升java性能的基本方法
- 7.1-7.31推荐文章汇总
- java 手机类测试
- javaMail实现邮件发送
- 芯鼎盛LED恒流驱动芯片TX6128设计的DC-DC开关电源降压恒流DEMO说明
- 【大数据】一图了解大数据发展历程
- android webview软键盘监听删除键、回车键、其他键
- 【贪玩巴斯】传感器与检测技术 (二)「半导体传感器基础」2021-09-30
- PowerBI软件的power query编辑栏和高级编辑器中文显示乱码解决办法
- Android初级教程短信防火墙