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引脚定义:
74LS164逻辑表:
相关原理:
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
阅读全文
0 0
- 74LS164 for stm32 源码下载
- 串行通信 软件仿真STM32与74LS164通信
- STM32 学习五 串口通讯1 74LS164学习
- 串行通信 软件仿真STM32与74LS164通信
- 74ls164驱动数码管(共阳)
- 74LS164 和 4094 的典型应用
- 74LS164(74HC164)单片机C51驱动
- 基于 74LS164 的 LED 温度显示 设计
- STM32例程之USB HID双向数据传输(源码下载)
- IMLibrary.dll for LanMsg4 源码下载
- VLC for Android源码下载和编译
- Android Plug-in for Gradle源码下载
- 免费的VLC for Android 源码下载
- 74HC595 for STM32 源代码【worldsing笔记】
- 51单片机的4×4键盘识别与74LS164驱动数码显示
- STM32例程之FATFS文件系统(SPI方式)移植笔记(源码下载)
- STM32自定义USB设备开发详细流程讲解及全套资料源码下载(基于libusb)
- STM32下载方式
- [ Java Zero to One ] 0. 从 0 到 1 Java Tech
- Java中的this和super
- [ACM]CCF CSP [201409-5]E题 拼图
- 二.tablayout_NewsFragment
- Ubuntu16.04+Titan Xp+Tensorflow1.3+Cuda8.0+CuDNN6
- 74LS164 for stm32 源码下载
- Set
- 【Leetcode 32.Longest Valid Parentheses】动态规划
- JavaScript及jQuery中的各种宽高属性图解
- hadoop入门之hosts-hostname-ip修改
- 跳转相机相册并进行裁剪
- Android单元测试(一):JUnit框架的使用
- 【Luogu1973】仓配置
- LeetCode566:reshape matrix 解答