codigo atmel

12
UNIVERSIDAD “FERMIN TORO” VICERRECTORADO ACADEMICO FACULTAD DE INGENIERIA CABUDARE EDO. LARA CÓDIGO MICROPROCESADOR ATMEL Alumna: María Daniela Álvarez CI: 17784337

Upload: mariadanielaalvarez

Post on 11-Aug-2015

167 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Codigo atmel

UNIVERSIDAD “FERMIN TORO”VICERRECTORADO ACADEMICO

FACULTAD DE INGENIERIACABUDARE EDO. LARA

CÓDIGO

MICROPROCESADOR

ATMEL

Alumna:María Daniela Álvarez

CI: 17784337

Cabudare, Junio 2015

Page 2: Codigo atmel

Tarea código microprocesador atmel at89c51/52Código 1

El programa deberá contar en binario del 0 al 31 haciendo uso de uno de los puertos del micro para mostrar el numero en cuestión, deberá tener una pausa entre número y numero para poder apreciar el cambio entre uno y otro y al llegar al tope, es decir el numero 31 deberá devolverse de manera descendente hasta llegar a 0 para repetir el proceso nuevamente de manera infinita.

ORG 00H

MOV A,#0

SIGUE:

MOV P1,A

CALL RET1S

INC A

CJNE A,#32,SIGUE

MOV A,#30

SIGUE2:

mov P1,A

CALL RET1S

DEC A

CJNE A,#255,SIGUE2

MOV A,#1

JMP SIGUE

RET1S:

MOV R7,#5

RE43:

MOV R6,#250

RE42:

MOV R5,#250

DJNZ R5,$

Page 3: Codigo atmel

DJNZ R6,RE42

DJNZ R7,RE43

RET

END

Código 2

El estudiante deberá realizar un programa para un micro atmel at89c51/52 que simule la siguiente situación:

En un edificio de 3 pisos  se desea instalar un ascensor que será controlado de manera electrónica por un microcontrolador, se debe mostrar un menú en una pantalla LCD en el cual se observan los pisos enumerados del 1 al 3, por medio de un teclado el usuario podrá ingresar el piso al cual se dirige y por medio de unos led se mostrara el piso en el cual se encuentra el ascensor. Tomar en cuenta para el diseño del programa el funcionamiento real del ascensor, (si está en el piso 3 y se marca el 1 este deberá pasar primer por el 2 y si se marca el piso en el cual se encuentra actualmente el mismo no deberá moverse.

org 00h

jmp config8

org 03h

jmp piso0

org 0bh

jmp piso2

org 013h

jmp piso1

config8:

mov a,#38h

call inst

mov a,#06h

call inst

mov a,#0ch

Page 4: Codigo atmel

call inst

setb pi0

setb pi1

setb pi2

mov ie,#10000111B

mov tmod,#00000110b

mov th0,#0ffh

mov tl0,#0ffh

mov tcon,#00010101b

mov p1,#0ffh

principal:

setb lpi0

call planta0

s1: setb lpi0

setb pi0

jnb pi1,s2

jnb pi2,s2

jmp s1

s2: call sobrepeso

call cerrando

call subiendo

jb pi1,s3

call planta1

call abriendo

s3: setb lpi1

call planta1

s4: setb pi1

Page 5: Codigo atmel

setb lpi1

jnb pi2,ss1

jnb pi0,bajando1

jmp s4

ss1: jb bn,ss2

call sobrepeso

call cerrando

ss2: call subiendo

call planta2

call abriendo

s6: setb lpi2

call planta2

loop2:

setb pi2

setb lpi2

jnb pi1,bajando0

jnb pi0,bajando0

jmp loop2

bajando0:

call sobrepeso

call cerrando

call bajando

jb pi1,s7

call planta1

call abriendo

s7: setb lpi1

call planta1

bajando1:

Page 6: Codigo atmel

setb pi1

setb lpi1

jnb pi0,s9

jnb pi2,s4

jmp bajando1

s9: jb bn,ss3

call sobrepeso

call cerrando

ss3: call bajando

call planta0

call abriendo

jmp principal

sobrepeso:

jb speso,sli

call borrar

mov dptr,#sobrep

call lazo_palabra

jnb speso,$

sli: ret

borrar: mov a,#01h

call inst

ret

subiendo:

call borrar

Page 7: Codigo atmel

mov dptr,#msj1

jmp mostrar

bajando:

call borrar

mov dptr,#msj2

jmp mostrar

abriendo:

clr bn

call borrar

mov dptr,#msj3

call lazo_palabra

call ret3s

call borrar

mov dptr,#msj9

jmp mostrar

cerrando:

setb bn

call borrar

mov dptr,#msj4

call lazo_palabra

call ret3s

call borrar

mov dptr,#msj8

jmp mostrar

planta0:

call borrar

mov dptr,#msj5

jmp mostrar

Page 8: Codigo atmel

planta1:

call borrar

mov dptr,#msj6

jmp mostrar

planta2:

call borrar

mov dptr,#msj7

mostrar:call lazo_palabra

call ret3s

ret

piso0: clr pi0

clr lpi0

reti

piso1: clr pi1

clr lpi1

reti

piso2: clr pi2

clr lpi2

reti

; '123456789abcdef'

msj1: db ' Subiendo...',00h

Page 9: Codigo atmel

msj2: db ' Bajando...',00h

msj3: db 'Abriendo puerta',00h

msj4: db 'Cerrando puerta',00h

msj5: db ' Planta baja',00h

msj6: db ' Piso 1',00h

msj7: db ' Piso 2',00h

msj8: db 'Puerta cerrada!',00h

msj9: db 'Puerta abierta!',00h

sobrep: db 'Error sobrepeso',00h

config8:

mov a,#38h

call inst

mov a,#06h

call inst

mov a,#0ch

call inst

ret

lazo_palabra:

MOV A,#0

MOVC A,@A+Dptr

JZ salir

Call DATO

INC Dptr

JMP lazo_palabra

Page 10: Codigo atmel

salir: ret

INST: CLR P2.1

JMP SIGUE

DATO: SETB P2.1

SIGUE: MOV P0,A

SETB P2.0

CALL RET1MS

CLR P2.0

RET

RET3S:

MOV R6,#22

RET2: CALL RET100MS

DJNZ R6,RET2

RET

RET1MS: MOV R4,#50D

RE23: MOV R5,#20D

DJNZ R5,$

DJNZ R4,RE23

RET

RET100MS:

MOV R4,#255D

RE13: MOV R5,#255D

DJNZ R5,$

DJNZ R4,RE13

Page 11: Codigo atmel

RET

lpi0 equ p1.0

lpi1 equ p1.1

lpi2 equ p1.2

speso equ p1.7

pi1 equ 20h.0

pi2 equ 20h.1

pi0 equ 20h.2

bn equ 20h.3

End