74HC595驱动四位数码管

news/2024/12/28 19:08:46/

74HC595驱动四位数码管

  1. 数码管编码 出处
  2. 硬件原理图 出处
  3. 驱动程序 出处

1.数码管编码介绍

它每一段是一个发光二极管,排成一个“日”字形。通过控制某几段发光二极管的发光来显示数字0~9或字母A、B、C、D…。通常有8个发光二极管,其中七个为日字型,另外一个发光二极管表示小数点。如图1所示,如a、b、g、e、d段亮显示2;f、b、e、c、g段亮显示H。注意:dp段表示右下角的小数点。
在这里插入图片描述
连接分为共阳极和共阴极两种接法。(1)共阳极数码管所有发光二极管阳极连在一起,接高电平。而阴极通过串联一个限流电阻接在驱动器一侧。当一段输出为低电平时,发光二极管导通而发光。(2)共阴极数码管是所有的发光二极管的阴极接在一起接地,阳极串联一个限流电阻接在驱动器一侧。当某段输出为高电平时,发光二极管导通发光。如下图2、图3。
在这里插入图片描述

相应得出,共阳极对应编码(小数点用最高位表示)。
unsigned char LED_0F[] =
{// 0 1 2 3 4 5 6 7 8 9 A b C d E F -
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf
};

2.硬件原理图

在这里插入图片描述
本设计使用了一个4位的数码管,为共阳型,为了节省单片机的IO口,使用了两片74HC595作为数码管的驱动芯片,共占用3个IO口。
与单片机相连接的三个脚分别为: HC_DAT,HC_RCK,HC_CLK。两片595采用级联方式,即U2的第9脚接到U3的第14引脚。

74HC595是8位的移位寄存器,串入并出,并具有锁存功能,被广泛的用于数码管、点阵的驱动电路中。其管脚介绍如下:
  15: 数据输出A-接数码管数据A段;
  l: 数据输出B-接数码管数据B段;
  2: 数据输出C-接数码管数据C段;
  3: 数据输出D-接数码管数据D段;
  4: 数据输出E-接数码管数据E段;
  5: 数据输出F-接数码管数据F段;
  6: 数据输出G-接数码管数据G段;
  7: 数据输出H-接数码管数据H段;
  16: 电源正脚-接电源正;
  8: 电源负脚=接电源负;
  14: 数据输入脚-接单片机管脚;
  12: 数据锁存时钟-接单片机管脚;
  11: 数据输入时钟-接单片机管脚;
  13: 使能输出脚-低电平有效,接低电平;
  10 :数据清零-不清零,接高电平;
  9:数据级联输出-接下一片595的数据输入脚
  
(1)SCK是上升沿的时候要把数据写入;(2)RCK是上升沿的时候数据才能锁存显示;(3)有数据操作的过程中RESET必须是高电平;(4)EN必须是低电平,595才能工作;
知道了以上4点就可以写程序了。其中3、4条是硬件连接上的事情(也可以用单片机的IO口来连接,这样的话可以随时控制74HC595的工作与否情况)。写程序主要靠1、2条。

电路连接图

在这里插入图片描述

3.驱动程序


U8 LED_0F[] = 
{// 0	 1	  2	   3	4	 5	  6	   7	8	 9	  A	   b	C    d	  E    F    -0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf
};
///********************* 数码管显示函数 *******************///
U8 LDE_NUM[4]={1,2,3,4};
void Nixie_Tube_Display (void)
{U8 *led_table;          // 查表指针U8 i;//显示数字1led_table = LED_0F + LDE_NUM[0];i = *led_table;LED_OUT(i);	    		LED_OUT(0x01);  //0x01显示在第一位RCLK_LOW;RCLK_HIGH;//显示数字2led_table = LED_0F + LDE_NUM[1];i = *led_table;LED_OUT(i);		LED_OUT(0x02);	//0x02显示在第二位	RCLK_LOW;RCLK_HIGH;//显示数字3led_table = LED_0F + LDE_NUM[2];i = *led_table;LED_OUT(i);			LED_OUT(0x04);	//0x04显示在第三位RCLK_LOW;RCLK_HIGH;//显示数字4led_table = LED_0F + LDE_NUM[3];i = *led_table;LED_OUT(i);			LED_OUT(0x08);  //0x08显示在第四位RCLK_LOW;RCLK_HIGH;
}void LED_OUT(U8 X)
{U8 j;for(j=8;j>=1;j--){if (X&0x80) {DIO_HIGH;}else{DIO_LOW;}X<<=1;SCLK_LOW;SCLK_HIGH;}
}

http://www.ppmy.cn/news/181794.html

相关文章

msp430g2553时钟

msp430g2553有4个时钟源&#xff0c;3个时钟输出&#xff0c;并用4个时钟寄存器。初始化定时器&#xff0c;串口&#xff0c;pwm波等等也需要先要设置时钟&#xff0c;下面对时钟的寄存器&#xff0c;时钟源&#xff0c;时钟输出总结 寄存器包括 DCOCTL BCSCTL1 BCSCTL2 BC…

三星 s7 edge SM-G9350 获取root教程

一、下载samfirm,获取固件包 samfirm:SamFirm Tool - Download Samsung Firmware Tool 然后根据手机型号在model中输入&#xff0c;国行region输入&#xff1a;CHC,然后check update 成功后&#xff0c;download然后解压备用 二、手机开启权限 设置->关于手机->版本号…

74HC595芯片介绍和使用详解【干货】

引脚介绍 3态高速位移寄存器。串行输入&#xff0c;并行输出。 14脚&#xff1a;DS&#xff0c;串行数据输入引脚 12脚&#xff1a;ST_CP&#xff0c;存储寄存器时钟输入引脚。上升沿时&#xff0c;数据从移位寄存器转存带存储寄存器。 11脚&#xff1a;SH_CP&#xff0c;移位…

ch55xduino

1.把wch的ch55x系列单片机&#xff0c;移植到Arduino&#xff0c;制成所谓的“ch55xduino”&#xff1a;GitHub - DeqingSun/ch55xduino: An Arduino-like programming API for the CH55X 2.ch55x系列单片机比较&#xff08;立创/云汉2023年4月报价&#xff09; (1)CH552T:2.…

蓝桥杯嵌入式(G4系列):RTC时钟

前言&#xff1a; 关于RTC时钟的HAL库配置我也是第一次&#xff0c;之前都是用库函数的写法&#xff0c;这里写下这篇博客来记录一下自己的学习过程。 STM32Cubemx配置&#xff1a; 首先点击左侧的Timers的RTC&#xff0c;勾选以下选项 进入时钟树配置 进入时间设置&#xff0…

Linux快速清除命令行

笔记 删除命令行开始至光标处(win) Ctrlu (mac)会直接清除该行命令 删除光标至命令行结尾 Ctrlk 结果只剩下数字。 光标移到最前 Ctrla 光标移到最后 Ctrle 后面这2个最常用。

74HC595芯片应用

文章目录 前言一、74HC595芯片管脚定义功能二、74HC595芯片工作原理三、共阳极及共阴极数码管段码四、74HC595驱动代码总结 前言 74HC595芯片是在单片机系统中常用的芯片之一&#xff0c;他的作用就是把串行的信号转为并行的信号&#xff0c;常用在各种数码管以及点阵屏的驱动…

CH455G驱动数码管

官方硬件原理图 这个芯片可以驱动数码管也可以扫描键盘&#xff0c;这里我们只看数码管驱动&#xff0c;所以原理图参考官方这里就行了。最多只能驱动4个数码管。 官方数码管驱动说明 文档中说了芯片是iic通信控制&#xff0c;时序也是标准的iic时序&#xff0c;所以驱动我们…