TODOPIC
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
. ¿Perdiste tu
email de activación
?
1 Hora
1 Día
1 Semana
1 Mes
Siempre
Ingresar con nombre de usuario, contraseña y duración de la sesión
Este tema
Este sub-foro
Todo el foro
Google
Inicio
Ayuda
Buscar
Ingresar
Registrarse
TODOPIC
»
Otros Microcontroladores / Dispositivos programables
»
Microcontroladores 8 bits
(Moderador:
stk500
) »
AT89S8252
« anterior
próximo »
Imprimir
Páginas: [
1
]
Ir Abajo
Autor
Tema: AT89S8252 (Leído 2548 veces)
0 Usuarios y 1 Visitante están viendo este tema.
enXian
Visitante
AT89S8252
«
en:
12 de Julio de 2006, 20:13:26 »
Hola soy nuevo en los microcontroladores llevo la materia microprocesadores I con el MC ATMEL AT89S8252 estamos usando el software Pinnacle y para enviar el ponnyprog. perdon pero voy a estar molestandolos un rato..
tengo que hacer un programa que prende y apaga 1 led durante 1 segundo. en realidad no tengo idea de que instrucciones utilizar es una practica..
En línea
enxian
PIC10
Mensajes: 2
Re: AT89S8252
«
Respuesta #1 en:
20 de Julio de 2006, 15:06:42 »
Hola haber si alguien me puede ayudar con este programa. se trata de convertir un numero de hexadecimal a decimal 0 a FF y mostrarlo en 3 displays.
En línea
enxian
PIC10
Mensajes: 2
Re: AT89S8252
«
Respuesta #2 en:
20 de Julio de 2006, 18:49:57 »
Aqui dejo un ejemplo que puso el maestro.
ORG 0000H
JMP INICIO
ORG 0040H
INICIO: MOV SP,#0E0H
MOV A,P1
MOV B,#64H
DIV AB
MOV R0,A
MOV A,B
MOV B,#0AH
DIV AB
MOV R1,A
A=02
B=37
FF 37 37 05
--- = 02 ---- = 0 ---- = 05 ----- = 0
64 64 0A 0A
En línea
djpalas
Colaborador
PIC24F
Mensajes: 595
Re: AT89S8252
«
Respuesta #3 en:
20 de Julio de 2006, 20:15:45 »
A ver, vamos por pasos? Llevo un tiempo sin tocar ASM de la arquitectura 8051, pero eso es como montar en bici
Que es lo que quieres exactamente? Porque has colocado 3post diferente en el mismo hilo.
Sobre lo del Hexadecimal a 3Displays, acabo de programarte este codigo, hechale un vistazo y pruebalo.
Código: ASM
;==============================
; Rutina Hex a 3 BCD
;==============================
; Entrada:
; - Dato en el Acumulador
; Salida:
; - R0: BCD más alto
; - R1: BCD medio
; - R2: BCD más bajo
;==============================
HexTo3BCD
:
mov
B
,
#
100
div
AB
mov
R0
,
A
mov
A
,
B
mov
B
,
#
10
div
AB
mov
R1
,
A
mov
R2
,
B
ret
Te lo comento un poco....puesto que el máximo valor que puede tomar con una variable de 8bit son 2^8=256 (0 a 255 == 0 a FF) Si por ejemplo queremos visualizar en los 3 display el valor decimal de 7Bh (123 en decimal)
Veamoslo en datos decimales mejor:
Código: ASM
.
.
.
mov
A
,
#
7Bh
; Movemos 123 al acumulador
acall HexTo3BCD
; Llamamos la subrutina
.
.
.
HexTo3BCD
:
mov
B
,
#
100
; Movemos 100 al registro B
div
AB
; Dividimos 123 entre 100, obteniendo 1 como cociente y 23 el resto, osea A=1 y B=23
mov
R0
,
A
; Guardamos nuestro primer Dígito
mov
A
,
B
; Movemos al acumulador el valor del registro B para la siguiente operacion
mov
B
,
#
10
; Movemos 10 al registro B
div
AB
; Dividimos 23 entre 10. A=2 y B=3
mov
R1
,
A
; Guardamos el Segundo Dígito
mov
R2
,
B
; Guardamos el Tercer Dígito
ret
; Salimos de la Subrutina
Espero que te sirva esta subrutina.
En línea
Saludos desde Cádiz, España
Web personal:
http://www.microtronic.es
Imprimir
Páginas: [
1
]
Ir Arriba
« anterior
próximo »
TODOPIC
»
Otros Microcontroladores / Dispositivos programables
»
Microcontroladores 8 bits
(Moderador:
stk500
) »
AT89S8252