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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2458|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

用MPS顯示MAX7219矩陣燈 求大神幫忙 改錯(cuò)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
2黑幣
單片機(jī)小白求組大神
我的VCC連接5V; GND連接GND; DIN連接P22;CS連接P21;CLk連接P20
我用下面的程序考入到板子中 ,燈就是單純的全量,而不是按照我的程序變換;
有我的連接圖片
想知道我出錯(cuò)出在了哪里, 程序的問(wèn)題還是什么問(wèn)題, 如何解決?

#include "io430.h"
//定義Max7219端口
#define CLK_0 P2OUT |= BIT0;
#define CLK_1 P2OUT &= ~BIT0;
#define CS_0 P2OUT |= BIT1;
#define CS_1 P2OUT &= ~BIT1;
#define DIN_0 P2OUT |= BIT2;
#define DIN_1 P2OUT &= ~BIT2;

#define CPU_F ((double)8000000)   //外部高頻晶振8MHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

//自定義數(shù)據(jù)結(jié)構(gòu),方便使用
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

void close_dog()
{
   WDTCTL = WDTPW + WDTHOLD;       //關(guān)閉看門狗
}

uchar const disp1[38][8]={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
{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
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
{0x8,0x7F,0x49,0x49,0x7F,0x8,0x8,0x8},//中
{0xFE,0xBA,0x92,0xBA,0x92,0x9A,0xBA,0xFE},//國(guó)
};  

//--------------------------------------------
//功能:向MAX7219(U3)寫入字節(jié)
//入口參數(shù):DATA
//出口參數(shù):無(wú)
//說(shuō)明:
void Write_Max7219_byte(uchar DATA)         
{
   

IMG_20180411_235024.jpg (2.73 MB, 下載次數(shù): 70)

IMG_20180411_235024.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:304841 發(fā)表于 2018-4-12 00:00 | 只看該作者
#include "io430.h"
//定義Max7219端口
#define CLK_0 P2OUT |= BIT0;
#define CLK_1 P2OUT &= ~BIT0;
#define CS_0 P2OUT |= BIT1;
#define CS_1 P2OUT &= ~BIT1;
#define DIN_0 P2OUT |= BIT2;
#define DIN_1 P2OUT &= ~BIT2;

#define CPU_F ((double)8000000)   //外部高頻晶振8MHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

//自定義數(shù)據(jù)結(jié)構(gòu),方便使用
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

void close_dog()
{
   WDTCTL = WDTPW + WDTHOLD;       //關(guān)閉看門狗
}

uchar const disp1[38][8]={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
{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
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
{0x8,0x7F,0x49,0x49,0x7F,0x8,0x8,0x8},//中
{0xFE,0xBA,0x92,0xBA,0x92,0x9A,0xBA,0xFE},//國(guó)
};  

//--------------------------------------------
//功能:向MAX7219(U3)寫入字節(jié)
//入口參數(shù):DATA
//出口參數(shù):無(wú)
//說(shuō)明:
void Write_Max7219_byte(uchar DATA)         
{
            uchar i,temp;                   
            for(i=8;i>=1;i--)
          {                  
            temp=DATA&0x80;
            DATA=DATA<<1;
            if(temp)
              DIN_1;
            if(!temp)
              DIN_0;
            CLK_0;
            delay_ms(500);
            CLK_1;
           }                                 
}
//-------------------------------------------
//功能:向MAX7219寫入數(shù)據(jù)
//入口參數(shù):address、dat
//出口參數(shù):無(wú)
//說(shuō)明:
void Write_Max7219(uchar address,uchar dat)
{
     CS_0;
     delay_ms(500);
     Write_Max7219_byte(address);           //寫入地址,即數(shù)碼管編號(hào)
     delay_ms(500);
     Write_Max7219_byte(dat);               //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
     delay_ms(500);
     CS_1;                        
}

void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00);       //譯碼方式:BCD碼
Write_Max7219(0x0a, 0x03);       //亮度
Write_Max7219(0x0b, 0x07);       //掃描界限;8個(gè)數(shù)碼管顯示
Write_Max7219(0x0c, 0x01);       //掉電模式:0,普通模式:1
Write_Max7219(0x0f, 0x00);       //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0
}
void main(void)
{
close_dog();
P2SEL&=~(BIT0+BIT1+BIT2);
P2DIR |=BIT0+BIT1+BIT2;
uchar i,j;
delay_ms(50);
Init_MAX7219();  
while(1)
{
  for(j=0;j<38;j++)
  {
   for(i=1;i<9;i++)
    Write_Max7219(i,disp1[j][i-1]);
   delay_ms(1000);
  }  
}
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:304841 發(fā)表于 2018-4-12 00:02 | 只看該作者
/--------------------------------------------
//功能:向MAX7219(U3)寫入字節(jié)
//入口參數(shù):DATA
//出口參數(shù):無(wú)
//說(shuō)明:
void Write_Max7219_byte(uchar DATA)         
{
            uchar i,temp;                   
            for(i=8;i>=1;i--)
          {                  
            temp=DATA&0x80;
            DATA=DATA<<1;
            if(temp)
              DIN_1;
            if(!temp)
              DIN_0;
            CLK_0;
            delay_ms(500);
            CLK_1;
           }                                 
}
//-------------------------------------------
//功能:向MAX7219寫入數(shù)據(jù)
//入口參數(shù):address、dat
//出口參數(shù):無(wú)
//說(shuō)明:
void Write_Max7219(uchar address,uchar dat)
{
     CS_0;
     delay_ms(500);
     Write_Max7219_byte(address);           //寫入地址,即數(shù)碼管編號(hào)
     delay_ms(500);
     Write_Max7219_byte(dat);               //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
     delay_ms(500);
     CS_1;                        
}

void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00);       //譯碼方式:BCD碼
Write_Max7219(0x0a, 0x03);       //亮度
Write_Max7219(0x0b, 0x07);       //掃描界限;8個(gè)數(shù)碼管顯示
Write_Max7219(0x0c, 0x01);       //掉電模式:0,普通模式:1
Write_Max7219(0x0f, 0x00);       //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0
}
void main(void)
{
close_dog();
P2SEL&=~(BIT0+BIT1+BIT2);
P2DIR |=BIT0+BIT1+BIT2;
uchar i,j;
delay_ms(50);
Init_MAX7219();  
while(1)
{
  for(j=0;j<38;j++)
  {
   for(i=1;i<9;i++)
    Write_Max7219(i,disp1[j][i-1]);
   delay_ms(1000);
  }  
}
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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