Witam
Znalazlem taki program dla procesora AT89S8252. Jest on napisany dla kwarcu 11 Mhz a ja mam 16 Mhz, jak wyliczyc wartosci dla mojego kwarcu ??
byc moze sa w nim jakies bledy jakby ktos mial chwile czasu zeby zerknac to z gory wielkie dzieki
Oto on:
Jak narazie na wyswietlaczu miga caly czas cyfra 0
Znalazlem taki program dla procesora AT89S8252. Jest on napisany dla kwarcu 11 Mhz a ja mam 16 Mhz, jak wyliczyc wartosci dla mojego kwarcu ??
byc moze sa w nim jakies bledy jakby ktos mial chwile czasu zeby zerknac to z gory wielkie dzieki
Oto on:
$crystal = 11059200
'$default Xram
$large
Dim Cyfra(12) As Byte
Dim Jedn_sekund As Byte
Dim Tempo As Byte
Config Timer0 = Timer , Gate = Internal , Mode = 1
Th0 = &H4C ' 19508
Tl0 = &H34 ' 46080/(11.0592/12)= 50,00 mSec.
Enable Timer0
Enable Interrupts
On Timer0 1s
Start Timer0
'-------------definiowanie cyfr-------------------
Cyfra(0) = 20
Cyfra(1) = 215
Cyfra(2) = 76
Cyfra(3) = 69
Cyfra(4) = 135
Cyfra(5) = 37
Cyfra(6) = 36
Cyfra(7) = 87
Cyfra(8) = 4
Cyfra(9) = 5
'-------------------------------------------------
Declare Sub Program_glowny
Jedn_sekund = 0
'-----------------program glowny-----------------
Start Timer0
Program_glowny
End
Sub Program_glowny
Do
Waitms 200
P2.1 = 0
P0 = Cyfra(jedn_sekund)
Waitms 200
P2.1 = 1
Goto 1s
Loop
End Sub
'------------------------------------------------
1s:
Th0 = &H4C
Tl0 = &H34
Incr Tempo
Program_glowny
If Tempo = 20 Then '20 x 50 mSecs = 1 Second
Incr Jedn_sekund
If Jedn_sekund > 9 Then
Jedn_sekund = 0
End If
Tempo = 0
End If
ReturnJak narazie na wyswietlaczu miga caly czas cyfra 0