lcd y glcd en microbasik para pic's
DESCRIPTION
usando microcontroladores pic's utilizamos displays tanto lcd y glcdTRANSCRIPT
UNIVERSIDAD POLITECNICA SALESIANA
SISTEMAS MICROPROCESADOS 1
PRACTICA 4
INTEGRANTES:
Echeverría Jonathan
Duque Diego
Velásquez Lenin
PRACTICA 4
Tema: Displays alfanuméricos y gráficos
Objetivo: Utilizar los con el microcontrolador pic displays alfanuméricos y gráficos.
PROCEDIMIENTO:
1. Escribir la sentencia hola e Ingeniería Electrónica en un display Código: Main: Lcd_config(portb,7,6,5,4,portb,0,1,2) Lcd_out(1,1,”HOLA”) Delay_ms(2000) Lcd_cmd(lcd_clear) Lcd_out(1,1,”Ingenieria”) Lcd_out(1,2,”Electronica”) End. Esquemático:
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877A
R910k
X1CRYSTAL
C1
33p
C2
33p
R1330
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
19%
RV1
10k
Practico:
2. Elabore un programa donde aparezcan los integrantes del grupo cada 3 segundos. Código:
program Practica2 main: lcd_config(portb,7,6,5,4,portb,0,1,2) lcd_out(1,1,"Integrantes") lcd_out(2,1,"del Grupo") delay_ms(2000) lcd_cmd(lcd_clear) lcd_out(1,1,"Diego") lcd_out(2,1,"Duque")
delay_ms(3000) lcd_cmd(lcd_clear) lcd_out(1,1,"Jonathan ") lcd_out(2,1,"Echeverria ") delay_ms(3000) lcd_cmd(lcd_clear) lcd_out(1,1,"Lenin ") lcd_out(2,1,"Velasquez ") delay_ms(3000) goto main end. Esquemático:
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877A
R910k
X1CRYSTAL
C1
33p
C2
33p
R1330
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
19%
RV1
10k
Practico:
3. Elabore un contador ascendente cuyo valor se muestre durante 2 segundos y utilice el esquema numero 1.
program Practica3 dim a as byte dim x as string[6] main: trisb=0 lcd_config(portb,7,6,5,4,portb,0,1,2) lcd_cmd(lcd_cursor_off) while true a=a+1
wordtostr(a,x) lcd_cmd(lcd_clear) lcd_out(2,1,x) delay_ms(2000) wend end. Esquemático:
Practico:
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877A
R910k
X1CRYSTAL
C1
33p
C2
33p
R1330
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
19%
RV1
10k
4. Utilice el temporizador 1 del pic 16f877a para crear un contador por señal externa muestre el valor en un display la señal de reloj es mediante un pulso externo.
Código:
program Practica3 dim a as byte dim x as string[6] main: trisb=0 lcd_config(portb,7,6,5,4,portb,0,1,2) lcd_cmd(lcd_cursor_off) while true a=a+1
wordtostr(a,x) lcd_cmd(lcd_clear) lcd_out(2,1,x) delay_ms(2000) wend option_reg=%10100000 intcon=$0 tmr0=0 lazo: portb=tmr0 goto lazo end. Esquematico:
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877A
R910k
X1CRYSTAL
C1
33p
C2
33p
R1330
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9D
18
D0
7
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM016L
19%
RV1
10k
Practico:
5. Programa de ejemplo para el uso de un display grafico solo para la famia 18fxx. Código: program parcticaglcd Include "__Lib_images" 'librería de imágenes mikroBasic dim j, k as byte main: Glcd_Init(PORTB,0,1,2,3,4,5,PORTD) do glcd_Set_Font(@FontSystem5x8,5,8,32) Glcd_Image(mikro_logo_bmp) Delay_ms(4000) 'draw circles
Glcd_Fill(0)'clearscreen glcd_set_font(@FontSystem5x8,5,8,32) delay_ms(1000) glcd_write_text("circulos",0,0,1) j=4 while j<31 glcd_circle(63,31,j,2) j=j+4 wend delay_ms(4000) 'draw boxes Glcd_fill(0)'clearscreen glcd_set_font(@FontSystem5x8,5,8,32) glcd_write_text("rectangulos",0,0,1) delay_ms(1000) Glcd_fill(0) j=0 while j<31 glcd_box(j,0,j+20,j+25,2) j=j+4 wend delay_ms(4000) glcd_fill(0) 'clearscreen glcd_set_font(@FontSystem5x8,5,8,32) glcd_write_text("lineas",0,0,1) delay_ms(1000) Glcd_fill(0) for j=0 to 15 k=j*4+3 glcd_line(0,63,k,0,2) next j delay_ms(4000) loop until False end. module my_images ' ------------------------------------------------------
' GLCD Picture name: carsun.bmp ' GLCD Model: KS0108 128x64 ' ------------------------------------------------------ const mikro_logo_bmp as byte[1024] = ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,128,128,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,128,128,128,128,144,144,144,144,144,144,128,144,128, 0,144, 144, 0, 0, 32, 32, 0, 0, 0, 0, 16, 0, 0, 4, 4, 4,132, 128,128,128, 64, 64, 64, 64, 64, 64, 68, 64, 64, 64, 64, 64, 68, 64, 64, 64, 64, 0, 0, 0, 68, 36,164, 4, 4,132,132,132, 4, 36, 36, 36, 4,132,188,226,161, 56,192, 2,130,130,130, 66, 68, 25,129,102, 0, 0, 0, 0, 0, 0, 0, 70, 66, 66, 2, 66, 2, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 8, 72, 72, 72, 72, 8, 40, 40, 8, 8, 8, 64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128, 0, 64, 66, 2, 66,129, 1, 1, 67, 1, 34, 34, 34, 34, 2, 0, 0, 80,136, 8, 0, 0, 0,128,194, 96, 2,209, 9, 9, 9,137, 81, 16, 16, 28, 31,224,136, 24, 72,152,152, 32,148, 44,156, 68, 52,128,224, 248, 64, 72, 72,184,120,184, 24, 25,164, 86,158,215,211,187,181, 189,173,164,236,160,200,184,248,232,240,236,208,215,239,203,213, 229,253,237,209,168, 89,169, 81,145,113, 80, 48, 96,160,160, 64, 193, 65,121, 60,128,128,128,248,112,128, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 2, 17, 23, 30, 1,128, 64, 64, 37, 36, 7, 18, 18, 10, 7, 6, 6, 7, 7, 6, 2, 3, 2, 2, 3, 2, 3, 3, 3, 2, 2, 7, 6, 7, 7, 6, 7,134,198,182,158,199,235,127, 65, 94,110, 102, 94, 94, 94, 94,114,115, 99, 67, 67, 67, 67, 67, 67, 67, 83, 83, 94, 94, 76, 79,124,100, 68,134,133, 4, 5, 5, 6, 5, 6, 20, 15, 0,224, 47, 32, 8, 23,112, 19, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 16, 16, 8, 8, 4, 4, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,224, 48,216,126,127, 79, 75,105, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 64, 64, 64, 64, 64, 64, 64, 64, 64, 81,111,111,110,124,240, 32, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 1, 0, 0, 3, 6, 7, 31, 31, 31, 31, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 15, 15, 15, 15, 7, 3, 0, 0, 0, 1, 3, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ) end.
Practico:
Flujo gramas:
Practica 1
Inicio
Configurar
puerto B
como salida
Configurar lcd_out
Retardo de 2
segundos
Escribir en lcd “HOLA” e
“INGENIERIA
ELECTRONICA”
Practica 2
Inicio
Configurar
puerto B
como salida
Configuramos lcd_out
Retardo de 3
segundos
Escribir en el lcd
nombres de los
integrantes
Practica 3
Inicio
Configurar
puerto B
como salida
Configuramos lcd
Retardo de 2
segundos
Escribir en el lcd
números ascendentes
PRACTICA 4
Inicio
Configurar puerto B
como salida
Escribimos en el lcd
números de forma
descendente
Retardo por
pulso
Configuramos lcd
PRACTICA 5
Inicio
Configurar puerto B
como salidas
Enviamos datos para el
glcd a través de los
puertos del pic
Muestra la imagen
No ahy
retardo
Lazo infinito
Conclusiones:
- Aprendimos la utilización del equipo para uso de los microcontroladores pic. - Utilizamos prácticamente los periféricos de entrada y salida de los microcontroladores. - Aprendimos a configurar los displays lcd y glcd. - Aprendimos los comandos para las diferentes configuraciones de los pic y sus dysplays. -
Bibliografía:
- Información otorgada por el Ing. Luis Oñate Universidad Politécnica Salesiana. - Microcontroladores PIC Programación en Basic, Segunda Edición 2006, Carlos A. Reyes