16段l数码管led灯编码求助

2019-07-16 03:47发布

我的微处理器是Attiny 45 然后连了解码器MAX6954.
我的显示器是PSC23-11GWA,kingbright的,16段数码管led显示器.
这是一个解码器连了8个显示器,我想要显示的是MAXIM.IC这8个字母,但只有第一个是正确的,就是第一个显示器我想要显示的可以显示出来,后面的就会混乱。拔了重新接通后最多显示正确6个字母过。我想知道是不是我的编程写的有问题,有没有高手可以帮忙下。谢谢~
附件是所用的材料的资料。
下面的是编码。

/* Control software for dot_controller Board (Dot1) Copyright 12/2007 by Hans-Josef Ackermann */


#include <avr/io.h>
#include <stdint.h>
#include <util/delay_basic.h>


/* PORTB0 MOSI               pin5
   PORTB1 MISO               pin6
   PORTB2 SCK                pin7
   PORTB3 SS0                pin2
   PORTB4 SS1                pin3
*/

#define set_MOSI    PORTB |=  _BV(PB0) /* macro to set MOSI bit*/
#define clear_MOSI  PORTB &= ~_BV(PB0) /* macro to clear MOSI bit*/

#define set_SS0   PORTB |=  _BV(PB3) /* macro to set SS0 bit*/
#define clear_SS0 PORTB &= ~_BV(PB3) /* macro to clear SS0 bit*/

#define set_SS1   PORTB |=  _BV(PB4) /* macro to set SS1 bit*/
#define clear_SS1 PORTB &= ~_BV(PB4) /* macro to clear SS1 bit*/

#define set_SCK   PORTB |=  _BV(PB2) /* macro to set SCK bit*/
#define clear_SCK PORTB &= ~_BV(PB2) /* macro to clear SCK bit*/


static unsigned char Corr = 127;    /* */

void Send_Bit(data16)

{
       
         
  int i=15;
  clear_SS0;
  clear_SS1;
  do
    {
          if (((data16 & (1<<i))>>i) == 1)
            set_MOSI;
      else
            clear_MOSI;
      set_SCK;
      clear_SCK;
      i=i-1;
        }   
  while (i >= 0);

  set_SS0;
  set_SS1;
  clear_SCK;
}


int main(void)

  {


    DDRB=0x1D;    /* set Ports B0,B2,B3,B4 as outputs*/

    set_SS0;
        set_SS1;
    clear_SCK;
    clear_MOSI;      /* bring all signals to their inactive state */
       
       
               
                       
                        Send_Bit(0x0401);
                       
                Send_Bit(0x204D);

                        Send_Bit(0x2141);

                        Send_Bit(0x2258);

            Send_Bit(0x2349);

                        Send_Bit(0x244D);

                        Send_Bit(0x252D);
       
                        Send_Bit(0x2649);

                        Send_Bit(0x2743);

                        Send_Bit(0x02FF);

                       
               
        while (1);
        {

                          
     }     


  return 1;
  }  





Attiny 45.pdf 下载积分: 积分 -1 分
4.53 MB, 下载次数: 8, 下载积分: 积分 -1 分
MAX6954.pdf 下载积分: 积分 -1 分
334.06 KB, 下载次数: 4, 下载积分: 积分 -1 分
PSC23-11GWA.pdf 下载积分: 积分 -1 分
232.34 KB, 下载次数: 9, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。