pspsuceava Postat Martie 16, 2014 Autor Partajează Postat Martie 16, 2014 Am facut deja asta la inceput, iti dai seama... m-am asigurat ca totul e ok, am verificat si firele sa nu fie rupte si tot.AM REUSIT !!! Sunt fericit!!! Link spre comentariu
Ionut Pavel Postat Martie 16, 2014 Partajează Postat Martie 16, 2014 Care era problema pana la urma? Link spre comentariu
pspsuceava Postat Martie 16, 2014 Autor Partajează Postat Martie 16, 2014 Nu imi dau seama, am refacut toata partea hardware, si am trecut de la XC8 cu MPLAB la mikroc, dar oirucm am de gand sa revin, sa citesc ca lumea specificatiile hd47780, sa vad exact cum trebuie fiecare functie facuta si sa fac o routina de afisare pe display misto si usor de priceput.dar momentan ma bucur de succesul asta. Link spre comentariu
MihaiStoica Postat Martie 19, 2014 Partajează Postat Martie 19, 2014 In documentatia PICC pentru PIC16 exista un exemplu. ATENTIE ! portul de date este PORTB iar pentru RS,EN,R/W au utilizat biti din PORTAFunctioneaza, cu mici modificari datorate faptului la LCD-ul este puturosUite codul#include #include "lcd.h"#define LCD_RS RA3#define LCD_RW RA2#define LCD_EN RA1#define LCD_DATA PORTB#define LCD_STROBE() ((LCD_EN = 1),(LCD_EN=0))void strobe(void){ LCD_EN = 1; __delay_us(40); LCD_EN = 0;}/* write a byte to the LCD in 4 bit mode */void lcd_write(unsigned char c){ __delay_us(40); LCD_DATA = ( ( c >> 4 ) & 0x0F ); // high nibble LCD_STROBE(); LCD_DATA = ( c & 0x0F ); // low nibble LCD_STROBE();}/* * Clear and home the LCD */void lcd_clear(void){ LCD_RS = 0; // write command lcd_write(0x1); __delay_ms(2);}/* write a string of chars to the LCD */void lcd_puts(const char *s){ LCD_RS = 1; // write characters while(*s) lcd_write(*s++);}/* write one character to the LCD */void lcd_putch(char c){ LCD_RS = 1; // write characters lcd_write( c );}/* * Go to the specified position */void lcd_goto(unsigned char pos){ LCD_RS = 0; // write command lcd_write(0x80+pos);} /* initialise the LCD - put into 4 bit mode */void lcd_init(){ char init_value = 0x03; LCD_RS = 0; // write command LCD_EN = 0; LCD_RW = 0; __delay_ms(100); // wait 15mSec after power applied, LCD_DATA = init_value; //LCD_STROBE(); strobe(); __delay_ms(5); //LCD_STROBE(); strobe(); __delay_us(200); //LCD_STROBE(); strobe(); __delay_us(200); LCD_DATA = 0x02; // Four bit mode //LCD_STROBE(); strobe(); lcd_write(0x28); // Set interface length lcd_write(0x0C); // Display On, Cursor Off, Cursor Not Blink lcd_clear(); // Clear screen lcd_write(0x06); // Set entry Mode}M-am ambitionat si am scris cod pentru un singur port, atat datele cat si semnalele de control provin dintr-un singur port Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum