74LS164 for stm32 源码下载

来源:互联网 发布:vmware11 mac os补丁 编辑:程序博客网 时间:2024/06/05 12:49

74LS164 for stm32 源码下载http://www.cnblogs.com/worldsing/p/3315804.html

在单片机系统中, 如果并行口的IO资源不够,而串行口又没有其他的作用, 那么我们可以用74LS164来扩展并行IO口,节约单片机资源。

      74LS164是一个串行输入并行输出的移位寄存器。并带有清除端。 
      其中: Q0—Q7 并行输出端 。 A,B串行输入端。 MR 清除端, 为0时,输出清零。 CP 时钟输入端。

74LS164引脚定义: 
image

74LS164逻辑表:

image

相关原理:

image

 

74LS164.c

---------------------------------------------------------------------------------------------------------------------------------------------

 

#include "stm32f10x.h"#include "stm32f10x_rcc.h"#include "stm32f10x_gpio.h"#include "74LS164.h"/* 延时模块82615468 sp-320-12 * */static void delay(u32 t){u32 i;while(t--)for (i = 0; i < 1; i++);}void Ls164Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(LS164_CLK_GPIO_CLK | LS164_DATA_GPIO_CLK, ENABLE);GPIO_InitStructure.GPIO_Pin = LS164_CLK_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(LS164_CLK_GPIO, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = LS164_DATA_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(LS164_DATA_GPIO, &GPIO_InitStructure);LS164_CLK_H();LS164_DATA_H();}void Ls164Send(u8 data){u8 k;for(k = 8; k > 0; k--){LS164_CLK_L();delay(1);if(data & 0x01)LS164_DATA_H();elseLS164_DATA_L();LS164_CLK_H();        delay(1);data >>= 1;}}/*                          _____________________________________________________________  164SendTime1 Line0  0bit |                                                             |               Line1  1bit |                                                             |               Line2  2bit |                                                             |               Line3  3bit |                                                             |               Line4  4bit |                                                             |               Line5  5bit |                                                             |               Line6  6bit |                                                             |               Line7  7bit |                                                             |  164SendTime0 Line8  0bit |                                                             |               Line9  1bit |                                                             |               Line10 2bit |                                                             |               Line11 3bit |                                                             |               Line12 4bit |                                                             |               Line13 5bit |                                                             |               Line14 6bit |                                                             |               Line15 7bit |_____________________________________________________________|                           */void LedLineOut(u8 LineN){u16 LineData;LineN %= 16;                   //行取值范围LineData = ~(0x0001 << LineN); //取反低电平有效Ls164Send(LineData & 0xff);    //第1片164(Line0~7)Ls164Send(LineData >> 8);      //第0片164(Line8~15)}//end of file

74LS164.h

--------------------------------------------------------------------------------------------------------------------------------------------------------------- 

 

#ifndef __74LS164_H__#define __74LS164_H__#define LS164_CLK_PIN          GPIO_Pin_4#define  LS164_CLK_GPIO           GPIOA#define  LS164_CLK_GPIO_CLK       RCC_APB2Periph_GPIOA#define  LS164_CLK_H()            GPIOA->BSRR = LS164_CLK_PIN#define  LS164_CLK_L()        GPIOA->BRR = LS164_CLK_PIN#define LS164_DATA_PIN          GPIO_Pin_5#define  LS164_DATA_GPIO          GPIOA#define  LS164_DATA_GPIO_CLK      RCC_APB2Periph_GPIOA#define  LS164_DATA_H()           GPIOA->BSRR = LS164_DATA_PIN#define  LS164_DATA_L()        GPIOA->BRR = LS164_DATA_PINvoid Ls164Send(u8 data);void Ls164Init(void);void LedLineOut(u8 LineN);#endif

 

 

74LS164 for stm32 源码下载

作者:Worldsing

出处:http://worldsing.cnblogs.com