51單片機-驅動74HC595芯片實現IO口擴展模塊教程

本章概述思維導圖:

51單片機驅動74HC595芯片實現IO口擴展

74HC595芯片簡介

74HC595是一款8位串行輸入、并行輸出的移位寄存器,屬于硅結構的CMOS器件。它能將串行輸入數據轉換為并行輸出,其中并行輸出為三態輸出(即高電平、低電平和高阻抗)。廣泛應用于單片機系統的I/O擴展,尤其使用于驅動數碼管,LED矩陣等顯示設備。74HC595芯片實物圖如下:

74HC595核心特性:

????????三態輸出:支持高電平、低電平和高阻抗三種輸出狀態。

????????高速移位:最高移位頻率可達100MHZ(5V供電時)。? ??

????????低功耗:典型靜態電路僅4微安

????????級聯能力:通過串行輸出引腳(Q7’)可級聯多個芯片,擴展輸出端口。

????????鎖存功能:內置存儲寄存器,確保數據在移位過程種輸出穩定。

74HC595芯片的引腳定義與功能??

引腳號

符號

功能描述

1-7,15

Q0-Q7

8位并行數據輸出端,可直接控制數碼管的段選或LED矩陣的行列。

9

Q7'

串行數據輸出端,用于級聯下一級74HC595的DS引腳。

10

MR

主復位引腳(低電平有效),復位移位寄存器,通常接VCC防止誤觸發。

11

SHCP

移位時鐘輸入(上升沿觸發數據移位),控制數據向左移動一位。

12

STCP

鎖存時鐘輸入(上升沿觸發數據鎖存),將移位寄存器數據存入輸出寄存器。

13

OE

輸出使能引腳(低電平有效),高電平時輸出為高阻態,用于控制輸出狀態。

14

DS

串行數據輸入端,接收來自單片機的串行數據。

16

VCC

電源正極(通常接5V)。

8

GND

電源地。


74HC595芯片實現IO口擴展硬件電路原理圖分析

74HC595芯片實現IO口擴展硬件電路原理圖分析:

首先觀察將74HC595芯片的VCC引腳、GND引腳、OE引腳引出一個編號為J24的座子,這是為了方便驅動74HC595芯片,要是74HC595芯片工作需使跳線帽將OE引腳和GND引腳進行連接;不工作時,需使跳線帽將OE引腳與VCC引腳進行連接;原理:OE使能引腳(低電平有效);

74HC595芯片的SRCLR復位引腳與VCC進行連接;原理:SRCLR是低電平復位,為了防止誤觸,通常與VCC進行連接;

74HC595芯片的RCLK存儲寄存器時鐘引腳與MCU的P35引腳進行連接,分析P35引腳為74HC595芯片提供一個存儲寄存器的時鐘信號;

74HC595芯片SRCLK移位寄存器時鐘引腳與MCU的P36引腳進行連接,分析P36引腳為74HC595芯片提供一個移位寄存器的時鐘信號;

74HC595芯片的QA~QH為并行輸出腳,與開發板的8*8點陣LED燈DPa~DPh行引腳進行連接;

74HC595芯片的QH'為串行輸出腳,功能用于級聯下一級74HC595芯片實現控制;

MCU的P0端口(P00~P07)引腳連接8*8點陣LED燈的列引腳實現LED燈陰極控制;

(電路原理圖中的引腳定義單詞與文中引腳定義介紹處不一樣,是因為每個廠商生產的74HC595芯片定義引腳時都有自己的風格;小伙伴們不用深究啦,引腳功能都是一樣滴,只是名字不一樣啦!)

總結:通過電路原理圖我們可分析出我們只用使用MCU的3個I/O口通過74HC595芯片就可實現8個I/O口的輸出。74HC595是I/O口的擴展利器!74HC595芯片傳輸時MCU輸入方向是高位->低位,對應輸出方向是QH~QA;


74HC595芯片實現IO口擴展驅動8*8點陣LED軟件編程設計

利用74HC595芯片實現IO口擴展驅動8*8點陣LED燈循環點燈軟件編程

第一步:首先我們要函數封裝74HC595傳輸數據函數;先將MCU數據串行輸入到移位寄存器中,(傳輸數據方向為:高位->低位),在將移位寄存器中一字節數據傳輸給存儲寄存器中并行輸出;注意點:74HC595芯片傳輸數據是在上升沿時發送數據,傳送時間延時時間為納秒級別,這里我們用10us代替;

第二步:8*8點陣LED燈的陰極被MCU的P0端口控制,我們給P0端口寫入0x00;在計算8*8點陣LED燈的陽極控制點亮八行八種狀態,將八種狀態存儲到數組中方便使用;

第三步:在主函數中實現循環點亮;

代碼示例:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
void Delay_10us(u16 us)//微秒延時函數:輸入1大概延時時間為10us
{while(us--);
}
void Delay_ms(u16 ms) //毫秒延時函數:輸入1大概延時時間為1ms
{u16 i,j;for(i=ms;i>0;i--){fot(j=110;i>0;j--){}}
}
sbit SER=P3^4;        //74HC595串行輸入
sbit TRCLK=P3^5;      //74HC595存儲寄存器時鐘
sbit SRCLK=P3^6;      //74HC595移位寄存器時鐘
#define LED_DZ P0     //宏定義LED點陣陰極端口void HC595_out(u8 temp)//函數封裝:74HC595芯片IO口擴展輸出
{u8 i=0;for(i=0;i<8;i++){SER=temp>>7;   //取最高位temp<<=1;	   //左移一位SRCLK=0;       //移位時鐘為低電平Delay_10us(1); //延時10us(上升沿觸發)SRCLK=1;       //移位時鐘為高電平,一位數據發送完成Delay_10us(1);}TRCLK=0;           //存儲時鐘為低電平Delay_10us(1);     //延時:上升沿的過程TRCLK=1;           //存儲時鐘為高電平,一字節數據傳輸完成Delay_10us(1);
}
u8 LED_zl[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int main()															 
{	LED_DZ=0x00;while(1){u8 i=0;for(i=0;i>8;i++){HC595_out(LED_zl[i]);Delay_10us(50000);        //延時480msHC595_out(0x00);          //消影}}
}

74HC595芯片實現IO口擴展驅動8*8點陣LED燈循環點燈效果展示

74HC595芯片實現IO口擴展驅動8*8點陣LED燈


74HC138和74HC595區別

74HC138和74HC595是兩種功能迥異的數字邏輯芯片,以下是它們的核心區別:

功能上的區別:

74HC138:3-8線譯碼器
將3位二進制輸入(A0-A2)轉換為8路互斥的低電平有效輸出(Y0-Y7),實現“3選1”的譯碼功能。

74HC595:8位串入并出移位寄存器
將串行數據轉換為并行輸出,支持級聯擴展,用于I/O口擴展或數據緩沖。

工作原理:

74HC138:
當使能引腳(E1=0, E2=0, E3=1)有效時,根據A0-A2的3位二進制輸入,唯一選定一個輸出引腳(如A0-A2=000時,Y0為低電平,其余為高電平)。
典型應用:地址譯碼、多路選擇器、LED矩陣行驅動。

74HC595:
串行數據通過DS引腳輸入,在移位時鐘(SHCP)上升沿逐位移入8位移位寄存器,隨后通過鎖存時鐘(STCP)上升沿將數據同步到輸出寄存器,更新Q0-Q7的并行輸出。
典型應用:數碼管段選擴展、LED點陣列驅動、傳感器數據緩沖。

(個人心得:74HC138和74HC595都是三個MCU的I/O引腳控制芯片輸出8個腳,74HC138是在同一時刻選中8個引腳中其中一個引腳實現選擇,74HC595是在同一時刻輸出8個引腳信號實現控制)


制作不易!喜歡的小伙伴給個小贊贊!喜歡我的小伙伴點個關注!有不懂的地方和需要的資源隨時問我喲!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919273.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

錄音轉文字,如何做到“快、準、狠“多格式通吃?

MP3、FLAC、M4A、OGG、WAV、MP4等多種常見音頻格式&#xff0c;一鍵精準轉成文字&#xff0c;讓辦公效率翻倍提升&#xff01;&#x1f525; 真實痛點場景&#xff1a;告別低效&#xff0c;迎接智能辦公緊急會議紀要&#xff0c;爭分奪秒&#xff01;上午10點剛結束一場跨部門腦…

【秋招】2025.08.16京東秋招機考真題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍在線刷題 bishipass.com 京東 題目一:魔法水晶陣列能量優化 1??:理解逆序對的變化規律,分析區間操作對逆序對的影響 2??:選擇后綴區間避免產生新的逆序對,只最大化消除的逆序對…

RocksDB 解密可逆哈希:BijectiveHash的設計奧秘

BijectiveHash&#xff08;雙射哈希&#xff0c;即可逆哈希&#xff09;的設計精髓在于它借鑒了現代密碼學和高性能哈希函數中的核心思想&#xff0c;但目標并非加密&#xff0c;而是實現一種無沖突、可逆的置換&#xff08;Permutation&#xff09;。可逆哈希是什么&#xff0…

05.用戶和組管理命令

用戶和組管理命令用戶和組管理命令1. getent2. useradd3. usermod4. userdel5. id6. su7. passwd8. chage9. groupadd10. groupmod11. groupdel12. gpasswd13. groupmems用戶和組管理命令 用戶和組的主要配置文件 /etc/passwd&#xff1a;用戶及其屬性信息(名稱、UID、主組ID…

go 多版本共存【goup + alias方案】

一、需求背景 以go1.21為主&#xff0c;臨時可以快速切換到go1.23,且只有當前窗口生效 二、安裝 安裝 goup go install github.com/owenthereal/goup/cmd/gouplatest安裝 go1.23 # 注意這里是安裝新的sdk,如果你本地存在相同版本的話&#xff0c;應該保持統一用goup安裝的 goup…

DR200差速移動機器人的多功能感知系統與多場景應用

DR200差速移動機器人平臺是一款基于室內平地的差速轉向移動機器人底盤&#xff0c;主要針對教育教學、超市移動促銷、無人配送、室內倉儲、室內巡檢、物流搬運等行業。整套底盤采用了4個萬向輪和雙驅動輪差速驅動結構&#xff0c;間驅動輪帶直流無刷伺服電機。整套結構采用了擺…

基于ZLMediaKit的大疆上云視頻流服務集成方案

引言 隨著無人機技術的快速發展&#xff0c;大疆&#xff08;DJI&#xff09;設備產生的高清視頻流需要高效、低延遲的云端處理方案。傳統基于SRS的視頻流服務在多協議支持和并發性能上存在局限&#xff0c;而ZLMediaKit作為一款高性能流媒體服務框架&#xff0c;憑借其多協議支…

用 Python 實現一個“小型 ReAct 智能體”:思維鏈 + 工具調用 + 環境交互

在大語言模型&#xff08;LLM&#xff09;的應用開發中&#xff0c;如何讓模型具備調用外部工具的能力是一個關鍵問題。我們不希望模型只是“生成答案”&#xff0c;而是能像一個智能體&#xff08;Agent&#xff09;一樣&#xff0c;按照推理鏈條自主決定調用搜索、計算、或數…

集成電路學習:什么是SIFT尺度不變特征變換

SIFT:尺度不變特征變換 SIFT(尺度不變特征變換,Scale Invariant Feature Transform)是一種在圖像處理和計算機視覺領域廣泛應用的算法,由David Lowe在1999年提出。該算法能夠在圖像的不同尺度、旋轉和光照條件下保持特征不變性,從而提取出獨特的特征點,并用于圖像…

短視頻流量|基于Java+vue的短視頻流量數據分析系統(源碼+數據庫+文檔)

短視頻流量數據分析系統 基于SprinBootvue的短視頻流量數據分析系統 一、前言 二、系統設計 三、系統功能設計 系統功能模塊 管理員功能模塊實現 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲取&#xff1a; 博主介紹&#xff…

【無標題】卷軸屏手機前瞻:三星/京東方柔性屏耐久性測試進展

卷軸屏手機前瞻&#xff1a;三星/京東方柔性屏耐久性測試進展卷軸屏手機的產業化突破臨近2025年全球柔性屏市場規模預計突破186億美元&#xff0c;其中卷軸屏技術正從概念走向量產。三星顯示近期宣布新一代柔性OLED面板通過50萬次折疊認證&#xff0c;日均折疊200次可使用6年以…

Git 入門指南:核心概念與常用命令全解析

Git 入門指南&#xff1a;核心概念與常用命令全解析前言一、Git相關概念1.1 工作目錄1.2 暫存區1.3 本地倉庫1.3 遠程倉庫1.3.1 首次提交到遠程倉庫提示輸入用戶名密碼1.3.2 解決方法二、Git常用命令2.1 配置命令2.1.1 查看當前 Git 配置的所有信息2.1.2 查看系統全局配置2.1.3…

懸賞任務網站源碼多平臺兼職賺錢搭建圖解

功能詳細說明 &#xff08;一&#xff09;登錄與注冊 1、登錄&#xff1a;打開系統用戶端&#xff0c;輸入已注冊的手機號和密碼進行登錄。 若為忘記密碼&#xff0c;可通過 “找回密碼” 功能&#xff0c;按提示驗證身份后重置密碼登錄。 2、注冊&#xff1a;點擊 “注冊” 按…

Node.js簡介及安裝

一、Nodejs簡介 1、核心定義 Node.js 是一個基于 Chrome V8 引擎的開源、跨平臺 JavaScript 運行時環境&#xff08;Runtime&#xff09;&#xff0c;用于在服務器端或本地運行 JavaScript 代碼。它并非編程語言、庫或框架&#xff0c;而是擴展了 JavaScript 的能力&#xff0…

KINGBASE集群日常維護管理命令總結

查看集群的狀態 [kingbasenode1 bin]$ repmgr cluster show查看守護集群狀態 [kingbasenode1 bin]$ repmgr service status查看集群的事件 [kingbasenode1 etc]$ repmgr cluster event查看集群流復制狀態 esrep#select usename,application_name,client_addr,sync_state,state,…

GoLand 調參高手都在用的配置!續集:WebStorm 飛升后,Go 開發 IDE 性能炸裂的秘密

“為什么別人的 GoLand 運行 Go 項目絲滑流暢&#xff0c;而你的卻頻繁卡頓、編譯轉圈&#xff1f;秘密就藏在這個 goland64.exe.vmoptions文件里&#xff01;作為 IDEA/PyCharm/WebStorm 調優系列的續集&#xff0c;我把我壓箱底的 ?GoLand 性能調優參數表? 分享出來—>&…

48Days-Day19 | ISBN號,kotori和迷宮,矩陣最長遞增路徑

ISBN號 ISBN號碼_牛客題霸_牛客網 算法原理 模擬&#xff0c;根據題意模擬就可以了&#xff0c;注意一下余數為10的時候要特別判斷一下是不是X就行了 代碼 import java.util.Scanner;// 注意類名必須為 Main, 不要有任何 package xxx 信息 public class Main {public stat…

Java 泛型類型擦除

&#x1f4d6; 概述 本文檔詳細解釋了 Flink 中 TypeInformation 的作用、原理和使用方法&#xff0c;幫助理解為什么 Flink 需要顯式的類型信息。 &#x1f3af; 核心問題&#xff1a;Java 泛型類型擦除 什么是類型擦除&#xff1f; Java 在編譯時會將泛型信息擦除&#xff0c…

從“寫代碼”到“定義需求”:AI編程工具如何重構軟件開發的核心流程?

從“寫代碼”到“定義需求”&#xff1a;AI編程工具如何重構軟件開發的核心流程&#xff1f; 軟件開發的核心流程正在經歷一場靜默革命。十年前&#xff0c;開發者的日常被“寫代碼”填滿——從變量定義到邏輯實現&#xff0c;每行代碼都需要手動敲擊&#xff1b;而今天&#x…

一顆TTS語音芯片給產品增加智能語音播報能力

?一顆TTS語音芯片給產品增加智能語音播報能力傳統語音播報芯片可以設置一些固定的語音片段或者內容&#xff0c;但是對于現在各種創新產品層出不窮的時代&#xff0c;傳統的語音播報芯片能力似乎有點不夠用了。而TTS語音合成芯片&#xff0c;正在逐漸登上舞臺中央。TTS語音合成…