| Autor | Nachricht |
|---|
bjerkely
Beitritt: 26. Mai 2004 Beiträge: 92 Geholfen: 1 Ort: Turkiye
| 17. Dezember 2005 20:52 HD44780 pic | | |
|
| Ich verwende Hallo-TECH PICC-Lite-Compiler, es wird mit einigen Beispiel-Routinen in C codes.The lcd.c Arbeit ganz gut für 16F84, aber wenn ich zu 16F877 mit der gleichen Pin-Belegung nichts promts auf dem LCD. Der Code ist unter ....
Danke im Voraus ... / * file * LCD-Schnittstelle Header-Datei * Siehe lcd.c für mehr Info * /
/ * Ein Byte auf dem LCD-schreiben in 4-Bit-Modus * /
extern void lcd_write (unsigned char);
/ * Klare und der Wohnung des LCD * /
extern void lcd_clear (void);
/ * Eine Zeichenfolge schreiben, um die LCD * /
extern void lcd_puts (const char * s);
/ * Gehen Sie auf die angegebene Position * /
extern void lcd_goto (unsigned char pos);
/ * Der LCD initialisieren - aufrufen, bevor irgend etwas anderes * /
extern void lcd_init (void);
extern void lcd_putch (char);
/ * Setzen Sie den Cursor-Position * /
lcd_cursor # define (x) lcd_write (((x) & 0x7F) | 0x80)
Lcd.c / * * LCD-Schnittstelle beispielsweise * Verwendet Routinen aus delay.c * Dieser Code wird Schnittstelle zu einem Standard-LCD-Controller * Wie die Hitachi HD44780. Er benutzt es in 4-Bit-Modus, mit * Die Hardware angeschlossen ist wie folgt (der Standard 14-Pin * LCD-Stecker verwendet wird): * * PORTB Bit 0-3 sind die LCD-Daten-Bits 4-7 (High Nibble verbunden) * PORTA Bit-2 ist mit dem LCD-RS-Eingang angeschlossen (Register auswählen) * PORTA Bit 3 ist der LCD-EN-Bit angeschlossen (Freigabe) * * Um diese Routinen, für die Port-I / O (TRISA, TRISB) legen Sie dann * Call lcd_init (), dann werden andere Routinen als erforderlich. * * /
# include <pic.h> # include "lcd.h" # include "delay.h"
static Bit LCD_RS @ ((unsigned) & PORTA * 8 2); / / Register wählen static Bit LCD_EN @ ((unsigned) & PORTA * 8 3); / / Enable
# LCD_STROBE ((LCD_EN = 1) definieren, (LCD_EN = 0))
/ * Ein Byte auf dem LCD-schreiben in 4-Bit-Modus * /
void lcd_write (unsigned char c) ( PORTB = (PORTB & 0xF0) | (c>> 4); LCD_STROBE; PORTB = (PORTB & 0xF0) | (c & 0x0F); LCD_STROBE; DelayUs (40); )
/ * * Klare und der Wohnung des LCD * /
void lcd_clear (void) ( LCD_RS = 0; lcd_write (0x1); DelayMs (2); )
/ * Eine Reihe von Zeichen schreiben, um die LCD * /
void lcd_puts (const char * s) ( LCD_RS = 1; / / Zeichen schreiben while (* s) lcd_write (* s ); )
/* write one character to the LCD */
void lcd_putch (char c) ( LCD_RS = 1; / / Zeichen schreiben PORTB = (PORTB & 0xF0) | (c>> 4); LCD_STROBE; PORTB = (PORTB & 0xF0) | (c & 0x0F); LCD_STROBE; DelayUs (40); )
/ * * Gehen Sie auf die angegebene Position * /
void lcd_goto (unsigned char pos) ( LCD_RS = 0; lcd_write (0x80 pos); )
/ * Initialisierung des LCD - in 4-Bit-Modus * Put /
void lcd_init (void) ( LCD_RS = 0; / / write Kontroll-Bytes DelayMs (15); / / power on delay PORTB = 0x3; / / Achtung! LCD_STROBE; DelayMs (5); LCD_STROBE; DelayUs (100); LCD_STROBE; DelayMs (5); PORTB = 0x2; / / Set 4-Bit-Modus LCD_STROBE; DelayUs (40); lcd_write (0x28); / / 4-Bit-Modus, 1 / 16 Zoll, 5x8 Font lcd_write (0x08); / / Display aus lcd_write (0x0F); / / display on, blink Curson auf lcd_write (0x06); / / Eingabemodus ) |
|
| Zurück zum Anfang | |
 |
C-Man
Beitritt: 19. Juli 2001 Posts: 1235 Geholfen: 73
| 18. Dezember 2005 10:58 Hitachi HD44780 | | |
|
| Auf der 16F877 PORTA ist auf Analog-Eingang zurückgesetzt eingeschaltet.
Wenn Sie es als digitale I / O, müssen Sie diese in Ihre init Routine stellen: ADCON1 = 6;
Prüfen Sie das Datenblatt ...
hope this helps and best regards |
|
| Zurück zum Anfang | |
 |
Jack / / ani
Beitritt: der 02. Dezember 2004 Beiträge: 467 Geholfen: 23
| 18. Dezember 2005 18:59 HD44780 2x16 | | |
|
| Hallo,
Ich brauche C-Routine in 8bit-Modus .... für 16F84! Jede Hilfe ...
Danke |
|
| Zurück zum Anfang | |
 |
arash_micro
Beitritt: 25. Januar 2005 Beiträge: 92
| 18. Dezember 2005 21:33 16F877 lcd | | |
|
| Hallo alle. Ich versuche, Voltmeter mit HT-picc auf lcd.I machen mein Problem lösen mit LCD but i cant Einsatz in 10-Bit-ADC. Können Sie mir helfen. Hier ist mein Projekt mit einigen Änderungen. |
|
| Zurück zum Anfang | |
 |
Google AdSense

| 18. Dezember 2005 21:33 Anzeigen | | |
|
|
|
|
| Zurück zum Anfang | |
 |
bjerkely
Beitritt: 26. Mai 2004 Beiträge: 92 Geholfen: 1 Ort: Turkiye
| 19. Dezember 2005 10:59 pic HD44780 | | |
|
| C-Man schrieb: | Zitat: | Wenn Sie es als digitale I / O, müssen Sie diese in Ihre init Routine stellen: ADCON1 = 6;
|
Ich habe die ADCON1 registrieren um 6, aber es ist nicht gut, nichts promts wieder ... Kann mir jemand ein Link zur Montage LCD-Routinen ... Grüße |
|
| Zurück zum Anfang | |
 |
C-Man
Beitritt: 19. Juli 2001 Posts: 1235 Geholfen: 73
| 19. Dezember 2005 11:51 Hitachi LCD 2x16 | | |
|
| Sind Sie sicher, dass die mico richtig funktioniert?
Was sind Ihre Sicherung Einstellungen?
Welcher Typ von Oszillator verwenden Sie?
Haben Sie versucht, ein simle blinkende LED Programm in Gang zu bringen?
Mit besten Grüßen |
|
| Zurück zum Anfang | |
 |
arash_micro
Beitritt: 25. Januar 2005 Beiträge: 92
| 19. Dezember 2005 22:23 Hitachi HD44780 LCD | | |
|
| Hallo alle. Ich mache 8-Kanal-Voltmeter mit HT-picc.it Werke gut in proteuse aber einige Fehler in real.it arbeitet mit 4MEG Quarz und wenn ich sie ändern zu 24 meg auch lcd funktioniert nicht. können Sie mir helfen, die xtal ändern. Danke
|
|
| Zurück zum Anfang | |
 |
bjerkely
Beitritt: 26. Mai 2004 Beiträge: 92 Geholfen: 1 Ort: Turkiye
| 20. Dezember 2005 1:54 Hitachi HD44780 LCD-Controller | | |
|
| Ich hatte das gleiche Problem, versuchen, den Kristall geben Sie Ihre Konfiguration ändern registrieren wie __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON
Das half mir ... |
|
| Zurück zum Anfang | |
 |
arash_micro
Beitritt: 25. Januar 2005 Beiträge: 92
| 20. Dezember 2005 10:00 16F877 LCD-Schnittstelle | | |
|
| | Ich habe ein anderes Problem now.when wende ich pic auf, wird die LCD nicht einschalten (in 90% der Zeit), gibt es eine andere Einstellung t Oset diese. |
|
| Zurück zum Anfang | |
 |
gidimiz
Beitritt: der 03. Februar 2005 Beiträge: 428 Geholfen: 77
| 20. Dezember 2005 16:01 4-Bit-LCD-C-Code für 16F877A | | |
|
| Hallo,
Es gibt mehrere Möglichkeiten, um zu sehen, wie Sie Ihre Probleme mit dem LCD zu lösen. 1. Go to Microchip Website und suchen Sie unter dem App-Anmerkung für LCD. Dort finden Sie einige Noten auf, wie Sie dies tun, zu sehen. Http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1490&filterID=416
2. Auch in der Microchip-Website finden Sie auf der PICDEM2 EV-Board-Verzeichnis und den Quellcode. Es ist mit dem F877 verwendet, und es zeigt die LCD-Anzeige. In der Bedienungsanleitung finden Sie auch die elektronische Schaltung, die Sie in Ihrem Design vergleichen, so dass der Ausgang wird Kiefern vermitteln muss. Direkter Link: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010072&part=DM163022
3. Last but not list, ist eine sehr nützliche Website (Es ist nicht Microchip-Website): www.microchipc.com
. ( NO points will be taken from you! ) Wenn Sie meine Antwort gefunden nützlich, klicken Sie auf die Schaltfläche, die mich. Helped sagt (NO Punkte werden von dir genommen werden!)
Viel Glück. |
|
| Zurück zum Anfang | |
 |