mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 89c2051 port beschreiben :(


Autor: MarkoMarko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

es ist sicher keine große sache den port eines 89c2051 zu beschreiben.
ich hatte bisher 80c517a programmiert. da hatte der syntax
funktioniert( da konnte ich aber P3 anstatt 0xb0 angeben)

problem:

ich möchte den port 3 mit dem text - daten_port - definieren. doch das
will nicht so recht. hier ein auszug aus'm code
kann jemand sagen, was ich falsch mache?

---------------------------------------------------------------------

#define DISP_BEFEHL 0
#define DISP_SCHREIBEN 0
#define  daten_port  0xb0   //??????????

sbit DISP_enable=0xb4;
sbit RS = 0xb5;
sbit RW = 0xb7;

wait(int tm)
{
  for(tm;tm>=0;tm--);
}


initial_lcd()
{
    DISP_enable=0;
    wait(2000);
    daten_port=0x30;      //??????? Interface auf 8bit
    RS=DISP_BEFEHL; RW=DISP_SCHREIBEN;
    DISP_enable=1;_nop_();DISP_enable=0;
    wait(500);
    DISP_enable=1;_nop_();DISP_enable=0;
    wait (100);
    DISP_enable=1;_nop_();DISP_enable=0;

    daten_port = 0x20;     //????? Interface auf 4bit
    DISP_enable=1;_nop_();DISP_enable=0;

Autor: MarkoMarko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok,

mit

sfr  daten_port= 0xb0;

gehts natürlich.

sorry für den verschwendeten platz.

Autor: edi-edi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pass aber beim 89C2051 auf....der hat im port 3 nicht alle tassen im
schrank....pin p3.6 existiert nicht (extern)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"da konnte ich aber P3 anstatt 0xb0 angeben"

Das geht auch unter C.
Nur mußt Du natürlich das entsprechende Include angeben, z.B.:

#include<reg2051.h>

Der Compiler soll ja nicht nur einen 8051 können, sondern alle etwa 600
Typen.


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"kann jemand sagen, was ich falsch mache?"

Wo hast Du denn die Datenleitungen angeschlossen, an P3.3-P3.0 ?

Dann dürfte P3 = 0x30; doch ziemlich witzlos sein.


Peter

Autor: MarkoMarko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ peter

es muss natürlich heißen P3=0x03; schon erkannt ;)

die include habe ich AT89x051.H oder auch AT892051.H

bei beiden geht es nicht mit P3=...

auszu aus dem header

/*------------------------------------------------
P3 Bit Registers (Mnemonics & Ports)
------------------------------------------------*/
sbit P3_0 = 0xB0;
sbit P3_1 = 0xB1;
sbit P3_2 = 0xB2;
sbit P3_3 = 0xB3;
sbit P3_4 = 0xB4;
sbit P3_5 = 0xB5;


@ edi edi

jupp, das hat er wohl ;)

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.