mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 80c537 + A/D - Wandler


Autor: reiti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tach Leute...

Also ich habe folgendes Problem.
Ich muss den AD-Wandler des 80c537 von 1-3V einstellen. die Ports  die
ich verwenden möchte sind einmal P8.1 und dann P8.0.
Mein Problem ist nu das ich keine Ahnung habe wie ich den proge...
Ich weiß net genau wie ich erstens mal die Ports (8.0 & 8.1) auswähle
und dann die Messung durchführe.
Hab im Datenblatt die MX... Bits in ADCON Registern gesehen jedoch weiß
ich nicht wie ich nun die genannten Ports auswähle.Ich würd ja für den
Port 7.2 (Beispiel) das ADCON0 = 0x02 setzen. Damit ist MX2 auf 1 und
der P7.2 ausgewählt.
Aber wie komme ich auf den 8.0 und 8.1?? Da muss ich im ADCON1 das MX3
mitsetzen oder?
Bitte helft mir konkret da ich das schon morgen für die Schule
brauche!!!!!

Vielen Dank,
Mfg Reiti

Autor: reiti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
He Leute ....

Kommt schon!!!!!!!!!! Es ist echt dringend!!!!!!

`Mfg reiti

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab alle uralt ROMless 8051-Saurier in den Müll geschmissen, als
Atmel 1995 seine Flash-8051 rausbrachte.

Ich weiß also nur, wie man beim AT89C51CC01 den ADC verwendet.


Peter

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier mal ein kleines Beispiel
Die Funktion ist ewas schlauer als das, was Du vorgibst, weil Sie den
Offset auf 1,25V einstellt und somit eine theoretische 10Bit-Wandlung
schafft, was aber unerheblich ist, weil Du sehen kannst wie man die
Register anspricht und die Ports auswählt.

Das Datenblatt vom 535 ist in dieser Frage etwas schöner wenn ich mich
recht erinnere.

/******************* X - Koordinate einlesen
*************************/
  void read_x()
    {
    int dummy = -1;          /* Dummy - Variable erzeugen
*/
    istwert_x = -1;          /* Wert verf„lschen
*/
    ADCON0 = 0;              /* Eingang ausw„hlen
*/
    ADCON1 = 0;              /* Eingang ausw„hlen
*/
    DAPR   = 0;              /* ADC starten
*/
    while (istwert_x == -1)  /* solange der Wert ungltig ist ...
*/
      {
      Watchdog();
      if (BSY == 0 && dummy != -1)
   istwert_x = (1.25 / 255.0 * ADDAT + offset) * (x_poti / 5);
      if (BSY == 0 && dummy == -1)
   {
   dummy = ADDAT;      /* zuweisen sobald ADC fertig */
   feinabgleich();
   }
      }
    }



/******************* Feinabgleich ADC
********************************/
  void feinabgleich()
    {
  Watchdog();
  if (ADDAT < 53 )
      {DAPR = 64; offset = 0.0;}
  else if (ADDAT > 42 && ADDAT < 85)
      {DAPR = 98; offset = 0.625;}
  else if (ADDAT > 74 && ADDAT < 117)
      {DAPR = 132; offset = 1.25;}
  else if (ADDAT > 106 && ADDAT < 149)
      {DAPR = 166; offset = 1.875;}
  else if (ADDAT > 138 && ADDAT < 181)
      {DAPR = 200; offset = 2.5;}
  else if (ADDAT > 170 && ADDAT < 213)
      {DAPR = 234; offset = 3.125;}
  else if (ADDAT > 202)
      {DAPR = 12;  offset = 3.75;}
    }

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.