Witam
Od niedawna zajmuje się mikro-kontrolerami AVR.Udało mi się napisać kilka prostych programów (sterowanie diodami ,przetwornik C/A itp.) Teraz chciałbym zrobić zegar cyfrowy a w tym celu postanowiłem najpierw zaznajomić się z zasadą pisania prostszych programów sterującymi pojedynczym segmentem.Chciał bym aby ktoś sprawdził program ,który za pomocą którego ma odbywać się odliczanie od 0 do 9.
Wyświetlacz to wspólna katoda projekt wzorowałem na książce Marcina Wiązania "Programowanie mikro-kontrolerów w języku BASCOM" Jest tam opisany układ ze wspólna anodą więc zmodyfikowałem program i schemat aby segmenty były sterowanie stanem niskim.Oto program:
Proszę pamiętać o używaniu znaczników code. - arnoldziq
Od niedawna zajmuje się mikro-kontrolerami AVR.Udało mi się napisać kilka prostych programów (sterowanie diodami ,przetwornik C/A itp.) Teraz chciałbym zrobić zegar cyfrowy a w tym celu postanowiłem najpierw zaznajomić się z zasadą pisania prostszych programów sterującymi pojedynczym segmentem.Chciał bym aby ktoś sprawdził program ,który za pomocą którego ma odbywać się odliczanie od 0 do 9.
Wyświetlacz to wspólna katoda projekt wzorowałem na książce Marcina Wiązania "Programowanie mikro-kontrolerów w języku BASCOM" Jest tam opisany układ ze wspólna anodą więc zmodyfikowałem program i schemat aby segmenty były sterowanie stanem niskim.Oto program:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = Output
Declare Sub Wysw7seg(byval Cyfra As Byte)
Dim I As Byte
Dim Kod_cyf As Bye
Kropka Alias Portd.7
Do
Toggle Kropka
For I = 0 To 9
Call Wysw7seg(i)
Waitms 15
Next I
Loop
End
Sub Wysw7seg(byval Cyfra As Byte)
If Cyfra < 10 Then
Kod_cyf = Lookup(cyfra , Kody7seg)
Kod_cyf.7 = Kropka
Portd = Kod_cyf
Else
Portd = Portd And &B01111111
End If
End Sub
Kody7seg:
'kody cyfr
Data &B11000000 , &B11111001 , &B10100100 , &B10110000 , &B10011001
Data &B10010010 , &B10000010 , &B11111000 , &B10000000 , &B10010000Proszę pamiętać o używaniu znaczników code. - arnoldziq