娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年11月09日(星期六)

正在發生

2019年11月09日 | STM32 74HC595驅動程序

發布者:Chunjie2022 來源: eefocus關鍵字:STM32  74HC595  驅動程序 手機看文章 掃描二維碼
隨時隨地手機看文章

以下為.h文件:

#ifndef __74HC595_H__

#define __74HC595_H__

#include "stm32f10x.h"  

 

 

 

 

 

#define SHCP_GPIO_PORT      GPIOA              

#define SHCP_GPIO_CLK    RCC_APB2Periph_GPIOA

#define SHCP_GPIO_PIN    GPIO_Pin_1       

 

#define STCP_GPIO_PORT      GPIOA              

#define STCP_GPIO_CLK    RCC_APB2Periph_GPIOA

#define STCP_GPIO_PIN    GPIO_Pin_0        

 

#define DS_GPIO_PORT        GPIOB              

#define DS_GPIO_CLK    RCC_APB2Periph_GPIOB

#define DS_GPIO_PIN    GPIO_Pin_1

 

#define HC595_SHCP_Low()      GPIO_ResetBits( SHCP_GPIO_PORT, SHCP_GPIO_PIN )

#define HC595_SHCP_High()     GPIO_SetBits( SHCP_GPIO_PORT, SHCP_GPIO_PIN )

#define HC595_STCP_Low()      GPIO_ResetBits( STCP_GPIO_PORT, STCP_GPIO_PIN )

#define HC595_STCP_High()     GPIO_SetBits( STCP_GPIO_PORT, STCP_GPIO_PIN )

#define HC595_Data_Low()      GPIO_ResetBits( DS_GPIO_PORT, DS_GPIO_PIN )

#define HC595_Data_High()     GPIO_SetBits( DS_GPIO_PORT, DS_GPIO_PIN )

 

 

void HC595_GPIO_Config(void);

void HC595_Send_Byte(u8 byte);

void HC595_CS(void);

void HC595_Send_Multi_Byte(u8 *data, u16 len);

 

 

#endif

以下為.c文件:


#include "stm32f10x.h"

#include "stm32f10x_rcc.h"

#include "stm32f10x_gpio.h"

 

#include "74HC595.h"

void delay(uint16_t t);

 

 

/********  74HC595 GPIO 配置 *************************/

void HC595_GPIO_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd( SHCP_GPIO_CLK | STCP_GPIO_CLK | DS_GPIO_CLK, ENABLE);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Pin = SHCP_GPIO_PIN;

GPIO_Init(SHCP_GPIO_PORT, &GPIO_InitStructure);   // 初始化 SHCP 引腳

GPIO_InitStructure.GPIO_Pin = STCP_GPIO_PIN;

GPIO_Init(STCP_GPIO_PORT, &GPIO_InitStructure);   // 初始化 STCP 引腳

GPIO_InitStructure.GPIO_Pin = DS_GPIO_PIN;

GPIO_Init(DS_GPIO_PORT, &GPIO_InitStructure);     // 初始化 DS   引腳

 

GPIO_ResetBits(SHCP_GPIO_PORT, SHCP_GPIO_PIN);      // 引腳初始狀態為高,便于產生上升沿

GPIO_ResetBits(STCP_GPIO_PORT, STCP_GPIO_PIN);  

GPIO_ResetBits(DS_GPIO_PORT, DS_GPIO_PIN);

}

 

 

/***

 *74HC595 發送一個字節 

 *即往74HC595的DS引腳發送一個字節

*/

void HC595_Send_Byte(u8 byte)

{

u8 i;

for (i = 0; i < 8; i ++)  //一個字節8位,傳輸8次,一次一位,循環8次,剛好移完8位

{

 /****  步驟1:將數據傳到DS引腳    ****/

if (byte & 0x80)        //先傳輸高位,通過與運算判斷第八是否為1

HC595_Data_High();    //如果第八位是1,則與 595 DS連接的引腳輸出高電平

else                    //否則輸出低電平

HC595_Data_Low();

/*** 步驟2:SHCP每產生一個上升沿,當前的bit就被送入移位寄存器 ***/

HC595_SHCP_Low();   // SHCP拉低

delay(1);           // 適當延時

HC595_SHCP_High();  // SHCP拉高, SHCP產生上升沿

delay(1);

byte <<= 1; // 左移一位,將低位往高位移,通過 if (byte & 0x80)判斷低位是否為1

}

}

 

/**

 *74HC595輸出鎖存 使能 

**/

void HC595_CS(void) 

{

/**  步驟3:STCP產生一個上升沿,移位寄存器的數據移入存儲寄存器  **/

HC595_STCP_Low();   // 將STCP拉低

delay(1);           // 適當延時

HC595_STCP_High();  // 再將STCP拉高,STCP即可產生一個上升沿

delay(1);

}

 

/**

 *發送多個字節

 *便于級聯時數據的發送

 *級聯N級,就需要發送N個字節控制HC595

***/

void HC595_Send_Multi_Byte(u8 *data, u16 len)

{

u8 i;

for (i = 0; i < len; i ++ ) // len 個字節

{

HC595_Send_Byte(data[i]);

}

HC595_CS(); //先把所有字節發送完,再使能輸出

}

 

void delay(uint16_t t)

{

for (; t != 0; t --);

 

}

關于HC595_Send_Multi_Byte函數的使用要根據實際的硬件情況來,以下為一個例子,可以參考一下:

程序中的相關數據:


 

u8 Led_Buf[2] = {0xff, 0xff}; //存儲要發送的指令字節,也就是燈的狀態 Led_Buf[0]控制燈6-10;Led_Buf[1]控制燈1-5

u8 Led_All_Off[2] = {0xff, 0xff}; //LED燈全滅

u8 Led_All_On[2] = {0x00, 0x00}; //LED燈全亮

 

 

HC595_Send_Multi_Byte(Led_All_On,2);//10路燈全開

HC595_Send_Multi_Byte(Led_All_Off,2);//10路燈全關

實現流水燈效果:


/******************************************************    

 *流水燈程序

*******************************************************/

void LED_ShowOneToOne(void)

{

u8 pos; // led位置

u8 Led_Show[2] = {0xff, 0xff}; //存儲要發送的指令字節, Led_Show[0]控制燈6-10; Led_Show[1]控制燈1-5

//第X個led亮 :1     2    3      4    5    

u8 Waterfall_Led[20] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef,  //控制第一級74HC595

0xff, 0xff, 0xff, 0xff, 0xff,  

//第X個led亮 :6     7    8      9    10  

0xff, 0xff, 0xff, 0xff, 0xff,  //控制第二級74HC595

0xfe, 0xfd, 0xfb, 0xf7, 0xef };

for (pos = 0; pos < 10; pos ++) //第pos個燈,實現流水燈效果

{

Led_Show[1] = Waterfall_Led[pos]; //存放第一級74HC595數據,因為先進先出,所以第一級放在Led_Pos_Buf[1],而不是Led_Pos_Buf[0]

Led_Show[0] = Waterfall_Led[pos+10]; //存放第二級74HC595的數據

HC595_Send_Multi_Byte(Led_Show,2); //將當前數據發送到595  

delay_ms(500);

}

}


關鍵字:STM32  74HC595  驅動程序 引用地址:STM32 74HC595驅動程序

上一篇:STM32 TM1640芯片驅動程序
下一篇:STM32 MFRC522 IC讀卡 程序及原理圖

推薦閱讀

7日獲悉,物種起源已于2018年5月完成數百萬天使輪融資,資金由個人投資者提供,投資人為基金LP。此輪融資資金主要用途在于產品研發、供應鏈管理以及產品量產等三個方面。 關于此輪融資,物種起源創始人林源表示,投資方主要是看好創始人個人經歷以及項目前景。創始人林源,畢業于哈爾濱工業大學機械工程專業,此前在創新工作,參與設計了3軸G云臺、手持...
實時日歷時鐘(RTC)單元作為S3C2440A 內部一個獨立的功能單元,能夠像鐘表和日歷一樣保存并自動計算時間。它還具有定時報警和產生節拍的功能。RTC 單元僅需要通過外接一個32. 768 kHz 的晶振來提供時鐘源。RTC 可以通過備用電池供電,因此,即使系統電源關閉,也可以繼續工作。RTC 的寄存器保存了一些表示時間的8 位BCD 碼數據,包括:秒、分、時...
就在我們習慣將液晶大屏標記為智能駕駛艙的關鍵元素時,潮流又領先了我們一步——或許“無屏幕”的形式才是未來智能座艙該有的樣子。當然了,為了滿足我們海量的信息獲取需求,“無屏幕”并不是真正的沒有屏幕,而是把屏幕變透明,讓你感覺不到它的存在。汽車玻璃目前看來是最佳的載體,因為像HUD,AR+HUD,智能車窗等顯示技術都可以圍繞著車窗玻璃打做文...
一、使用proteus繪制簡單的電路圖,用于后續仿真二、編寫程序/********************************************************************************************************************---- @Project: LED-74HC595---- @File: main.c---- @Edit: ZHQ---- @Version: V1.0---- @CreationTime: 20200701---- @ModifiedTime: 20200701---- @Description: 數...

史海拾趣

問答坊 | AI 解惑

變頻調速技術在三次采油中的應用

一、前言 在原油開采過程中,初次采油一般依靠地底壓力讓原油自噴而出;此后由于地下壓力減小,不得不往地下注水將油驅出,稱二次采油。當前,中國多數油田處于二次采油晚期,每百噸采出液體中,含水量高達95%,綜合原油采收率只有30%多一些,6 ...…

查看全部問答∨

數字萬用表圖紙

數字萬用表圖紙…

查看全部問答∨

求一個單片機畢業設計???

題目:智能化學生公寓防盜系統的設計 我的郵箱:baijin0002@163.com 謝謝啦 那位有?。?!…

查看全部問答∨

verilog 模塊的引用(例化)

定義模塊 CODE: module  Design(端口1,端口2,端口3……); 1)引用時,嚴格按照模塊定義的端口順序來連接,不用標明原模塊定義時規定的端口名。 CODE: Design u_1(u_1的端口1,u_1的端口2,u_1的端口3,u_1的端口……);//和Desi ...…

查看全部問答∨

從零開始學電氣控制與PLC技術

本書是為使讀者從零起步,快速掌握以PLC(可編程邏輯控制器)為核心的電氣控制電路的設計與應用技術而編寫的。. 本書首先重點介紹了常用低壓電器、電動機基本控制電路,并對一些實用電氣控制電路進行了簡要分析。然后以歐姆龍CPM1A系列的PLC為例, ...…

查看全部問答∨

fopen失敗

程序跑了半年都沒有問題,所有文件位置都沒有挪動過,前幾天突然fopen出現問題。。。各位大哥幫分析一哈。先謝謝。 FILE*                fileHandle; char*         &nb ...…

查看全部問答∨

承接各種通信軟件、模塊的設計

承接 1、各種通信軟件、模塊的設計現,Linux/Vxworks底層驅動設計實現。 3、行業軟件[銀行/電信/電力/其他]及模塊開發。 2、網站設計推廣。 本團隊擁有多名資深通信行業軟件工程師、硬件工程師,擁有豐富的項目開發管理經驗,大部分擁有5年以上 ...…

查看全部問答∨

LED為什么這么“熱”呢?

LED為什么這么“熱”呢?…

查看全部問答∨

有人在STM8移植uCos嗎?

                                 有人在STM8移植uCos嗎?…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 兴安盟| 沾益县| 岳普湖县| 潜江市| 怀柔区| 峨边| 噶尔县| 尼木县| 丹巴县| 青海省| 德江县| 麻江县| 沈丘县| 伊春市| 缙云县| 内丘县| 涿鹿县| 三台县| 汶上县| 乌鲁木齐县| 南投市| 黔江区| 奉贤区| 山丹县| 黎川县| 嘉义县| 和顺县| 隆回县| 舟曲县| 历史| 柘荣县| 曲麻莱县| 饶河县| 南岸区| 昂仁县| 本溪市| 平昌县| 侯马市| 津南区| 林口县| 徐州市|