SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: Blade89 en Miércoles 27 de Febrero de 2008, 11:16
-
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.
-
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.
-
Gracias :D