Forum: Mikrocontroller und Digitale Elektronik Anfänger braucht Ideen


von raoul4 (Gast)


Lesenswert?

hallo,
ich saß heute vor meinem at90s8535 und habe mir überlegt, was ich denn
nun bauen/löten soll. ich kann ihn schon programmieren und habe 2
LED's und einen Taster dran. :-) bin schon ganz schön weit!!! :-)
also zu meiner frage:
was soll ich denn nun noch für eine schaltung dranlöten? ich brauche
ideen!!!! irgendetwas leichtes zum anfang. was aber auch lehrt und spaß
macht. habt ihr vorschläge?

mfg raoul4

von Torsten (Gast)


Lesenswert?

Hmm, ich würd mit einem LCD Display weitermachen, das kann man
vielfältig nutzen.
Und dann evtl. noch einen Temperatursensor odersowas...


MfG Torsten

von raoul4 (Gast)


Lesenswert?

ganau! so einen temperatursensor habe ich mir gestern bei reichelt
bestellt. und wie kann ich den dann abfragen? das war so ein billiger
für 77 cent. ich muss wohl den wiederstand messen. also sagen wir mal
glatte 5 volt durch den sensor und dann zu so einem AD wandler und
messen, oder? ich hatte auch schon mal ein LCD dran und es mit bascom
angesteuert. is ja der hammer wie groß der code für eine zeile text auf
dem display wird. ich lerne jetzt C, aber weiß noch nicht wie ich da im
4 bit modus ein LCD ansteuere.

mfg raoul4

von Sebastian Wille (Gast)


Lesenswert?

Hi,

Du mußt zum Widerstand-Messen noch einen Widerstand neben Deinen NTC
(Temperaturabhängiger Widerstand, Dein Temperatursensor) einbauen, also
so:

VCC---NTC---Widerstand---GND
    |     |
    Messen

Sebastian

von crazy horse (Gast)


Lesenswert?

Lasst ihn mal lieber mit LED (Siebensegmentanzeigen) anfangen, LCD ist
schon ein bisschen komplexer.

von raoul4 (Gast)


Lesenswert?

ja und wie kann ich nun ein display im 4 bit modus in C ansprechen?

von ape (Gast)


Lesenswert?

mhmm hattest du nichma irgendwo erwähnt das du auch codevision benutzt?
der hat lcd-rouinen.

von raoul4 (Gast)


Lesenswert?

danke für die antworten.
aber, in der lcd routine steht:

BEFORE #include -ING THIS FILE YOU
  MUST DECLARE THE I/O ADDRESS OF THE
  DATA REGISTER OF THE PORT AT WHICH
  THE LCD IS CONNECTED!

  EXAMPLE FOR PORTB:

    #asm
        .equ __lcd_port=0x18
    #endasm
    #include <lcd.h>
.............

wenn ich jetzt __lcd_port nu mit 0x18 deklariere, dann weiß doch das
programm nicht, an welchen pinns die (ich glaube es waren 5) kabel
angeschlossen sind, oder? ich verstehe das nicht!!
helft mir bitte.

mfg raoul4

von ape (Gast)


Lesenswert?

da gibs doch sonen wunderschönen code wizzard da gehste einfach nur auf
LCD stellst in nem Pulldownmenü ein an welchem Port das hängen soll und
dann zeigt er dir darunter an welchen LCD Pin du an welchen Pin vom
Prozessor hängen sollst.

von ape (Gast)


Lesenswert?

wenn du dann unter File (im Fenster vom Code Wizzard) auf Generate Save
and Exit drückst generiert er dir auch den Sourcecode wo alles
definiert ist und so.

von raoul4 (Gast)


Lesenswert?

hallo,
hab jetzt ein lcd drangelötet und kann es auch (fast) ansteuern. ich
hab zwar ein einzeiliges display mit 16 zeichen (von reichelt, war
ziemlich billig), aber es besteht irgendwie aus 2 displays mit jeweils
8 zeichen. (hab ich mal erfahren, mit bascom konnte ich es vollständig
ansteuern) mit der lcd routine von codevision (lcd.h) geht es nicht
mein display anzusteuern. ich schaffe immer nur die ersten 8 zeichen.
was soll ich jetzt machen???

mfg raoul4

von Stefan Pfister (Gast)


Lesenswert?

Dann schreibst du das Ram des LCD mal voll mit Zahlen, oder besser mit
einer fortlaufenden Reihe, also auf speichertelle 0 eine 1 auf speicher
stelle 15 eine 16 etc, dann sollte auf dem ganzen LCD zumindest
komische Zeichen zu sehen sein. Dann nimmst du das 8. Zeichen (das
erste der zweiten Hälfte) und schaust auf der ASCII Tabelle nach, was
das für eine Zahl ist und Schwups, hat man die Speicherstelle wo für
dieses Zeichen verantwortlich ist, das 9. 10. etc sollte gleich danach
kommen...

Sollte eigentlich funktionieren oder?

Grüsse

von raoul4 (Gast)


Angehängte Dateien:

Lesenswert?

ja und wie kann ich das ram vollschreiben? im anahng das datneblatt.

mfg raoul4

von schatta (Gast)


Lesenswert?

Hi,

wenn du codevision nimmst gibts den befehl

gotoxy(x,y);

da tuste einfach bei y 1 rein und schon bist du in der zweiten zeile,
also bei deinem display in den hinteren 8 zeichen. hab ich auch so
gemacht...

bsp:

gotoxy(0,1);    //zweite zeile
lcd_put bla bla bla....

mfG,
thomas

von raoul4 (Gast)


Lesenswert?

danke

von raoul4 (Gast)


Lesenswert?

bei mir geht lcd put nicht. hier mal die include datei:





/* LCD driver routines

  CodeVisionAVR C Compiler
  (C) 1998-2003 Pavel Haiduc, HP InfoTech S.R.L.

  BEFORE #include -ING THIS FILE YOU
  MUST DECLARE THE I/O ADDRESS OF THE
  DATA REGISTER OF THE PORT AT WHICH
  THE LCD IS CONNECTED!

  EXAMPLE FOR PORTB:

    #asm
        .equ __lcd_port=0x18
    #endasm
    #include <lcd.h>

*/

#ifndef LCD_INCLUDED
#define LCD_INCLUDED

#pragma used+

void _lcd_ready(void);
void _lcd_write_data(unsigned char data);

// write a byte to the LCD character generator or display RAM
void lcd_write_byte(unsigned char addr, unsigned char data);

// read a byte from the LCD character generator or display RAM
unsigned char lcd_read_byte(unsigned char addr);

// set the LCD display position  x=0..39 y=0..3
void lcd_gotoxy(unsigned char x, unsigned char y);

// clear the LCD
void lcd_clear(void);
void lcd_putchar(char c);

// write the string str located in SRAM to the LCD
void lcd_puts(char *str);

// write the string str located in FLASH to the LCD
void lcd_putsf(char flash *str);

// initialize the LCD controller
unsigned char lcd_init(unsigned char lcd_columns);

#pragma used-
#pragma library lcd.lib

#endif





ich weiß nicht wie ich lcd_puts(char *str) benutzen soll. kann mir wer
ein beispiel schreiben? (nur diese eine zeile!)


mfg raoul4

von schatta (Gast)


Lesenswert?

Hi,


das "put" stand nur ls platzhalter für einen von den ganzen
putbefehlen!

versuchs ma mit putsf...

einfach:

lcd_putsf("Hallo");

bei mir gehts zumindest!

mfG,
schatta

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
Noch kein Account? Hier anmelden.