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;
ok, mit sfr daten_port= 0xb0; gehts natürlich. sorry für den verschwendeten platz.
pass aber beim 89C2051 auf....der hat im port 3 nicht alle tassen im schrank....pin p3.6 existiert nicht (extern)
"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
"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
@ 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 ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.