Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE INGENIERA
REA MECNICA ELCTRICA
Laboratorio de
INGENIERIA DE CONTROL II
Prctica #.
Nombre de la prctica
Nombre: Ernesto Bermudez Martinez
Carrera: IMT
Instructor: Israel Garca Teniente
Desarrollo:
Ejemplo 1. Crear un programa que configure los pines del puerto B como entradas
y los pines del puerto C como salidas, en el cual todo lo que se ponga en el puerto
B, se ver reflejado en el puerto C.
; puertos de salida
LDI R18,0XFF; declaracin de puerto c como salida
OUT PORTC, R18; estableciendo valor inicial de pines en 0.
;---------------------------------
; configuracin de perifricos:
; no se utiliza ningn perifrico
;-----------------------------------------------------------------------------
MAIN:
IN R19, PINB; cargando seal de puerto b.
OUT PORTC, R19; sacando por el puerto c la seal en el puerto b
RCALL
RETARDO
RJMP MAIN
;-----------------------------------------------------------------------------
; funcin para mantener por algunos segundos la operacin realizada
RETARDO:
LDI R20,0X01; contador
LDI R21,0XFF; valor final del contador.
CICLO:
NOP
NOP
NOP
INC R20
CPSE R21, R20; se salta la siguiente lnea o instruccin si r21=r20
RJMP CICLO
RET
Ejemplo 2. Crear un programa que use como entradas los 2 botones
momentneos y como salidas un display de 7 segmentos. De manera que haga lo
siguiente:
.include"m88def.inc"
.cseg
.org 0x0000
; Declaracin de puertos
; puerto de entrada:
LDI R18,0X00
OUT DDRB, R18; declaracin de puerto b como entrada
OUT PORTB, R18; desactivar resistencia de pull-up de entrada
; puertos de salida
LDI R18,0XFF; declaracin de puerto c como salida
OUT PORTC, R18; estableciendo valor inicial de pines en 0.
;---------------------------------
; configuracin de perifricos:
; no se utiliza ningn perifrico
;-----------------------------------------------------------------------------
MAIN:
ldi r18, 0x00 ; Valida que no se halla habilitado ningn pulsador
ldi r19, 0x01 ; Valida bit 0
ldi r20, 0x02 ;Valida bit 1
ldi r21, 0x03 ;Valida que no se hallan habilitado ambos.
SALIDAS:
cpse r20, r23 ; Valida si el bit activo es el c1 (si lo es hace un salto de linea)
rjmp ABAJO
rjmp ARRIBA ;----------------------------------------------------------------------------- ;Funcion para mantener
para ver que pulsador de activo.
ABAJO:
ldi r24, 0x0f ;Saca por puerto los bits de la parte de abajo.
out portb, r24
rjmp FIN
ARRIBA:
ldi r24, 0xf0 ;saca por puerto los bits de la parte de arriba.
out portb, r24
rjmp FIN
FIN:
rcall RETARDO ; Genera retardo en tiempo para ver resultado.
rjmp MAIN ;Se cicla proceso
Codigo de tarea:
.include "m88def.inc"
.cseg
.org 0x0000
;Puertos de salida:
LDI R18, 0xFF
OUT DDRB,
LDI R18, 0x00
OUT PORTB, R18
;---------------------------------------------------------
MAIN:
LDI R18,0x00
LDI R19,0x01
LDI R20,0x02
LDI R21,0x03
IN R22, PINC
LDI R23, 0x03
AND R23, R22
CERO:
cpi r23,0
brne UNO
ldi r16, 0X3F
out PORTB, r16
rjmp MAIN
UNO:
cpi r23,1
brne DOS
ldi r16, 0X06
out PORTB, r16
rjmp MAIN
DOS:
cpi r23,2
brne TRES
ldi r16, 0x5B
out PORTB, r16
rjmp MAIN
TRES:
cpi r23,3
brne MAIN
ldi r16, 0x4F
out PORTB, r16
rjmp MAIN
LDI R17,0X00
CICLO:
INC R17
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CPI R17,0XFF
BRNE CICLO
RET