witam.
w moim programiku multipleksowanie czterech wyświetlaczy 7-segm. odbywa się inaczej niż zakładałem, i nie mogę ruszyć z miejsca.
chciałbym aby układ działał na zasadzie wpisywanego pin-u, i porównywał wartość na wyświetlaczach czy jest zgodna z programową wartością.
obecnie jest tak , że wpisując na drugi wyśw. pierwszy gaśnie , a chciałbym żeby ta liczba była "zatrzaśnieta"
dziękuje z góry za pomoc.
w moim programiku multipleksowanie czterech wyświetlaczy 7-segm. odbywa się inaczej niż zakładałem, i nie mogę ruszyć z miejsca.
$regfile = "m8def.dat"
$crystal = 1000000
'$sim
Config Portd = Output
Portd = &B11111111
Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
On Timer0 Multi
Config Kbd = Portb , Debounce = 40 , Delay = 100
7_segm Alias Portd
W1 Alias Portc.0
W2 Alias Portc.1
W3 Alias Portc.2
W4 Alias Portc.3
Set 7_segm
Dim A As Byte , B As Byte , C As Byte , D As Byte , Nr_wysw As Byte
Enable Interrupts
Enable Timer0
Load Timer0 , 90
Start:
Do
A = Getkbd()
If A < 16 Then
Gosub Multi
Waitms 25
End If
Loop
Multi:
Load Timer0 , 90
Reset W1
Reset W2
Reset W3
Reset W4
Select Case Nr_wysw
Case 0:
7_segm = Lookup(a , Dane)
Waitms 4
Set W1
Case 1:
7_segm = Lookup(a , Dane )
Waitms 4
Set W2
Case 2:
7_segm = Lookup(a , Dane )
Waitms 4
Set W3
Case 3:
7_segm = Lookup(a , Dane )
Set W4
Wait 1
End Select
Incr Nr_wysw
If Nr_wysw = 4 Then Gosub Zerowanie
Return
Zerowanie:
Nr_wysw = 0
Reset W1
Reset W2
Reset W3
Reset W4
Return
End
Dane:
Data &B11111001
Data &B10100100
Data &B10110000
Data &B10111111
Data &B10011001
Data &B10010010
Data &B10000010
Data &B10111111
Data &B11111000
Data &B10000000
Data &B10010000
Data &B10111111
Data &B10111111
Data &B11000000
Data &B10111111
Data &B10111111
chciałbym aby układ działał na zasadzie wpisywanego pin-u, i porównywał wartość na wyświetlaczach czy jest zgodna z programową wartością.
obecnie jest tak , że wpisując na drugi wyśw. pierwszy gaśnie , a chciałbym żeby ta liczba była "zatrzaśnieta"
dziękuje z góry za pomoc.