文章目录
- 前言
- 一、74HC595芯片管脚定义功能
- 二、74HC595芯片工作原理
- 三、共阳极及共阴极数码管段码
- 四、74HC595驱动代码
- 总结
前言
74HC595芯片是在单片机系统中常用的芯片之一,他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片,使用74HC595可以节约单片机的I/O口资源,用3个I/O就可以控制4个数码管显示,它还具有一定的驱动能力,可以免掉三极管等放大电路,所以这块芯片应用非常广泛。
一、74HC595芯片管脚定义功能
74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7’输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。
二、74HC595芯片工作原理
- 将要准备输入的位数据移入74HC595数据输入端上。
- 将位数据逐位移入74HC595,即数据串入。SH_CP产生上升沿,将DS上的数据移入74HC595移位寄存器中,先送高位,后送低位。
- 并行输出数据。即数据并出。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,将数组中的段码赋值给numfor(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)函数,将需要显示的数字传参进去。
下一节完成 “数码管动态显示实现”