• Domingo 22 de Diciembre de 2024, 16:02

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - karen81

Páginas: 1 2 3 [4] 5
76
Microcontroladores / Re: Simulador De Pics
« en: Jueves 8 de Julio de 2004, 05:42 »
El mplab que se puede bajar de la pagina de microchip gratis.

77
Microcontroladores / Re: Reset?
« en: Jueves 8 de Julio de 2004, 05:39 »
:) Los pic solo tienen reset por encendido y no por pin fisico, cuando tu le das el reset por el pin fisico el toma a esto como una interrupcion y se va a la direccion 0000 y sigue con lo que esta despues de ahi,que no precisamente es el inicio de tu programa, entonces si tu quieres que al darle reset por ese pin sea lo mismo que al apagarlo y volverle a encender tienes que colocar un salto incondicional asi:


ORG 0

goto inicio

ORG 4

goto rutina ;alguna rutina de interrupcion si estas utilizando interrupciones

ORG 5

inicio :  

te lo digo por experiencia propia ya que yo tuve el mismo problema, si no se corrige tu error avisame


bye y suerte   :hola:

78
ASM (Ensamblador) / Re: Necesito Ayuda Con Lpt Y Assembler
« en: Jueves 8 de Julio de 2004, 05:23 »
:) Espero que te pongan buena nota, cualquier otra duda aqui estamos
adios :hola:

79
ASM (Ensamblador) / Re: Colores En Ensamblador
« en: Viernes 2 de Julio de 2004, 08:15 »
pinguinospn me alegro que te sirviera el programa y como ves Eternal Idol eso es lo que necesitaba el necesitaba un programa para microprocesador 8086 que es de 16 bits ¿a que horas dijo el que necesitaba uno de 32 bits?  :alien: y  como no es mi intencion iniciar una discucion, ya que no tengo tiempo para ello  doy por cerrado el tema.


adios y cuidense  :hola:



 :hippi:

80
ASM (Ensamblador) / Re: Necesito Ayuda Con Lpt Y Assembler
« en: Jueves 1 de Julio de 2004, 10:21 »
;) obviamente no puedes ver los cambios en los leds por que vas contanto en fracciones de segundo lo que debes hacer es colocarles un retraso que se yo de un segundo o mas entre cada dato que envias eso lo haces con lazos verifica en tu set de instrucciones cuanto se tarda cada instruccion y has tu lazo que se tarde un segundo en salirse de el.

este retraso que te pongo aqui se podria decir que es el maximo
lazo1  mov cx,ffffh
lazo2: loop lazo2

lo que se hace es repetirlo varias veces de la siguiente forma
         mov bx,00ffh
lazo1  mov cx,ffffh
lazo2: loop lazo2
          dec bx
          jnz lazo1
 
pruebalo si es muy grande disminuyele bx y si no ves cambio porque el retraso es muy pequeño  aumentale bx poco a poco hasta llegar a ffffh si es necesario
 
en cuanto al programa que te dije no lo tengo en la computadora lo tengo a mano tendria que digitarlo , estos dias estare ocupada si no te urge avisame asi podria digitarlo el fin de semana o cualquier dia de la otra semana pero si es urgente no te lo puedo mandar.

adios :comp:

81
ASM (Ensamblador) / Re: Colores En Ensamblador
« en: Jueves 1 de Julio de 2004, 09:48 »
:blink: No se porque se han enredado tanto en esto.
pinguinospn el programa que necesitas es bastante sencillo no te preocupes, como te dije tienes que usar las interrupciones de la bios, aqui te pongo un programita que acabo de hacer,te pongo el codigo fuente para que veas que es lo que le tienes que cambiar y el ejecutable para que veas que si funciona.
es un programa sencillo que solo muestra un mensaje en fondo azul y con letras verdes modificalo para hacer el tuyo.
cualquier pregunta aqui seguimos.
si tienes problema para ensamblarlo avisame y te mando mi version del masm.

lamento no haber escrito antes, y haber evitado este enredo, con todo respeto realmente no tengo idea de lo que esta hablando Eternal Idol jamas he usado lo que esta diciendo en ensamblador :alien:
Citar
  datos segment

dibujo  db '                     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»' ,13,10
           db '                     º        PRESIONE 0 PARA SALIR º',13,10
           db '                     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ',13,10,'$'
   datos ends

pila segment stack

        db 128 dup ('pila')

                   pila ends
codigo segment

                assume cs:codigo, ss:pila, ds:datos




    PANTA  PROC NEAR              
 
                PUSH AX          ;la clave esta en esta rutina, por eso solo te voy
                PUSH BX          ; a explicar esta
   PUSH CX
   PUSH DX
   MOV CX,0
   MOV DX,2479h
   MOV BH,12h   ;es justamente aqui en BH que se especifica eso   
                                     ;ese 12h indica 1=fondo azul 2=letras verdes
                                ; si fuera 21h seria 2=fondo verde =letras azules
   ;4= es rojo 0=es negro , si pones 04 fondo negro letras rojas
                ;7 = es blanco
                MOV AX,0600H
                INT 10h         
   POP DX
   POP CX
   POP BX
   POP AX
        RET
   PANTA  ENDP

    CURSOR PROC NEAR
        PUSH AX
        PUSH BX
        PUSH CX
        MOV BH,00
        MOV AH,02
        INT 10h
        POP CX
        POP BX
        POP AX
        RET
    CURSOR ENDP
 
    STRING PROC NEAR
        PUSH AX
        PUSH BX
        PUSH CX
        MOV AH,09
        INT 21h
        POP CX
        POP BX
        POP AX
        RET  

     STRING ENDP

     PROGRA PROC FAR

INICIO: push ds
        sub ax,ax       ;para regresar al sistema operativo
        push ax

   
       mov ax,datos
       mov ds,ax       ;inicializa el ds al segmento de datos
 
        MOV AX,0000
        MOV BX,0000
        MOV CX,0000
        MOV DX,0000
      
        CALL PANTA
        MOV DX,0600h
        CALL CURSOR
        LEA DX,dibujo
        CALL STRING
        MOV AH,01
        INT 21h
        CMP AL,30h
        jz fin
        JMP INICIO
fin:    MOV AX,4C00h
        INT 21h
     PROGRA ENDP

codigo ends

end PROGRA


END    

adios y hasta pronto  :hola:

 :comp:

82
ASM (Ensamblador) / Re: Uso De Ultrasonido En Medir Distancias
« en: Jueves 1 de Julio de 2004, 08:10 »
Con ese pic he trabajado y si es util para tus propositos es bastante sencillo, cualquier duda que tengas escribela en el foro microcontroladores como dice super G, ya que este foro es lenguaje ensamblador para microprocesadores.

adios ;)

83
ASM (Ensamblador) / Re: Necesito Ayuda Con Lpt Y Assembler
« en: Martes 29 de Junio de 2004, 06:19 »
Eso que al inicio los led esten encendidos creo que es normal ya que los pines se ponen en uno, podrias al iniciar el programa mandar un cero por el puerto, pero como te decia la rutina que te puse ahi es una guia, incluso creo que olvide ponerle algo a la estructura del masm podria ser eso, pero podrias hacer un menu si me das tu correo te mando un programa que con un menu hace diferentes cosas si le tecleas 1. hace una suma si tecleas dos saca raiz cuadrada etc, les puedes quitar esas rutinas y ponerle la de sacar los datos por el puerto paralelo.
otra cosa el numero que sacas por el puerto se queda enganchado hasta que sacas otro dato


cualquier cosa me avisas   :hola:

84
ASM (Ensamblador) / Re: Colores En Ensamblador
« en: Martes 29 de Junio de 2004, 06:10 »
:alien:  :alien:  :alien:  te refieres a que colores se pueden poner de fondo de pantalla y en las letras ????, si es para eso tienes que utilizar las interrupciones de la bios y los colores que yo se que existen son: negro,blanco,azul,rojo y verde, no se si habran otros, estos son los unicos que he visto.

no se si te referias a eso.

si no es eso me avisas   :kicking:

85
Microcontroladores MOTOROLA / Re: Conversor Adc Del Hc12
« en: Lunes 28 de Junio de 2004, 00:50 »
No se si entendi quieres saber como configurar el convertidor analogico-digital ???aqui esta un ejemplo de configuracion y conversion si no es eso avisame.
nos vemos :hola:
Citar
*******************************************************************
; rutina inic_ATD: Inicializa el ATD
*******************************************************************
inic_ATD:
   ldaa #$80 ; Permite al ATD funcionar normalmente,
   staa ATDCTL2 ; borrado normal de banderas y desabilita interrupciones.
;
   bsr retraso ; Retraso (100uS) para el tiempo de retraso de ESPERA.
;
   ldaa #$00 ; Selecciona conversiones continuas en el Modo BGND.
   staa ATDCTL3 ; Ignora FREEZE en el ATDCTL3.
;
   ldaa #$01 ; Selecciona un tiempo de muestreo final = 2 ciclos de reloj A/D
   staa ATDCTL4 ; Prescala = Div entre 4 (PRS4:0 = 1)
;

                ldaa #$04 ; Inicializa el ATD a SCAN=0, MULT=0, PAD6.
; Se escribe para borrar banderas.
   staa ATDCTL5 ; 4 conversiones activan una Secuencia de Conversión Única.
EsperaConv:
   brclr ATDSTATH,#$80,EsperaConv ; Espera la bandera de Secuencia Completa
   ldd ADR2H ; Carga el resultado de la conversión (ADR2H)
   
; en el acumulador para hacer con el lo que se necesite.

86
ASM (Ensamblador) / Re: Necesito Ayuda Con Lpt Y Assembler
« en: Viernes 18 de Junio de 2004, 21:28 »
;) explicate mejor que es lo que quieres que te muestre
informacion en pantalla o que?, si es eso obviamente tienes que usar dos y las interrrupciones de ensamblador

87
ASM (Ensamblador) / Re: Necesito Ayuda Con Lpt Y Assembler
« en: Martes 15 de Junio de 2004, 22:43 »
Me hubiera gustado que me hubieras puesto el tipo de errores que te puso que habia ya que se pueden ver en el archivo .LST si son de sintaxis o de que???
Ahora, respecto a la instruccion at: loop at (talvez no te la entendio porque no le pusiste los dos puntos ya que at es una etiqueta igual cambiala por:

etiq:  loop etiq,  si quieres o cualquier etiqueta, lo que hace esta instruccion es estar saltando a ella misma hasta que CX valga cero, es decir cada salto decrementa cx (te ahorra estar decrementando manualmente cx para el retraso)
Ahora los errores que de seguro te dio fue porque solo copiaste lo que puse en el mensaje y lo pegaste y le pusiste la estructura de un archivo.asm.
Y no era asi la cosa, ese código es una idea basica para que supieras como se envian los datos, y esta echa para un principiante que apenas sabe usar el debug, pero creo que a ustedes no les enseñan el debug si no que de una vez el ensamblador , el debug trabaja con numeros hexadecimales mientras que el ensamblador trabaja con DECIMALES por eso te dio un error en mov cx,00FF, tenias que haber puesto mov cx,00FFh o pasar 00ff a decimal
otro error es esa instruccion int 20 ; que solo es para el debug (para que acabe porque ahi no se le puede poner END)
A CONTINUACION TE PONGO EL ARCHIVO COMO DEBE SER PARA EL ENSAMBLADOR (ya corregido todo)
ES EL ARCHIVO .LST QUE OBTUVE AL COMPILAR EL ARCHIVO.ASM Y VERAS QUE NO ME PUSO NI ERROR NI ADVERTENCIA NI NADA( Ahora segun la version de tu masm asi cambia la estructura, si me das tu correo te envio mi version de masm, si no te funciona en el tuyo)
Citar
 The Microsoft MACRO Assembler , Version 1.25             Page   1-1
               06-15-:4   


1           ;PROGRAMA DE ENVIO   
2           
3           
4           
5           
6           
7  0000         datos segment
8           
9         
10           
11  0000                            datos ends
12           
13  0000         pila segment stack
14           
15  0000     80 [             db 128 dup ('pila')
16                70 69 6C 61   
17                             ]   
18           
19           
20  0200                          pila ends
21           
22  0000         codigo segment
23           
24              assume cs:codigo, ss:pila, ds:datos
25  0000  BB 0500      inicio: mov bx,0500h
26  0003  8A 07      ot:      mov al,[bx]
27  0005  BA 0378                mov dx,0378h
28  0008  EE                                out dx,al   
29  0009  B9 00FF                mov cx,00FFh 
30  000C  E2 FE      AT:     loop AT     
31  000E  43                                inc bx       
32  000F  81 FB 0600                              cmp bx,0600h 
33                             
34  0013  75 EE                 jnz ot       
35               
36                       
37                       
38  0015         codigo ends
39           
40           end

 The Microsoft MACRO Assembler , Version 1.25             Page   Symbols
         -1
               06-15-:4   


Segments and groups:

     N a m e       Size   align   combine   class

CODIGO . . . . . . . . . . . . .   0015   PARA     NONE   
DATOS. . . . . . . . . . . . . .   0000   PARA     NONE   
PILA . . . . . . . . . . . . . .   0200   PARA     STACK 

Symbols:           

     N a m e       Type   Value   Attr         

AT . . . . . . . . . . . . . . .   L NEAR  000C   CODIGO
INICIO . . . . . . . . . . . . .   L NEAR  0000   CODIGO
OT . . . . . . . . . . . . . . .   L NEAR  0003   CODIGO

Warning Severe
Errors   Errors
0   0
saludos y cualquier cosa aqui seguimos  
  :flower:

88
Microcontroladores / Re: Que Falla En Este Codigo?
« en: Viernes 11 de Junio de 2004, 23:57 »
Yo he usado mucho el pic 16f877 y su convertidor analogico digital y al ver tu programa no se le ve ningun error, este programa que te pongo aqui es uno que ya esta probado y ha funcionado, La parte de la conversion, si la revisas es casi identica a la tuya solo que nosotros no le pusimos esos NOP (no creo que eso sea pero deberias probar quitandolos).
Lo que yo creo es que talvez la direccion de algun registro este mal, o no te entiende cosas como poner B'10000001' o algun detallito asi
proba con este programa que te pongo aqui  (sin modificarle nada a ver que tal??)

Citar
;***********************************************************
;                           ADT.ASM
;***********************************************************
        LIST    p=16F877 ; indica el modelo de PIC

        #include "P16F877.INC" ; archivo de encabezado

portb equ 0x06   ;Define el puerto b como salida fisica
trisb equ 0x06  ;Define la dirección del registro de direccion TRISB
status equ 0x03 ;Define la dirección del registro de estado
adresh equ 0x1e ;Registro de datos del convertidor A/D (Parte alta)
adcon0 equ 0x1f ;Registro 0 de control y estado del convertidor A/D
adcon1 equ 0x1f ;Registro 1 de control y estado del convertidor A/D

rp0 equ 5 ;Bits del registro de estado para cambiar de banco de memoria de datos
w equ 0 ;destino de la operacion registro w

        ORG 0
        movlw 00           ;Pone el valor de 00 en el registro de trabajo
        bsf status,rp0  ;Apunta al banco 1
        movwf trisb  ;Se configura el puerto b como salida
        clrf adcon1   ;Se configura que los datos de la conversion estaran  justificados a la izquierda
    ;y se trabajara con las referencias de la fuente primaria de alimentacion (Vdd=6v)
        bcf status,rp0  ;Apunta al banco 0
        movlw 0x81  ;Activamos el convertidor A/D, seleccionamos el canal 0 para la conversion 
        movwf adcon0  ;y configuramos la sincronia del convertidor a su valor maximo (Fosc/32=625Khz)
conver: bsf adcon0,2  ;Iniciamos la conversion para leer el ATD
check:  btfsc adcon0,2  ;Verificamos la conversion completa si ya se completo salte de lo contrario repita
        goto check
        movf adresh,w
        movwf portb
        goto conver  ;Repita el proceso para leer un nuevo valor del atd

       END
Espero que te funcione :comp:
si te funciona o no por favor avisame
adios  :flower:

89
ASM (Ensamblador) / Re: Necesito Ayuda Con Lpt Y Assembler
« en: Viernes 11 de Junio de 2004, 23:03 »
unos mensajes abajo (buscalo Tommy es el iniciador) he puesto un codigo para comunicarte con el puerto paralelo ya sea enviando y recibiendo datos, en tu caso necesitaras estar enviando los datos como son seis leds tendrias que sacar el numero binario 111111 que en hexadecimal (el que usa el ensamblador)  es  "3F"
verifica el codigo cualquier duda escribela


 :comp: adios

90
ASM (Ensamblador) / Re: Envio De Datos Por El Puerto Serial En Asm
« en: Sábado 5 de Junio de 2004, 23:12 »
:alien:  :alien:  :alien: en el titulo dices "Envio De Datos Por El Puerto Serial En Asm" y en tu mensaje
Citar

hola necesito ayuda, tengo que hacer un programa en asembler que envie datos por el puerto paralelo, porfa responder o mandar mail a: leogallegoscl@hotmail.com

¿serial o paralelo?

si es paralelo unos mensajes mas abajo he colocado un codigo (tommy preguntó).

91
Microcontroladores / Re: Uso De Interrupciones Con Pic 16f877
« en: Sábado 5 de Junio de 2004, 23:04 »
Las interrupciones son un conjunto de excepciones asincrónicas que permite el microprocesador para alterar la ejecución secuencial normal de instrucciones; estas se manejan a través de vectores que contienen la dirección física de la memoria donde se encuentra la rutina de servicio a la excepción solicitada.

es decir hacemos un programa que acepta interrupciones por lo que cada vez que se da una interrupcion el programa se interrumpe el micro guarda la direccion donde se interrumpio el programa y otras cosas en la pila (depende de que microcontrolador estemos usando) luego se va al vector de interrupcion donde esta la direccion de la rutina de servicio (que es la rutina que queremos que haga cuando se da la interrupcion) luego de realizarla saca lo que guardo en la pila y retorna a la direccion donde se dio la interrupcion y continua.
La diferencia entre las interrupciones enmascarables y las noenmascarables es que las enmascarables se pueden evitar, es decir si no queremos que se den las enmascaramos poniendo a uno o a cero una bandera (depende del micro) y aunque se de la condicion no se da la interrupcion. En cambio las noenmascarables no se puede evitar que se den ejemplo los RESET no se pueden evitar.
En cuanto a la interrupcion NMI e IRQ tendrias que especificar a que micro te refieres.

Espero que esto te ayude, si algo no te queda claro avisame ya que es un tema que recien acabo de pasar por lo que lo recuerdo muy bien

adios :comp:

92
ASM (Ensamblador) / Re: Comunicacion A Puerto Paralelo.
« en: Sábado 5 de Junio de 2004, 22:06 »
:(  la verdad no estoy segura si la direccion es la misma en todas las Pc pero creo que no, en las computadoras que yo usaba en mi lugar de estudio nos dijeron que esas eran las direcciones. voy a averiguar bien y te aviso  :hola:

93
ASM (Ensamblador) / Re: Binario A Bcd
« en: Sábado 22 de Mayo de 2004, 04:22 »
:smartass:  yo hice un dado electronico con microcontrolador HC12 y no utilice otra circuiteria mas que un display siete segmentos lo que hice fue lo siguiente:
conecte de esta forma los pines del puerto b al display


Código: Text
  1.  
  2. ;     pb1
  3. ;     -----
  4. ;pb2 I     I pb0
  5. ;     ----- <----- pb3
  6. ;pb4 I     I pb6
  7. ;     -----
  8. ;     pb5
  9.  
  10.  
   

asi con un lazo de comparacion sacaba los siguientes numeros:
cuando era 1 sacaba el hexadecimal 41 que como ves va a encender un uno
cuando era 2 sacaba el hexadecimal 3B que como ves va a encender un dos
y asi  sucesivamente 3 = 6B, 4 = 4D, 5 = 6E, 6= 7E y cero seria 76 creo
para que no se me perdieran los numeros del 1 al 6 los guardaba en una variable auxiliar sacaba el dato al puerto y volvia a cargar los numeros del 1 al 6
no se si esto te ayude espero que si  :comp:
saludos.

94
ASM (Ensamblador) / Re: Tips
« en: Domingo 16 de Mayo de 2004, 04:36 »
bueno supongo que ya sabes usar interrupciones.
la interrupcion 1A permite obtener informacion del sistema si se escoge la funcion te da la hora del sistema ya en BCD , la hora la coloca en los registros cx y dx de la siguiente forma:
CH:Hora BCD, Cl:minutos BCD, Dh:segundos BCD
el siguiente programa almacena la hora del sistema en las siguientes direcciones
0200 horas (00 a 24 hrs)
0201 minutos (00 a 59)
0201 segundos (00 a 59)

MOV AH,2   ;necesario para poder leer la hora del sistema
INT 1A
MOV [200],CH
MOV [201],CL
MOV [202],DH
INT 20        ;esto finaliza el programa
tendria que hacer un retardo de 15segundos, mandar la direccion 201 por el puerto, llamar otra vez al  retardo de 15segundos y luego mandar la direccion 200 por el puerto y volver al inicio, lo de leer del teclado tambien se hace con interrupciones y podrias estarte preguntando si ya se toco la tecla en medio de las rutinas de 15 segundos.
Espero que esto te ayude. si tienes alguna duda avisame

95
ASM (Ensamblador) / Re: Ordenamiento De Una Cadena
« en: Lunes 10 de Mayo de 2004, 02:33 »
Hola , seria bueno que explicaras como lo has pensado hacer ya que el programa que colocas no tiene comentarios y no es tan facil de entender  :alien: .
supongo que al ingresar por ejemplo: abzde quieres que te salga abdez , cierto?
yo hice uno asi hace algun tiempo con la limitante que solo se podian ingresar letras minusculas, como los datos son ingresados por el teclado se guardan en ascii o sea los numeros 61 a 7a (a a la z) entonces el programa lo unico que debe de hacer es ordenar los numeros de menor a mayor, ese algoritmo lo debo de tener por ahi guardado, lo buscare, por lo pronto esa es la idea.
No dejas muy claro cual es tu duda, si no era esa me avisas.
 :comp:

96
Microcontroladores / Re: Uso De Interrupciones Con Pic 16f877
« en: Lunes 26 de Abril de 2004, 19:28 »
:) gracias creo que he comprendido una ultima duda es para el motorola hc12 ocurre igual se da una interrupcion y el se va a un vector especifico ya que cada uno tiene uno propio el timer tiene el suyo que esta en la ffxx (no recuerdo bien) como seria en ese caso?
¿igual que con el pic o como?



gracias de antemano

97
Microcontroladores / Re: Uso De Interrupciones Con Pic 16f877
« en: Lunes 26 de Abril de 2004, 04:01 »
Se lo que es una interrupcion, lo que necesito saber es por ejemplo el convertidor analogico digital dispara una interrupcion cuando completa una conversion al hacerlo se debe mandar un una al puerto pero lo que no se es como el programa sabe que tiene que hacer cuando se da la interrupcion por que como tengo entendido cuando se da la interrupcion el cpu va a un vector en la direccion 0004h especificamente.
lo que no se es como decirle por ejemplo que lo que tiene que hacer esta en la direccion xxxxx
¿se debe de guardar en esa direccion (0004h) la direccion xxxx. para que cuando se de la interrupcion se vaya para allá?

 :unsure:
gracias de antemano.

atte Karen Giraldo.

98
Microcontroladores / Uso De Interrupciones Con Pic 16f877
« en: Viernes 23 de Abril de 2004, 20:04 »
:huh: Hola no se si alguien tiene un problema cualquiera en pic 16f877 que utilice interrupciones aun tengo dudas del esquema a utilizar o si pueden decirme como debe ser la estructura de un programa que utilice interrupciones

Gracias de antemano :hola:

99
Microcontroladores / Ayuda Con Micro Rfpic12f675f
« en: Lunes 12 de Abril de 2004, 00:12 »
:) Hola no se si alguno de ustedes sepa algo del microcontrolador  rfPIC12F675F Y SU RECEPTOR o conozca alguna direccion donde brinden informacion sobre este microcontrolador de radio frecuencia (a parte de microchip).

gracias de antemano  :lol:

100
Matlab / Re: Comandos En Matlab 4
« en: Lunes 5 de Abril de 2004, 02:00 »
<_<  noooooo.

es funcion de transferencia no trasnsformada de fourier

Páginas: 1 2 3 [4] 5