8051 wavw carrés

O

osoenbolsa

Guest
Je veux générer des oscillations d'ondes carrées en utilisant uc8051 avec le cycle de droit fixe-dire 50%, mais je veux être en mesure de changer la fréquence d'oscillation de 1Hz à 2 kHz en tapant la valeur désirée et faire l'générer uc il.Oscillateur à quartz 12MHz est utilisé.pls, j'ai besoin d'aide sur la façon de le faire.
J'utilise le code ASM.Merci à tous.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Vous devez utiliser la minuterie interrompre ...

Donc d'abord calculer la valeur des registres TH et TL pour la fréquence requise ..
Et activer interruption d'horloge ...

Dans la boucle d'interruption basculer tout un port broches ..
des moyens pour faire des temps étranges port élevé de broches et de même le temps faire peu ...

Vous voulez changer de fréquence en utilisant la clé connecté au port broches ..
Entre-temps alors également vérifier l'état des clés et changer la valeur de minuterie vous inscrire en fonction de la touche pressée .....

-Vipul

 
osoenbolsa Cher,

Si vous avez besoin de faire varier la fréquence du minimum au maximum, le lien doit être modifiée à partir du maximum au minimum.

Comme Vipul dit que vous devez utiliser la minuterie interrompre la génération de signaux parfait.

Essayez-le avec l'utilisation d'interruptions, d'autre si vous le trouvez difficile de tenter avec les routines de retard.

Pour 1 Khz génération, le temps sera, et nous OFF 500US 500 sur.Mieux vous écrivez un délai de 250us rutine, et appeler les routines que le retard frequencyyou bien besoin de générer de multiles de 250us.

, Pour 1 KHz génération, Set 1 ^ 0 à 1 et appelez 250us retard par exemple deux fois, CLR 1 ^ 0 à 0 et 250us appel pour cause de retard à deux reprises.Faites cela en permanence.Mais le meilleur moyen est de générer des ondes carrées avec des routines d'interruption.

en ce qui concerne,
Vikeee ..

 
Merci à tous.

J'ai utiliser les routines d'interruption.Mais ma question est de savoir comment obtenir les valeurs de TL0, th0 et R0 (3 octets pour les basses fréquences) par programme.

Par exemple:
• Je choisis un 1Hz clavier -> T / 2 = 500,000 nous -> th0 = 3c; TL0 potasse = R3 = 10 (10 * 5000us)
• Si je sélectionne une nouvelle fréquence de 1500Hz -> T / 2 = 333 US -> TH0 = FEH; TL0 = B2H; R3 = 0

Comment puis-je obtenir, par le programme en assembleur, les valeurs de th0, TL0 et R3?(Avec une table avec les valeurs de 2000, la division ...)

Merci à tous.

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 

Welcome to EDABoard.com

Sponsor

Back
Top