Está en la página 1de 3

CARRERA DE ELECTRONICA

PRACTICA # 9

TEMA: Control digital de volumen

QUE APRENDO ? CONOCIMIENTOS PREVIOS?

 Utilizar la pantalla LCD16x2.  Reconocer pines de lcd16x2


 Manejo de PIC16F628A.  Reconocimiento de pórticos.
 Poder leer diagramas
 Código de colores R1,R2:4.7K y RV1:10K
PROBLEMA PLANTEADO SOLUCION CON MICROCHIP / VENTAJAS
Simular un control digital de volumen basado en
la figura de abajo. P1 se encarga de aumentar el
nivel mientras que P2 disminuirá el nivel. La adaptabilidad del pic con módulo LCD.

COMPONENTES UTILIZADOS
 PIC16F628A
 Cristal de 8 MHz
 Capacitor cerámico de 33pf
 Pantalla LCD 16x2
 Resistencia de 10K
 Potenciómetro de 5k
 Pulsador normalmente abierto
 Fuente regulada de 5vols

PROCESO DE LA SOLUCION
HARDWARE / DIAGRAMA EN PROTEUS
CARRERA DE ELECTRONICA
SOFTWARE
PRINCIPALES SINTAXIS DE LAS INSTRUCCIONES EMPLEADAS EN EL PROGRAMA
 LCDOUT
 IF THEN
PROGRAMA
Define LCD_DREG PORTB ;def pa usar 4 bits d puerto B pa trans d datos
Define LCD_DBIT 4 ; desd l b4 hast el b7
Define LCD_RSREG PORTB;INDICA AL MICROCONT Q EL PIN rs ESTARA EN L PORT b
Define LCD_RSBIT 3 ;en l bit B3
;microcontrpara el bus de datos de la LCD
Define LCD_EREG PORTB ;Definicion par utilizar el enable en el puerto B
Define LCD_EBIT 2 ;"en l bit B2
;PROGRAMA EN PIC BLAVBLA
'DEFINE OSC 8'
;DECLARACION DE VARIABLES
SYMBOL P1=PORTB.0 ; para RB0
SYMBOL P2=PORTB.1 ; para RB1
Volumen VAR BYTE ; declaracion de varia volumen
Volumen=1
;A continuacion se cargan las 5 fig,a partir
;de la posicion cero deLA memoria CGRAM:
LCDOUT, $FE,$40,$02,$06,$1A,$1A,$1A,$06,$02,$01;fig uno
LCDOUT, $FE,$48,$00,$00,$00,$00,$00,$00,$1F,$1F;fig2
LCDOUT, $FE,$50,$00,$00,$00,$00,$1F,$1F,$1F,$1F;fig3
LCDOUT, $FE,$58,$00,$00,$1F,$1F,$1F,$1F,$1F,$1F;fig4
LCDOUT, $FE,$60,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F;fig5
LCDOUT, $Fe,1;limpia pantall
LCDOUT " Volumen: ";escribe volumen
Inicio:
LCDOUT, $Fe, 2;posicion del cursor en inicio
LCDOUT, $fe,$C5, 0 ;MUESTRA l figura almacenad en posi ceroO.
LCDOUT, $fe,$C6, 1;MUESTRA l figura almacenad en posi unoO.
;A continua se verifi si algun d l pulsadores a sido activa
;Si P1 es activ y l var 'volumen' <5, llama a sub ruti 'suvol'
;Si P2 es activ y l var 'volumen' >0, llama a sub ruti 'bajvol'

IF P1=1 and Volumen < 5 THEN call subevol

IF P2=1 and Volumen > 0 THEN call Bajevol

goto inicio ;salta a la etiquet inicio


Subevol:
Volumen = volumen + 1 'suma 1 al conteni de l var 'volumen'
IF volumen = 2 THEN call Nivel1
IF Volumen = 3 THEN call nivel2
IF Volumen = 4 THEN call nivel3
return
CARRERA DE ELECTRONICA
Bajevol:
LCDOUT, $Fe,1;limpia pantall
LCDOUT " Volumen: ";escribe volumen
LCDOUT, $fe,$C5, 0 ;MUESTRA l figura almacenad en posi ceroO.

Volumen = Volumen - 1 'resta 1 al conteni de l var 'volumen'


IF volumen = 3 THEN call nivel3b
IF Volumen = 2 THEN call nivel2b
IF Volumen = 1 THEN call nivel1b
return

Nivel0:
lcdout $Fe,$C6, 1 'muetra la fig almac en posi 1
pause 350
return
Nivel1:
lcdout $Fe,$C7, 2 'muetra la fig almac en posi 2
pause 350
return
Nivel2:
lcdout $Fe,$C8, 3 'muetra la fig almac en posi 3
pause 350
return
Nivel3:
lcdout $Fe,$C9,4 'muetra la fig almac en posi 4
pause 350
return
Nivel3b:
lcdout $Fe,$C8, 3 'muetra la fig almac en posi 3
lcdout $Fe,$C7, 2 'muetra la fig almac en posi 2
lcdout $Fe,$C6, 1 'muetra la fig almac en posi 1
pause 350
return

Nivel2b:
lcdout $Fe,$C7, 2 'muetra la fig almac en posi 2
lcdout $Fe,$C6, 1 'muetra la fig almac en posi 1
pause 350
return

Nivel1b:
lcdout $Fe,$C6, 1 'muetra la fig almac en posi 1
pause 350
return

También podría gustarte