日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MAX7219芯片 共阴LED驱动器 详细介绍

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MAX7219芯片 共阴LED驱动器 详细介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??最近從TB買了一大堆各種各樣的模塊來玩,其中就有用MAX7219芯片來設計的8X8點陣模塊,于是去查找了這個芯片的資料,現將學習筆記留下。

目錄

    • 概述
    • MAX7219簡介
    • MAX7219引腳圖
      • 引腳功能說明
    • MAX7219內部結構
    • MAX7219寄存器
      • 譯碼方式
      • 亮度設置
      • 掃描界限
      • 停機模式
      • 顯示測試
    • 應用電路示例
    • 自己編寫的驅動程序(C51)

概述

??MAX7219 是美國 MAXIM 公司推出的多位LED顯示驅動器,是一種集成化的 串行 輸入/輸出 共陰極 顯示驅動器,采用 3線 串行接口傳送數據,可直接與單片機接口連接,用戶能方便修改其內部參數,以實現多位LED顯示。它內含硬件動態掃描電路、BCD譯碼器、段驅動器和位驅動器。此外,其內部還含有8X8 位靜態RAM,用于存放8 個數字的顯示數據。

MAX7219簡介

??MAX7219與MCU相連的引線有三條:DIN、CLK、LOAD/CS,采用16位數據串行移位接收方式。在 CLK 的每個上升沿將一位數據移入 MAX7219 內部的移位寄存器,在每個下降沿將數據從 DOUT 端輸出。當16位數據全部移入完畢,在 LOAD 引腳信號上升沿將16位數據裝入 MAX7219 內相應位置,在 MAX7219 內部動態掃描顯示控制電路的作用下實現動態顯示。

??MAX7221 同 MAX7219 基本相同,可以視作 MAX7219 的升級版。相比 MAX7219:
?? 1.MAX7221的段驅動有回流限制可以減少EMI;
?? 2.MAX7221與 SPI?、QSPI?、MICROWIRE? 相兼容
?即MAX7219抗EMI能力比較差, 相對而言用MAX7221比較可靠一點。

MAX7219引腳圖

???MAX7219為24引腳芯片

引腳功能說明

  • V+:正電源
  • GND:地
  • CLK:移位脈沖輸入端
  • DIN:串行數據輸入端
  • DOUT:串行數據輸出端
  • LOAD:裝載數據信號輸入端
  • DIG0~DIG7:LED位線
  • SEGA~SEGP,SEGDp:段碼輸出端
  • ISET:硬件方式亮度調節端

MAX7219內部結構


數據格式:
??16位串行數據以 高位在前 的方式輸入到芯片內部。
?? D15~D12 ?無效位
?? D11~D8 ???地址位,確定要送入數據的寄存器的地址
?? D7~D0???數據位,是要送入MAX7219內寄存器的數據

??對于MAX7219,串行數據在 DIN 輸入16位數據包,無論 LOAD/CS 處于何種狀態,在時鐘的上升沿數據均移入到內部16位移位寄存器。
??對于MAX7221,無論數據輸入或輸出 LOAD/CS 必須為低電平,之后數據在 LOAD/CS 的上升沿被載入內部寄存器。

??L0AD/CS 端在第16個時鐘的上升沿同時或之后,下個時鐘上升沿之前必須變為高電平,否則數據將會丟失。在 DIN 端的數據傳輸到移位寄存器在16. 5個時鐘周期之后出現在DOUT端,在時鐘的下降沿數據將被輸出。

硬件方式調節亮度:
??MAX7219通過V+和ISET之間的外部電阻來控制亮度。(MAX7219的段驅動電流峰值一般是流入ISET端電流的100倍)這個電阻最小值為9.53KΩ,設定段電流峰值為40mA。

MAX7219寄存器

??由于地址高四位無用所以默認為0H


譯碼方式

??譯碼方式有BCD譯碼不譯碼兩種方式
??8個LED的譯碼方式由 譯碼模式寄存器(09H) 8個位是高電平還是低電平決定

BCD譯碼表

不譯碼方式

亮度設置

??亮度有16檔,由0AH低4位D3~D0的16個值來設置
??MAX7219最低亮度是1/32,而MAX7221是1/16,但兩者的檔位間隔都是1/16


掃描界限

??MAX7219 可以選擇掃描的LED個數,由0BH低3位的D2~D0的8個值來設置


停機模式

??當0CH的最低位 D0 為低電平時進入停機模式,掃描振蕩器關閉,所有段電流源被拉到地,而所有的位驅動被拉到V+,顯示器停止顯示,但寄存器中的數據不變,且掉電模式下是可以編寫驅動的。停機模式可以節省電源。

顯示測試

??當0FH的最低位 D0 為高電平時進入顯示測試模式,所有LED以最大亮度(31/32)顯示。停機模式下不影響進入顯示測試模式,因此可以用停機模式和顯示測試來制作閃爍效果。

應用電路示例



自己編寫的驅動程序(C51)

/*********************************************************************************** 程序名: MAX7219驅動程序* 作者: DaveoCKII* 日期: 2020.2.27* 版本: STC12C5A60S2**********************************************************************************/#ifndef _MAX7219_H_ #define _MAX7219_H_#include <STC12C5A60S3.H> //--------------------------------------------------------------------------------// sbit DIN = P1^3; // 數據線 sbit CS = P1^2; // 片選線 sbit CLK = P1^1; // 時鐘線 unsigned char LED_CC[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; // 共陰LED顯示數據 '0~F' unsigned char LED_CA[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; // 共陽LED顯示數據 '0~F' //--------------------------------------------------------------------------------//void Write7219(unsigned char addr, unsigned char Data); // MAX7219數據寫入函數void Init7219(unsigned char work_state, unsigned char test_state, unsigned char decode_nums, // MAX7219初始化設置unsigned char display_nums, unsigned char Luminance); // 工作模式、測試模式、解碼模式、掃描模式、亮度//--------------------------------------------------------------------------------// void Write7219(unsigned char addr, unsigned char dat) {unsigned char i;CS=0; // 拉低CS選中芯片for(i=0; i<8; i++) // 傳輸地址 {CLK=0; // 拉低時鐘線DIN=Data & 0x80; // 數據格式:高位在前addr<<=1; CLK=1; // 拉高時鐘線,寫入數據}for(i=0; i<8; i++) // 傳輸數據 {CLK=0;DIN=dat & 0x80;dat<<=1;CLK=1; }CS=1; // 數據鎖入 }void Init7219(unsigned char work_state, unsigned char test_state, unsigned char decode_nums,unsigned char display_nums, unsigned char Luminance) {Write7219(0X0C,work_state); // 工作模式選擇 1:正常工作 0:掉電模式Write7219(0X0F,test_state); // 測試模式開關 1:測試模式 0:正常工作Write7219(0X09,decode_nums); // 解碼模式選擇 8個位分別控制8個LED是否解碼,'1'為BCD解碼,'0'為不解碼Write7219(0X0B,display_nums); // 掃描方式選擇 0-7 設置掃描1-8個LEDWrite7219(0X0A,Luminance); // 初始亮度設置 0-15設置1-16檔亮度 }//--------------------------------------------------------------------------------//#endif

DaveoCKII
2020.2.27

總結

以上是生活随笔為你收集整理的MAX7219芯片 共阴LED驱动器 详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。