• Domingo 22 de Diciembre de 2024, 13:38

Autor Tema:  Problema Con Un Programa .asm  (Leído 2170 veces)

Blade89

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problema Con Un Programa .asm
« en: Miércoles 27 de Febrero de 2008, 11:16 »
0
Hola, soy nuevo en esto de la programación y tengo una duda:

Tengo este programa, en el cual sale una salida sinosoidal.
Para el 8253 o 8254

TIPO EQU 0FH
BASE EQU 220H
CONT1 EQU BASE+1
CONT2 EQU BASE+2
PAL_CONT EQU BASE+3
ADCLB EQU BASE+4
ADCHB EQU BASE+5
DAC2LB EQU BASE+6
DAC2HB EQU BASE+7
FINT EQU BASE+8
RANGO EQU BASE+9
CANAL EQU BASE+10
MODO EQU BASE+11
REG_MASC EQU 21H
OWC2 EQU 20H

datos segment
DATOS ENDS

CODIGO SEGMENT
ASSUME CS:CODIGO, DS:DATOS
PRINCIPAL PROC FAR
MOV AX,DATOS
MOV DS,AX
;INICIALIZAR CONTADOR

MOV DX,RANGO ;
MOV AL,04H ;
OUT DX,AL ;SELECCIONAR RANGO

MOV DX,CANAL ;
MOV AL,13H ;
OUT DX,AL ;SELECCIONAR CANAL

MOV DX,REG_MASC ;
IN AL,DX ;
OR AL,80H ;
OUT DX,AL ;ENMASCARAR IRQ7

MOV CX,SEG RUTINA ;
MOV DX,OFFSET RUTINA ;
SUB AX,AX ;
MOV ES,AX ;
MOV SI,TIPO*4 ;
CLI ;
MOV ES:[SI],DX ;
MOV ES:[SI+2],CX ;
STI ;INSTALACION RUTINA TRATAMIENTO

MOV AH,0FFH
MOV CX,0FFFFH

MOV DX,PAL_CONT ;
MOV AL,74H ;
OUT DX,AL ;
MOV DX,CONT1 ;
MOV AL,4 ;
OUT DX,AL ;
MOV AL,0 ;
OUT DX,AL ;PROGRAMA DE CONTADOR 1

MOV DX,PAL_CONT ;
MOV AL,0B4H ;
OUT DX,AL ;
MOV DX,CONT2 ;
MOV AL,32H ;
OUT DX,AL ;
MOV AL,01H ;
OUT DX,AL ;PROGRAMA DE CONTADOR 2

MOV DX,REG_MASC ;
IN AL,DX ;
AND AL,7FH ;
OUT DX,AL ;DESENMASCARAR IRQ7

MOV DX,MODO ;
MOV AL,6 ;
OUT DX,AL ;MODOINTERRUPCION

MOV DX,OWC2 ;
MOV AL,20H ;
OUT DX,AL ;EOI NO ESPECIFICO

MOV DX,FINT ;
MOV AL,0 ;
OUT DX,AL ;
;BORRAR FLAG INTERRUPCION
BUC: CMP CX,0 ;
JNE BUC ;COMPARACIàN
MOV CX,0FFFFh
DEC AH
JNE BUC

MOV DX,MODO ;
MOV AL,0 ;
OUT DX,AL ;DESACTIVAR MODO

MOV AX,4C00H
INT 21H
PRINCIPAL ENDP
RUTINA PROC NEAR

MOV DX,ADCLB ;
IN AL,DX ;
MOV BL,AL ;LEER ADCLB
MOV DX,ADCHB ;
IN AL,DX ;
MOV BH,AL ;LEER ADCHB -
MOV DX,DAC2LB ;
MOV AL,BL ;
OUT DX,AL ;ESCRIBIR DAC2LB
MOV DX,DAC2HB ;
MOV AL,BH ;
OUT DX,AL ;ESCRIBIR DAC2HB
MOV DX,FINT
MOV AL,0
OUT DX,AL
MOV DX,OWC2 ;
MOV AL,20H ;
OUT DX,AL ;EOI NO ESPECIFICO


DEC CX
IRET
RUTINA ENDP
CODIGO ENDS
END PRINCIPAL


Y necesito saber como hacer salir una senyal quadrada con un rango de tensiones de +-4v.

¿Alguien puede ayudarme?
¿Como puedo sacar el rango de +-4v?
¿Que instrucciones tengo qeu cambiar?
¿Y para la senyal cuadrada?

Gracias.

Toph

  • Moderador
  • ******
  • Mensajes: 420
  • Nacionalidad: sv
    • Ver Perfil
    • http://www.electronicayotros.blogspot.com/
Re: Problema Con Un Programa .asm
« Respuesta #1 en: Miércoles 27 de Febrero de 2008, 19:41 »
0
Cita de: "Blade89"
Y necesito saber como hacer salir una senyal quadrada con un rango de tensiones de +-4v.

¿Alguien puede ayudarme?
¿Como puedo sacar el rango de +-4v?
¿Que instrucciones tengo qeu cambiar?
¿Y para la senyal cuadrada?

Gracias.
para sacar una señal cuadrada es mas facil, con una rutina sacas varias veces el mismo numero para sacar la parte de abajo y luego en otra rutina varias veces otro numero para la parte de arriba de la señal cuadrada y asi sucesivamente, ahora para sacar los -4 y 4 voltios (del puerto paralelo supongo ya que no lei el progrma) no es cuestion del programa del todo tambien hay que hacer un circuito convertidor digital analogo para convertir los datos digitales a la señal analogica.
Por favor leer esto antes de postear. Gracias
NO alimenten al TROLL y morirá
¿Querés ayudar?, pues doná comida gratis con un simple clic aqui ,sin trucos
photobucket , Google , wine y cutepdf Rock!!!


programacion,c,c++,
Microcontroladores,java,linux,videojuegos,
,.NET,asm,codigo
por favor este 2012 que sea

Blade89

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Problema Con Un Programa .asm
« Respuesta #2 en: Miércoles 27 de Febrero de 2008, 21:35 »
0
Gracias :D