Documente Academic
Documente Profesional
Documente Cultură
CIENCIAS DE LA INGENIERÍA
INGENIERÍA EN TELEMÁTICA
MICROCONTROLADORES
SEMESTRE:
6 SEMESTRE
TEMA:
PRACTICA 3-4
ALUMNO:
QUEVEDO-LOS RÍOS-ECUADOR
2019-2020
PRACTICA 3
LED DE 7 SEGMENTOS
El display 7 segmentos es un componente electrónico muy utilizado para representar
visualmente números y letras, es de gran utilidad dado su simpleza para implementar
en cualquier proyecto electrónico
ATEMEGA328P
El Atmega328 AVR 8-bit es un Circuito integrado de alto rendimiento que está basado
un microcontrolador RISC, combinando 32 KB ISP flash una memoria con la capacidad
de leer-mientras-escribe, 1 KB de memoria EEPROM, 2 KB de SRAM, 23 líneas de E/S de
propósito general, 32 registros de proceso general, tres temporizadores
flexibles/contadores con modo de comparación, interrupciones internas y externas,
programador de modo USART, una interfaz serial orientada a byte de 2 cables, SPI
puerto serial, 6-canales 10-bit Conversor A/D (canales en TQFP y QFN/MLF packages),
"watchdog timer" programable con oscilador interno, y cinco modos de ahorro de
energía seleccionables por software.
LOGICSTATE (ESTADOS LOGICOS)
Son instrumentos virtuales de los que dispone proteus, los Logic State sirven para
"inyectar" niveles lógicos en los pines a donde estén conectados mientras que los Logic
Probe hacen lo contrario, muestran mediante un recuadro azul o rojo si la señal digital
en tal pin es "0" o "1" lógico respectivamente.
PB0
PB1
PB2
PB3
PB4
PB5
PB6
CIRCUITO COMPLETO
Una ves conectado cada terminal procedemos a verificar el diseño completo y
observar si cumple con los requisitos y el diseño q se desea.
CÓDIGO ASSEMBLER
Ya diseñado el circuito procedemos a la programación del código el cual dará
funcionamiento al circuito.
;
; practica 3.asm
;
; Created: 23/07/2019 23:59:30
; Author : Bryan
.dseg
;"Segmento de Datos"; le dice al ensamblador que el siguiente
texto es usado para establecer la SRAM.
.def pb=r16
;"Definir (registros)"; con esta directiva podrás asignar nombres
a los registros para identificarlos.
.def pp=r17
.cseg
;"Segmento de Código" esta directiva le dice al ensamblador que
el siguiente código o expresiones deberán colocarse en la memoria
de programa.
ldi pb ,0x00
out ddrd,pb
ldi pb,0b00001111
out portd,pb
ldi pb,0b01111111
out ddrb,pb
;inicializa el programa
read:
in pb,pind
cero:
ldi pb,0x3f
out portb,pb
rjmp read
uno:
ldi pb,0x06
out portb,pb
rjmp read
dos:
ldi pb,0x5b
out portb,pb
rjmp read
tres:
ldi pb,0x4f
out portb,pb
rjmp read
cuatro:
ldi pb,0x66
out portb,pb
rjmp read
cinco:
ldi pb,0x6d
out portb,pb
rjmp read
seis:
ldi pb,0x7d
out portb,pb
rjmp read
siete:
ldi pb,0x07
out portb,pb
rjmp read
ocho:
ldi pb,0x7f
out portb,pb
rjmp read
nueve:
ldi pb,0x67
out portb,pb
rjmp read
a:
ldi pb,0x77
out portb,pb
rjmp read
b:
ldi pb,0x7c
out portb,pb
rjmp read
c:
ldi pb,0x39
out portb,pb
rjmp read
d:
ldi pb,0x5e
out portb,pb
rjmp read
e:
ldi pb,0x79
out portb,pb
rjmp read
f:
ldi pb,0x71
out portb,pb
rjmp read
.dseg
.def a=r16
.def b=r17
.def c=r18
.def an=R19
.cseg
ldi a,0x00
out ddrd,a
ldi a,0x00
out portd,a
out portd,b
ldi c,0x07
out ddrb,c
ldi an,0x0f
read:
in a,pind
and a,an
in b,pind
swap b
and b,an
define:
cp a,b
brne mayor
rjmp comparo2
mayor:
ldi b,0
ldi c,0
ldi a,0b00000001
out portb,a
rjmp read
igual:
ldi a,0
ldi b,0
ldi c,0b00000010
out portb,c
rjmp read