Electrnica Digital II Dept. Sist. Digitales y Telecom!icacio!es Laboratorio 2: Puertos de Entrada y Salida. 2.1 Objetivo. Familiarizarse con los Puertos de Entrada y Salida mediante la implementacin prctica del ejemplo LED y Botones y el ejemplo Pantalla LCD. 2.2 Introduccin. En casi todos los proyectos es necesario leer alguna entrada de tipo digital conectada a pulsadores, interruptores, sensores digitales o similares tam!i"n es necesario escri!ir datos por medio de una salida de tipo digital conectada a LED, pantallas LCD, display de siete segmentos o similares. Este la!oratorio trata de e#plicar cmo realizar la con$iguracin de los puertos del P%C para utilizarlos como entradas o salidas digitales. 2.3 Puertos de Entradas/Salidas. Los &icrocontroladores P%C tienen terminales de entrada'salida (%'), %nput')utput* di+ididos en puertos, ,ue se encuentras nom!rados al$a!"ticamente -, B, C, D, etc. Cada puerto puede tener .asta / terminales ,ue se pueden comportar como una %') digital. El P%C01F/22- tiene .asta 34 %') digitales de propsito general, y en dependencia de la con$iguracin de sus peri$"ricos pueden estar disponi!les como %') de propsito general. Por lo tanto, si un peri$"rico es .a!ilitado, el pin asociado no ser utilizado como %') de propsito general. 2.3.1 Lectura del puerto. La siguiente $uncin con$igura el puerto como entrada y realiza su lectura5 input6#( *
2.3.2 Lectura del pin de Entrada La siguiente $uncin con$igura el P%7 como entrada y realiza su lectura5 input( *
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACIN Electrnica Digital II Dept. Sist. Digitales y Telecom!icacio!es 2.3.3 Escritura del puerto. La siguiente $uncin con$igura el puerto como salida y realiza su escritura5 8.3.9 Escritura de un pin. Las siguientes $unciones con$iguran el pin como salida y realizan su escritura5 outputlo!" #$ output%i&%" # y outputbit" # Sinta#is output6lo:(pin * Pone a ; el pin output6.ig.(pin* Pone a 0 el pin output6!it(pin,+alue* Le da el +alor de +alue al pin.
8.3.4 Con$iguracin rpida de los pines %'). <na con$iguracin rpida genera cdigo ms e$iciente, ya ,ue el compilador asume ,ue los pines de %') sern cam!iados solo si es especi$icado por el usuario. - continuacin se muestra la $uncin para decidir si los pines de un puerto son de entrada o salida5 set6tris6#( * -l utilizar la $uncin anterior siempre es necesario utilizar la siguiente directi+a5 '(SE )*S+IO UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACIN Electrnica Digital II Dept. Sist. Digitales y Telecom!icacio!es 2., Procedi-iento. 8.9.0 LED y Botones. 0. Crear un Proyecto en CCS y guardar con el nom!re de LED6Botones. 8. Copiar el Cdigo LED6Botones. 3. Compilar el proyecto. 9. Crear el circuito en Proteus. Para ello ser necesario !uscar mediante la caja de !=s,ueda en la +entana P%C> DE?%CE el P%C01F/22-, el L)@%CSA-AE y el L)@%CPB)BE. 4. Cargar el -rc.i+o $uente Led6Botones..e# y Bealizar la simulacin. 8.9.8 Pantalla LCD. 0. Crear un Proyecto en CCS y guardar con el nom!re de LED6Botones. 8. Copiar el Cdigo LCD6Cola&undo. 3. Compilar el proyecto. UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACIN Electrnica Digital II Dept. Sist. Digitales y Telecom!icacio!es 1. Crear el circuito en Proteus. Para ello ser necesario !uscar mediante la caja de !=s,ueda en la +entana P%C> DE?%CE el P%C01F/22 y el L&;01L.
2. Cargar el -rc.i+o $uente LCD6Cola&undo.co$ y Bealizar la simulacin. 2.. /di&os. 8.4.0 Cdigo LED6Botones. - continuacin se muestra un cdigo ,ue .ace ,ue el LED conectado al pin BB; se encienda cuando se presiones el !otn conectado a BB0. #include <16f877a.h> //PIC utilizado #fue !"#$%&D'#$%P(%'EC'#P)' //Con*gura+o lo fue #ue dela, -cloc./801 //%cilador a 80hz #ue fat2io-31 //%4ti+iza+o E/" del P%('5 //666666Progra+a 4rinci4al66666 7oid +ain-7oid1 8 et2tri23-9:;E1< //"alida (59 co+o alida# el reto co+o entrada. do8 if-in4ut-PI$251118 //"i el4ulador eta en alto... out4ut2high-PI$2591< = //enciendo el >ED. ele 8 //Cao contrario... out4ut2lo?-PI$2591< = //lo a4ago. =?hile-'()E1< //(e4ito el 3ucle = Dinclude E01F/22-..F ''' li!reria para el manejo del pic01$/22a Duse delay(clocGH/;;;;;;* ''' declara la $recuencia del cristal D$uses CS,7)IDA,7)P<A,7)L?P,7)BB)I7)<A,7)IBA,7)PB)AECA Dinclude Elcd.cF '' Li!rerJa para el manejo del lcd para +er las cone#iones '' a!ran el arc.i+o C5K-rc.i+os de programaKP%CCKDri+ersKlcd.c '' y a.i les muestra. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '' D; ena!le '' D0 rs '' D8 r: '' D9 D9 '' D4 D4 '' D1 D1 '' D2 D2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +oid main(+oid* L lcd6init(* '' -ntes de usar el lcd,.ay ,ue inicializarlo lcd6putc(MC)L- &<7D)M* '' Escri!es en la lcd N '' $in de programa UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACIN Electrnica Digital II Dept. Sist. Digitales y Telecom!icacio!es 8.1 &odi$icaciones de los cdigos. 8.1.0 Para poder cam!iar los pines de salida utilizados para la cone#in del lcd, es necesario agregar las siguientes lJneas de cdigo para de$inir cual puerto y ,ue pines son necesarios para dic.a cone#in. Dde$ine LCD6E7-BLE6P%7 P%76B4 Dde$ine LCD6BS6P%7 P%76B9 Dde$ine LCD6BI6P%7 P%76B1 Dde$ine LCD6D-A-9 P%76B; Dde$ine LCD6D-A-4 P%76B0 Dde$ine LCD6D-A-1 P%76B8 Dde$ine LCD6D-A-2 P%76B3 8.1.8 Conociendo los cam!ios a realizar en el codigo $uente, a.ora utilice el puerto B como salida para el LCD. 8.1.3 Creacin de un pe,ueOo menu Dinclude E01F/22-..F D$uses noprotect,no:dt,no:rt,nol+p,CS Duse delay(clocGH/&* Dde$ine Dde$ine LCD6E7-BLE6P%7 P%76C4 Dde$ine LCD6BS6P%7 P%76C1 Dde$ine LCD6BI6P%7 P%76C2 Dde$ine LCD6D-A-96P%7 P%76D9 Dde$ine LCD6D-A-46P%7 P%76D4 Dde$ine LCD6D-A-16P%7 P%76D1 Dde$ine LCD6D-A-26P%7 P%76D2 Dinclude Elcd.cF ''Dinclude EPuertos.cF Duse $ast6io(-* int item +oid main(+oid* L lcd6init(* :.ile(true* L i$(input(P%76-;*HH;* L itemPP delay6ms(3;;* N
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACIN Electrnica Digital II Dept. Sist. Digitales y Telecom!icacio!es
2.0 +rabajo a Entre&ar "1eporte# 2.0.1 1eali2ar el si&uiente ejercicio de pro&ra-acion: Despues de conocer la creacion de un menu con las intrucciones case. -.ora genere un menu el cual presente los enca!ezados. Electronica Electrica Computacion Estos enca!ezados seran cam!iados cada +ez ,ue se presione un pulsador, es decir ,ue solo +a e#istir un unico pulsador ,ue cada +ez ,ue se pulse cam!iara la +isualizacion en el LCD. Estando en una opcion del menu se utilizara otro pulsador para encender un LED correspondiente a cada carrera, es decir si en el LCD estoy +isualizando la carrera de Computacion con otro pulsador encendere un LED correspondiente a esa carrera. 2.0.2 Enviar todas las si-ulaciones "Proteus# planteadas en el laboratorio en conjunto con los arc%ivos &enerados por el pro&ra-a //S. /ada arc%ivo y si-ulacion ponerlos en carpetas separadas y -andarlas de -anera co-pri-ida a -i correo. s:itc.(item* L case ;5 lcd6goto#y(9,0* lcd6putc(M)pcion 0M* !reaG
case 05 lcd6goto#y(9,0* lcd6putc(M)pcion 8M* !reaG
case 85 lcd6goto#y(9,0* lcd6putc(M)pcion 3M* !reaG N N N
UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACIN Electrnica Digital II Dept. Sist. Digitales y Telecom!icacio!es