74HC595驱动数码管显示模块使用说明 您所在的位置:网站首页 串口控制数码管显示数字 74HC595驱动数码管显示模块使用说明

74HC595驱动数码管显示模块使用说明

2023-12-27 01:57| 来源: 网络整理| 查看: 265

基于74HC595串行动态数码管显示在这里插入图片描述

一、74HC595简介

74HC595是一个8位串行输入、平行输出的位移缓存器:平行输出为三态输出。在SCK的上升沿,单行数据由SDL输人到内部的8位位移缓存器,并由Q7‘输出,而平行输出则是在LCK的上升沿将在8位位移缓存器的数据存人到8位平行输出缓存器。当串行数据输人端OE的控制信号为低使能时,平行输出端的输出值等于平行输出缓存器所存储的值。而当OE为高电位,也就是输出关闭时,平行输出端会维持在高阻抗状态。   串行输入,并行输出。   在这里插入图片描述

符号引脚描述Q0~Q7第15脚,第1~7脚8位并行数据输出GND第8脚地Q7’第9脚串行数据输出,级联输出端,接下一个595的DS端 MR ‾ \overline{\text{MR}} MR第10脚低电平有效,清空移位寄存器中已有的数据,一般不用,接高电平即可SH_CP或SCK第11脚移位寄存器时钟引脚,上升沿时,移位寄存器中的数据整体后移,并接受新的数据(从DS输入)。ST_CP 或RCK第12脚存储寄存器时钟输入引脚。上升沿时,数据从移位寄存器转存带存储寄存器。 OE ‾ \overline{\text{OE}} OE第13脚低电平有效,输出使能控制脚,所以接GNDDS第14脚串行数据输入引脚VCC第16脚电源 二. 输入

串行输入 SH_CP上升沿输入,输入一位往后移动一位

void LED_OUT(u8 outdata) { u8 i; for(i=0;i GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //使能GPIOG的时钟 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;//输出 GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; //推挽输出 GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_DOWN; //下拉输出 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz; //高速GPIO GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_ResetBits(GPIOB,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6); } u8 LED_table[18]={ //01234567 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, //89ABCDEF 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E, //熄灭- 0xFF,0xBF}; //共阳数码管段码“0123456789AbCdEF熄灭-” u8 wei_table[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //第一位至第八位位码 /****************************************************************/ //数码动态显示函数LED8_Display(),有形参x和y,无返回值 //x表示位选择,y表示欲显示的数码 /****************************************************************/ void LED8_Display(u8 x,u8 y) { LED_OUT(LED_table[y]);//送出段码 LED_OUT(wei_table[x]);//送出位码 RCLK=0; RCLK=1;//RCLK产生上升沿 delay_ms(1); } /****************************************************************/ //单字节数据串行移位函数LED_OUT(),有形参outdata用于传入实际数据 //无返回值 /****************************************************************/ void LED_OUT(u8 outdata) { u8 i; for(i=0;i NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 uart4 2/3 usart1 3/3 Usart2 2/0 uart5 2/1 delay_init(168); //初始化延时函数 uart_init(115200);//初始化串口波特率为115200 HC595_Init(); while(1) { LED8_Display(0,8); LED8_Display(1,7); LED8_Display(2,6); LED8_Display(3,5); while(1) { // delay_ms(100); } } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有