TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
02 de Septiembre de 2014, 11:01:08

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
347952 Mensajes en 39041 Temas por 40659 Usuarios
Último usuario: gerard198
* Inicio Ayuda Buscar Calendario Ingresar Registrarse
Buscar en TodoPIC
+  TODOPIC
|-+  Microcontroladores PIC
| |-+  Lenguaje Basic para microcontroladores PIC (Moderadores: dogflu66, doppel, jansuini, Marioguillote, aitopes)
| | |-+  Ejemplitos de Mikrobasic y Proteus
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: 1 2 3 [4] 5 Marcar como favorito Imprimir
Autor Tema: Ejemplitos de Mikrobasic y Proteus  (Leído 82795 veces)
klibert
PIC10
*
Desconectado Desconectado

Mensajes: 3


« Respuesta #60 : 04 de Diciembre de 2009, 13:58:49 »

PROGRAMA CONTROL POR ORDENADOR NIVEL INDUSTRIAL para ESTUDIANTES


program PIC_LCD_PC
' CONECCIONE AL LCD
DIM LCD_RS AS SBIT AT RD2_BIT
    LCD_EN AS SBIT AT RD3_BIT
    LCD_D4 AS SBIT AT RD4_BIT
    LCD_D5 AS SBIT AT RD5_BIT
    LCD_D6 AS SBIT AT RD6_BIT
    LCD_D7 AS SBIT AT RD7_BIT

    LCD_RS_Direction as sbit at TRISD2_BIT
    LCD_EN_Direction as sbit at TRISD3_BIT
    LCD_D4_Direction as sbit at TRISD4_BIT
    LCD_D5_Direction as sbit at TRISD5_BIT
    LCD_D6_Direction as sbit at TRISD6_BIT
    LCD_D7_Direction as sbit at TRISD7_BIT
'FIN CONECCIOM LCD

DIM TXT1, TXT2, TXT3, TXT4, TXT5, TXT6, TXT7, TXT8 AS STRING[19]

    TEXTO AS STRING[17]
    UART_RD AS BYTE
    CONT AS BYTE
    ON_L1 AS BYTE

DIM TEXTO1, TEXTO2, TEXTO3, TEXTO4, TEXTO5, TEXTO6, TEXTO7, TEXTO8 AS STRING[43]

DIM    TECLA1, TECLA2, TECLA3, TECLA4, TECLA0 AS BIT
SUB PROCEDURE CLEARSCREEN()
DIM I AS BYTE
    FOR i = 0 TO  190
        UART1_Write(0X08)
    NEXT I
END SUB

SUB PROCEDURE SALTARLINEA()
     UART1_Write(0X0D)
     UART1_Write(0X0A)
END SUB

SUB PROCEDURE MENU()
     UART1_Write(0X0D)
     UART1_Write(0X0A)
     UART1_Write_Text("PRESIONAR UNA TECLA PARA ACTIVAR/DESACTIVAR")
     UART1_Write(0X0D)
     UART1_Write(0X0A)
     SALTARLINEA()
     IF TECLA1=1 THEN
       UART1_Write_Text(TEXTO5)
       ELSE
       UART1_Write_Text(TEXTO1)
     END IF
     UART1_Write(0X0D)
     UART1_Write(0X0A)
     IF TECLA2=1 THEN
       UART1_Write_Text(TEXTO6)
       ELSE
       UART1_Write_Text(TEXTO2)
     END IF
     UART1_Write(0X0D)
     UART1_Write(0X0A)
     IF TECLA3=1 THEN
       UART1_Write_Text(TEXTO7)
       ELSE
       UART1_Write_Text(TEXTO3)
     END IF
     UART1_Write(0X0D)
     UART1_Write(0X0A)
     IF TECLA4=1 THEN
       UART1_Write_Text(TEXTO8)
       ELSE
       UART1_Write_Text(TEXTO4)
     END IF
     UART1_Write(0X0D)
     UART1_Write(0X0A)
END SUB

MAIN:
TRISD = 0
PORTD = 0x00
TRISD = 0x00
TRISC = %10000001
PORTC = 0X00
UART1_INIT(4800)
DELAY_MS(100)

TECLA1=0
TECLA2=0
TECLA3=0
TECLA4=0
TECLA0=0

TXT1="FOCO ACTIVADO"
TXT2="FOCO DESACTIVADO"
TXT3="MOTOR ACTIVADO"
TXT4="MOTOR DESACTIVADO"
TXT5="VALVULA ACTIVADA"
TXT6="VALVULA DESACTIVADA"
TXT7="SISTEMA ACTIVADO"
TXT8="SISTEMA DESACTIVADO"


TEXTO1="TECLA # 1  ---- FOCO DESACTIVADO"
TEXTO2="TECLA # 2  ---- VALVULA DESACTIVADA"
TEXTO3="TECLA # 3  ---- MOTOR DESACTIVADO"
TEXTO4="TECLA # 4  ---- SISTEMA DESACTIVADO"

TEXTO5="TECLA # 1  ---- FOCO ACTIVADO"
TEXTO6="TECLA # 2  ---- VALVULA ACTIVADA"
TEXTO7="TECLA # 3  ---- MOTOR ACTIVADO"
TEXTO8="TECLA # 4  ---- SISTEMA ACTIVADO"

Lcd_init()
LCD_CMD(_LCD_CLEAR)
LCD_CMD(_LCD_CURSOR_OFF)
MENU()
while (TRUE)
                             ' Endless loop
                             
    WHILE PORTC.0 = 1
         PORTC.1 = 1
         LCD_CMD(_LCD_CLEAR)
         Lcd_Out(1,6,"ERROR")
         Lcd_Out(2,1,"ALARMA ACTIVADA")
         DELAY_MS(200)
    WEND
    PORTC.1 = 0

    if (UART1_Data_Ready() <> 0) then      ' If data is received,
      uart_rd = UART1_Read()               '   read the received data,
'---------------------------------------
      IF (UART_RD = "1") THEN
         TECLA1 = NOT TECLA1
         IF  TECLA1=1 THEN
             LCD_CMD(_LCD_CLEAR)
             Lcd_Out(1,1,TXT1)
             SETBIT(PORTC, 2)
             CLEARSCREEN()
             MENU()
         END IF
         IF TECLA1=0 THEN
            LCD_CMD(_LCD_CLEAR)
            Lcd_Out(1,1,TXT2)
            CLEARBIT(PORTC, 2)
             CLEARSCREEN()
             MENU()
         END IF
      END IF
'---------------------------------------
      IF (UART_RD = "2") THEN
         TECLA2 = NOT TECLA2
         IF  TECLA2=1 THEN
             LCD_CMD(_LCD_CLEAR)
             Lcd_Out(1,1,TXT3)
             SETBIT(PORTC, 3)
             CLEARSCREEN()
             MENU()
         END IF
         IF TECLA2=0 THEN
            LCD_CMD(_LCD_CLEAR)
            Lcd_Out(1,1,TXT4)
            CLEARBIT(PORTC, 3)
             CLEARSCREEN()
             MENU()
         END IF
      END IF
'---------------------------------------
'---------------------------------------
      IF (UART_RD = "3") THEN
         TECLA3 = NOT TECLA3
         IF  TECLA3=1 THEN
             LCD_CMD(_LCD_CLEAR)
             Lcd_Out(1,1,TXT5)
             SETBIT(PORTC, 4)
             CLEARSCREEN()
             MENU()
         END IF
         IF TECLA3=0 THEN
            LCD_CMD(_LCD_CLEAR)
            Lcd_Out(1,1,TXT6)
            CLEARBIT(PORTC, 4)
             CLEARSCREEN()
             MENU()
         END IF
      END IF
'---------------------------------------
'---------------------------------------
      IF (UART_RD = "4") THEN
         TECLA4 = NOT TECLA4
         IF  TECLA4=1 THEN
             LCD_CMD(_LCD_CLEAR)
             Lcd_Out(1,1,TXT7)
             SETBIT(PORTC, 5)
             CLEARSCREEN()
             MENU()
         END IF
         IF TECLA4=0 THEN
            LCD_CMD(_LCD_CLEAR)
            Lcd_Out(1,1,TXT8)
            CLEARBIT(PORTC, 5)
             CLEARSCREEN()
             MENU()
         END IF
      END IF
'---------------------------------------
    end if
  wend

end.
En línea
klibert
PIC10
*
Desconectado Desconectado

Mensajes: 3


« Respuesta #61 : 04 de Diciembre de 2009, 14:03:49 »

EL CODIGO ANTERIOR ESTA ECHO EN MIKROBASIC PRO FOR PIC 2009
En línea
wicho1991
PIC10
*
Desconectado Desconectado

Guatemala Guatemala

Mensajes: 3


« Respuesta #62 : 13 de Mayo de 2010, 00:31:59 »

hola   a  todos   soy  nuevo en esto solo  quiero saber  cual es  el codigo en mickrobasic  para activar  la  entrada  analogica digital  y como  puedo hacer para  convertir el pulso de un microfono
En línea
bigluis
Colaborador
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Nicaragua Nicaragua

Mensajes: 505


No a la Lectura Si al conocimiento.


WWW
« Respuesta #63 : 13 de Mayo de 2010, 14:18:24 »

Tienes que configurar los registros ANSEL y ANSELH para los PIC16 para los PIC18 tienes que configurar los registros ADCON1 segun lo especifique la hoja de datos, luego debes utilizar la funcion ADC_Read(dim channel as byte) en la que mandaras a leer el canal especificado por la misma.

El ejemplo que se encuentra en la ayuda de MikroBasic es el siguiente.
Código
GeSHi (freebasic):
  1. program ADC_on_LEDs
  2. dim adc_rd as word
  3.  
  4. main:
  5.    ANSEL  = 0x04           ' Configure AN2 pin as analog
  6.    TRISA  = 0xFF           ' PORTA is input
  7.    ANSELH = 0              ' Configure other AN pins as digital I/O
  8.    TRISC  = 0x3F           ' Pins RC7, RC6 are outputs
  9.    TRISB  = 0              ' PORTB is output
  10.  
  11.  while (TRUE)
  12.    adc_rd = ADC_Read(2)    ' get ADC value from 2nd channel
  13.    PORTB = adc_rd          ' display adc_rd[7..0]
  14.    PORTC = Hi(adc_rd)      ' display adc_rd[9..8]
  15.  wend
  16. end.
  17.  
En línea

Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA
NORTEÑO
PIC10
*
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 32


« Respuesta #64 : 09 de Junio de 2010, 10:27:59 »

Un saludo a todos.
Propongo un ejemplo Facil.
Un pulsador Biestable. Primera pulsacion enciende un led, segunda pulsacion apaga el led.

Mas adelante podriamos complicarlo

RECORDAD EN MIKROBASIC.
En línea
Lord_Duran
PIC12
**
Desconectado Desconectado

Bolivia Bolivia

Mensajes: 76


« Respuesta #65 : 04 de Agosto de 2010, 21:33:18 »

Saludos.

Estoy trabajando en MikroBasic.
Estoy realizando la lectura de variacion de voltaje que llega al AN0 del ADC del PIC877, por esa parte no tengo problemas.
configuré variables de tipo word para guardar lo convertido, de tipo float para operaciones con decimales.
Lo que no se es cómo hacerle para que me muestre solamente 2 decimales despues del punto (ej: 2.35), tambien, además ya como 3 días que estoy tratando de ver la informacion que quiero en la LCD de forma correcta, pero no lo logro, quiero mostrarlo en dos líneas, pero nada, todo se muestra en la línea 1, no pasa a la linea 2 del LCD.

El código es el siguiente:

Código:
program EJEM1

Dim LCD_RS As sbit At RB4_bit
Dim LCD_EN As sbit At RB5_bit
Dim LCD_D4 As sbit At RB0_bit
Dim LCD_D5 As sbit At RB1_bit
Dim LCD_D6 As sbit At RB2_bit
Dim LCD_D7 As sbit At RB3_bit

Dim LCD_RS_Direction As sbit At TRISB4_bit
Dim LCD_EN_Direction As sbit At TRISB5_bit
Dim LCD_D4_Direction As sbit At TRISB0_bit
Dim LCD_D5_Direction As sbit At TRISB1_bit
Dim LCD_D6_Direction As sbit At TRISB2_bit
Dim LCD_D7_Direction As sbit At TRISB3_bit
   
Dim dato As word         ' Dato donde se guardara la conversion A/D
Dim datostr As string[4] ' Variable para conversion datos.
Dim voltaje As Float
Dim VoltajeStr As string[4]
Dim datoflt As float

main:  'Programa principal
       TRISB = %00000000
       TRISA = %11111111
       ADCON1 = %10000010
       LCD_Init()
       LCD_Cmd(_LCD_CLEAR)
       LCD_Cmd(_LCD_CURSOR_OFF)
       Delay_ms(500)

    While (true)
       dato = Adc_Read(0) ' Carga el resultado de 10 bits en la variable
       datoflt = dato
       FloatToStr(dato,datostr)
       LCD_Out(1, 1,datostr)
       voltaje = datoflt * 0.0049
       FloatToStr(voltaje,VoltajeStr)
       LCD_Out(2, 1,VoltajeStr)
       Delay_ms(1000)
    Wend
end.

pusiera la imagen de la LCD en simulacion, pero no se cómo poner imágenes ni subir archivos.

Muchas gracias.
En línea
Lord_Duran
PIC12
**
Desconectado Desconectado

Bolivia Bolivia

Mensajes: 76


« Respuesta #66 : 24 de Agosto de 2010, 12:13:04 »

Saludos, ya solucione el problema, ahora estoy teneiendo problemas con la TX serial (PIC a PC), no logro ahcer que funciones como se debe

Código:
program EJEMPLO_SERIAL
'--- Area de declaración:

Dim Datos_RX As Byte[10]    ' Arreglo de variables para almacenar los datos.
  acumulador As Byte        ' Variable para condicional "loop Until..."
           X As Byte        ' Variable para lazo For-Next.
Dim mandar as char[20]

' Configuración de pines de control y datos de la pantalla LCD:

Dim LCD_RS As sbit At RB4_bit
    LCD_EN As sbit At RB5_bit
    LCD_D4 As sbit At RB0_bit
    LCD_D5 As sbit At RB1_bit
    LCD_D6 As sbit At RB2_bit
    LCD_D7 As sbit At RB3_bit

    LCD_RS_Direction As sbit At TRISB4_bit
    LCD_EN_Direction As sbit At TRISB5_bit
    LCD_D4_Direction As sbit At TRISB0_bit
    LCD_D5_Direction As sbit At TRISB1_bit
    LCD_D6_Direction As sbit At TRISB2_bit
    LCD_D7_Direction As sbit At TRISB3_bit

' Fin de la configuración de conexiones



main:                                   '   Programa Principal

  UART1_Init(2400)                      ' Inicializamos el módulo UART a 2400 bps.
  Delay_ms(100)                         ' Pausa de 100 milisegundos para estabilización.

  LCD_Init()                            ' Inicializa la pantalla LCD
  LCD_Cmd(_LCD_CLEAR)                   ' Limpia la pantalla LCD
  LCD_Cmd(_LCD_CURSOR_OFF)              ' Apaga el cursor en la pantalla

  Lcd_Out(1, 1, "Datos: ")              ' Se imprime "Datos: " en la primera línea
                                        ' de la pantalla.

mandar = "ejemploamandar"
                                          ' continúa cargando caracteres.
    For X = 1 To 9                        ' For-Next para enviar los datos desde
                                          ' la primera variable hasta la última cargada.
    UART1_Write(mandar[X])              ' Enviamos el dato cargado en la variable.

    Next X


    Lcd_Out(2, 1, "Mostrando Datos!")     ' Mensaje de estado del Buffer.


    For X = 1 To 9                        ' For-Next para presentar los datos desde
                                          ' la primera variable hasta la última cargada.
    Lcd_Chr(1, 8, mandar[X])            ' Mostramos el equivalente ASCII del valor cargado
                                          ' en la variable "Datos_RX"

    Delay_ms(1000)                        ' Retardo de 1 segundo.

    Next X


    Lcd_Out(2, 1, "      Fin       ")     ' Mensaje de finalización del proceso.

End.

en el LCD muestra como debe ser, pero no logro que se haga la transmision.
En línea
ASTROCAR
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Venezuela Venezuela

Mensajes: 641


MI NUEVO JUGUETE GPS


« Respuesta #67 : 28 de Agosto de 2010, 12:04:24 »

Hola buenos dias, tengo una duda en MKB, les explico para ver si me hago entender tengo un pic16f877a el cual tengo conectada una lcd 16x2 en dicha lcd quiero mostrar valores que recibo por puerto serial es decir que me lo envio desde la pc y la idea es  mostrar esos valores en la lcd en hex es decir si envio 1E que en la lcd visualice 1E pero ya verdad nose como hacer la transformacion para que la liberia de las lcd me visualice eso yo lo hago pero muestro es el valor en decimal es decir envio 1E y veo 30 que es un valor en decimal como podria verlo en la lcd en hex.

Saludos y espero su valiosa colaboracion.

Atten.
Alexander Santana.
Venezuela-Barcelona
« Última modificación: 29 de Agosto de 2010, 10:47:37 por ASTROCAR » En línea

EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE
bigluis
Colaborador
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Nicaragua Nicaragua

Mensajes: 505


No a la Lectura Si al conocimiento.


WWW
« Respuesta #68 : 30 de Agosto de 2010, 00:02:22 »

Este compilador no tiene una funcion especial que haga eso (CCS si la tiene), por lo tanto debes crear una rutina para hacerlo.

Puedes utilizar esto

Código
GeSHi (freebasic):
  1. sub procedure imprime_Hexadecimal(num)
  2.  dim i,nibble_inferior as byte     'declaramos el byte nibble_inferior
  3.  for i=0 to 2                      'hacemos que haga esto 2 veces
  4.    asm                             'inicio del bloque ensamblador
  5.      swap num,1                    'intercambiamos los nibbles del numero
  6.    end asm                         'fin del bloque ensamblador
  7.    nibble_inferior=num and 00001111 'extraemos el nibble inferior del numero
  8.    if(nibble_inferior<10)           'si el nibble inferior es menor a 10
  9.      nibble_inferior=nibble_inferior+'0'   'guardamos valor ascii del numero
  10.    else                                    'de lo contrario
  11.      nibble_inferior=nibble_inferior+55    'guardamos valor ascii de la letra (A=65)
  12.    end if
  13.    Lcd_Chr_CP(nibble_inferior)      'imprime el nibble inferior
  14.  next i
  15. end sub
  16.  

Si imprime 3 caracteres debes poner el limite del for en 1.

 rebotando suerte.
En línea

Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA
ASTROCAR
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Venezuela Venezuela

Mensajes: 641


MI NUEVO JUGUETE GPS


« Respuesta #69 : 30 de Agosto de 2010, 23:43:03 »

Este compilador no tiene una funcion especial que haga eso (CCS si la tiene), por lo tanto debes crear una rutina para hacerlo.

Puedes utilizar esto

Código
GeSHi (freebasic):
  1. sub procedure imprime_Hexadecimal(num)
  2.  dim i,nibble_inferior as byte     'declaramos el byte nibble_inferior
  3.  for i=0 to 2                      'hacemos que haga esto 2 veces
  4.    asm                             'inicio del bloque ensamblador
  5.      swap num,1                    'intercambiamos los nibbles del numero
  6.    end asm                         'fin del bloque ensamblador
  7.    nibble_inferior=num and 00001111 'extraemos el nibble inferior del numero
  8.    if(nibble_inferior<10)           'si el nibble inferior es menor a 10
  9.      nibble_inferior=nibble_inferior+'0'   'guardamos valor ascii del numero
  10.    else                                    'de lo contrario
  11.      nibble_inferior=nibble_inferior+55    'guardamos valor ascii de la letra (A=65)
  12.    end if
  13.    Lcd_Chr_CP(nibble_inferior)      'imprime el nibble inferior
  14.  next i
  15. end sub
  16.  

Si imprime 3 caracteres debes poner el limite del for en 1.

 rebotando suerte.

Gracias por tu gentil respuesta en la brevedad lo pruebo y te comento de momento tiene mucha logica y hasta ya lo tenia en mente pero hacer toda la rutina en asm y agregarla al codigo que estoy haciendo.

Saludos.
Atten.
Alexander Santana.
En línea

EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE
ASTROCAR
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Venezuela Venezuela

Mensajes: 641


MI NUEVO JUGUETE GPS


« Respuesta #70 : 31 de Agosto de 2010, 15:18:03 »

Hola buenas tardes, hoy experimentando nuevamente con el mkb le note utra deficiencia estaba declarando un arreglo  para tener un buffer y no me permite mas de 50 items lo que quieres decir es que se me dificulta a la hora de  tener un buffer para cargas valores de una eeprom.


Saludos y es sin menos preciar el mikrobasic pero son limitantes que hay que tenerlas encuenta a la hora de realizar aplicaciones con requerimientos como una variable buffer para cargas valores tipo byte una eeprom por ejemplo si quiero leer sus primeras 256 direcciones no puedo almacenar esos valores temporarmente.

Atten.
Alexander Santana.
Barcelona-Venezuela.
En línea

EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE
marcelo2112
PIC12
**
Desconectado Desconectado

Mensajes: 62


« Respuesta #71 : 01 de Octubre de 2010, 09:23:07 »

Borrar. Gracias
« Última modificación: 06 de Octubre de 2010, 14:47:25 por marcelo2112 » En línea
meledu
PIC12
**
Desconectado Desconectado

Sexo: Masculino
Peru Peru

Mensajes: 83


« Respuesta #72 : 12 de Noviembre de 2010, 18:04:32 »

Perdonen pero que significa ASG   lo he visto en varios programas
En línea
cosmic
PIC10
*
Desconectado Desconectado

Colombia Colombia

Mensajes: 42


« Respuesta #73 : 09 de Abril de 2011, 18:40:49 »

Amigo.
Ya que estas en esto del mokrobasic, como creo una libreria propia
tengo un que no se acopla a los tradicionales ks0108 y demas Embarassed Embarassed
Gracias por tu ayuda rebotando rebotando Embarassed
En línea
bigluis
Colaborador
PIC24F
*****
Desconectado Desconectado

Sexo: Masculino
Nicaragua Nicaragua

Mensajes: 505


No a la Lectura Si al conocimiento.


WWW
« Respuesta #74 : 10 de Abril de 2011, 00:55:09 »

Perdonen pero que significa ASG   lo he visto en varios programas

Sería mejor que pongas una referencia de donde viste eso, ya que yo no he visto nunca eso, posiblemente se refiera a una variable o algo así.

Amigo.
Ya que estas en esto del mokrobasic, como creo una libreria propia
tengo un que no se acopla a los tradicionales ks0108 y demas Embarassed Embarassed
Gracias por tu ayuda rebotando rebotando Embarassed

Para crear una nueva librería lo unico que tienes que hacer es crear un nuevo archivo *.bas y luego lo guardas en la carpeta del proyecto y finalmente lo mandas a llamar con la instrucción Include en el archivo principal.

Si lo que deseas es utilizar una librería hecha, lo más probable es que la encuentres para código C y por ello tendrás que adaptarla a MikroBasic.
En línea

Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA
cosmic
PIC10
*
Desconectado Desconectado

Colombia Colombia

Mensajes: 42


« Respuesta #75 : 13 de Abril de 2011, 14:55:46 »

Veguepic amigo.
una preguntita. Como hago para usar cualquier puerto como bus de 8bits para lcd.
he intentado usar el portb del pic 16f873a, pero me da error
lcd8_Init (PORTB,7,6,5,4,3,2,1,0, PORTC,7,6,5). ESTO EN LA VERSION 7.0.02
Graciasa por tu ayuda
En línea
banistelrroy
PIC10
*
Desconectado Desconectado

Peru Peru

Mensajes: 27


« Respuesta #76 : 11 de Mayo de 2011, 01:50:35 »

una consulta tengo instalado micro code estudio hay conflicto si instalo mikrobasic
En línea
jorge_613
PIC10
*
Desconectado Desconectado

Venezuela Venezuela

Mensajes: 19


« Respuesta #77 : 11 de Mayo de 2011, 15:45:10 »

Hola estoy aprendiendo a utilizar este lenguaje, y por el momento me va d eperlas,
Trao de hacer un  Pulsado que cada vez que lo pulse este se me vaya sumnado y me muestre el numero de pulsaciones en un display.

este EJEMPLO muestra algo que yo quiero, pero no se como hacerlo en el proteus, hasta ahora intento de esta forma, pero sigue sin funcionar, alguna idea, por favor?

En el Adjunto la Imagen.
En línea
duaiber
PIC10
*
Desconectado Desconectado

Venezuela Venezuela

Mensajes: 1


« Respuesta #78 : 14 de Septiembre de 2011, 18:01:52 »

buenas tardes estoy trabajando en un data logger ya tengo las rutinas para leer una memoria sd y escribirla pero tengo un problema que estare guardando datos float en realidad no se como almacenarlos en una memoria serial o EEPROM interna ya q este coniene 4bytes y pues sino se como guardarlo imaginenc leerlo por separado y encriptarlo si alguien tiene algun proyecto de guardado de variable flotante en mkb le agradezco de antemano
En línea
intimdq
PIC10
*
Desconectado Desconectado

Argentina Argentina

Mensajes: 15


« Respuesta #79 : 15 de Diciembre de 2011, 00:03:00 »

Hola a todos estoy haciendo una rutina en la que necesito visualizar en 4 display 7 segmentos cátodo común un valor de una variable “microsegundos” por el momento dispongo de esta rutina, pero no muestra decimales y no me secuencia el PORTB. Que es lo que estoy haciendo mal??

dim shifter, portc_index as byte ' Variables shifter y portc_index son de tipo byte
dim microsegundos as byte    ' Definir la variable microsegundos como un byte
digit, number as word            ' Variables digit y number son de tipo word
portc_array as word[4]           ' Matriz portc_array tiene 4 miembros de tipo word
sub function mask (dim num as Word) as Word ' Subrutina para enmascarar
  select case num ' utilizada para convertir
    case 0 result = $3F          ' números binarios en la
    case 1 result = $06          ' combinación de bits apropiada
    case 2 result = $5B          ' que se visualizará en el LED
    case 3 result = $4F
    case 4 result = $66
    case 5 result = $6D
    case 6 result = $7D
    case 7 result = $07
    case 8 result = $7F
    case 9 result = $6F
  end select ' Final de la sentencia Case
end sub ' Final de la subrutina

sub procedure interrupt ' Inicio de la rutina de interrupción
  PORTB = 0             ' Apagar todos los visualizadores de 7 segmentos
  PORTC = portc_array [portc_index] ' Enviar el valor apropiado al puerto PORTD
  PORTB = shifter        ' Encender el visualizador apropiado de 7 segmentos
  shifter = shifter << 1 ' Mover shifter al siguiente dígito
 
  if (shifter > 8 ) then
    shifter = 1
  end if
 
  Inc(portc_index)       ' Incrementar portc_index
 
  if (portc_index > 3) then
    portc_index = 0      ' Encender el primero, apagar el cuarto visualizador de 7 segmentos
  end if
 
  TMR0 = 0               ' Reiniciar el valor del TIMER0
  T0IF_bit = 0           ' Borrar la bandera de interrupción del Timer0
end sub                  ' Final de la rutina de interrupción

main:            ' Inicio del programa
OPTION_REG = $80 ' Configuración del Timer0 (Timer0 funciona como temporizador
                 ' con el pre-escalador)
digit = 0        ' Valor inicial de la variable digit
portd_index = 0  ' Encender el primer visualizador LED
shifter = 1      ' Valor inicial de la variable shifter
TMR0 = 0         ' Borrar el Timer0
INTCON = $A0     ' Habilitar interrupción con los bits GIE y T0IE
PORTB = 0        ' Borrar el PORTB
TRISB = 0        ' Configurar el PORTB como salida
PORTC = 0        ' Borrar el PORTC
TRISD = 0        ' Configurar el PORTD como salida
number = microsegundos*0.012288   
number=  0.05/ number   ' Valor en el visualizador LED
           

while TRUE       ' Bucle infinito
  digit = number / 1000         ' Extraer miles
  portc_array[3] = mask(digit)  ' y almacenarlo en la matriz PORTC
  digit = (number / 100) mod 10 ' Extraer centenas
  portc_array[2] = mask(digit)  ' y almacenarlo en la matriz PORTC
  digit = (number / 10) mod 10  ' Extraer decenas
  portc_array[1] = mask(digit)  ' y almacenarlo en la matriz PORTC
  digit = number mod 10         ' Extraer unidades
  portc_array[0] = mask(digit)  ' y almacenarlo en la matriz PORTC
 
  Delay_ms(10000)                ' Retardo de un segundo
 
  wend

end. ' Final de programa
En línea
TODOPIC
   

 En línea
Páginas: 1 2 3 [4] 5 Imprimir 
« anterior próximo »
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines XHTML 1.0 válido! CSS válido!
Página creada en 0.149 segundos con 24 consultas.
anything