PIC16F684 output a LCD

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

)
 

Welcome to EDABoard.com

Sponsor

Back
Top