89S51 Ti und Tp berechnen

OP #1992233
Lesenswert?

Hallo allerseits,

ich sitze gerade am programmieren mit meinem 89S51 und habe einen 
Rechteckgenerator programmiert:
1
          ORG  0h
2
          AJMP 100h
3
          ORG 100h
4
          CLR tr0
5
          MOV TMOD, #01h
6
m2:       MOV R0, #07ah
7
haupt:    CLR TF0
8
          MOV TH0, #000h
9
          MOV TL0, #000h
10
          SETB TR0
11
loop:     JNB TF0, loop
12
m1:       DJNZ R0, haupt
13
          CPL P2.0
14
          AJMP m2

Ich komme nicht ganz klar mit dem berechnen der Impuls- und Pausendauer.
Habe einen 24MHz-Quarz. Ich denke folgerndermaßen:
F=24*10^6/12 = 2*10^6
T= 1/f = 1/2*10^6 = 0,5*10^-6s
bei 16-bit timer müsste das doch 32768*0,5*10^-6 = 0,016384s sein pro 
hochzählen?! Und das mal 7A(122) von R0 müsste doch ca.2s ergeben? Habe 
ich da ein denkfehler? In der Realität komme ich auf 12s!
Wo habe ich meinen Denkfehler?

Danke schon mal für Hilfe.

Gruß
ramon
#1992354
Lesenswert?

Hallo Roman!

Ohne jetzt die Timer-Einstellungen im Code zu überprüfen:

1. 16bit sind 65536 Schritte, nicht 32768.
2. Die Abweichung wäre dann noch immer Faktor 3, also wie mit einem 8MHz 
Quarz. Vielleicht ist der von dir verwendete Quarz ein Oberton-Typ und 
der Controller kommt damit nicht zurecht.

mfg
Reinhard
OP #1992389
Lesenswert?

Stimmt, ich Simpel habe mich schon bei den den 16bit verrechnet ;-)

Es handelt sich um diesen Quarz:
http://www.reichelt.de/?ACTION=3;GROUP=B41;GROUPID=3173;ARTICLE=1876;SID=31TRnP7H8AAAIAAEYUZwM4bac4ccfc3e98a2d5bbc5305281d8716

24.000000MHz im 3.Oberton
Sieht wohl so aus und dann hätten wir auch den Faktor 3!
Wie funktioniert das dann mit den Obertönen. Wie wird das aufmoduliert!
Warum läuft der AT89S51 trozdem damit?
Wie sehr muss ich die anderen Schritte in die Berechnung mit 
einbeziehen?
Kann ich dann den Quarz als 8MHz-Typ verwenden?

Danke

Roman
#1992571
Lesenswert?

Jeder Quarz hat die Eigenschaft, auch auf Obertönen schwingen zu können.

Ein Quarz 24MHz, 3.Oberwelle ist so hergestellt, dass er bei Betrieb auf 
24 MHz genaue Frequenz erreicht.(das aber mit einem LC-Oszillator 
zusammen)

Zusammen mit der einfachen Oszillatorschaltung im Kontroller schwingt er 
auf der Grundwelle, 8MHz.

Das aber etwas "ungenau" (weniger als 1% Fehler).
Für die meisten Anwendungen ist diese Abweichung belanglos.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren