74LS164 for stm32 源码下载
在单片机系统中, 如果并行口的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();
else
LS164_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_PIN void Ls164Send(u8 data);
void Ls164Init(void);
void LedLineOut(u8 LineN);
#endif
74LS164 for stm32 源码下载
74LS164 for stm32 源码下载的更多相关文章
- STM32例程之USB HID双向数据传输(源码下载)【转】
程序功能 将STM32的USB枚举为HID设备. STM32使用3个端点,端点0用于枚举用,端点1和2用于数据的发送和接收. 端点长度为64,也就是单次最多可以传输64个字节数据. STM32获取上位 ...
- C# ini文件操作【源码下载】
介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- C# 条形码操作【源码下载】
本篇介绍通过C#生成和读取一维码.二维码的操作. 目录 1. 介绍:介绍条形码.条形码的分类以及ZXing.Net类库. 2. 一维码操作:包含对一维码的生成.读取操作. 3. 二维码操作:包含对二维 ...
- DataGridView绑定源码下载
效果图: 源码下载:http://hovertree.com/h/bjaf/bbot18bj.htm 上面源码不包含数据库的查询,需要获取数据库数据的话,请看这个的源码: http://hovertr ...
- Web 开发中很实用的10个效果【附源码下载】
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- Android 源码下载方法(Git 方式clone)
Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...
- yate: windows下源码下载,配置,编译
源码下载:使用svn下载checkout:http://voip.null.ro/svn/yate/trunk 配置:(本人使用的是vs2008,故下载的qt工具都是对应2008) 1. 下载并安装q ...
- Android斗地主棋牌游戏牌桌实现源码下载
本次给大家分享下Android斗地主棋牌游戏牌桌实现源码下载如下: 为了节约内存资源,每张扑克牌都是剪切形成的,当然这也是当前编程的主流方法. 1.主Activity package com.biso ...
随机推荐
- UIActinSheet和UIActionSheetDelegate
UIActinSheet和UIActionSheetDelegate 这个是就那个UIActionSheet对象 一般用来选择类型或者改变界面...还有更多应用 定义如下:UIActionSheet ...
- PHP基础语法3
文件系统 判断文件是否存在 如果只是判断文件存在,使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出, is_file是确切的 ...
- 轻量级Java_EE企业应用实战-第5章Hibernate的基本用法-001
1. package org.crazyit.app.domain; import javax.persistence.*; /** * Description: <br/> * ��վ: ...
- phpStorm 安装配置
首先配置php解释器,进行相关设置: 配置nodejs支持 安装plugins nodejs. 问:如何修改模板的默认注释? 答:创建一个php文件,默认有: <?php/** * Create ...
- python 中@property的使用
从14年下半年开始接触到python,自学了一段时间,后又跟别人学习了下,把基础知识基本上学过了.忽然感觉python不可能这么简单吧,就这么点东西?后来看了下书,发现还有很多的高级部分.连续看了两天 ...
- poj1286Necklace of Beads(ploya定理)
链接 这个东东是新知识 let's 从头学起吧 这篇文库讲的不错 至少把各种概念学了一遍 然后再看此题 共有两种类型的置换 一种是旋转之后相同算一种 一种是翻转之后相同算一种 对于旋转 共有N次置换 ...
- jQgrid问题总结
最近一段时间一直在使用jqgrid这个免费的插件,网上的资料也比较多.比较全,但是这里还是整理几个自己在开发过程中遇到的小问题. 1.自动换行 一行数据过多需要自动根据内容换行时,如果遇到在表格中的汉 ...
- poj 2993 Emag eht htiw Em Pleh(模拟)
题目:http://poj.org/problem?id=2993 题意:和2996反着 #include <iostream> #include<cstdio> #inclu ...
- 弹出框页面中使用jquery.validate验证控件
弹出框页面中使用jquery.validate验证控件有几个问题需要解决: 1,弹出框的提交事件完成后如何关闭弹出框页面? 2,提交不成功如何返回当前页? 3,如果知道验证事件成功? 之前笔者都是JS ...
- 巧用CSS文件愚人节恶搞(转)
明天就是4月1日愚人节了,也就是那个可适度开玩笑.整蛊的日子了.如果你想和那些要上网的朋友或同事开个极客式玩笑,那就来试试这个国外网友Wes Bos分享的 CSS 文件吧. 一.打开浏览器的 Cust ...