You are on page 1of 21

Universidad Politcnica de Chiapas

Materia: Microcontroladores

Tema: Practica 1 Sumador de 4 Bits

Catedrtico: Ing. Jos Luis Lpez

Alumna: Ftima Daniela Gonzlez Mateo

No. de Control 093187

Tuxtla Gutirrez, Chiapas 01 de Junio del 2011

Contenido
Objetivos generales........................................................................................................................ 3 Introduccin................................................................................................................................... 4 Practica 1 Sumador de cuatro bits .................................................................................................. 5 Objetivo de la prctica ................................................................................................................ 5 Desarrollo de la prctica ............................................................................................................. 5 Simulacin.................................................................................................................................. 6 Materiales para simulacin..................................................................................................... 6 Programa ................................................................................................................................... 7 Descripcin del Programa ....................................................................................................... 7 Practica 2 Sumador y Restador de cuatro bits ................................................................................ 9 Objetivo de la prctica ................................................................................................................ 9 Desarrollo de la prctica ............................................................................................................. 9 Simulacin................................................................................................................................ 10 Materiales para simulacin................................................................................................... 10 Programa ................................................................................................................................. 11 Descripcin del Programa ..................................................................................................... 12 Practica 3 Retardo de 100ms ........................................................................................................ 13 Objetivo de la prctica .............................................................................................................. 13 Desarrollo de la prctica ........................................................................................................... 13 Simulacin................................................................................................................................ 14 Materiales para simulacin................................................................................................... 14 Programa ................................................................................................................................. 15 Descripcin del Programa ..................................................................................................... 16 Practica 4 Rotacin de Leds .......................................................................................................... 17 Objetivo de la prctica .............................................................................................................. 17 Desarrollo de la prctica ........................................................................................................... 17 Simulacin................................................................................................................................ 18 Materiales para simulacin................................................................................................... 18 Programa ................................................................................................................................. 19 Descripcin del Programa ..................................................................................................... 21

Objetivos generales
Con las siguientes prcticas se pretende realizar distintas prcticas utilizando el PIC16F877A, esto implica que se aprenda a programar en lenguaje ensamblador utilizando las distintas instrucciones que dicho PIC nos proporciona. As como tambin realizar la simulacin de nuestro circuito para poder cargar el programa en l y de esta forma hacer visual lo que estamos realizando en nuestro programa.

Introduccin
A travs de programas realizados en lenguaje ensamblador y simulaciones se realiz cuatro distintas practicas con el objetivo de aprender a utilizar las distintas instrucciones bsicas que se le pueden ordenar a un microcontrolador en este caso para todas las practicas se utiliz el PIC16F877A. Para la realizacin de estas prcticas primeramente fue de suma importancia aprender a realizar la configuracin de los puertos I/O. As como tambin, como podemos declarar nuestras variables y el tipo de PIC a utilizar. Otro factor que es indispensable para realizar las practicas es conocer lo que realiza y la sintaxis de cada una de las instrucciones. Las prcticasque se realiz son las siguientes: y y y y Realizar la suma de dos nmeros de 4 bits. Realizar la suma o la resta de dos nmeros de 4 bits, indicando el tipo de operacin a travs de un selector. Realizar un retardo de un total de 100ms. A travs de un selector de 4 opciones, indicar el desplazamiento del encendido de un led con un retardo de 500ms.

Practica 1 Sumador de cuatro bits

Objetivo de la prctica
Esta prctica pretende realizar la suma de dos nmeros de cuatro bits, introducidos por el usuario a travs de dos dip-switch y teniendo como salida el encendido de leds con el resultado de la operacin. Los datos tanto de entrada como los de salidas sern en el sistema binario, los cuales sern procesados por el programa previamente cargado al microcontrolador.

Desarrollo de la prctica
La suma se realiza por medio de un programa cargado previamente al PIC en la simulacin. El programa cuenta de varias etapas las cuales son las siguientes: y y y y y y Se indica el tipo de PIC a utilizar Se indica el tipo de cristal a utilizar Se desactiva un error que aparece en la compilacin Se realiza la declaracin de variables a utilizar y en el nmero de registro donde queda almacenada. Se realiza la configuracin de los puertos en este caso en puerto B se configura como entrada y el puerto D como salida. Finalmente se realiza el programa que realizara la operacin.

Simulacin
Materiales para simulacin

y y y y

1 2 6 1

PIC16F87A Dip-Switch de cuatro entradas Leds Resistencia de 1k

DSW1
8 7 6 5
OFF ON

1 2 3 4

U1
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

DIPSW_4

R1
1k

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

DSW2
8 7 6 5
OFF ON

1 2 3 4

DIPSW_4

D6
LED-BLUE

D5
LED-BLUE D4

LED-BLUE

D3
LED-BLUE D2

LED-BLUE D1

LED-BLUE

Programa
;--------------------------------------------------include p16f877a.inc" list p=16f877a errorlevel 1,-302 __Config _XT_OSC &_WDT_OFF ;----------------------------------------------------------VAR1 EQU 0x20 VAR2 EQU 0x21 VAR3 EQU 0x22 RESUL EQU 0x23 ;----------------------------------------------------------BSF MOVLW MOVWF MOVLW MOVWF CLRF BCF STATUS,5 0x06 ADCON1 0xFF TRISB TRISD STATUS,5 END GOTO INICIO CLRF CLRF INICIO MOVF MOVWF ANDLW MOVWF MOVF ANDLW MOVWF SWAPF ADDWF MOVWF MOVWF PORTD PORTB PORTB,0 VAR1 0x0F VAR2 VAR1,0 0xF0 VAR3 VAR3,0 VAR2,0 RESUL PORTD

;-----------------------------------------------------------

Descripcin del Programa

Para que el programa realice las operacin en este caso la suma, primeramente los datos introducidos en el puerto B se mueven al registro w, los datos almacenados en registro w se mueven a una primera variable en este caso VAR1, de dicha variable se realiza un and con los nibles bajos del puerto B y se almacena en el registro w, el cual posteriormente se enva a una tercera variable en este caso VAR2. Se carga nuevamente VAR1 al registro w y se realiza un and pero ahora con los nibles altos y se almacena en VAR3. Los datos almacenados en la VAR3 quedan almacenados entonces en el nible alto del puerto B , lo cual no nos sirve si es que queremos sumar dos nmeros de 4 bits, por

lo tanto, con la instruccin SWAPF se realiza un cambio de los datos de la VAR3 de un nibles alto a un nible bajo y los datos se almacenan en w. Finalmente se realiza la suma de VAR2 con w y el resultado de la operacin se mueven al puerto B para que as podamos observarlo a travs de los leds.

Practica 2 Sumador y Restador de cuatro bits


Objetivo de la prctica
Esta prctica pretende realizar la suma o la resta de dos nmeros de cuatro bits, introducidos por el usuario a travs de dos dip-switch y teniendo como salida el encendido de leds con el resultado de la operacin. Los datos tanto de entrada como los de salidas sern en el sistema binario, los cuales sern procesados por el programa previamente cargado al microcontrolador. Para seleccionar el tipo de operacin que realizara el PIC, se le debe indicar a travs de un dip-switch, si la entrada es un 1 se realizara la suma; si la entrada es un 0 se realizara la resta.

Desarrollo de la prctica
La suma o la resta se realizan por medio de un programa cargado previamente al PIC en la simulacin. El programa cuenta de varias etapas las cuales son las siguientes: y y y y y y Se indica el tipo de PIC a utilizar Se indica el tipo de cristal a utilizar Se desactiva un error que aparece en la compilacin Se realiza la declaracin de variables a utilizar y en el nmero de registro donde queda almacenada. Se realiza la configuracin de los puertos en este caso en puertoA y B se configura como entrada y el puerto D como salida. Finalmente se realiza el programa que realizara la operacin.

Simulacin
Materiales para simulacin

y y y y y

1 2 6 2 1

PIC16F87A Dip-Switch de cuatro entradas Leds Resistencias (1k y 220) Dip-Switch de dos entradas

DSW1
8 7 6 5

1
RB0/I RB1 RB2 RB3/PG RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

DIPSW _4

220

DIPSW _2

LED-BL E

D5 D4

LED-BL E

PIC16 877A LED-BL E

D3 D2 D1

LED-BL E

LED-BL E

LED-BL E

10

8 9 10

8 7 6 5

DIPSW _4

D6

RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7

RA0/A 0 RA1/A 1 RA2/A 2/VRE / VRE RA3/A 3/VRE RA4/ 0 KI/ 1O RA5/A 4/SS/ 2O RC0/T1OSO/T1CKI RE0/A 5/RD RC1/ 1OSI/CCP2 RE1/A 6/W R RC2/CCP1 RE2/A 7/ S RC3/SCK/SCL RC4/SDI/SDA CLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT

4 3

R2

DSW3
1 2

OS 1/ LKI OS 2/ LKO

2 3 4 5 6 7

13 14

DSW2
1 2 3 4

1 2 3 4

R1
1k

Programa
include"p16f877a.inc" list p=16f877a errorlevel 1,-302 __Config _XT_OSC &_WDT_OFF ;--------------------------------VAR1 VAR2 VAR3 EQU 0x20 EQU 0x21 EQU 0x22 SUMA GOTO SUMA GOTO RESTA MOVF MOVWF ANDLW MOVWF MOVF ANDLW MOVWF SWAPF STATUS,5 0x06 ADCON1 0xFF TRISB 0xFF TRISA TRISD STATUS,5 RESTA ADDWF MOVWF GOTO MOVF MOVWF ANDLW MOVWF MOVF ANDLW MOVWF SWAPF SUBWF MOVWF GOTO SELECC SELECC BTFSC PORTA,0 11 END PORTB,0 VAR1 0x0F VAR2 VAR1,0 0xF0 VAR3 VAR3,0 VAR2,0 PORTD SELECC PORTB,0 VAR1 0x0F VAR2 VAR1,0 0xF0 VAR3 VAR3,0 VAR2,0 PORTD

RESUL EQU 0x23 ;--------------------------------BSF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF CLRF BCF

;---------------------------------------------CLRF CLRF CLRF PORTD PORTB PORTA

Descripcin del Programa

Para que el programa realice las operacin en este caso la suma o la resta, primeramente los datos introducidos en el puerto B se mueven al registro w, los datos almacenados en registro w se mueven a una primera variable en este caso VAR1, de dicha variable se realiza un and con los nibles bajos del puerto B y se almacena en el registro w, el cual posteriormente se enva a una tercera variable en este caso VAR2. Se carga nuevamente VAR1 al registro w y se realiza un and pero ahora con los nibles altos y se almacena en VAR3. Los datos almacenados en la VAR3 quedan almacenados entonces en el nible alto del puerto B , lo cual no nos sirve si es que queremos sumar dos nmeros de 4 bits, por lo tanto, con la instruccin SWAPF se realiza un cambio de los datos de la VAR3 de un nibles alto a un nible bajo y los datos se almacenan en w. Finalmente se realiza la operacin correspondiente, si es suma se utiliza la instruccin ADDWF la cual suma la VAR2 con w; si la operacin a realizar es resta se utiliza la instruccin SUBWF la cual resta VAR2 con w. El resultado de la operacin se mueven al puerto B para que as podamos observarlo a travs de los leds.

12

Practica 3 Retardo de 100ms


Objetivo de la prctica
Esta prctica pretende realizar el encendido de un led con un retardo de 100ms, esto quiere decir que el led permanecer encendido 100ms y posteriormente se apagara otros 100ms. para ello se realiza un programa principal en el cual se mandara a llamar el retardo.

Desarrollo de la prctica
El retardo a se realiza por medio de un programa cargado previamente al PIC en la simulacin. El programa cuenta de varias etapas las cuales son las siguientes: y y y y y y Se indica el tipo de PIC a utilizar Se indica el tipo de cristal a utilizar Se desactiva un error que aparece en la compilacin Se realiza la declaracin de variables a utilizar y en el nmero de registro donde queda almacenada. Se realiza la configuracin del puerto D como salida. Finalmente se realiza el programa en el cual ser llamado el retardo de 100ms.

13

Simulacin
Materiales para simulacin

y y y

1 1 1

PIC16F87A Led Osciloscopio

1
       

13 14 2 3 4 5 6 7 8 9 10 1

1/ L IN 2/ L T

RA0/AN0 RA1/AN1 RA2/AN2/ REF-/ REF RA3/AN3/ REF+ RA4/T0 I/ 1 T RA5/AN4/ / 2 T RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1 I/CCP2 RE1/AN6/ R RC2/CCP1 RE2/AN7/ RC3/ CK/ CL RC4/SDI/SDA MCLR/ pp/T V RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A
                  

RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD

33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

A B C D

D1
LED-BL E


14

Programa
include"p16f877a.inc" list p=16f877a errorlevel 1,-302 __Config _XT_OSC &_WDT_OFF ;----------------------------------------------------------VAR1 EQU VAR2 EQU 0x20 0x21 CLRW MOVWF CALL GOTO TRISD RETARDO PROGRAMA

;----------------------------------------------------------RETARDO MOVLW MOVWF MOVLW DEC2 DEC1 MOVWF DECFSZ GOTO DECFSZ GOTO MOVLW MOVWF DEC3 DECFSZ GOTO d'130' VAR2 d'255' VAR1 VAR1,1 DEC1 VAR2,1 DEC2 d'52' VAR1 VAR1,1 DEC3

;------------------------------------------------------BSF MOVLW MOVWF MOVLW MOVWF CLRF BCF STATUS,5 0x06 ADCON1 0xFF TRISB TRISD STATUS,5

;----------------------------------------------------------CLRF PORTD MOVLW MOVWF CALL 0x01 TRISD RETARDO

PROGRAMA

NOP RETURN END

15

Descripcin del Programa

En el programa principal se carga a w el valor de 1, posteriormente ese valor se manda al puerto D donde se podr observar por medio del encendido y apagado del led el retardo de 100ms. Enseguida, se manda a llamar a la subrutina en este caso etiquetada como RETARDO (todo esto es para que el led se logre encender los 100ms). Finalmente se borra los datos cargados a w y se vuelven a enviar a w, posteriormente se manda a llamar a la subrutina RETARDO (esto realiza el apagado del led). Por medio de la instruccin GOTO se regresa a PROGRAMA. Para realizar la subrutina de retardo se realiz operaciones de tal forma que al correr el programa el retardo dure exactamente 100ms. para ello fue indispensable utilizar tres variables en este caso DEC1, DEC2 y DEC3, las cuales son utilizadas como contadores. Tambin la instruccin DECFSZ para ir decrementando nuestras variables.

16

Practica 4 Rotacin de Leds


Objetivo de la prctica
Esta prctica pretende realizar el encendido ocho leds cada uno con un retardo de 500ms, el encendido de los leds se llevara acabo de tal forma que al observarlos cada led va encendiendo rotando uno a uno. Para ellos tenemos cuatro forma en cmo se har la rotacin de los leds, dicha forma ser introducida por el usuario a travs de un selector. Las cuatro formas son las siguientes: y y y y No enciende ningn led. Rotacin de izquierda a derecha. Rotacin de derecha a izquierda. Rotacin de izquierda a derecha y de derecha a izquierda.

Desarrollo de la prctica
La rotacin del encendidos de los leds se realiza por medio de un programa cargado previamente al PIC en la simulacin. El programa cuenta de varias etapas las cuales son las siguientes: y y y y y y Se indica el tipo de PIC a utilizar Se indica el tipo de cristal a utilizar Se desactiva un error que aparece en la compilacin Se realiza la declaracin de variables a utilizar y en el nmero de registro donde queda almacenada. Se realiza la configuracin del puerto B como entrada y el puerto D como salida. Finalmente se realiza el programa en el cual se indica la forma en que se rotara el encendido de los leds.

17

Simulacin
Materiales para simulacin

y y y y

1 8 1 2

PIC16F87A Leds Dip-Switch de dos entradas Resistencias (1k y 330)

U1
C1/CL IN C2/CL UT R 0/INT R 1 R 2 R 3/ R 4 R 5 R 6/ C R 7/ D

D
33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 4 3

L D-R D

D2
@

L D-R D

IC16 877

D3
@

L D-R D

D4
L D-R D

D5
@

L D-R D

D6
@

L D-R D

D7
@

L D-R D D8

L D-R D

18

RD0/ RD1/ RD2/ RD3/ RD4/ RD5/ RD6/ RD7/

(&( (&( (&( (&( (&( (&( (&( (&(

2 $ % & & & &$ &

& '

" " "

8 9 10

( ( $

&% %&%

% && % $ 3#" ! #" ! #" !

2 3 4 5 6 7

R R R R R R

0/ N0 1/ N1 2/ N2/ R -/C R 3/ N3/ R 4/T0C I/C1 UT 5/ N4/ /C2 UT RC0/T1 /T1C I R 0/ N5/RD RC1/T1 I/CC 2 R 1/ N6/ R RC2/CC 1 R 2/ N7/C RC3/ C / CL RC4/ DI/ D CLR/ pp/TH RC5/ D RC6/TX/C RC7/R /DT

DI

_2

D1

0 1 2 3 4 5 6 7

R2
330

987

0( ) 0( ) ) ) 10( ) ) ) )

%$ $

&% &% (

13 14

OFF

65

1
1 2

ON

R1

Programa
include"p16f877a.inc" list p=16f877a errorlevel 1,-302 __Config _XT_OSC &_WDT_OFF ;----------------------------------------------------------VAR1 VAR2 VAR3 VAR4 VAR5 EQU 0x20 EQU 0x21 EQU 0x22 EQU 0x24 EQU0x25 DERECHA SELEC2 SELEC1 SELEC BTFSC GOTO GOTO BTFSS GOTO GOTO BTFSC GOTO GOTO MOVLW MOVWF BCF MOVLW DER BSF MOVLW MOVWF MOVLW MOVWF CLRF BCF STATUS,5 CALL 0x06 RLF ADCON1 0xFF TRISB TRISD STATUS,5 IZQUIERDA DECFSZ GOTO GOTO MOVLW MOVWF BCF MOVLW IZQ d'8' CONT1 CONT2 MOVWF CALL RRF DECFSZ S CONT1,1 DER ELEC d'8' CONT1 STATUS,0 d'128' PORTD RETARDO PORTD,0 CONT1,1 PORTD,0 RETARDO MOVWF PORTB,0 SELEC2 SELEC1 PORTB,1 SELEC IZQUIERDA PORTB,1 IDDI DERECHA d'8' CONT1 STATUS,0 d'1' PORTD

CONT1 EQU0x26 CONT2 EQU0x27 ;-----------------------------------------------------------

;----------------------------------------------------CLRF CLRF MOVLW MOVWF MOVWF PORTD PORTB

19

GOTO GOTO IDDI MOVLW MOVWF MOVWF BCF MOVLW IZQ1 MOVWF CALL RRF DECFSZ GOTO BCF MOVLW DER1 MOVWF CALL RLF DECFSZ GOTO GOTO RETARDO MOVLW MOVWF MOVLW MOVWF MOVLW

IZQ SELEC d'8' CONT1 CONT2 STATUS,0 d'128' PORTD RETARDO PORTD,0 CONT1,1 IZQ1 STATUS,0 d'1' PORTD RETARDO PORTD,0 CONT2,1 DER1 SELEC DEC4 INIC DEC2 DEC1 DEC3

MOVWF MOVLW MOVWF MOVLW MOVWF NOP DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO MOVLW MOVWF NOP DECFSZ GOTO DECFSZ GOTO NOP NOP

VAR3 d'5' VAR2 d'248' VAR1

VAR1,1 DEC1 VAR2,1 DEC2 VAR3,1 DEC3 d'248' VAR4

VAR4 DEC4 VAR5 INIC

d'2' VAR5 d'247' VAR4

NOP NOP RETURN END

d'100'

20

Descripcin del Programa

En el programa primero entra el selector el cual dependiendo la entrada del usuario va mandarlo a cuatro subrutinas diferentes los cuales son: 00 No enciende ningn led 01 Rotacin del encendido de los leds de derecha a izquierda 10 Rotacin del encendido de los leds de izquierda a derecha 11 Rotacin de los leds de derecha a izquierda y de derecha a izquierda En el programa se utilizan las instrucciones DECFSZ para decrementar las variables, RRF y RLF para rotar los bits hacia la derecha y hacia la izquierda respectivamente, BTFSS y BTFSC para hacer las condicionales del selector. As como tambin se aplica un retardo de 500ms, el cual es el tiempo de encendido del led antes de que rote y encienda el siguiente led

21

You might also like