question de base concernant en langage assembleur 8051

M

malli_1729

Guest
Salut!

Iam nouveaux microcontrôleurs ..............................
ce petit problème est que ...mais, IAM élaborer le problème ....
alors, s'il vous plaît lire patiemment ..............En langage assembleur, IAM en utilisant les commandes MOVX A, @ DPTR;

En fait ce que je sais, c'est:
quand nous voulons opération de lecture que nous devrions envoyer CE #, ALE, .. etc .....
mais simplement avec cette commande nous sommes la lecture des données,

lorsque nous avons fait cette commande, ils envoient tous ces signaux à l'interne ou pas ................

Je veux l'explication ,,,,,

S'il vous plaît m'aider .......................
S'il vous plaît m'aider .......................

 
Les signaux de commande tels que / RD et / WR sont générés automatiquement par le matériel de 8051, lors de l'exécution MOVX A, @ @ DPTR et MOVX DPTR, A, respectivement ..
Le signal ALE est toujours généré, vous wheter le veuille ou non ..Et l'/ CE (permettre à puce) broches de la RAM externe est généralement connectée à 0V (GND) sauf si vous avez plus de RAM dans le système et vous devez sélectionner celui que vous souhaitez activer ..voir photo ci-dessous ..

Cordialement,
IANP
Désolé, mais vous avez besoin de connexion pour voir cette pièce jointe

 
Merci IANP u ...........

IAM avoir à nouveau petit problème .....................

chaque fois que nous sommes la lecture des données de la RAM ou ROM ..,,here we are putting it directly to ground...ok

1er WE permettra à la puce, en donnant la puce signal de validation,
nous sommes ici de le mettre directement à la terre ... ok
(Active low) to enable the output buffers, after reading the data we will make output enable high so,that datalines will float..

on envoie la sortie signal de validation
(basse active) pour permettre à la tampons de sortie, après la lecture des données nous ferons de sortie élevée pour permettre que des lignes de données vont flotter ..

pour chaque opération de lecture en utilisant MOVX A, @ DPTR ...
nous faisons cette opération ..

is becoming low for sometime and then becoming high...............

Je veux dire la production permettre
devient faible pendant un certain temps, puis de plus en haute ...............

Parce que, j'ai besoin de toutes ces choses pour l'interfaçage avec AT29c256 AT89s51 ....
dans AT29c256 ils ont donné qu'à un moment nous avons de donner à la 64bytes pour la programmation et pour chaque octet de 64 octets, nous avons à faire à puce permettra élevé à faible ................. ........, sorte que «pourquoi IAM posant ces questions, par la programmation que j'ai à faire, ou ce sera fait en interne, je ne sais pas .............. .......s'il vous plaît aidez-moi ..........................

 
Peut-être vous pouvez essayer ceci:
Se connecter / RD du 89S52 de / OE du 29C256 (pour le fonctionnement normal LIRE) ..
reading cycle with DPTR loaded with FFFFh ..

Après avoir écrit une page de 64 octets effectuer un cycle de lecture mannequin

avec DPTR chargé de FFFFh ..Cela devrait vous donner un haut-de-Bas (et de retour au haut) sur la transition / OE broches ..

Cordialement,
IANP

 
Merci IANP u ...........

Thank U pour répondre ...........

qu'il a quelques problèmes ...........Après avoir écrit 64 sup octets dit de faire le mannequin opération d'écriture à l'emplacement FFFFh ..

En fait, dans l'octet de fonctionnement du programme 64 pour tous les besoins écrit i octets d'avoir élevé à la transition à faible sur la puce permettent broches .......................... ..........

Je veux essayer comme ceci:

Je vais connecter un peu de port1 (ici Iam utilisant P1.1) à la puce Activer le code PIN, dans cet axe je vais envoyer les signaux correspondant (élevé à faible (1 à 0)) sur cette broche dans le processus d'écriture.IAM donne mon idée comme ça dans le code ......
fonction progarm flash:

flash_prog vide (unsigned char * xdata addr, unsigned char * valeur)(addr = addr;
flash_cmd (0xA0);flash_wr (adr, valeur);while (flash_rd (adr)! = valeur [0]);)void flash_cmd (unsigned char cmd)(unsigned char * xdata ad1;unsigned char * ad2 xdata;ad1 = 0x5555;AD2 = 0x2AAA;
* Ad1 0xAA =;* Ad2 = 0x55;* Ad1 = cmd;
)flash_wr vide (unsigned char * xdata addr, unsigned char * val)(int i;P1.1 = 1;for (i = 0; i <64; i )(P1.1 = 0;* (Addr ) = valeur ;P1.1 = 1))unsigned char flash_rd (unsigned char * xdata addr)(* retour addr;)

quand je veux programme que je veux envoyer la commande de contrôle dans la feuille, de sorte, le commandement premier contrôle pas de problème,,,, dans le flash_wr (addr, données)

chaque fois que je veux écrire IAM première mise à P1.1 = 1, puis avant d'écrire IAM faire P1.1 = 0; alors que à peu la transition se produit haute pour l'écriture et, ensuite, assurer P1.1 = 1 haut pour écrire la prochaine.entre les deux, j'ai ajouter délai ,..........
Je vais ajouter plus tard, c'est la façon dont IAM essayer ....................................

s'il est possible ou non, je ne sais pas ..........

 
Si vous voulez être en mesure pour lire et écrire, vous devriez envisager de combiner les deux signaux (P1.1 et / RD) en un seul en les nourrissant d'une porte ET et connectez la sortie de la 29C256 de / OE broches ..

La meilleure façon de savoir si cela fonctionne idée, ou non, est d'écrire un code court et juste de le tester ..

Rgards,
IANP

 
pour avoide de tout et de limiter buttleneck 8051 permet de se connecter à une mémoire externe (jusqu'à 64 ko) à l'utilisation de l'évaluation environnementale (accès externe) et PSEN (stockage de programmes permettent).utilisation instructin MOVX pour aborder memory.with externes @ dptr les données vont dans l'adresse de dptr (exemple: si dptr = 0100h sorte que les données, sauf dans 0100h 0100h ou de données dans l'enregistrer dans un).

 

Welcome to EDABoard.com

Sponsor

Back
Top