在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CW32模塊使用 8位數碼管顯示模塊

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2025-05-12 16:09 ? 次閱讀

一、 模塊來源

?
資料下載鏈接: https://pan.baidu.com/s/15TcV9HevtfVBWcm7pgRNTw
資料提取碼:e1q5

wKgZPGggY2uAC2RwAAKzvEMLdbs551.jpg


產品實物展示

二、規格參數?

工作電壓:4-5.5V

工作電流:8-330MA

掃描速率:500-1300Hz

通信協議:單總線

管腳數量:5 Pin(2.54mm間距排針

以上信息見廠家資料文件

三、移植過程?

我們的目標是將例程移植至CW32F030C8T6開發板上。首先要獲取資料,查看數據手冊應如何實現讀取數據,再移植至我們的工程。

3.1. 查看資料?

3.1.1. 時序講解?

wKgZO2ggY2uASyTNAAErLW5wGls642.jpg

無論數據輸入或輸出CS端必須為低電平。然后數據在CS端的上升沿被載入數據寄存器或控制寄存器。CS端在第 16個時鐘的上升沿之后,下個時鐘上升沿之前變為高電平,否則數據將會丟失。

對 MAX7219 來說,串行數據在 DIN 輸入 16 位數據包,在CLK的上升沿數據均移入到內部 16 位移位寄存器。即DIN不能在CLK的上升沿時進行數據變換。

3.1.2. 數據位講解?

DIN傳輸的16位數據包說明,見表格000。其中D8-D11 為寄存器地址位。D0-D7 為數據位。D12-D15 為無效位。

wKgZPGggY2uABf0eAADavDrm-PY316.jpg

根據以上的時序說明和傳輸格式,實現的數據傳輸代碼。

//向MAX7219寫入字節
//dat寫入的數據
void Write_Max7219_byte(uint8_t dat)
{
    uint8_t i;
    MAX7219_CS(0);//確認CS拉低
    for(i=8;i>=1;i--)//傳輸8位
    {
        MAX7219_CLK(0);//拉低CLK
        //當前數據位是否為1
        if( dat&0x80 )
        {
            MAX7219_DIN(1);
        }
        else
        {
            MAX7219_DIN(0);
        }
        dat=dat

//向MAX7219寫入數據
//address寫入地址  dat寫入數據
void Write_Max7219(uint8_t address,uint8_t dat)
{
    //CS拉低
    MAX7219_CS(0);
    //傳輸高8位數據(寄存器地址)
    Write_Max7219_byte(address);
    //傳輸低8位數據(數據)
    Write_Max7219_byte(dat);
    //CS拉高
    MAX7219_CS(1);
}

3.1.3. 關鍵寄存器講解?

相關寄存器地址,見下表。這里先講解0X09譯碼方式寄存器。

wKgZO2ggY22Ae8sfAAEq2eAvk8Q761.jpg

我們發送的數據位是16位,而進入譯碼方式寄存器只使用到了D15-D8數據位(0x09),還有D7到D0沒有設置。而根據數據手冊的說明,關于譯碼方式寄存器的D7-D0的設置在數據手冊的表格4.

wKgZPGggY26AMe9YAAD9kH7m84Q861.jpg

按照圖中所示,如果要設置譯碼方式為全部數碼管都進行譯碼,那么要發送:

//高8位=0x09(寄存器地址), 低8位=0xff(數據)
Write_Max7219(0x09,0xff);

在全部數碼管都進行譯碼的情況下,如果想要第0個數碼管顯示數字3,第1個數碼管不顯示應如何操作?

wKgZO2ggY22Ae8sfAAEq2eAvk8Q761.jpg

先在數據手冊中找到關于第0個數碼管和第1個數碼管的寄存器地址。根據右圖顯示得知,第0個數碼管的地址是0X01;第1個數碼管的地址是0X02。知道地址后,根據數據手冊提示找到數據位設置表,因為全部數碼管都進行了譯碼,那么只需要發送:

//高8位=0x01(寄存器地址), 低8位=0x03(數據)
Write_Max7219(0x01,0x03);//第0個數碼管顯示數字3
//高8位=0x02(寄存器地址), 低8位=0x0F(數據)
Write_Max7219(0x02,0x0F);//第1個數碼管b不顯示
wKgZO2ggY26AUwSxAAF18qiv2wY379.jpg

3.2. 引腳選擇?

該模塊有10個引腳,其中有5個是接入下一個級聯的數碼管。如果不接入下一個級聯的數碼管,則只要接5個引腳,具體引腳連接見各引腳連接

wKgZPGggY3SAK5_fAAYC0xZ4xGo029.jpg

模塊接線圖

3.3. 移植至工程?

我們新建兩個文件分別是 bsp_max7219.cbsp_max7219.h ,然后將C文件添加至工程中,將h文件路徑添加到工程中。

wKgZO2ggY3SAJewMAAA5JignCx8085.jpg

在文件bsp_max7219.c中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#include "bsp_max7219.h"
#include "stdio.h"
#include "board.h"


/******************************************************************
 * 函 數 名 稱:MAX7219_GPIO_Init
 * 函 數 說 明:初始化MAX7219引腳
 * 函 數 形 參:無
 * 函 數 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void MAX7219_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結構體

    RCC_MAX7219_ENABLE();        // 使能GPIO時鐘

    GPIO_InitStruct.Pins =  GPIO_MAX7219_CLK|        // GPIO引腳
                            GPIO_MAX7219_DIN|
                            GPIO_MAX7219_CS;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;      // 推挽輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;         // 輸出速度高
    GPIO_Init(PORT_MAX7219, &GPIO_InitStruct);       // 初始化

}

/******************************************************************
 * 函 數 名 稱:Write_Max7219_byte
 * 函 數 說 明:向MAX7219寫入字節
 * 函 數 形 參:dat寫入的數據
 * 函 數 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void Write_Max7219_byte(uint8_t dat)
{
    uint8_t i;
    MAX7219_CS(0);
    for(i=8;i>=1;i--)
    {
        MAX7219_CLK(0);
        if( dat&0x80 )
        {
            MAX7219_DIN(1);
        }
        else
        {
            MAX7219_DIN(0);
        }
        dat=dat

在文件bsp_max7219.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#ifndef _BSP_MAX7219_H_
#define _BSP_MAX7219_H_

#include "board.h"

#define RCC_MAX7219_ENABLE()    __RCC_GPIOB_CLK_ENABLE()

#define PORT_MAX7219            CW_GPIOB

#define GPIO_MAX7219_CLK        GPIO_PIN_15
#define GPIO_MAX7219_DIN        GPIO_PIN_10
#define GPIO_MAX7219_CS         GPIO_PIN_13


#define MAX7219_CLK(X) GPIO_WritePin(PORT_MAX7219, GPIO_MAX7219_CLK, X?GPIO_Pin_SET:GPIO_Pin_RESET)
#define MAX7219_DIN(X) GPIO_WritePin(PORT_MAX7219, GPIO_MAX7219_DIN, X?GPIO_Pin_SET:GPIO_Pin_RESET)
#define MAX7219_CS(X)  GPIO_WritePin(PORT_MAX7219, GPIO_MAX7219_CS,  X?GPIO_Pin_SET:GPIO_Pin_RESET)



void Write_Max7219(uint8_t address,uint8_t dat);
void Write_Max7219_2(uint8_t address,uint8_t dat);
void Write_Max7219_AllOff(void);
void MAX7219_Init(void);

#endi

4. 移植驗證?

在自己工程中的main主函數中,編寫如下。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#include "board.h"
#include "stdio.h"
#include "bsp_uart.h"
#include "bsp_max7219.h"

int32_t main(void)
{
    board_init();        // 開發板初始化

    uart1_init(115200);        // 串口1波特率115200

    int i =0;

    MAX7219_Init();
    delay_ms(1000);

    Write_Max7219(0x0f, 0x00);       //顯示測試:1;測試結束,正常顯示:0

    Write_Max7219_AllOff();//數碼管全滅
    printf("MAX7219 demo startrn");
    while(1)
    {
        //第一個顯示1,第二個顯示2,第三個顯示3...
        for( i = 1; i < 9; i++ )//從1顯示到8
        {
            Write_Max7219(i, i);
            delay_ms(1000);
        }
    }
}

上電效果:

wKgZPGggY3SAIOfLAAOGlD7MTJk807.jpg

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1U_l3vfG-S79em6yLpkIWxQ?pwd=LCKF 提取碼:LCKF

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數碼管
    +關注

    關注

    32

    文章

    1889

    瀏覽量

    92146
  • CW32
    +關注

    關注

    1

    文章

    242

    瀏覽量

    1059
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    數碼管的結構與原理

    數碼管,也被稱作輝光或LED數碼管,是一種能夠顯示數字、字母、符號等信息的電子設備。它廣泛應用于各種電子設備中,如計算器、電子鐘表、電子秤、數碼
    的頭像 發表于 02-05 17:32 ?1120次閱讀

    位數碼管12個引腳怎么分配

    在電子顯示技術中,四位數碼管作為一種常見的顯示器件,廣泛應用于各種數字顯示系統。其通過控制不同段(A-G)的發光二極(LED)來
    的頭像 發表于 01-30 15:00 ?4536次閱讀

    簡述led數碼管的類型和顯示原理

    LED數碼管是一種常見的顯示設備,廣泛應用于各種電子設備和系統中。本文將介紹LED數碼管的類型和顯示原理,以幫助讀者更好地了解這種設備。 LED數碼
    的頭像 發表于 08-29 09:11 ?2043次閱讀

    數碼管顯示屏的靜態顯示編程是什么

    數碼管顯示屏的靜態顯示編程是一種簡單的顯示方式,它指的是在任意時刻,數碼管上的所有段(a, b, c, d, e, f, g, dp等,具體
    的頭像 發表于 08-28 17:14 ?959次閱讀

    數碼管顯示屏的作用和功能是什么

    數碼管顯示屏是一種廣泛應用于各種電子設備中的顯示技術,它具有多種作用和功能。 一、數碼管顯示屏的基本概念 1.1
    的頭像 發表于 08-28 17:11 ?2311次閱讀

    驅動器數碼管顯示不良原因

    驅動器數碼管顯示不良的原因可能有很多,涉及到硬件、軟件、環境等多個方面。 一、引言 驅動器數碼管是一種廣泛應用于工業自動化、電子設備等領域的顯示設備。它具有
    的頭像 發表于 08-28 16:38 ?1547次閱讀

    什么原因造成數碼管顯示錯誤

    數碼管顯示錯誤是一個常見的問題,可能由多種原因引起。 一、引言 數碼管是一種常用的顯示設備,廣泛應用于各種電子設備中,如電子鐘、計算器、溫度計等。然而,在使用過程中,
    的頭像 發表于 08-28 16:36 ?3202次閱讀

    8位數碼管怎么不顯示數字

    8位數碼管是一種常見的電子顯示設備,用于顯示數字或字符。然而,有時8位數碼管可能無法正常
    的頭像 發表于 08-28 16:34 ?1539次閱讀

    8位數碼管在Proteus中的使用技巧

    的基本概念 8位數碼管是一種用于顯示數字和部分字母的電子器件,通常由8個獨立的七段顯示器組成,每個七段
    的頭像 發表于 08-28 16:31 ?6748次閱讀

    數碼管驅動芯片引腳功能

    數碼管驅動芯片是一種用于驅動數碼管顯示數字或字符的集成電路。數碼管驅動芯片的引腳功能是實現數碼管正常顯示
    的頭像 發表于 08-28 16:08 ?1749次閱讀

    數碼管驅動芯片原理是什么

    數碼管驅動芯片是一種廣泛應用于數字顯示領域的電子元件,它能夠將數字信號轉換為可視的數字顯示。 一、數碼管驅動芯片概述 1.1 數碼管驅動芯片
    的頭像 發表于 08-28 16:07 ?1593次閱讀

    數碼管驅動芯片有哪幾種

    。以下是對數碼管驅動芯片的介紹: 74HC595 74HC595是一種8串行輸入、并行輸出的移位寄存器,常用于驅動共陽極數碼管。它具有以下特點:
    的頭像 發表于 08-28 15:59 ?2623次閱讀

    【項目展示】基于CW32的遙控循跡小車

    CW32循跡小車.zip_免費高速下載|百度網盤-分享無限制? 一、概述 CW32循跡、遙控小車具有循跡和遙控兩種功能,小車的硬件模塊CW32F030C8T6小藍板、智能小車控制底板
    的頭像 發表于 05-31 17:33 ?1690次閱讀
    【項目展示】基于<b class='flag-5'>CW32</b>的遙控循跡小車

    CW32數字電壓電流表軟件教程-實驗四:數碼管動態顯示

    5.1.數碼管動態顯示原理 所謂動態掃描顯示即輪流向各位數碼管送出段碼和位碼,利用發光的余輝和人眼視覺暫留作用,使人眼的感覺好像各
    的頭像 發表于 05-31 15:23 ?808次閱讀
    <b class='flag-5'>CW32</b>數字電壓電流表軟件教程-實驗四:<b class='flag-5'>數碼管</b>動態<b class='flag-5'>顯示</b>

    CW32數字電壓電流表軟件教程-實驗三:數碼管顯示數字

    原理是由多個發光的二極共陰極或者共陽極組成的成“8”字形的顯示器件。數碼管通過不同的組合可用來顯示數字0~9、字符A ~ F及小數點“.”
    的頭像 發表于 05-31 15:21 ?1233次閱讀
    <b class='flag-5'>CW32</b>數字電壓電流表軟件教程-實驗三:<b class='flag-5'>數碼管</b><b class='flag-5'>顯示</b>數字
    主站蜘蛛池模板: 赛罗奥特曼银河帝国普通话免费版 | 精品三级在线观看 | 国产一级大片免费看 | 奇米影视第四色7777 | 11111日本网站 | 黄色录像欧美 | 1024手机在线观看你懂的 | 欧美zoozzooz性欧美 | 五月天综合在线 | 国产nv精品你懂得 | 欧美色欧 | 狠狠色丁香久久综合网 | 日本一区免费观看 | 欧美区在线 | 日本毛片大全 | 97视频人人 | www色在线| 国产91小视频在线观看 | 天天射狠狠干 | jlzzjlzzjlzz日本亚洲 | 一级片a级片 | haose16在线永久免费 | 国产成人精品男人的天堂538 | h视频国产 | 欧美51| 亚洲人成电影 | 日本亚洲高清乱码中文在线观看 | 狠狠要| 1024手机最新手机在线 | 天堂在线www在线资源 | 久久全国免费久久青青小草 | 看黄网站在线观看 | 日本色黄视频 | 午夜影院免费在线观看 | 夜夜做日日做夜夜爽 | 性色影院 | 搞黄视频网站 | 久久国产免费 | 久久精品国产2020观看福利色 | 神马影院午夜dy888 | 香蕉久久高清国产精品免费 |