a片在线观看免费看视频_欧美婬片在线a_同性男男无遮挡无码视频_久久99狠狠色精品一区_《性妲己》电影在线观看_久久久99婷婷久久久久久_亚洲精品久久久久58_激情在线成人福利小电影_色婷婷久久综合五月激情网

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 技術方案 >工業控制 > 基于AT89C2051單片機+74LS164的LED數碼管顯示電路設計方案

基于AT89C2051單片機+74LS164的LED數碼管顯示電路設計方案

來源: elecfans
2021-11-18
類別:工業控制
eye 86
文章創建人 拍明

原標題:基于AT89C2051串口的LED數碼管顯示電路設計方案

基于AT89C2051單片機與74LS164的LED數碼管顯示電路設計方案

在當今的電子技術領域,LED數碼管因其高亮度、低功耗、長壽命和易于驅動等優點,被廣泛應用于各種數字顯示場合,如儀器儀表、家用電器、工業控制等。本設計方案將深入探討如何利用經典的AT89C2051單片機與74LS164串入并出移位寄存器相結合,實現穩定、高效的LED數碼管動態顯示控制。AT89C2051是一款經濟高效、功能強大的8位微控制器,其內置的Flash存儲器使其程序開發和修改變得異常便捷;而74LS164則是一款常用的串行輸入并行輸出的移位寄存器,能夠有效地擴展單片機的輸出端口,簡化硬件電路設計,特別適用于多位LED數碼管的驅動。本方案將從電路原理、元器件選型、功能分析、設計考慮及軟硬件協同等方面進行全面闡述,旨在為讀者提供一個清晰、實用的設計指導。

image.png

1. 設計目標與系統概述

本設計方案旨在構建一個能夠精確顯示數字的LED數碼管顯示系統。該系統將接收來自AT89C2051單片機的控制信號,并通過74LS164進行串行數據到并行數據的轉換,最終驅動LED數碼管顯示預設的數字或字符。考慮到實際應用,我們通常會選擇共陰極或共陽極數碼管,并相應地調整驅動方式。本方案將以常見的共陰極數碼管為例進行闡述。整個系統將由以下幾個主要部分組成:核心控制器(AT89C2051單片機)、數據顯示驅動(74LS164)、顯示單元(LED數碼管)、電源模塊以及必要的輔助電路(如復位電路、晶振電路等)。通過合理的硬件設計和軟件編程,我們將實現多位LED數碼管的動態掃描顯示,從而最大限度地節約單片機的I/O口資源,并降低系統的整體功耗。動態掃描顯示技術,也稱為分時復用技術,其核心思想是利用人眼的視覺暫留效應,快速輪流點亮不同位的數碼管,使得肉眼看起來所有位都在同時顯示,從而避免了為每一位數碼管都單獨配置一組驅動電路的復雜性和成本。

2. 核心控制器:AT89C2051單片機

元器件型號優選:AT89C2051

選擇理由與器件功能: AT89C2051是美國ATMEL公司生產的一款高性能、低功耗CMOS 8位微控制器,它與經典的80C51指令集完全兼容。選擇AT89C2051作為核心控制器,主要基于以下幾個方面的考量:

  • 引腳數量和成本優勢: AT89C2051采用20引腳封裝,相比于傳統的40引腳51系列單片機,其引腳數量更少,這意味著更小的PCB面積和更低的BOM成本,尤其適合空間受限和成本敏感的應用場景。盡管引腳數量減少,但其核心功能并未縮減,足以滿足本次LED數碼管顯示的需求。

  • 內置Flash存儲器: AT89C2051內置2KB的Flash可編程和可擦除只讀存儲器(EEPROM),這使得程序開發和燒錄過程極為方便,無需外部EPROM或EEPROM,簡化了硬件設計。Flash存儲器可以反復擦寫,便于程序的調試和更新。

  • 資源集成度高: 除了Flash存儲器,AT89C2051還集成了128字節的內部RAM、15條可編程I/O線(Port 1和Port 3的部分引腳)、一個串行通信接口(UART)、兩個16位定時/計數器(Timer 0和Timer 1)以及一個片內振蕩器和時鐘電路。這些豐富的內置資源為LED數碼管的驅動提供了足夠的硬件支持,特別是定時器資源,對于實現LED的動態掃描顯示至關重要。

  • 低功耗特性: AT89C2051具有空閑模式和掉電模式,可以有效地降低功耗,延長電池供電產品的續航時間,這對于一些便攜式或對功耗有嚴格要求的應用來說是一個顯著的優勢。

  • 成熟的技術和廣泛的應用: 51系列單片機作為嵌入式系統領域最經典的架構之一,擁有大量的開發資料、成熟的開發工具和豐富的應用案例,這大大降低了開發難度和學習成本。對于初學者或需要快速實現原型驗證的項目來說,AT89C2051是一個非常友好的選擇。

  • 工作電壓范圍寬: AT89C2051通常支持較寬的工作電壓范圍(如2.7V至6V),使其能夠適應不同的電源環境。

在本次設計中,AT89C2051將負責生成顯示數據,并通過其I/O口(通常是P1口)以串行方式將數據發送給74LS164。同時,它還將控制74LS164的時鐘線和復位線,并利用定時器中斷來精確控制數碼管的掃描頻率和亮滅時間,確保顯示效果的穩定性和無閃爍感。

3. 串行數據到并行數據轉換器:74LS164

元器件型號優選:74LS164

選擇理由與器件功能: 74LS164是一款八位串行輸入/并行輸出(SIPO)移位寄存器,它在LED數碼管驅動電路中扮演著至關重要的角色。選擇74LS164的原因如下:

  • I/O口擴展: 單片機的I/O口資源有限,特別是對于引腳較少的AT89C2051。74LS164通過串行輸入方式,可以將單片機的兩個I/O口(一個用于數據輸入,一個用于時鐘脈沖)擴展為八個并行輸出口。這意味著僅僅使用單片機的兩個引腳,就可以控制8個LED段或位的通斷,大大節省了單片機的寶貴I/O資源。這對于需要驅動多位LED數碼管的應用來說是極其高效的。

  • 數據鎖存功能: 74LS164內部含有八個D觸發器,這些觸發器可以將串行輸入的數據逐位移入并并行輸出。當新的數據被移入時,原有的數據會保持在并行輸出端,直到新的時鐘脈沖到來,這種鎖存功能確保了在移位過程中,輸出數據的穩定性,避免了顯示閃爍或混亂。

  • 簡化布線: 采用串行通信可以減少單片機與外部器件之間的連接線數量,簡化PCB的布線難度,降低EMC(電磁兼容性)干擾的風險。

  • 成本效益高: 74LS164是一種非常成熟且廣泛應用的數字IC,其生產成本低廉,市場供應充足,價格極具競爭力。

  • 易于驅動: 74LS164是TTL(晶體管-晶體管邏輯)系列的集成電路,其輸入輸出電平與5V供電的AT89C2051兼容良好,無需額外的電平轉換電路。

器件功能詳解: 74LS164有兩個數據輸入端(DATA A和DATA B)和一個時鐘輸入端(CLK),以及一個清零輸入端(CLR)。它的核心功能是將串行輸入的位數據,在每個時鐘脈沖的上升沿,從DATA A或DATA B輸入端移入內部的寄存器,并同時將寄存器中的數據并行輸出到QA-QH這八個輸出端。

  • 數據輸入(DATA A/B): 74LS164通常使用其中一個數據輸入端(例如DATA A)來接收來自單片機的數據信號。另一個輸入端可以固定為高電平或作為使能端。

  • 時鐘輸入(CLK): 單片機通過輸出時鐘脈沖到CLK端,控制數據移位的節奏。每個時鐘脈沖的上升沿都會將數據從輸入端移入一位。

  • 清零輸入(CLR): CLR引腳是異步清零端,當CLR為低電平時,所有輸出端(QA-QH)將立即被清零為低電平,不依賴于時鐘脈沖。這在初始化或需要快速清除顯示時非常有用。

  • 并行輸出(QA-QH): 這八個輸出端將直接連接到LED數碼管的段選線。當對應位被設置為高電平或低電平時,將驅動LED數碼管的相應段發光或熄滅。

在本次設計中,AT89C2051將P1口的某個引腳配置為數據輸出引腳(例如P1.0),連接到74LS164的DATA A端;將P1口的另一個引腳配置為時鐘輸出引腳(例如P1.1),連接到74LS164的CLK端。通過這兩個引腳的協同工作,AT89C2051可以高效地向74LS164發送8位并行數據。

4. 顯示單元:LED數碼管

元器件型號優選:共陰極數碼管(如F5161AS、5611AS等)

選擇理由與器件功能: LED數碼管是本顯示電路的最終顯示載體。選擇共陰極數碼管主要基于以下原因:

  • 驅動方式的匹配性: 74LS164的并行輸出端在正常工作時可以輸出高電平或低電平。對于共陰極數碼管,當段選線(連接到74LS164的輸出端)為高電平且公共陰極接地時,對應的LED段就會點亮。這種驅動方式與74LS164的輸出特性非常匹配,使得電路設計更加直觀和簡潔。

  • 市場普遍性: 共陰極數碼管在市場上應用更為廣泛,型號選擇多樣,采購方便,價格合理。

  • 顯示效果: LED數碼管具有自發光特性,亮度高,視角寬,對比度好,即使在光線較強的環境下也能清晰顯示。

器件功能詳解: 一個單位的LED數碼管通常由7段(a, b, c, d, e, f, g)LED以及一個小數點(dp)LED組成。每個LED段都對應一個發光二極管。

  • 共陰極數碼管: 在共陰極數碼管中,所有LED段的陰極都連接在一起,形成一個公共陰極引腳。這個公共陰極引腳需要連接到電源的低電平(通常是地)。當需要點亮某個LED段時,需要給對應的段選引腳施加高電平,形成正向偏壓,從而使電流流過LED并使其發光。

  • 段選線: 這些引腳(a, b, c, d, e, f, g, dp)分別控制數碼管的各個筆段和小數點。在本設計中,它們將連接到74LS164的并行輸出端(QA-QH)。

  • 位選線(對于多位數碼管): 對于多位LED數碼管,除了段選線外,每位數碼管還有一個公共引腳(共陰極),稱為位選線。在動態掃描顯示中,單片機通過控制這些位選線的通斷,來決定哪一位數碼管被點亮。例如,對于共陰極數碼管,位選線通常通過一個PNP型三極管(或PMOS管)連接到電源,單片機通過控制三極管的基極(或MOS管的柵極)來選擇導通或截止,從而實現對數碼管公共陰極的通斷控制。

5. 電源模塊與輔助電路

電源模塊:元器件型號優選:7805線性穩壓器

選擇理由與器件功能: 電子電路的穩定運行離不開穩定的電源。7805是一款非常常用的三端正向線性穩壓器,能將輸入電壓(通常高于5V)穩定地輸出5V直流電壓。

  • 穩壓效果好: 7805具有良好的輸出電壓穩定性,可以有效地濾除輸入電壓的波動和紋波,為AT89C2051和74LS164提供純凈、穩定的5V工作電壓,確保芯片的正常運行和顯示效果的穩定性。

  • 使用簡單: 7805只需要很少的外圍元件(通常是輸入和輸出端的濾波電容),即可構成一個穩定的5V電源電路,簡化了電源部分的設計。

  • 成本低廉: 7805是一款非常成熟且量產的器件,價格非常經濟。

  • 過流/過熱保護: 7805內部集成了過流和過熱保護電路,可以提高電路的可靠性,防止因過載或過熱導致的損壞。

輔助電路:

  • 晶振電路:元器件型號優選:11.0592MHz無源晶振,2個22pF陶瓷電容

    選擇理由與器件功能: 晶振為AT89C2051提供精確的時鐘源,決定了單片機運行的速度和定時器的精度。

    • 提供時鐘: AT89C2051的運行需要外部時鐘信號,晶振配合兩個電容構成一個振蕩電路,為單片機提供穩定的時鐘脈沖,確保指令執行、定時器計數和串行通信的準確性。

    • 標準頻率: 11.0592MHz是51系列單片機常用的晶振頻率,它能使UART(串行通信)產生標準的波特率,便于與PC或其他設備進行通信。

    • 穩定性: 晶振的頻率穩定性直接影響單片機系統的整體性能。無源晶振具有較高的頻率精度和穩定性。

  • 復位電路:元器件型號優選:10uF電解電容,10KΩ電阻,復位按鈕(可選)

    選擇理由與器件功能: 復位電路用于在系統上電或出現故障時,將單片機復位到初始狀態,確保程序的可靠執行。

    • 上電復位: RC(電阻-電容)復位電路可以在系統上電時,自動產生一個短暫的低電平復位脈沖,使單片機正確啟動。10uF電容和10KΩ電阻的組合可以提供足夠的復位時間。

    • 手動復位: 加入一個復位按鈕,可以在需要時手動復位單片機,方便調試和故障排除。

    • 可靠性: 良好的復位電路是確保單片機系統穩定運行的基礎。

  • 限流電阻:元器件型號優選:220Ω - 1KΩ電阻(根據數碼管亮度需求和實際測試調整)

    選擇理由與器件功能: 在每個LED數碼管的段選線與74LS164的輸出端之間串聯一個限流電阻是必不可少的。

    • 保護LED: LED是電流敏感型器件,如果沒有限流電阻,當LED兩端電壓超過其正向導通電壓時,電流會急劇增大,可能導致LED過流燒毀。限流電阻可以限制流過LED的電流,使其工作在額定電流范圍內,延長其壽命。

    • 控制亮度: 通過調整限流電阻的阻值,可以改變流過LED的電流,從而調節數碼管的顯示亮度。阻值越大,電流越小,亮度越低;反之,阻值越小,電流越大,亮度越高。

    • 電流均勻: 確保每個LED段的亮度基本一致。

6. 電路原理與連接

以下是基于上述元器件的電路連接示意和原理說明:

  1. AT89C2051單片機:

    • VCC和GND:連接到5V電源和地。

    • XTAL1和XTAL2:連接11.0592MHz晶振和兩個22pF電容。

    • RST(復位):連接復位電路,包括10uF電容、10KΩ電阻和可選的復位按鈕。

    • P1.0(或P1.X):配置為串行數據輸出引腳,連接到74LS164的DATA A(或DATA B)輸入端。

    • P1.1(或P1.Y):配置為時鐘輸出引腳,連接到74LS164的CLK輸入端。

    • P3口(或P1口剩余引腳):對于多位數碼管,P3口或P1口的其他引腳將用于控制數碼管的位選,通常通過PNP三極管驅動。

  2. 74LS164移位寄存器:

    • VCC和GND:連接到5V電源和地。

    • DATA A(或DATA B):連接到AT89C2051的串行數據輸出引腳(例如P1.0)。

    • CLK:連接到AT89C2051的時鐘輸出引腳(例如P1.1)。

    • CLR:連接到高電平(不使用清零功能時)或通過一個I/O口控制(需要清零功能時)。在本設計中,通常連接到高電平,因為清零操作可以通過軟件控制數據輸出來實現。

    • QA-QH:連接到LED數碼管的段選引腳(a, b, c, d, e, f, g, dp),每個輸出端與對應的LED段之間串聯一個限流電阻。例如,QA連接到段a,QB連接到段b,以此類推。

  3. LED數碼管(共陰極):

    • 段選引腳(a, b, c, d, e, f, g, dp):通過限流電阻連接到74LS164的QA-QH輸出端。

    • 公共陰極:對于單位數碼管,直接接地。對于多位數碼管,每個數碼管的公共陰極通過一個PNP三極管(例如S8550或2N3906)或PMOS管連接到電源。單片機通過控制三極管的基極電流(或MOS管的柵極電壓)來控制其導通與否,從而選擇點亮哪一位數碼管。例如,當P3.2輸出低電平,通過基極電阻使PNP三極管導通,對應的數碼管公共陰極被拉低,該數碼管被點亮。

  4. 動態掃描顯示原理:

    • 假設要顯示“123”,需要3位數碼管。

    • 步驟1: 單片機將“1”的段碼(對應數碼管段a-g的亮滅組合)通過串行方式發送給74LS164。

    • 步驟2: 74LS164接收并并行輸出這些段碼,點亮第一位數碼管對應的段。同時,單片機將第一位數碼管的位選線置為有效(例如,將控制第一位數碼管公共陰極的三極管導通)。此時,只有第一位數碼管顯示“1”。

    • 步驟3: 經過極短的時間(通常為幾毫秒),單片機關閉第一位數碼管的位選(三極管截止)。

    • 步驟4: 接著,單片機將“2”的段碼發送給74LS164。

    • 步驟5: 74LS164輸出“2”的段碼,同時單片機將第二位數碼管的位選線置為有效。此時,只有第二位數碼管顯示“2”。

    • 步驟6: 重復上述過程,依次點亮第三位數碼管顯示“3”。

    • 循環: 單片機以極高的頻率(例如,每秒掃描幾十次到上百次)在所有數碼管之間快速循環執行上述過程。由于人眼的視覺暫留效應,當掃描頻率足夠高時,人眼無法分辨出數碼管是逐位點亮的,而是感覺所有數碼管都在同時顯示,從而實現了多位顯示。

7. 軟件設計思路

軟件部分是實現LED數碼管動態顯示的關鍵。主要包括以下幾個模塊:

  1. 初始化模塊:

    • 配置AT89C2051的I/O口:將連接74LS164的P1口引腳設置為輸出模式。

    • 配置定時器:選擇一個定時器(例如Timer 0)設置為工作模式1(16位定時器/計數器模式),并設置合適的初值,使其能夠以所需的掃描頻率產生中斷。

    • 開啟中斷:使能定時器中斷和全局中斷。

  2. 數碼管段碼表:

    • 在程序中定義一個查找表(數組),存儲0-9以及小數點等字符對應的7段碼。例如,對于共陰極數碼管,顯示數字“0”的段碼可能為0x3F (二進制00111111),其中1表示點亮,0表示熄滅。

  3. 顯示數據緩沖區:

    • 定義一個數組來存儲當前需要顯示在每位數碼管上的數字或字符。例如,如果顯示“123”,則數組可能存儲[1, 2, 3]。

  4. 動態掃描中斷服務程序:

    • 這是軟件的核心部分,通常在定時器中斷中執行。

    • 掃描指針: 定義一個變量作為掃描指針,每次中斷時指向下一位數碼管。

    • 位選控制: 根據掃描指針的值,控制對應位選三極管的通斷,使其導通(點亮當前位)。同時,關閉前一位數碼管的位選。

    • 段碼發送: 根據顯示數據緩沖區中當前位的數據,從段碼表中查找對應的段碼。然后,將該段碼通過串行方式逐位發送給74LS164。發送過程需要配合時鐘脈沖,即每發送一位數據,就產生一個時鐘脈沖。

    • 更新掃描指針: 掃描指針遞增,如果達到最大位數,則回繞到第一位,實現循環掃描。

  5. 主程序:

    • 調用初始化函數。

    • 在主循環中,可以根據需要更新顯示數據緩沖區的內容,例如從傳感器讀取數據,或者進行其他計算。

    • 主循環不直接控制顯示,而是通過修改顯示數據緩沖區的內容,由中斷服務程序來自動刷新顯示。

串行發送子程序示例(偽代碼):

void Send_74LS164_Data(unsigned char data) {
   unsigned char i;
   for (i = 0; i < 8; i++) {
       // 先發送高位或低位,取決于具體實現,這里假設從最高位開始發送
       if (data & 0x80) { // 判斷最高位是否為1
           P1_0 = 1; // 數據線置高
       } else {
           P1_0 = 0; // 數據線置低
       }
       P1_1 = 1; // 時鐘脈沖上升沿
       Delay_us(1); // 延時一小段時間,確保時鐘脈沖寬度
       P1_1 = 0; // 時鐘脈沖下降沿
       Delay_us(1); // 延時一小段時間
       data <<= 1; // 數據左移一位,準備發送下一位
   }
}

8. 設計考量與注意事項

  1. 功耗問題: 雖然LED數碼管本身功耗不高,但在多位數碼管動態掃描時,瞬時電流可能會較大。需要確保電源模塊能夠提供足夠的電流。同時,合理選擇限流電阻,在保證亮度的情況下,盡量降低功耗。

  2. 掃描頻率: 掃描頻率是影響顯示效果的關鍵。過低的掃描頻率會導致肉眼感知到明顯的閃爍;過高的掃描頻率雖然能消除閃爍,但可能會增加單片機的處理負擔和功耗。通常,掃描頻率設置在50Hz-100Hz以上即可滿足人眼的視覺暫留要求。

  3. 鬼影現象(Ghosting): 在動態掃描顯示中,由于不同位之間的切換速度不夠快,或者驅動電路的響應時間不一致,可能會出現“鬼影”現象,即當前不應點亮的數碼管上出現微弱的殘影。可以通過在位選切換時,先關閉所有位選,再發送下一位的段碼,最后再點亮對應位的位選,或者在每位切換時,短暫地關閉74LS164的輸出(如果可行),來減輕或消除鬼影。

  4. 抗干擾設計: 在電源輸入端和芯片VCC引腳附近,應放置0.1uF的去耦電容,用于濾除高頻噪聲,確保電源的穩定性。合理的地線布局和走線也可以有效減少電磁干擾。

  5. 限流電阻的計算: 限流電阻的阻值 R 可以根據以下公式近似計算:R=(VCC?VF)/IF,其中 VCC 是供電電壓(5V),VF 是LED的正向導通電壓(通常為1.8V-2.2V),IF 是LED的額定工作電流(通常為5mA-20mA)。實際應用中,可根據亮度需求進行微調。

  6. 共陰極與共陽極的選擇: 本文以共陰極數碼管為例,若選擇共陽極數碼管,則74LS164的輸出邏輯需要反轉,或者使用PNP型三極管作為段選驅動。位選部分也需要相應調整,共陽極數碼管的公共陽極需要通過NPN型三極管接地,單片機輸出高電平使其導通。

  7. 可靠性: 在實際設計中,應考慮元器件的耐壓、功耗等參數,預留一定的裕量,避免長時間工作在極限條件下。焊接質量、PCB板材等也影響系統的長期可靠性。

9. 總結

基于AT89C2051單片機和74LS164的LED數碼管顯示電路設計方案,充分利用了AT89C2051的微控制器能力和74LS164的I/O擴展功能,實現了高效、穩定的多位LED數碼管動態掃描顯示。該方案不僅降低了硬件成本和布線復雜度,而且通過軟件編程靈活控制顯示內容,具有較高的實用價值和學習意義。通過對核心元器件的深入理解和合理選用,以及對電路原理和軟件設計的精細把控,可以構建出滿足各種需求的LED數碼管顯示系統。無論是作為教學實驗平臺,還是應用于實際的產品開發,此設計方案都提供了一個堅實的基礎和清晰的指導方向。隨著技術的不斷進步,雖然有更多集成度更高、功能更強大的顯示驅動芯片出現,但基于AT89C2051和74LS164的經典組合依然因其成本效益和易學性,在許多簡單的嵌入式顯示應用中占據一席之地。深入掌握這種基礎設計思想,對于理解更復雜的數字顯示系統也具有重要的啟示作用。

責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

相關資訊

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告