74HC595驱动8段数码管的程序

来源:本站
导读:目前正在解读《74HC595驱动8段数码管的程序》的相关信息,《74HC595驱动8段数码管的程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《74HC595驱动8段数码管的程序》的详细说明。
简介://使用STM32F103作为MCU,74HC595驱动8段数码管的程序

//使用STM32F103作为MCU,74HC595驱动8段数码管的程序

#define HC595_OE_H() GPIO_SetBits(GPIOB, GPIO_Pin_12)

#define HC595_OE_L() GPIO_ResetBits(GPIOB, GPIO_Pin_12)

#define HC595_RCK_H() GPIO_SetBits(GPIOB, GPIO_Pin_13)

#define HC595_RCK_L() GPIO_ResetBits(GPIOB, GPIO_Pin_13)

#define HC595_SCK_H() GPIO_SetBits(GPIOB, GPIO_Pin_14)

#define HC595_SCK_L() GPIO_ResetBits(GPIOB, GPIO_Pin_14)

#define HC595_DAT_H() GPIO_SetBits(GPIOB, GPIO_Pin_15)

#define HC595_DAT_L() GPIO_ResetBits(GPIOB, GPIO_Pin_15)

void HC595_init(void)

{

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_SetBits(GPIOB, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15);

HC595_start();

}

void HC595_start(void)

{

HC595_OE_L();

}

void HC595_stop(void)

{

HC595_OE_H();

}

void HC595_shift_byte(uint8_t byte)

{

uint8_t i = 0;

for (i = 0; i < 8; i++) {

if (byte & 0x80)

HC595_DAT_L();

else

HC595_DAT_H();

HC595_SCK_L();

HC595_SCK_H();

byte = byte << 1;

}

HC595_RCK_L();

HC595_RCK_H();

}

//每执行HC595_shift_byte一次,串联起来的8段数码管就会将自己的显示往左边推移一位;

//HC595_shift_byte的入口参数byte的二进制,刚好对应8段数码管的段位;

//是不是很森破呢~

提醒:《74HC595驱动8段数码管的程序》最后刷新时间 2024-03-14 01:11:30,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《74HC595驱动8段数码管的程序》该内容的真实性请自行鉴别。