74HC595芯片应用


前言

74HC595芯片是在单片机系统中常用的芯片之一,他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片,使用74HC595可以节约单片机的I/O口资源,用3个I/O就可以控制4个数码管显示,它还具有一定的驱动能力,可以免掉三极管等放大电路,所以这块芯片应用非常广泛。

一、74HC595芯片管脚定义功能

74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7’输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。

在这里插入图片描述

二、74HC595芯片工作原理

  1. 将要准备输入的位数据移入74HC595数据输入端上。
  2. 将位数据逐位移入74HC595,即数据串入。SH_CP产生上升沿,将DS上的数据移入74HC595移位寄存器中,先送高位,后送低位。
  3. 并行输出数据。即数据并出。ST_CP产生上升沿,将由DS上已移入数据寄存器中的数据送入到输出锁存器。

74HC595芯片时序图如下
在这里插入图片描述

三、共阳极及共阴极数码管段码

  • 将欲显示字符的字型码作成一个表(数组),根据显示字符从表中查找到相应字型码,然后把该字型码输出数码管各个段上。
  • LED数码管: “8”字型,7段(不包括小数点)或8段(包括小数点),每段对应一个发光二极管,共阳极和共阴极两种。共阳极数码管的阳极连接在一起,接+5V;共阴极数码管阴极连在一起接地。
  • 对于共阴极数码管,当某发光二极管阳极为高电平时,发光二极管点亮,相应段被显示。同样,共阳极数码管阳极连在一起,公共阳极接+5V,当某个发光二极管阴极接低电平时,该发光二极管被点亮,相应段被显示。
    在这里插入图片描述
    在这里插入图片描述

四、74HC595驱动代码

sbit SHCP=P1^6;
sbit STCP=P1^5;
sbit SER=P1^3;

定义移位寄存器时钟引脚、定义存储寄存器时钟输入引脚、定义串行数据输入引脚

unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

定义数码管段码数组tab[ ]

void write595(unsigned char word)
{
	uchar c,num;
	num=tab[word];            //定义变量num,将数组中的段码赋值给num
	for(c=0;c<8;c++)
	{
		
		if(num&0x80)
		{
			SER=1;
		}
		else
		{
			SER=0;
		}
		num=num<<1;
		SHCP=0;
		SHCP=1;
	}
	STCP=0;
	STCP=1;
}

根据74HC595芯片工作原理,将八位数码管段码通过按位与取出一位,通过循环8次左移8次依次放入移位寄存器。最后再放入存储寄存器。


总结

随后即可在数码管显示中调用write595(unsigned char word)函数,将需要显示的数字传参进去。
下一节完成 “数码管动态显示实现”


版权声明:本文为Cymmmy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。