G
goowiz
Guest
Ciao, sto cercando di uscita a un numero di samsung UC-20102-GNARS una linea di 20 caratteri da un display LCD PIC16f684 microcontrollori.
Sto avendo alcuni problemi ...Ho cose cablati come segue in base al piedino #:
PIC ------------ LCD
14 ---------- --- GND
13
12
11
10 (C0) -------- D4
9 (C1) --------- D5
8 (C2) --------- D6
7 (C3) --------- D7
6
5
4
3 (A4) --------- RS
2 (A5) --------- Attiva
1 ---------------
5 v
Ecco il mio codice:
Codice:
# include <Temp Sensor.h>
# include <math.h># define CONSENTIRE PIN_A5
# define PIN_A4 RS
# define LCD_TYPE 1/ / Funzione / variabile globale Delcaration
void Inizializza (void);
InitLCD nullo (void);
void lcd_send_nibble (char c);
void lcd_send_data (char c);
void lcd_send_command (char comando);
int i;void main ()
(
SET_TRIS_A (0x01);setup_adc_ports (sAN0 | VSS_VDD);
setup_adc (ADC_CLOCK_INTERNAL);
setup_timer_0 (RTCC_INTERNAL | RTCC_DIV_1);
setup_timer_1 (T1_DISABLED);
setup_timer_2 (T2_DISABLED, 0,1);
setup_comparator (NC_NC_NC_NC);
setup_vref (FALSE);
setup_oscillator (OSC_INTRC);InitLCD ()InitLCD nullo (void)
(/ / Initialize LCD
output_low (attiva); / / Disattiva LCD
delay_ms (50); / / Ritardo di 50 msSET_TRIS_C (0x00); / / C Tutti i porti impostato per l'uscita
delay_ms (15); / / Ritardo per 15msfor (i = 1; i <= 3; i )
(
output_low (RS); / / Set LCD per set di istruzioni
output_c (3); / /
output_high (attiva); / / Abilita LCD
delay_us (5); / / Delay 5us
output_low (attiva); / / Disattiva LCD
delay_ms (5); / / Delay 5ms
)lcd_send_nibble (3); / /lcd_send_command (0x20); / / Set di Funzioni:
/ / Lunghezza 4bit dati
/ / 1 Line
/ / 5 x 7 Dot Formatolcd_send_command (0x0F); / / Display ON / OFF Control:
/ / Display SU
/ / Cursore su
/ / ON Blinklcd_send_command (0x01); / / Display Cancellalcd_send_command (0x05); / / Imposta modalità di immissione:
/ / Decrement uno
/ / Sì Maiusclcd_send_data (0x52); / / "R"
lcd_send_data (0x45); / / "E"
lcd_send_data (0x41); / / "A"
lcd_send_data (0x44); / / "D"
lcd_send_data (0x59); / / "Y"
)void lcd_send_nibble (char c)
(
output_c (c); / / Output carattere LCD
output_high (attiva); / / Abilita LCD
delay_us (5); / / Delay 5us
output_low (attiva); / / Disattiva LCD
)void lcd_send_command (char comando)
(
delay_ms (5); / / Delay 5ms
output_low (RS); / / Set LCD per set di istruzioni
lcd_send_nibble (comando>> 4); / / Invia ad alto bit
lcd_send_nibble (comando & 0x0F); / / Invia a basso bit
)void lcd_send_data (char c)
(
delay_ms (5); / / Delay 5ms
output_high (RS); / / Set LCD per set di dati
lcd_send_nibble (c>> 4); / / Invia ad alto bit
lcd_send_nibble (c & 0x0F); / / Invia a basso bit
)
Sto avendo alcuni problemi ...Ho cose cablati come segue in base al piedino #:
PIC ------------ LCD
14 ---------- --- GND
13
12
11
10 (C0) -------- D4
9 (C1) --------- D5
8 (C2) --------- D6
7 (C3) --------- D7
6
5
4
3 (A4) --------- RS
2 (A5) --------- Attiva
1 ---------------
5 v
Ecco il mio codice:
Codice:
# include <Temp Sensor.h>
# include <math.h># define CONSENTIRE PIN_A5
# define PIN_A4 RS
# define LCD_TYPE 1/ / Funzione / variabile globale Delcaration
void Inizializza (void);
InitLCD nullo (void);
void lcd_send_nibble (char c);
void lcd_send_data (char c);
void lcd_send_command (char comando);
int i;void main ()
(
SET_TRIS_A (0x01);setup_adc_ports (sAN0 | VSS_VDD);
setup_adc (ADC_CLOCK_INTERNAL);
setup_timer_0 (RTCC_INTERNAL | RTCC_DIV_1);
setup_timer_1 (T1_DISABLED);
setup_timer_2 (T2_DISABLED, 0,1);
setup_comparator (NC_NC_NC_NC);
setup_vref (FALSE);
setup_oscillator (OSC_INTRC);InitLCD ()InitLCD nullo (void)
(/ / Initialize LCD
output_low (attiva); / / Disattiva LCD
delay_ms (50); / / Ritardo di 50 msSET_TRIS_C (0x00); / / C Tutti i porti impostato per l'uscita
delay_ms (15); / / Ritardo per 15msfor (i = 1; i <= 3; i )
(
output_low (RS); / / Set LCD per set di istruzioni
output_c (3); / /
output_high (attiva); / / Abilita LCD
delay_us (5); / / Delay 5us
output_low (attiva); / / Disattiva LCD
delay_ms (5); / / Delay 5ms
)lcd_send_nibble (3); / /lcd_send_command (0x20); / / Set di Funzioni:
/ / Lunghezza 4bit dati
/ / 1 Line
/ / 5 x 7 Dot Formatolcd_send_command (0x0F); / / Display ON / OFF Control:
/ / Display SU
/ / Cursore su
/ / ON Blinklcd_send_command (0x01); / / Display Cancellalcd_send_command (0x05); / / Imposta modalità di immissione:
/ / Decrement uno
/ / Sì Maiusclcd_send_data (0x52); / / "R"
lcd_send_data (0x45); / / "E"
lcd_send_data (0x41); / / "A"
lcd_send_data (0x44); / / "D"
lcd_send_data (0x59); / / "Y"
)void lcd_send_nibble (char c)
(
output_c (c); / / Output carattere LCD
output_high (attiva); / / Abilita LCD
delay_us (5); / / Delay 5us
output_low (attiva); / / Disattiva LCD
)void lcd_send_command (char comando)
(
delay_ms (5); / / Delay 5ms
output_low (RS); / / Set LCD per set di istruzioni
lcd_send_nibble (comando>> 4); / / Invia ad alto bit
lcd_send_nibble (comando & 0x0F); / / Invia a basso bit
)void lcd_send_data (char c)
(
delay_ms (5); / / Delay 5ms
output_high (RS); / / Set LCD per set di dati
lcd_send_nibble (c>> 4); / / Invia ad alto bit
lcd_send_nibble (c & 0x0F); / / Invia a basso bit
)