Hallo Marco,

hier mal ein kleines Demo, ist getestet.
Wenn Dein zweiter MAX immer noch spinnt, dann ist er wohl hinüber.
Das Demo benutzt den normal mode für Anzeigen.
Wenn man Zahlen anzeigen wil ist der BCD mode günstiger, siehe Datenblatt.
Hinweis: Die Versorgungsspannung der MAX sollte mit Kondensatoren geblockt werden.

Gruß Manfred
www.malo-web.de

Code:
'*****************************************************************************************************************
'  Bascom AVR Compiler 1.11.8.7
'  ATMega8 Applikation
'
'  Manfred Look
'  webmaster@malo-web.de
'  http://www.malo-web.de
'
'  Demo 2x MAX7219 (8x 7_Segment LED Treiber IC)
'  sollte auch mit MAX7221 funktionieren
'
'  10/2007
'  V1.00
'
'  Takt getestet mit:
'  intern 1MHz
'  extern 16MHz (Fuses entsprechend setzen)
'
'  Schaltplan siehe Datenblatt MAX7219 Seite 13 Figure 3
'
'*****************************************************************************************************************
'
'--compiler directives--------------------------------------------------------------------------------------------
'
$regfile = "m8def.dat"                                      'Chip auswaehlen: ATMega8
$crystal = 16000000                                         'Taktfrequenz (Hz) festlegen
$hwstack = 32                                               'Hardware Stack
$swstack = 8                                                'Software Stack
$framesize = 20                                             'Framsize
'
'--variable-------------------------------------------------------------------------------------------------------
'
Dim Send_max1 As Word                                       '16Bit Variable MAX1 die seriel ausgegeben wird
Dim Send_max2 As Word                                       '16Bit Variable MAX2 die seriel ausgegeben wird
'
'--alias----------------------------------------------------------------------------------------------------------
'
_data Alias Portd.2                                         'data MAX7219
_load Alias Portd.3                                         'chip Enable MAX7219
_clk Alias Portd.4                                          'clock MAX7219
'
'--init program---------------------------------------------------------------------------------------------------
'
'Initialisierung Ports
Ddrd = &B00011100                                           'Port D, 1=Ausgang
'
Loop:
'
'Initialisierung MAX7219
   Send_max2 = &B0000111100000001                           'Display Test ein
   Send_max1 = &B0000111100000001                           'Display Test ein
   Gosub _ser_output
   Wait 1                                                   '1 Sekunde Test
'
   Send_max2 = &B0000111100000000                           'Test aus
   Send_max1 = &B0000111100000000                           'Test aus
   Gosub _ser_output
'
   Send_max2 = &B0000110000000001                           'normal mode
   Send_max1 = &B0000110000000001                           'normal mode
   Gosub _ser_output
'
   Send_max2 = &B0000101100000111                           'scan limit: 8
   Send_max1 = &B0000101100000111                           'scan limit: 8
   Gosub _ser_output
'
   Send_max2 = &B0000101000001000                           'intensity: 17/32 (heller)
   Send_max1 = &B0000101000000010                           'intensity: 5/32 (dunkler)
   Gosub _ser_output
'
'Initialisierung Ausgaben
'               xxxx    PABCDEFG
   Send_max2 = &B0000000101111001                           'Digit 0 Anzeige: 3
   Send_max1 = &B0000000101101101                           'Digit 0 Anzeige: 2
   Gosub _ser_output
'               xxxx    PABCDEFG
   Send_max2 = &B0000001000110000                           'Digit 1 Anzeige: 1
   Send_max1 = &B0000001001011111                           'Digit 1 Anzeige: 2
   Gosub _ser_output
'usw.
   Wait 2                                                   '2 Sekunden Anzeige
Goto Loop                                                   'Demo startet neu
'
End
'
'Serielle Schnittstelle
_ser_output:
   Reset _load                                              'bereit
   Shiftout _data , _clk , Send_max2 , 1                    '16Bit senden, MSB zuerst, Takt steigende Flanke
   Shiftout _data , _clk , Send_max1 , 1                    '16Bit senden, MSB zuerst, Takt steigende Flanke
   Set _load                                                'fertig
Return