Form a to Practic As

Published on November 2016 | Categories: Documents | Downloads: 99 | Comments: 0 | Views: 262
of 12
Download PDF   Embed   Report

Comments

Content

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

Laboratorio de Sistemas Digitales
PRÁCTICA No. 8 Arquitectura de Microcontroladores PIC !"8##A $laborador %or& Ale'andro (ambrano Diego )ela "ec*a de entrega del in+orme& ,! no-iembre . "ec*a de elaboraci/n de la %r0ctica& ,1 no-iembre ,1 .

Contenido
1 O !etivo"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1 # In$orme""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1 #"1 Introducción"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1 #"# %rela oratorio"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""& #"' (a oratorio"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""& ' )onclusiones"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""11 * +ecomendaciones"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1# , +e$erencias - .i liogra$ía""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1# / 0ne1os""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""1#

2b'eti-o
• • • • Introducir la arquitectura de los microcontroladores PIC16F877A. Aprender a utilizar el entorno de desarrollo MPLAB X I ! para el desarrollo de aplicaciones del PIC16F877A. Familiarizar al estudiante con la pro"ramaci#n de microcontroladores a ni$el ensam%lador. Introducir el mane&o de puertos di"itales del microcontrolador

, In+orme
2.1 Introducción
Los microcontroladores son dispositi$os pro"rama%les que adem's de realizar procesamiento de datos( pro$een de inter)aces inte"radas para interactuar con otros dispositi$os o con *ard+are e,terno. Al"unos e&emplos son de estas 1

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

inter)aces son- puertos de comunicaci#n serial( puertos de comunicaci#n inal'm%rica( con$ersores A. ( puertos di"itales( contadores( relo&es / "eneradores de P0M. !n esta pr'ctica se introduce la arquitectura del microcontrolador PIC 16F877A( el cual es un dispositi$o de 12 pines. La Fi"ura 1 muestra un dia"rama de %loques del micro3arquitectura de este dispositi$o. La arquitectura del dispositi$o est' con)ormada de 45 instrucciones que se e&ecutan en un solo ciclo( 4 modos de direccionamiento 6directo( indirecto / relati$o7 / un stoc8 de 8 ni$eles para almacenamiento temporal de in)ormaci#n.

#

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

!l set de instrucciones puede clasi)icarse en tres cate"or9as1. :peraciones orientadas a %/tes ;. :peraciones orientadas a %its 4. :peraciones de literales / control. Cada instrucci#n est' codi)icada en 11 %its de acuerdo al )ormato que se muestra en la Fi"ura ;. Para las instrucciones tipo %/te( ) denota un re"istro del )ile re"ister / d denota donde de%e ser almacenado el resultado de la operaci#n. <i d=2 el resultado es almacenado en el re"istro 0 / si es i"ual a 1 es almacenado en el re"istro ). Para las instrucciones tipo %it( % representa el %it a ser operado / ) el re"istro que contiene a ese %it. Finalmente para las instrucciones de literales o control 8 representa un $alor de 8 u 11 %its. Cada ciclo de instrucci#n requiere de 1 ciclos de relo& para ser e&ecutada. Por e&emplo si se utiliza un oscilador de 1 M>z( cada instrucci#n requiere de 1 us para ser e&ecutada por el *ard+are. La Fi"ura 4 resume el set de instrucciones completo de este dispositi$o. ?oda instrucci#n e&ecuta una secuencia @ead3 Modi)/30rite 6@M07 so%re un re"istro. !sto si"ni)ica que cada $ez que una instrucci#n opere so%re un re"istro( el procesador leer' el re"istro( lue"o modi)icar' el re"istro colocando ceros en todos sus %its / lue"o almacenar' el resultado de la operaci#n. !sto se realiza aAn en operaciones de lectura.

'

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

!l PIC 16F877A di$ide su memoria en dos se"mentos. !l primer se"mento contiene la memoria de pro"rama / al stac8. La memoria de pro"rama de 8B,11 que $a desde la direcci#n 2222* *asta la 1FFF* / el stac8 se implementa como un %loque de memoria independiente( como se muestra en la !rrorC @e)erence source not )ound.. A su $ez la memoria de pro"rama esta di$idida en tres espacios de memoria!l se"undo se"mento de memoria corresponde a la memoria de datos( la cual est' di$ida en 1 %ancos con un total de 468,8 re"istros. !stos %ancos contienen @e"istros de Prop#sito Deneral 6DP@7 / re"istros de )unciones especiales 6<F@7. Los primeros 4; re"istros de cada %anco est'n ocupados por el <F@ / a continuaci#n los DP@. La Fi"ura 5 muestra el mapa de memoria de datos. Los %its @PE1-2F del re"istro de estado 6<?A?G< @!DI<?!@ <@7 permiten seleccionar en que %anco se est' tra%a&ando.

*

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

,

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

!l %anco de re"istros muestra las direcciones de la memoria e,puestas en el si"uiente "r')ico-

/

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

2.2 Prelaboratorio
Como tra%a&o pre$io se realiz# un documento descri%iendo los %its de re"istro del <F@( ad&unto como Ane,o. ?am%ien se realizo un c#di"o en assem%ler para ser implementado en MPLAB X I !( el cual esta%lece que pines del pic $an a ser usados como entrada / cuales con salidasSTART BANKSEL PORTC CLRF PORTC BANKSEL TRISC CLRF TRISC ; ; ; ; SELECCIONAR PORT C DE BANCO LIMPIAR PORT C A CEROS SELECCIONAR BANCO TRISC PONER TRISC EN 0 (OUTPUT)

BANKSEL PORTB ; SELEC PORT B DE BANCO CLRF PORTB ; LIMPIAR PORT B BANKSEL TRISB ; SELEC TRIS B DE BANCO MOVLW B'00001111' MOVWF TRISB ; MOVER LITERAL ANTERIOR A TRISB BANKSEL OPTION_REG BCF OPTION_REG,7 ; HABILITO PULL UPS END

2.3 Laboratorio
!n el la%oratorio se realizo un c#di"o para implementar un decodi)icador de BC a un led 7 se"mentos. !l c#di"o realizado )ue!"#$%&'( )1*+,77-."#$ ; TODO INSERT CONFIG CODE HERE USING CONFIG BITS GENERATOR __CONFIG _FOSC_/T 0 _WDTE_OFF 0 _PWRTE_OFF 0 _BOREN_ON 0 _LVP_OFF 0 _CPD_OFF 0 _WRT_OFF 0 _CP_OFF RES_VECT GOTO )2372-9 CODE 010000 START ; )23$(4432 2(4(5 6($532 ; 73 53 8(7"##"#7 3+

; TODO ADD INTERRUPTS HERE IF USED MAIN_PROG CODE )2372-9 START BANKSEL PORTC ; %(5 %"#:(2 )%-$( 9-"#

; SELECCIONAR PORT C DE BANCO

&

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

CLRF PORTC BANKSEL TRISC CLRF TRISC

; LIMPIAR PORT C A CEROS ; SELECCIONAR BANCO TRISC ; PONER TRISC EN 0 (OUTPUT)

BANKSEL PORTB ; SELEC PORT B DE BANCO CLRF PORTB ; LIMPIAR PORT B BANKSEL TRISB ; SELEC TRIS B DE BANCO MOVLW B'00001111' MOVWF TRISB ; MOVER LITERAL ANTERIOR A TRISB BANKSEL OPTION_REG BCF OPTION_REG,7 ; HABILITO PULL UPS BCF STATUS, RP0 ; SELECCIONAR BANCO 0 BCF STATUS, RP1 ; SELECCIONAR BANCO 0 MOVLW 01;0 MOVWF FSR ; CAMBIAR DIRECC FSR A 01;0 MOVLW 0101 MOVWF INDF ; MOVIENDO DATO REGISTRO W

INCF FSR,1 ; SUMADNO UNO AL FSR APUNTA OTRA DIRECCION ; T !0 MOVLW 01<F MOVWF INDF INCF FSR,1 ; T !1 MOVLW 011; MOVWF INDF INCF FSR,1 ; T !; MOVLW 010* MOVWF INDF INCF FSR,1 ; T != MOVLW 01<C MOVWF INDF INCF FSR,1 ; T !< MOVLW 01;< MOVWF INDF INCF FSR,1 ; T !> MOVLW 01;0 MOVWF INDF 2

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

INCF FSR,1 ; T !* MOVLW 010F MOVWF INDF INCF FSR,1 ; T !7 ; MOVLW 01=0 ; MOVWF FSR ; T ! 7 MOVLW 0100 ; T !, MOVWF INDF INCF FSR,1 MOVLW 010C ; T !? MOVWF INDF LA@O MOVLW 01;0 MOVWF FSR ; REGRESAR FSR DIRECCION ;0 ; LEO PORTB A ALMACENO EN W SUMA W CON FSR LEE LO BUE APUNTA FSR A ALMACENA EN W MUEVE W A PORT C

MOVF PORTB,0 ADDWF FSR,1 ; MOVF INDF,0 ; MOVWF PORTC ;

GOTO LA@O ; GENERAR LOOP END

Para @ealizar el mane&o de 1 displa/ de 7 se"mentos se realiza lo si"uienteComo se de%en encender 1 displa/ para poder mostrar cualquier numero entre 2 HHHH. Para esto podemos usar un transistor PIP como s+itc* de acti$aci#n / usamos tam%iJn un CI 7117. !l *ard+are a usarse ser' el si"uiente-

3

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

Las entradas del dip s+itc* ser'n las mismas que para el presente pro/ecto( el c#di"o en %asic para un numero es!"#$%&'( )1*+,77-."#$ ; TODO INSERT CONFIG CODE HERE USING CONFIG BITS GENERATOR __CONFIG _FOSC_/T 0 _WDTE_OFF 0 _PWRTE_OFF 0 _BOREN_ON 0 _LVP_OFF 0 _CPD_OFF 0 _WRT_OFF 0 _CP_OFF RES_VECT GOTO )2372-9 CODE 010000 START ; )23$(4432 2(4(5 6($532 ; 73 53 8(7"##"#7 3+

; TODO ADD INTERRUPTS HERE IF USED MAIN_PROG CODE )2372-9 START BANKSEL PORTC CLRF PORTC BANKSEL TRISC CLRF TRISC ; ; ; ; ; %(5 %"#:(2 )%-$( 9-"#

SELECCIONAR PORT C DE BANCO LIMPIAR PORT C A CEROS SELECCIONAR BANCO TRISC PONER TRISC EN 0 (OUTPUT)

BANKSEL PORTB ; SELEC PORT B DE BANCO CLRF PORTB ; LIMPIAR PORT B BANKSEL TRISB ; SELEC TRIS B DE BANCO MOVLW B'00001111' MOVWF TRISB ; MOVER LITERAL ANTERIOR A TRISB BANKSEL OPTION_REG BCF OPTION_REG,7 ; HABILITO PULL UPS BCF STATUS, RP0 ; SELECCIONAR BANCO 0

14

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

BCF STATUS, RP1 ; SELECCIONAR BANCO 0 MOVLW 01;0 MOVWF FSR ; CAMBIAR DIRECC FSR A 01;0 MOVLW 0101 MOVWF INDF ; MOVIENDO DATO REGISTRO W

INCF FSR,1 ; SUMADNO UNO AL FSR APUNTA OTRA DIRECCION ; T !0 LA@O MOVLW 01;0 MOVWF FSR ; REGRESAR FSR DIRECCION ;0 ; LEO PORTB A ALMACENO EN W SUMA W CON FSR LEE LO BUE APUNTA FSR A ALMACENA EN W MUEVE W A PORT C

MOVF PORTB,0 ADDWF FSR,1 ; MOVF INDF,0 ; MOVWF PORTC ;

GOTO LA@O ; GENERAR LOOP END !n el c#di"o pre$io solo se tiene que instaurar el orden para que se enciencdan cada uno de los nAmeros con su codi)icaci#n en >e,adecimal( es decir almacenamos los nAmeros en el orden que de%er9an ser mostrados.

. Conclusiones
!sta pr'ctica consisti# en la implementaci#n en un microcontrolador( el PIC 16F877A( de una codi)icaci#n de 1 %its a 7 se"mentos. !l la%oratorio )ue un J,ito( /a que se pudo realizar la implementaci#n. Primero se escri%i# el c#di"o( / lue"o se lo implement#. La implementaci#n tu$o un "rado de di)icultad moderado( por lo que con cierto es)uerzo se pudo realizar. !ste la%oratorio re)orz# nuestros conocimientos acerca del tema tratado( anteriormente estudiado en clase. !ste la%oratorio( se aprendi# a con)i"urar los puertos del PIC para realizar el tra%a&o deseado( / el c#di"o necesario para implementarlo. Por ello con este la%oratorio se aprendi# a utilizar el entorno de desarrollo MPLAB X I ! para el desarrollo de aplicaciones para el desarrollo de aplicaciones del PIC16F877A( tam%iJn se pudo )amiliarizar con la pro"ramaci#n de microcontroladores a ni$el de ensam%lador( por lo que est' pr'ctica cumpli# con nuestros o%&eti$os.

11

Departamento de Ingeniería Eléctrica/Electrónica, Universidad San Francisco de Quito

3 Recomendaciones 4 Re+erencias 5 6ibliogra+7a
>arris( a$id. Digital design and computer architecture. ;nd ed. 0alt*amMor"an Bau)mann( ;214. Print.

! Ane8os

1#

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close