一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CW32模塊使用 8位數(shù)碼管顯示模塊

CW32生態(tài)社區(qū) ? 來(lái)源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2025-05-12 16:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、 模塊來(lái)源

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

wKgZPGggY2uAC2RwAAKzvEMLdbs551.jpg


產(chǎn)品實(shí)物展示

二、規(guī)格參數(shù)?

工作電壓:4-5.5V

工作電流:8-330MA

掃描速率:500-1300Hz

通信協(xié)議:?jiǎn)慰偩€

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

以上信息見(jiàn)廠家資料文件

三、移植過(guò)程?

我們的目標(biāo)是將例程移植至CW32F030C8T6開(kāi)發(fā)板上。首先要獲取資料,查看數(shù)據(jù)手冊(cè)應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1. 查看資料?

3.1.1. 時(shí)序講解?

wKgZO2ggY2uASyTNAAErLW5wGls642.jpg

無(wú)論數(shù)據(jù)輸入或輸出CS端必須為低電平。然后數(shù)據(jù)在CS端的上升沿被載入數(shù)據(jù)寄存器或控制寄存器。CS端在第 16個(gè)時(shí)鐘的上升沿之后,下個(gè)時(shí)鐘上升沿之前變?yōu)楦唠娖?,否則數(shù)據(jù)將會(huì)丟失。

對(duì) MAX7219 來(lái)說(shuō),串行數(shù)據(jù)在 DIN 輸入 16 位數(shù)據(jù)包,在CLK的上升沿?cái)?shù)據(jù)均移入到內(nèi)部 16 位移位寄存器。即DIN不能在CLK的上升沿時(shí)進(jìn)行數(shù)據(jù)變換。

3.1.2. 數(shù)據(jù)位講解?

DIN傳輸?shù)?6位數(shù)據(jù)包說(shuō)明,見(jiàn)表格000。其中D8-D11 為寄存器地址位。D0-D7 為數(shù)據(jù)位。D12-D15 為無(wú)效位。

wKgZPGggY2uABf0eAADavDrm-PY316.jpg

根據(jù)以上的時(shí)序說(shuō)明和傳輸格式,實(shí)現(xiàn)的數(shù)據(jù)傳輸代碼。

//向MAX7219寫(xiě)入字節(jié)
//dat寫(xiě)入的數(shù)據(jù)
void Write_Max7219_byte(uint8_t dat)
{
    uint8_t i;
    MAX7219_CS(0);//確認(rèn)CS拉低
    for(i=8;i>=1;i--)//傳輸8位
    {
        MAX7219_CLK(0);//拉低CLK
        //當(dāng)前數(shù)據(jù)位是否為1
        if( dat&0x80 )
        {
            MAX7219_DIN(1);
        }
        else
        {
            MAX7219_DIN(0);
        }
        dat=dat

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

3.1.3. 關(guān)鍵寄存器講解?

相關(guān)寄存器地址,見(jiàn)下表。這里先講解0X09譯碼方式寄存器。

wKgZO2ggY22Ae8sfAAEq2eAvk8Q761.jpg

我們發(fā)送的數(shù)據(jù)位是16位,而進(jìn)入譯碼方式寄存器只使用到了D15-D8數(shù)據(jù)位(0x09),還有D7到D0沒(méi)有設(shè)置。而根據(jù)數(shù)據(jù)手冊(cè)的說(shuō)明,關(guān)于譯碼方式寄存器的D7-D0的設(shè)置在數(shù)據(jù)手冊(cè)的表格4.

wKgZPGggY26AMe9YAAD9kH7m84Q861.jpg

按照?qǐng)D中所示,如果要設(shè)置譯碼方式為全部數(shù)碼管都進(jìn)行譯碼,那么要發(fā)送:

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

在全部數(shù)碼管都進(jìn)行譯碼的情況下,如果想要第0個(gè)數(shù)碼管顯示數(shù)字3,第1個(gè)數(shù)碼管不顯示應(yīng)如何操作?

wKgZO2ggY22Ae8sfAAEq2eAvk8Q761.jpg

先在數(shù)據(jù)手冊(cè)中找到關(guān)于第0個(gè)數(shù)碼管和第1個(gè)數(shù)碼管的寄存器地址。根據(jù)右圖顯示得知,第0個(gè)數(shù)碼管的地址是0X01;第1個(gè)數(shù)碼管的地址是0X02。知道地址后,根據(jù)數(shù)據(jù)手冊(cè)提示找到數(shù)據(jù)位設(shè)置表,因?yàn)槿繑?shù)碼管都進(jìn)行了譯碼,那么只需要發(fā)送:

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

3.2. 引腳選擇?

該模塊有10個(gè)引腳,其中有5個(gè)是接入下一個(gè)級(jí)聯(lián)的數(shù)碼管。如果不接入下一個(gè)級(jí)聯(lián)的數(shù)碼管,則只要接5個(gè)引腳,具體引腳連接見(jiàn)各引腳連接。

wKgZPGggY3SAK5_fAAYC0xZ4xGo029.jpg

模塊接線圖

3.3. 移植至工程?

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

wKgZO2ggY3SAJewMAAA5JignCx8085.jpg

在文件bsp_max7219.c中,編寫(xiě)如下代碼。

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


/******************************************************************
 * 函 數(shù) 名 稱:MAX7219_GPIO_Init
 * 函 數(shù) 說(shuō) 明:初始化MAX7219引腳
 * 函 數(shù) 形 參:無(wú)
 * 函 數(shù) 返 回:無(wú)
 * 作       者:LC
 * 備       注:無(wú)
******************************************************************/
void MAX7219_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體

    RCC_MAX7219_ENABLE();        // 使能GPIO時(shí)鐘

    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);       // 初始化

}

/******************************************************************
 * 函 數(shù) 名 稱:Write_Max7219_byte
 * 函 數(shù) 說(shuō) 明:向MAX7219寫(xiě)入字節(jié)
 * 函 數(shù) 形 參:dat寫(xiě)入的數(shù)據(jù)
 * 函 數(shù) 返 回:無(wú)
 * 作       者:LC
 * 備       注:無(wú)
******************************************************************/
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中,編寫(xiě)如下代碼。

/*
 * 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. 移植驗(yàn)證?

在自己工程中的main主函數(shù)中,編寫(xiě)如下。

/*
 * 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();        // 開(kāi)發(fā)板初始化

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

    int i =0;

    MAX7219_Init();
    delay_ms(1000);

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

    Write_Max7219_AllOff();//數(shù)碼管全滅
    printf("MAX7219 demo startrn");
    while(1)
    {
        //第一個(gè)顯示1,第二個(gè)顯示2,第三個(gè)顯示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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1889

    瀏覽量

    92397
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    243

    瀏覽量

    1174
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)碼管的結(jié)構(gòu)與原理

    數(shù)碼管,也被稱作輝光或LED數(shù)碼管,是一種能夠顯示數(shù)字、字母、符號(hào)等信息的電子設(shè)備。它廣泛應(yīng)用于各種電子設(shè)備中,如計(jì)算器、電子鐘表、電子秤、數(shù)碼
    的頭像 發(fā)表于 02-05 17:32 ?1764次閱讀

    位數(shù)碼管12個(gè)引腳怎么分配

    在電子顯示技術(shù)中,四位數(shù)碼管作為一種常見(jiàn)的顯示器件,廣泛應(yīng)用于各種數(shù)字顯示系統(tǒng)。其通過(guò)控制不同段(A-G)的發(fā)光二極(LED)來(lái)
    的頭像 發(fā)表于 01-30 15:00 ?1w次閱讀

    CW32模塊使用 紅外接收模塊

    靜態(tài)電流3-5uA,動(dòng)態(tài)電流3-5mA。 以上信息見(jiàn)廠家資料文件 三、移植過(guò)程 我們的目標(biāo)是將例程移植至CW32F030C8T6開(kāi)發(fā)板上【能夠?qū)崿F(xiàn)紅外信號(hào)接收的功能】。首先要獲取資料
    的頭像 發(fā)表于 01-23 13:16 ?459次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 紅外接收<b class='flag-5'>模塊</b>

    基于FPGA實(shí)現(xiàn)數(shù)碼管顯示

    本文介紹數(shù)碼管顯示譯碼基本工作原理及Verilog HDL驅(qū)動(dòng)代碼編寫(xiě),進(jìn)一步熟練掌握FPGA入門(mén)基礎(chǔ)知識(shí)。
    的頭像 發(fā)表于 10-24 14:44 ?1743次閱讀
    基于FPGA實(shí)現(xiàn)<b class='flag-5'>數(shù)碼管</b><b class='flag-5'>顯示</b>

    數(shù)碼管的使用方法和接線步驟

    數(shù)碼管的基本單元是發(fā)光二極(LED),通過(guò)控制不同LED的亮滅來(lái)顯示數(shù)字和字符。根據(jù)段數(shù),數(shù)碼管可分為七段和八段,其中八段數(shù)碼管比七段多一
    的頭像 發(fā)表于 08-29 18:22 ?6794次閱讀

    簡(jiǎn)述led數(shù)碼管的類型和顯示原理

    LED數(shù)碼管是一種常見(jiàn)的顯示設(shè)備,廣泛應(yīng)用于各種電子設(shè)備和系統(tǒng)中。本文將介紹LED數(shù)碼管的類型和顯示原理,以幫助讀者更好地了解這種設(shè)備。 LED數(shù)碼
    的頭像 發(fā)表于 08-29 09:11 ?2319次閱讀

    數(shù)碼管顯示屏的靜態(tài)顯示編程是什么

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

    數(shù)碼管顯示屏的作用和功能是什么

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

    驅(qū)動(dòng)器數(shù)碼管顯示不良原因

    驅(qū)動(dòng)器數(shù)碼管顯示不良的原因可能有很多,涉及到硬件、軟件、環(huán)境等多個(gè)方面。 一、引言 驅(qū)動(dòng)器數(shù)碼管是一種廣泛應(yīng)用于工業(yè)自動(dòng)化、電子設(shè)備等領(lǐng)域的顯示設(shè)備。它具有
    的頭像 發(fā)表于 08-28 16:38 ?1709次閱讀

    什么原因造成數(shù)碼管顯示錯(cuò)誤

    數(shù)碼管顯示錯(cuò)誤是一個(gè)常見(jiàn)的問(wèn)題,可能由多種原因引起。 一、引言 數(shù)碼管是一種常用的顯示設(shè)備,廣泛應(yīng)用于各種電子設(shè)備中,如電子鐘、計(jì)算器、溫度計(jì)等。然而,在使用過(guò)程中,
    的頭像 發(fā)表于 08-28 16:36 ?3522次閱讀

    8位數(shù)碼管怎么不顯示數(shù)字

    8位數(shù)碼管是一種常見(jiàn)的電子顯示設(shè)備,用于顯示數(shù)字或字符。然而,有時(shí)8位數(shù)碼管可能無(wú)法正常
    的頭像 發(fā)表于 08-28 16:34 ?1808次閱讀

    8位數(shù)碼管在Proteus中的使用技巧

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

    數(shù)碼管驅(qū)動(dòng)芯片引腳功能

    數(shù)碼管驅(qū)動(dòng)芯片是一種用于驅(qū)動(dòng)數(shù)碼管顯示數(shù)字或字符的集成電路。數(shù)碼管驅(qū)動(dòng)芯片的引腳功能是實(shí)現(xiàn)數(shù)碼管正常顯示
    的頭像 發(fā)表于 08-28 16:08 ?1973次閱讀

    數(shù)碼管驅(qū)動(dòng)芯片原理是什么

    數(shù)碼管驅(qū)動(dòng)芯片是一種廣泛應(yīng)用于數(shù)字顯示領(lǐng)域的電子元件,它能夠?qū)?shù)字信號(hào)轉(zhuǎn)換為可視的數(shù)字顯示。 一、數(shù)碼管驅(qū)動(dòng)芯片概述 1.1 數(shù)碼管驅(qū)動(dòng)芯片
    的頭像 發(fā)表于 08-28 16:07 ?1879次閱讀

    數(shù)碼管驅(qū)動(dòng)芯片有哪幾種

    。以下是對(duì)數(shù)碼管驅(qū)動(dòng)芯片的介紹: 74HC595 74HC595是一種8串行輸入、并行輸出的移位寄存器,常用于驅(qū)動(dòng)共陽(yáng)極數(shù)碼管。它具有以下特點(diǎn):
    的頭像 發(fā)表于 08-28 15:59 ?2978次閱讀