Mit MOV P2, #FFh kann ich z.B. alle Pins am Port zwei auf 1 setzen. Wie wende ich aber den Befehl SETB an einzelnen Pins an? Meine IDE (MIDE) meckert, wenn ich SETB P2.1 schreibe. Liegt es an der IDE oder geht das generell anders?
Moin, SETB P2.1 ist syntaktisch korrekt. Und wech...
Dann existieren diese "Variablen" nicht in der Bibliothek. Ich könnte sie ja selber hinzufügen, aber ich kenne die Adressen der Pins nicht.
Vllt damit? DECLARE REG LITERALLY 'REGISTER'; /********* BYTE REGISTERS ********/ DECLARE P0 BYTE AT(80H) REG, P1 BYTE AT(90H) REG, P2 BYTE AT(0A0H) REG, P3 BYTE AT(0B0H) REG;
Ich lade mir gerade die kostenlose Version von RIDE runter. Mit der sollte es gehen.
> Dann existieren diese "Variablen" nicht in der Bibliothek.
Die existieren!! aber lade dir ruhig was neues und erspare dir das
Denken.
Hmmm, vllt muß man irgendwo noch den Typ der MCU einstellen. Gibt ja diverse Ausführungen. Und wech...
Na klar, sie existieren ... Aber scheinbar in einer anderen Dimension. Oder hast du eine andere Erklärung, warum MIDE (oder der Compiler) Px.x nicht verstehen?
; AT89S8252 processor definition file ; =================================== P0 DATA 080H SP DATA 081H DP0L DATA 082H DP0H DATA 083H DP1L DATA 084H DP1H DATA 085H SPDR DATA 086H PCON DATA 087H TCON DATA 088H TMOD DATA 089H TL0 DATA 08AH TL1 DATA 08BH TH0 DATA 08CH TH1 DATA 08DH P1 DATA 090H WMCON DATA 096H SCON DATA 098H SBUF DATA 099H P2 DATA 0A0H IE DATA 0A8H SPSR DATA 0AAH P3 DATA 0B0H IP DATA 0B8H T2CON DATA 0C8H T2MOD DATA 0C9H RCAP2L DATA 0CAH RCAP2H DATA 0CBH TL2 DATA 0CCH TH2 DATA 0CDH PSW DATA 0D0H SPCR DATA 0D5H ACC DATA 0E0H B DATA 0F0H IT0 BIT 088H IE0 BIT 089H IT1 BIT 08AH IE1 BIT 08BH TR0 BIT 08CH TF0 BIT 08DH TR1 BIT 08EH TF1 BIT 08FH T2 BIT 090H T2EX BIT 091H SS BIT 094H MOSI BIT 095H MISO BIT 096H SCK BIT 097H RI BIT 098H TI BIT 099H RB8 BIT 09AH TB8 BIT 09BH REN BIT 09CH SM2 BIT 09DH SM1 BIT 09EH SM0 BIT 09FH EX0 BIT 0A8H ET0 BIT 0A9H EX1 BIT 0AAH ET1 BIT 0ABH ES BIT 0ACH ET2 BIT 0ADH EA BIT 0AFH RXD BIT 0B0H TXD BIT 0B1H INT0 BIT 0B2H INT1 BIT 0B3H T0 BIT 0B4H T1 BIT 0B5H WR BIT 0B6H RD BIT 0B7H PX0 BIT 0B8H PT0 BIT 0B9H PX1 BIT 0BAH PT1 BIT 0BBH PS BIT 0BCH PT2 BIT 0BDH CPRL2 BIT 0C8H CT2 BIT 0C9H TR2 BIT 0CAH EXEN2 BIT 0CBH TCLK BIT 0CCH RCLK BIT 0CDH EXF2 BIT 0CEH TF2 BIT 0CFH P BIT 0D0H OV BIT 0D2H RS0 BIT 0D3H RS1 BIT 0D4H F0 BIT 0D5H AC BIT 0D6H CY BIT 0D7H RESET CODE 000H EXTI0 CODE 003H TIMER0 CODE 00BH EXTI1 CODE 013H TIMER1 CODE 01BH SINT CODE 023H TIMER2 CODE 02BH
$NOMOD51 $INCLUDE (89S8252.MCU) hast du es so gemacht ?
Also in MIDE geht das Einbinden anders. Da muss man im Menü eine Bibliothek auswählen. Wenn ich das nicht machen, versteht MIDE nicht mal P2, ist aber auch klar. Mit RIDE funktioniert das jetzt jedenfalls ohne Probleme. Lag also doch an MIDE.
Nein, es geht so wie ich es dir gesagt habe. Dann in Preferences "c:\mide\asem51" eintragen.
Stimmt, jetzt packts auch MIDE. Aber ich habe mittlerweile den Debugger in RIDE ins Herz geschlossen. Was bedeutet die Anweisung $NOMOD51?
Das er nicht den Urvater 8x51 verwendet sondern den von dir gewählten Typ.
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.