www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger braucht Ideen


Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

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

Autor: raoul4 (Gast)
Datum:

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

Autor: ape (Gast)
Datum:

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

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ape (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ape (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan Pfister (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: raoul4 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ja und wie kann ich das ram vollschreiben? im anahng das datneblatt.

mfg raoul4

Autor: schatta (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: schatta (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.