四位数码管引脚图 四位共阴数码管引脚图及功能

2025-01-0904:53:50常识分享0

四位数码管模块(74HC595)使用详解

1脚DS(SER),串行数据输入引脚

13脚OE,输出使能控制脚,低电平有效,需接GND

12脚RCK,寄存器时钟输入引脚。上升沿时,数据从移位寄存器转存到存储寄存器。

11脚SCK,移位寄存器时钟引脚,上升沿时,移位寄存器中的bit数据整体后移,并接受新的bit(从SER输入)。

10脚MR,低电平时清空移位寄存器中已有bit数据,一般不用,接高电平即可。

9脚串行数据出口引脚。移位寄存器数据多于8bit时,已有bit会从这里“挤出”去,用于595的级联。

Qx:并行输出引脚

注意事项:

当芯片资料上面的引脚有横线时,表示该引脚为低电平工作。否则为高电平工作。

共阳数码管如果要点亮,对应的引脚需要给1。

共阴数码管如果要点亮,对应的引脚需要给0。

include "reg51.h"

unsigned char code LED_0F[] = {...}; //共阳数码管码表

unsigned char code smgduan[] = {...}; //显0~F的值

//函数原形定义

define uchar unsigned char define uint unsigned int

void main(void) //主函数

{...

while(1)

{...

}...

} //主程序结束

// LED数码管显示函数

void LED4_Display(void)

{...

//显示第一位数码管数据...

//设置RCLK和SCLK信号...

//显示第二位数码管数据...

/……后续显示逻辑……/

} //LED显示函数结束

以下是关于LED数码管单字节串行移位功能的描述。

我们定义了led_table变量,其值为LED_0F加上LED数组的第三个元素。接着,我们通过i变量来引用这个表。

通过调用LED_OUT(i)函数,我们可以将对应的LED状态输出到数码管。

我们直接调用LED_OUT(0x08)函数来在数码管的第四位显示数字8。

然后,我们将RCLK的值设置为0,再设置为1来完成一个操作循环。

// 这是LED数码管单字节串行移位函数的实现

void LED_OUT(unsigned char number) {

unsigned char i;

for (i = 8; i >= 1; i--) {

if(number & 0x80) {

DIO= 1;

} else {

DIO= 0;

}

number<<= 1; // 将number左移一位以处理下一位

SCLK= 0;

} // for循环结束

} // LED_OUT函数结束