G
goowiz
Guest
Hola, estic tractant de números de sortida a un samsung UC-20102-GNARS una línia de 20 caràcters amb pantalla LCD de PIC16f684 un microcontrolador.
Estic tenint alguns problemes ...Tinc coses per cable de la següent manera d'acord amb el PIN:
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) --------- Habilitació
1 ---------------
5 v
Aquí està el meu codi:
Codi:
# Include <Temp Sensor.h>
# Include <math.h># Defineix permetre PIN_A5
# Define RS PIN_A4
# Defineix LCD_TYPE 1/ / Funció / variable global declaració en
Iniciar nul (void);
InitLCD nul (void);
buit lcd_send_nibble (char c);
buit lcd_send_data (char c);
buit lcd_send_command (char comanda);
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 nul (void)
(/ / Inicialitzar LCD
output_low (ENABLE); / / Desactiva LCD
delay_ms (50) / / Retard de 50msSET_TRIS_C (0x00); / / C Tots els ports sèrie per a la sortida de
delay_ms (15) / / Retard de 15 msfor (i = 1; i <= 3; i)
(
output_low (RS) / / Conjunt de LCD per conjunt d'instruccions
output_c (3) / /
output_high (ENABLE); / / Habilitació LCD
delay_us (5) / / Retard 5us
output_low (ENABLE); / / Desactiva LCD
delay_ms (5) / / 5 ms de retard
)lcd_send_nibble (3) / /lcd_send_command (0x20); / / Conjunt de funcions:
/ / 4bit dades de longitud
/ / 1 línia
/ / 5 x 7 punts Formatlcd_send_command (0x0F); / / Display ON / OFF Control:
/ / Mostra SOBRE
/ / Cursor a
/ / EN parpelleiglcd_send_command (0x01); / / Esborrar la pantallalcd_send_command (0x05) / / Entrada Mode CONFIG:
/ / Decrement un
/ / Sí Majlcd_send_data (0x52) / / "R"
lcd_send_data (0x45) / / "E"
lcd_send_data (0x41) / / "A"
lcd_send_data (0x44) / / "D"
lcd_send_data (0x59) / / "I"
)buit lcd_send_nibble (char c)
(
output_c (c); / / Producte de caràcter LCD
output_high (ENABLE); / / Habilitació LCD
delay_us (5) / / Retard 5us
output_low (ENABLE); / / Desactiva LCD
)buit lcd_send_command (char comanda)
(
delay_ms (5) / / 5 ms de retard
output_low (RS) / / Conjunt de LCD per conjunt d'instruccions
lcd_send_nibble (comanda>> 4); / / Send alta bits
lcd_send_nibble (comanda & 0x0F); / / Send baixa bits
)buit lcd_send_data (char c)
(
delay_ms (5) / / 5 ms de retard
output_high (RS); / / Establir la LCD per dades
lcd_send_nibble (c>> 4); / / Send alta bits
lcd_send_nibble (c & 0x0F); / / Send baixa bits
)
Estic tenint alguns problemes ...Tinc coses per cable de la següent manera d'acord amb el PIN:
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) --------- Habilitació
1 ---------------
5 v
Aquí està el meu codi:
Codi:
# Include <Temp Sensor.h>
# Include <math.h># Defineix permetre PIN_A5
# Define RS PIN_A4
# Defineix LCD_TYPE 1/ / Funció / variable global declaració en
Iniciar nul (void);
InitLCD nul (void);
buit lcd_send_nibble (char c);
buit lcd_send_data (char c);
buit lcd_send_command (char comanda);
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 ()
(/ / Inicialitzar LCD
output_low (ENABLE); / / Desactiva LCD
delay_ms (50) / / Retard de 50msSET_TRIS_C (0x00); / / C Tots els ports sèrie per a la sortida de
delay_ms (15) / / Retard de 15 msfor (i = 1; i <= 3; i)
(
output_low (RS) / / Conjunt de LCD per conjunt d'instruccions
output_c (3) / /
output_high (ENABLE); / / Habilitació LCD
delay_us (5) / / Retard 5us
output_low (ENABLE); / / Desactiva LCD
delay_ms (5) / / 5 ms de retard
)lcd_send_nibble (3) / /lcd_send_command (0x20); / / Conjunt de funcions:
/ / 4bit dades de longitud
/ / 1 línia
/ / 5 x 7 punts Formatlcd_send_command (0x0F); / / Display ON / OFF Control:
/ / Mostra SOBRE
/ / Cursor a
/ / EN parpelleiglcd_send_command (0x01); / / Esborrar la pantallalcd_send_command (0x05) / / Entrada Mode CONFIG:
/ / Decrement un
/ / Sí Majlcd_send_data (0x52) / / "R"
lcd_send_data (0x45) / / "E"
lcd_send_data (0x41) / / "A"
lcd_send_data (0x44) / / "D"
lcd_send_data (0x59) / / "I"
)buit lcd_send_nibble (char c)
(
output_c (c); / / Producte de caràcter LCD
output_high (ENABLE); / / Habilitació LCD
delay_us (5) / / Retard 5us
output_low (ENABLE); / / Desactiva LCD
)buit lcd_send_command (char comanda)
(
delay_ms (5) / / 5 ms de retard
output_low (RS) / / Conjunt de LCD per conjunt d'instruccions
lcd_send_nibble (comanda>> 4); / / Send alta bits
lcd_send_nibble (comanda & 0x0F); / / Send baixa bits
)buit lcd_send_data (char c)
(
delay_ms (5) / / 5 ms de retard
output_high (RS); / / Establir la LCD per dades
lcd_send_nibble (c>> 4); / / Send alta bits
lcd_send_nibble (c & 0x0F); / / Send baixa bits
)