Schau dir mal den MAX510 an.
Habe mit dem mal was gebaut.
1 | ;****************************************************************************
|
2 | ;Wort2max 16 Bit-Wort in A1 seriell an MAX 7219 und MAX 510 ausgeben
|
3 | ;Clock_bit=high - Delay - Clock_bit=low - Daten_bit - Delay - Clock_bit=high
|
4 | ;****************************************************************************
|
5 | Wort2max DO #16,Bitwort2max_loop
|
6 | MOVE #200,R2
|
7 | NOP
|
8 | Delay_schleife1 MOVE (R2)-
|
9 | JCLR #15,R2,Delay_schleife1 ;Delay_high
|
10 | BCLR #Clock_bit,X:PBD ;Clock_bit low
|
11 | BCLR #Daten_bit,X:PBD ;Daten_bit wieder low
|
12 | JCLR #15,A1,Daten_bit_ist_0 ;A1 sonst Scaling / Limiting!
|
13 | BSET #Daten_bit,X:PBD
|
14 | Daten_bit_ist_0 ASL A
|
15 | MOVE #100,R2
|
16 | NOP
|
17 | delay_schleife2 MOVE (R2)-
|
18 | JCLR #15,r2,delay_schleife2 ;Delay_low
|
19 | BSET #Clock_bit,X:PBD ;Clock_bit wieder high
|
20 | Bitwort2max_loop
|
21 | RTS
|
22 | ;****************************************************************************
|
Die Routine überträgt die Daten seriell zum MAX7219 und MAX510.
Die Delay-Schleife ist notwendig, da die verwendeten Optokoppler extrem
schnarchig sind.
Der verwendete Prozessor ist kein AVR. Ihr dürft alle mal raten!