找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4515|回復(fù): 1
收起左側(cè)

求助max7219點(diǎn)陣顯示問題

[復(fù)制鏈接]
ID:299298 發(fā)表于 2018-4-2 15:47 | 顯示全部樓層 |閱讀模式
本人是單片機(jī)小白,在學(xué)習(xí)驅(qū)動(dòng)max7219做個(gè)小時(shí)鐘;請(qǐng)教下面圖片中一個(gè)字符拆分開,在兩塊點(diǎn)陣屏上顯示怎么做的,目前只會(huì)一個(gè)屏顯示一個(gè)字符;
另外,中間那個(gè)冒號(hào)怎么顯示?
QQ截圖20180402153436.png QQ截圖20180402153451.png

這是網(wǎng)上找來的7219驅(qū)動(dòng)程序,要怎么修改才能實(shí)現(xiàn)自己的需求

#include <reg52.h>  
#include <intrins.h>  
#define uchar unsigned char  
#define uint  unsigned int  
//定義Max7219端口  
sbit Max7219_pinCLK = P2^2;  
sbit Max7219_pinCS  = P2^1;  
sbit Max7219_pinDIN = P2^0;  
uchar code disp1[3][8]={  
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E}, //2
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},    //3
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},   //4
};  
/*n毫秒的延時(shí)程序*/  
void Delay_xms(uint x)  
{  
uint i,j;  
for(i=0;i<x;i++)  
  for(j=0;j<112;j++);  
}  
//--------------------------------------------  
//向MAX7219(U3)寫入字節(jié)  
void Write_Max7219_byte(uchar DATA)           
{  
        uchar i;      
        Max7219_pinCS=0;                //CS=0有效,CS=1鎖存   
        for(i=8;i>=1;i--)  
          {         
            Max7219_pinCLK=0;  
            Max7219_pinDIN=DATA&0x80; //&10000000, 編譯器對(duì)位操作的理解:非0即為1  
            DATA=DATA<<1;  
            Max7219_pinCLK=1;       //上升沿把數(shù)據(jù)送出去  
           }                                   
}  
//-------------------------------------------  
/*向M第一片MAX7219寫入數(shù)據(jù)*/  
void Write_Max7219_1(uchar add1,uchar dat1)  
{   
     Max7219_pinCS=0;  
     Write_Max7219_byte(add1);           //寫入地址,即數(shù)碼管編號(hào)  
     Write_Max7219_byte(dat1);               //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字   
     Max7219_pinCS=1;                          
}  
/*第二片MAX7219的寫入數(shù)據(jù)*/  
void Write_Max7219_2(uchar add2,uchar dat2)  
{  
    Max7219_pinCS=0;  
    Write_Max7219_byte(add2);  
    Write_Max7219_byte(dat2);  
    Max7219_pinCLK=1;  
    Write_Max7219_byte(0x00);  //片1寫入空  
    Write_Max7219_byte(0x00);  
    Max7219_pinCS=1;  
}  
/*第三片MAX7219的寫入數(shù)據(jù)*/  
void Write_Max7219_3(uchar add3,uchar dat3)  
{  
    Max7219_pinCS=0;  
    Write_Max7219_byte(add3);  
    Write_Max7219_byte(dat3);  
    Max7219_pinCLK=1;  
    Write_Max7219_byte(0x00); //片1寫入空  
    Write_Max7219_byte(0x00);  
    Write_Max7219_byte(0x00); //片2寫入空  
    Write_Max7219_byte(0x00);  
    Max7219_pinCS=1;  
}  


/*初始化芯片*/  
void Init_MAX7219(void)  
{  
Write_Max7219_1(0x09, 0x00);       //譯碼方式:BCD碼  
Write_Max7219_1(0x0a, 0x03);       //亮度   
Write_Max7219_1(0x0b, 0x07);       //掃描界限;8個(gè)數(shù)碼管顯示  
Write_Max7219_1(0x0c, 0x01);       //掉電模式:0,普通模式:1  
Write_Max7219_1(0x0f, 0x00);       //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0  

Write_Max7219_2(0x09, 0x00);       //譯碼方式:BCD碼  
Write_Max7219_2(0x0a, 0x03);       //亮度   
Write_Max7219_2(0x0b, 0x07);       //掃描界限;8個(gè)數(shù)碼管顯示  
Write_Max7219_2(0x0c, 0x01);       //掉電模式:0,普通模式:1  
Write_Max7219_2(0x0f, 0x00);       //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0  

Write_Max7219_3(0x09, 0x00);       //譯碼方式:BCD碼  
Write_Max7219_3(0x0a, 0x03);       //亮度   
Write_Max7219_3(0x0b, 0x07);       //掃描界限;8個(gè)數(shù)碼管顯示  
Write_Max7219_3(0x0c, 0x01);       //掉電模式:0,普通模式:1  
Write_Max7219_3(0x0f, 0x00);       //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0  
}  


/**********************主程序**************************/  
void main(void)  
{  
uchar i,j;  
Delay_xms(50);  
Init_MAX7219();   
while(1)  
{  
  for(j=0;j<3;j++)  
  {  
   for(i=1;i<9;i++)  
   {  
    Write_Max7219_1(i,disp1[2][i-1]);  
    Write_Max7219_2(i,disp1[3][i-1]);  
    Write_Max7219_3(i,disp1[4][i-1]);  
    }  
   Delay_xms(1000);  
  }   
}   
}

回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2018-4-3 00:52 | 顯示全部樓層
你要現(xiàn)進(jìn)行字符拆裝分解組合,考的是你對(duì)掃描顯示、以及對(duì)點(diǎn)陣真正理解。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表