z neta ściągnąłem taki kod do obsługi wyświetlacza segmentowego i działa
kod:
'--------------------------------------------------------------------
'
'
'--------------------------------------------------------------------
'Program przygotowany dla zestawu EvB 4.3 firmy And-Tech.pl
$regfile = "m32def.dat"
'Częstotliwość kwarcu domyślnie 16MHz
$crystal = 16000000
'Podłaczenie wyświetlacza 7 segmentowego
' Digit1 PORTB.0
' Digit2 PORTB.1
' Digit3 PORTB.2
' Digit4 PORTB.3
'Segment A PORTA.1
'Segment B PORTA.2
'Segment C PORTA.3
'Segment D PORTA.4
'Segment E PORTA.5
'Segment F PORTA.6
'Segment G PORTA.7
Config Porta = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Timer0 = Timer , Prescale = 256
Declare Sub Pobr_znaku(cyfra As Byte)
On Timer0 Mult_wysw
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim Nr_wysw As Byte
W1 Alias Portb.0
W2 Alias Portb.1
W3 Alias Portb.2
W4 Alias Portb.3
Wait 2
Set W1
Set W2
Set W3
Set W4
Wait 2
Enable Interrupts
Enable Timer0
Load Timer0 , 125
Do
Wait 1
D = D + 1
'Rozbicie na poszczegolne cyfry
If D > 9then
D = 0
C = C + 1
End If
If C > 9then
C = 0
B = B + 1
End If
If B > 9 Then
B = 0
A = A + 1
End If
If A > 9 Then
A = 0 : B = 0 : C = 0 : D = 0
End If
Loop
End 'end program
Sub Pobr_znaku(cyfra As Byte)
Porta = Lookup(cyfra , Kody7seg)
End Sub
Mult_wysw:
Load Timer0 , 150
Set W1
Set W2
Set W3
Set W4
Select Case Nr_wysw
Case 0:
Call Pobr_znaku(a)
Reset W1
Case 1:
Call Pobr_znaku(b)
Reset W2
Case 2:
Call Pobr_znaku(c)
Reset W3
Case 3:
Call Pobr_znaku(d)
Reset W4
End Select
Incr Nr_wysw
If Nr_wysw = 4 Then
Nr_wysw = 0
End If
Return
Kody7seg:
Data &B10000001 , &B11110011 , &B01001001 , &B01100001 , &B00110011 ,
Data &B00100101 , &B00000101 , &B11110001 , &B00000001 , &B00100001
kto widzi różnicę?