74HC595芯片级联的测试万能代码
74HC595芯片级联的测试万能代码【neneduck】
5片595测试代码
1 coil.h文件
#ifndef __COIL_H
#define __COIL_H
#include "sys.h"
#include "delay.h"//盲文点片选信号引脚
#define MOSIO PGout(6)
#define R_CLK PGout(7)
#define S_CLK PGout(8)extern u8 SingalChoice[];
void coilSingalGpio_Init(void);
void HC595SendData(u8 data);#endif
2.coil.c文件
#include<coil.h>u8 SingalChoice[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//初始化3个信号线引脚
void coilSingalGpio_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;GPIO_Init(GPIOG,&GPIO_InitStructure);GPIO_ResetBits(GPIOG,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);
}//hc595选择 SH_CP【SCK】上升沿输入,输入一位往后移动一位
/*void HC595SendData(u8 data)
{u8 i;for(i=0; i < 8; i++){if(data & 0x80) //判断data第八位是否为1 ,&与,有0为0MOSIO=1; // 如果第八位是1,数据线高电平 1elseMOSIO=0; //否则,数据线低电平 0data = data << 1; //数据左移一位,将低位往高位移,通过if(data >> 7)判断低位是否为1S_CLK=1; //SCK时钟线高电平__NOP();__NOP(); //延时作用S_CLK=0; //SCK时钟线低电平}
//步骤3:ST_CP【RCK】产生一个上升沿,移位寄存器的数据移入存储寄存器 R_CLK=1;__NOP();__NOP();R_CLK=0;
}
*/
3.main.c文件
#include "stm32f10x.h"
#include "coil.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "usmart.h" int main(void)
{u8 i;u8 j;//初始化操作vu8 key=0;delay_init(); //延时函数初始化 LED_Init(); //初始化与LED连接的硬件接口KEY_Init(); //初始化与按键连接的硬件接口coilSingalGpio_Init();LED0=0; //先点亮红灯// HC595SendData(SingalChoice[8]); while(1){key=KEY_Scan(1); //得到键值0,1,2,3 //u8 KEY_Scan(u8 mode), mode==0不支持连续连按、 mode==1支持连续连按if(key==1){for(i=0; i < 40; i++){MOSIO=1; // 数据线高电平 1 S_CLK=1; //SCK时钟线低电平__NOP();__NOP(); //延时作用S_CLK=0; //SCK时钟线高电平/** 步骤3:ST_CP【RCK】产生一个上升沿,移位寄存器的数据移入存储寄存器 **/R_CLK=1;__NOP();__NOP();R_CLK=0;}LED0=!LED0;delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);//HC595SendData(SingalChoice[8]); }else if(key==2){for(i=0; i < 40; i++){MOSIO=1; // 数据线低电平 0S_CLK=1; //SCK时钟线低电平__NOP();__NOP(); //延时作用S_CLK=0; //SCK时钟线高电平/** 步骤3:ST_CP【RCK】产生一个上升沿,移位寄存器的数据移入存储寄存器 **/R_CLK=1;__NOP();__NOP();R_CLK=0;}LED0=!LED0;delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);//HC595SendData(SingalChoice[8]); }else {LED0=0;delay_ms(100);}}
}
74HC595芯片级联的测试万能代码相关推荐
- 【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记
使用74HC595芯片驱动LED点阵屏的使用笔记 1.控制显示LED点阵屏的思路 2.74HC595芯片的学习 2.1.74HC595芯片是什么? 2.2.74HC595芯片各引脚解释以及分析 2.3 ...
- 74HC595芯片实现原理及跑马灯数码管应用程序-----day2
74HC595芯片应用-----day2 1.CMOS移位寄存器–74HC595 可串行输出控制下一级级联芯片.![在这里插入图片描述](https://img-blog.csdnimg.cn/2fa ...
- dcdc芯片效率不高的原因_半导体厂商如何做芯片的出厂测试?
本文来源于知乎,已获作者授权,谢谢. 作者:温戈 链接: https://www.zhihu.com/question/20584576/answer/1538640891 知乎网友提问:半导体厂商如 ...
- 【单片机基础篇】74HC595芯片详解
74HC595芯片详解 芯片简述:74HC595是一个8位串行输入.并行输出的位移缓存器:并行输出为三态输出.在SCK 的上升沿,串行数据由SER输入到内部的8位位移缓存器,并由QA~QH'输出,而并 ...
- (转)大数据量分页存储过程效率测试附代码
大数据量分页存储过程效率测试附代码 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750 内存: ...
- M1芯片下Fabric测试网络环境配置
M1芯片下Fabric测试网络环境配置 系统配置 系统:Ubuntu 20.04 LTS 内核:Arm64 硬盘大小:10GB 1.技术框架环境搭建 安装Vim sudo apt install -y ...
- 8*8LED点阵图原理(74HC595芯片使用方法)
1.LED灯排线图 1.该线为共阳极点阵图,一行的阳极都是接在一条线上的 如果要亮第一排第一个灯,需要9号行位置为1(即5V),13号列为0(即0V)形成电流,该灯就亮. 2.故行为1000 000控 ...
- 如何编写可测试的代码 哈利勒的方法论
Understanding how to write testable code is one of the biggest frustrations I had when I finished sc ...
- xampp测试php代码,php用xampp测试
如果只是简单的测试的话,可以用echo或者var_dump打印信息来查看,当然如果你用的是zend或者eclipse这样的编辑器的话,可以加上zendbug来调试信息 php如何进行单元测试 何为单元 ...
- .NET Core TDD 前传: 编写易于测试的代码 -- 全局状态
第1篇: 讲述了如何创造"缝". "缝"(seam)是需要知道的概念. 第2篇, 避免在构建对象时写出不易测试的代码. 第3篇, 依赖项和迪米特法则. 本文是 ...
最新文章
- 李开复:为什么我认为“AI+”有四阶段
- okhttp连接池_OkHttp配置HTTPS访问+服务器部署
- lnmp 0.4 安装指南
- c++ datetime mysql_转:C++操作mysql方法总结(1)
- 【批处理】用netsh管理防火墙示例
- LeetCode:完全平方数【279】【DP】
- 在Mac OS X 通过抓包、“第三方下载工具”加速下载、安装APP或系统
- 智能优化算法:磷虾群算法-附代码
- SPSS处理bicomb矩阵——打开txt文件只有输出文档界面显示正在运行GET DATA,并不占用cpu,原因是编码格式不匹配
- ubuntu 下系统监视器_Ubuntu系统监控工具
- 思科路由器2811如何重设密码
- 国内50个热点行业产业链全景图
- 免费版的 IDEA 如何使用 Tomcat
- 工业企业能源管理系统
- 微信小程序中的转发功能
- 福大软工1816 · 团队现场编程实战(抽奖系统)
- DEV C++设置背景音乐
- 免安装版jdk的配置及使用(附绿色版jdk1.7及jdk1.8)
- 12.0_[Java 多态]-多态/子类父类互转/基本引用类型互转/ instanceof 运算符
- 全连接层输入为什么是固定维度的(拉直/压扁Flatten成为列向量)