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

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

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

3天內不再提示

CW32模塊使用 MAX7219四合一點陣模塊

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

四合一點陣顯示模塊采用MAX7219作為控制,它是一種集成化的串行輸入/輸出共陰極顯示驅動器,它連接微處理器與8位數字的7段數字LED顯示,也可以連接條線圖顯示器或者64個獨立的LED。其上包括一個片上的B型BCD編碼器、多路掃描回路,段字驅動器,而且還有一個8*8的靜態RAM用來存儲每一個數據。只有一個外部寄存器用來設置各個LED的段電流。它可以連接所有通用的微處理器。每個數據可以尋址在更新時不需要改寫所有的顯示。MAX7219同樣允許用戶對每一個數據選擇編碼或者不編碼。

整個設備包含一個150μA的低功耗關閉模式,模擬和數字亮度控制,一個掃描限制寄存器允許用戶顯示1-8位數據,還有一個讓所有LED發光的檢測模式。

只需要3個IO口即可驅動1個點陣!點陣顯示時無閃爍!支持級聯!

一、二、 模塊來源?

采購鏈接
資料下載鏈接: https://pan.baidu.com/s/19WdOd8D2QlPi1Q_EWlb3fQ
資料提取碼:b822


產品實物展示

2、規格參數?

工作電壓:4-5.5V

工作電流:8-330MA

掃描速率:500-1300Hz

通信協議:串行通信

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

以上信息見廠家資料文件

三、移植過程?

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

3.1. 查看資料?

3.1.1. 時序講解?

wKgZO2ggZAiABQ1RAAErLW5wGls044.jpg

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

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

3.1.2. 數據位講解?

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

wKgZPGggZAiAbtIvAADtVxzl8Zw053.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譯碼方式寄存器。

wKgZO2ggZAmAHG8DAAEq2eAvk8Q438.jpg

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

wKgZPGggZAqAQNaRAAD9kH7m84Q887.jpg

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

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

點陣是通過一個個像素點顯示,要在8x8點陣上顯示個字符,需要以下兩步:

占據屏幕上的一塊地方,大小由字體大小說了算;

在占據的地方上依次控制每個像素點是否顯示。

比如一個8x8字體大小的字符,表示水平方向需要8個像素點,垂直方向需要8個像素點。在這塊8x8的地盤上,每個像素點是否顯示由字模說了算,字模中的每1位數據表示一個像素點,如果該位為0則表示此處像素點不顯示、為1則表示顯示(陰碼規則)。 以下為 逐行式,順向(高位在前),陰碼格式輸出的字模數據。在程序中逐位讀取字模,如果該位為0則該點點亮,如果該位為1則滅。

wKgZO2ggZAqANMv6AAAN4J2OPJU589.jpg

字模例子

0x7C,第一行顯示 0111 1100
0x42,第二行顯示 0100 0010
0x02,第三行顯示 0000 0010
0x04,第四行顯示 0000 0100
0x08,第五行顯示 0000 1000
0x30,第六行顯示 0011 0000
0x42,第七行顯示 0100 0010
0x7E 第八行顯示 0111 1110
(一共8行)

如果想要第0行顯示一條直線,應如何操作?

wKgZO2ggZAmAHG8DAAEq2eAvk8Q438.jpg

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

//高8位=0x01(寄存器地址), 低8位=0xff(數據)
Write_Max7219(0x01,0xff);//第0行顯示一條直線

wKgZPGggZAqAN104AACxdkB3hVU576.jpg

3.2. 引腳選擇?

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

數碼管模塊 開發板
VCC 5V
GND GND
DIN PB10
CS PB13
CLK PB15

3.3. 移植至工程?

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

wKgZO2ggZAuADzXsAAA3TH20HLs472.jpg

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

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#include "bsp_DotMatrix.h"
#include "stdio.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_DotMatrix.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-18     LCKFB-LP    first version
 */
#ifndef _BSP_DOTMATRIX_H_
#define _BSP_DOTMATRIX_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(unsigned char address,unsigned char dat);
void Write_Max7219_AllOff(void);
void MAX7219_Init(void);
void Max7219_display(uint8_t* show1, uint8_t* show2, uint8_t* show3, uint8_t* show4);
#endi

四、移植驗證?

在自己工程中的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_DotMatrix.h"

unsigned char disp1[12][8]={//一共12行

{0x3C,0x42,0x42,0x42,0x42,0x42,0x66,0x38},/*"0",0*/

{0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x18},/*"1",1*/

{0x7C,0x42,0x02,0x04,0x08,0x30,0x42,0x7E},/*"2",2*/

{0x7C,0x46,0x04,0x18,0x06,0x02,0x42,0x3C},/*"3",3*/

{0x0C,0x14,0x14,0x24,0x44,0x3C,0x04,0x0C},/*"4",4*/

{0x3E,0x40,0x58,0x64,0x02,0x02,0x42,0x3C},/*"5",5*/

{0x3E,0x40,0x48,0x76,0x42,0x42,0x42,0x3C},/*"6",6*/

{0x7E,0x04,0x04,0x08,0x10,0x10,0x10,0x10},/*"7",7*/

{0x7C,0x42,0x62,0x3C,0x44,0x42,0x42,0x3C},/*"8",8*/

{0x7C,0x42,0x42,0x46,0x3A,0x02,0x44,0x38},/*"9",9*/

{0x3A,0x04,0x04,0x24,0x24,0x18,0x08,0x7E},/*"立",10*/

{0x52,0x4E,0x76,0xD6,0x56,0x76,0x4A,0x4E},/*"創",11*/
};


int main(void)
{

    board_init();

    uart1_init(115200);

    MAX7219_Init();
    Write_Max7219_AllOff();
    printf("MAX7219 demo startrn");


    while(1)
    {
        //第一個點陣顯示disp1數組的第10行內容
        //第二個點陣顯示disp1數組的第11行內容
        //第三個點陣顯示disp1數組的第7行內容
        //第四個點陣顯示disp1數組的第6行內容
        Max7219_display(disp1[10],disp1[11], disp1[7], disp1[6]);
        delay_ms(1000);
    }

}

上電效果:顯示“立創76”

wKgZPGggZAyAJmhTAAYznPsceYo888.jpg

移植成功案例代碼:

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

審核編輯 黃宇

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

    關注

    31

    文章

    5408

    瀏覽量

    123074
  • CW32
    +關注

    關注

    1

    文章

    242

    瀏覽量

    1059
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    CW32模塊使用】1.8寸彩色觸摸屏

    模塊來源 模塊實物展示: ? 資料下載鏈接:https://pan.baidu.com/s/1n_vp38V7ij88PUGpbJPd7Q 資料提取碼:8888 二、規格參數 工作電壓
    的頭像 發表于 05-11 16:14 ?286次閱讀
    【<b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用】1.8寸彩色觸摸屏

    代碼+案例+生態:武漢芯源半導體CW32嵌入式開發實戰正式出版

    尊敬的各位電子工程師、嵌入式開發愛好者們: 大家好!今天,我們懷著無比激動與自豪的心情,向大家宣布個重大喜訊——武漢芯源半導體的單片機CW32正式出書啦!《基于ARM Cortex-M0+
    發表于 03-03 15:14

    CW32模塊使用 WS2812彩燈

    有高精度的內部 振蕩器和可編程定電流控制部分,有效保證了像素光的顏色高度致。 模塊來源 模塊實物展示: ? 資料鏈接:https:/
    的頭像 發表于 02-24 11:37 ?325次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 WS2812彩燈

    2.0寸顯示屏,輕薄低功耗12864點陣COG顯示屏

    2.0寸單色LCD液晶顯示屏12864圖形點陣,輕薄低功耗128*64點陣COG顯示屏
    的頭像 發表于 02-19 12:02 ?379次閱讀
    2.0寸顯示屏,輕薄低功耗12864<b class='flag-5'>點陣</b>COG顯示屏

    CW32模塊使用 紅外接收模塊

    模塊來源 模塊實物展示: ? 資料鏈接:https://pan.baidu.com/s/1dEWVMIFDWb7k1NcsRy5hHA 資料提取碼:uucv 二、規格參數 1.CR2025環保
    的頭像 發表于 01-23 13:16 ?377次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 紅外接收<b class='flag-5'>模塊</b>

    CW32模塊使用 EC-01G NBIOT+GPS模塊

    模塊來源 模塊實物展示: 資料鏈接:https://docs.ai-thinker.com/nb-iot 二、規格參數 工作電壓:3.0V-3.6V 工作電流:IMAX = 170mA
    的頭像 發表于 01-23 13:12 ?386次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 EC-01G NBIOT+GPS<b class='flag-5'>模塊</b>

    CW32模塊使用 NEO-6M GPS模塊

    模塊的高靈敏度、小靜態漂移、低功耗及輕巧的體積,適用于車載、手持設備如PDA,車輛監控、手機、攝像機及其他移動定位系統的應用,是GPS產品應用的好選擇。 模塊來源 模塊實物展示:
    的頭像 發表于 01-23 13:06 ?601次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 NEO-6M GPS<b class='flag-5'>模塊</b>

    CW32模塊使用 HC05藍牙模塊

    HC-05 藍牙串口通信模塊,是基于 Bluetooth Specification V2.0 帶 EDR 藍牙協議的數傳模塊。無線工作頻段為 2.4GHz ISM,調制方式是 GFSK。模塊最大
    的頭像 發表于 01-23 12:57 ?405次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 HC05藍牙<b class='flag-5'>模塊</b>

    CW32模塊使用 紅外解碼編碼模塊

    格式設備,如大部分電視機、機頂盒、DVD、電風扇等電器設備。 只需要利用到單片機的串口通信知識,通過串口發送指定的指令進行控制模塊發射;通過串口接收方式進行紅外解碼操作,獲取遙控編碼信息。也可以使用2個模塊實現無線操控。
    的頭像 發表于 01-23 12:56 ?507次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 紅外解碼編碼<b class='flag-5'>模塊</b>

    CW32模塊使用 BMP180氣壓傳感器

    模塊來源 模塊實物展示: ? 資料下載鏈接: https://pan.baidu.com/s/1miTIphm 二、規格參數 工作電壓:1.8~3.6V 工作電流:0.1~1000uA 溫度精度
    的頭像 發表于 12-05 12:06 ?547次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 BMP180氣壓傳感器

    CW32模塊使用 TTP224觸摸傳感器

    模塊個基于觸摸檢測IC(TTP223B)的電容式動型觸摸開關模塊。常態下,模塊輸出低電平,模式為低功耗模式;當用手指觸摸相應位置時,
    的頭像 發表于 09-18 15:35 ?2243次閱讀
    <b class='flag-5'>CW32</b><b class='flag-5'>模塊</b>使用 TTP224觸摸傳感器

    ESP32驅動3264點陣屏有噪的原因?

    ESP32 驅動3264點陣屏顯示時間,采用ARDUINO編寫。 不打開WIFI,顯示會切正常,打開WIFI,顯示屏會有噪閃動,無規律,就是發光的二極管會不時地更亮下。 用ESP
    發表于 06-13 06:56

    四合一電源管理芯片CN8911B用于超級電容備電的電源系統

    四合一電源管理芯片CN8911B用于超級電容備電的電源系統
    的頭像 發表于 06-12 10:02 ?772次閱讀
    <b class='flag-5'>四合一</b>電源管理芯片CN8911B用于超級電容備電的電源系統

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

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

    基于CW32的有刷直流電機控制實驗三:直流電機閉環位置和速度控制實驗

    硬件接線說明 實驗使用的模塊主要有6個:小車主控板(黑色)、CW32F030小藍板、OLED屏幕、TB6612電機驅動模塊、直流減速電機、DAP-Link下載器。 安裝好后的圖片如下: 如果
    的頭像 發表于 05-31 17:01 ?845次閱讀
    基于<b class='flag-5'>CW32</b>的有刷直流電機控制實驗三:直流電機閉環位置和速度控制實驗
    主站蜘蛛池模板: 免费看大尺度视频在线观看 | 国产乱码免费卡1卡二卡3卡四 | 欧美色图亚洲 | 97人洗澡人人澡人人爽 | 国模于子涵啪啪大胆 | 高清在线免费观看 | 天天躁夜夜躁狠狠躁2024 | 二级黄色大片 | 国产乱码免费卡1卡二卡3卡四 | 爽好舒服快受不了了老师 | 一级女性黄 色生活片 | 欧美最猛性xxxx高清 | 国产精品网站在线进入 | 欧美性色xo影院永久禁欲 | 日本人69xxx 日本人69xxxxx | 久久天天躁狠狠躁夜夜呲 | 欧美黑人性xxx猛交 欧美黑人性受xxxx精品 | 国产高清不卡一区二区 | 免费一级特黄特色大片 | 日本三级香港三级三级人!妇久 | 五月综合激情网 | 免看一级a毛片一片成人不卡 | 九九免费久久这里有精品23 | 午夜影院免费 | 午夜黄大色黄大片美女图片 | 欧洲精品码一区二区三区免费看 | 日本人亚洲人成人 | 狠狠干网站 | 天天干夜夜看 | 亚洲国产成人久久笫一页 | 男人午夜小视频 | 午夜三级国产精品理论三级 | 久久精品人人爽人人爽 | 在线观看网址你懂得 | 视频免费黄色 | 么公的好大好硬好深好爽在线视频 | 黄网站在线观看高清免费 | 一级女性黄 色生活片 | 久插视频 | 日本xxxx69日本| 七月婷婷在线视频综合 |