Haz una pregunta
  Foros de Electrónica > Diseño digital > Microcontroladores y sistemas embebidos

Discusiones similares

21-may-2009 #1
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
Curso programacion de pic en bsic pro
Que tal amigos uno de los lenguajes mas facil para programar micros es el basic pro sin despreciar el C por lo que abierto este hilo para empezar a ejecutar programas sencillos hasta llegar a los mas complejos.

miren lo facil que es prender un led con un pic 16f84A :

Código:
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz

led var portb.0                       ; asignamos led a puerto RB0

inicio:

HIGH  led                               ;asigna  un 1 logico 
PAUSE 500                              ; tiempo de espera de 500mls
LOW  led                                ; apaga led
este es un ejemplo sencillo ire anexando el codigo fuente y su respectiva simulacion en proteus de todos los realizados en este hilo.

Última edición por Chico3001; 30-ago-2009 a las 17:42
Citar
21-may-2009 #2
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
aqui va un codigo sencillo todo comentado:


Código:
; encender un led conectado al pin 37 (RB4) del pic 16F877A durante 2.5 seg y 
;luego apagarlo 0.5 seg el proceso debe repetirse 4 veces luego el led debe 
;permanecer apagado.


                                
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz
x var byte       ; crea la variable x y asigna un espacio de memoria
                 ; de o a 255
LED var portb.4   ; asigna el nombre de led a RB4 del pic 16f877A


programa:          ; inicio de la linea de programa 
for x=0 to 3       ; repetir 4 veces
high led           ;enciende led
pause 2500         ; esperar 2.5 seg
low led            ;apaga led 
pause 500          ; espera 0.5 seg
next               ; siguiente repeticion hasta que sea x=3
end                ; fin del programa
Citar
21-may-2009 #3
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
;proyecto con leds 1

Código:
; encender 2 leds conectados a (RB0-RB1) del pic 16F877A alternadamente , es 
;decir un led esta encendido mientras el otro esta apagado y viceversa los 
;tiempos de transicion son de 700mls entre encendido y apagado el proceso 
;debe continuar indefinidamentedurante.

                                
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz
x var byte       ; crea la variable x y asigna un espacio de memoria
                 ; de o a 255
LED1 var portb.0   ; asigna el nombre de led1 a RB0 del pic 16f877A
LED2 VAR portb.1   ; asigna el nombre de led2 a RB1

programa:          ; inicio de la linea de programa 

high led1:low led2   ;enciende led1 y apaga led 2
pause 700           ; esperar 0.7 seg
low led1:high led2  ;apaga led1 y enciende led2 
pause 700          ; espera 0.7 seg
goto programa       ; ir a programa
end                ; fin del programa
Citar
21-may-2009 #4
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
;LUEGO DE LAS LUCES DE DISCOTECA ENCIENDA LOS LEDS DEL MEDIO HACIA LOS EXTREMOS
;CON UN TIEMPO DE 200mseg

Código:
;  leds=leds<<1    EQUIVALE A MULTIPLICAR POR DOS Y DESPLAZARSE UNO A UNO
;  leds=leds<<2    EQUIVALE A MULTIPLICAR POR CUATRO Y DESPLAZARSE DE DOS EN DOS
;  leds=leds>>1    EQUIVALE A DIVIDIR  POR DOS Y DESPLAZARSE UNO A UNO HACIA LA
;                  DERECHA.  
                                
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz
x var byte       ; crea la variable x y asigna un espacio de memoria
                 ; de o a 255
LEDS var PORTB     ; asigna el nombre de leds a todo el puerto B del pic 16f877A
LED0 var portb.0   ; asigna el nombre de led1 a RB0 del pic 16f877A
LED1 VAR portb.1   ; asigna el nombre de led2 a RB1
LED2 VAR portb.2
LED3 VAR portb.3
LED4 VAR portb.4
LED5 VAR portb.5
LED6 VAR portb.6
LED7 VAR portb.7
TRISB=0          ; hacemos salidas a todo el puerto b
leds=1           ; cargamos el puerto b con 1 (%00000001)

programa:             ; inicio de la linea de programa 
for x=0 to 6       ; repetir 7 veces
LEDS=LEDS<<1          ;desplaza uno a uno a la left
GOSUB TIEMPO             ; esperar 0.2 seg

next                  ; siguiente repeticion hasta que sea x=6
for x=0 to 6        ; repetir 7 veces
LEDS=LEDS>>1           ; desplaza uno a uno a la right 
pause 200              ; esperar 0.2 seg
next     

high led3:HIGH LED4:LOW LED0:LOW LED7
GOSUB TIEMPO
LOW LED3:LOW LED4:HIGH LED2:HIGH LED5
GOSUB TIEMPO 
LOW LED2:LOW LED5:HIGH LED1:HIGH LED6
GOSUB TIEMPO
LOW LED1:LOW LED6:HIGH LED0:HIGH LED7
GOSUB TIEMPO

GOTO PROGRAMA

TIEMPO:
PAUSE 200
RETURN

end                    ; fin del programa
Citar
21-may-2009 #5
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
;Generar 6 parpadeos de un led con intervalos de 300mls, luego dos parpadeos de
;un segundo con otro led, despues los dos leds parpadean tres veces, el proceso
;se repite indefinidamente

Código:
 define OSC 4          ;especifica al PBP que se va ha utilizar
                       ;un cristal de 4 Mhz.
@ device XT_OSC        ;oscilador externo para programacion.
x var byte      ; crea la variable x y asigna un espacio de memoria
                 ; de o a 255

led1 var portb.0       ;etiqueta asignada al pin 2 del pic 16f877A
led2 var portb.1       ;etiqueta asignada al pin 3 del pic 16f877A
 
programa:             ; inicio de la linea de programa 

for x=0 to 5
high led1
gosub tiempo
low led1
gosub tiempo
next
 
for x=0 to 1 
high led2
gosub tiempo1
low led2
gosub tiempo1
next

for x=0 to 2           ; repetir 3 veces
high led1:high led2    ;enciende leds
gosub tiempo           ; ir a rutina tiempo
low led1: low led2     ;apaga leds
gosub tiempo           ; ir a rutina tiempo
next                   ; siguiente repeticion hasta que sea x=3
goto programa 

tiempo:
pause 300
return

tiempo1:
pause 1000
return
end                    ; fin del programa
Citar
22-may-2009 #6
Patico21


Ubicación: Ecuador
Mensajes: 125
hola disculpar pueds poner un ejemplo de un programa que a todas las salidas ponga por ejemplo 00011110 o algo parecido por favor
Citar
23-may-2009 #7
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
que tal ste tipo de programa denominado microcodestudio da lo opcion de desarrollar varias formar un programa a continuacion te muestro las varias formar de escribir un programa y realizar el mismo trabajo final.

el ejercicio consiste en hacer parpadear un led con untervalos de dos segundos
Citar
23-may-2009 #8
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
que tal este tipo de programa denominado microcodestudio da lo opcion de desarrollar varias formar un programa a continuacion te muestro las varias formar de escribir un programa y realizar el mismo trabajo final.

el ejercicio consiste en hacer parpadear un led con intervalos de dos segundos por el RB0 del pic 16f877a:

Código:
led var portb.0 ; asignamos led a puerto RB0 

inicio: 

HIGH led ;asigna un 1 logico 
PAUSE 2000 ; tiempo de espera de 2s 
LOW led ; apaga led    puedes aqui utilizar el comandoTOGGLE que es invertir la seleccion del comando anterior a PAUSE 
PAUSE 2000 ; tiempo de espera de 2s 
GOTO inicio ; crea un bucle cerrado
En el siguiente caso manegaremos todo el puerto B del pic 16f877a como salidas pero solo utililizaremos RB0, es importante incluir al principio del programa o programs a realizar siempre los siguientes comandos para la posterior programacion del pic :

@ device xt_osc ; oscilador externo XT
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz

una vez realizado esto dedemos incluir trisb=0 o trisb=%0 ya que sin esto no funcionan los manejos de los puertos se debe entender que portb=%00000010 encender unicamente el el puerto RB1


para una mejor explicacion:

portb= % 1 0 0 1 1 0 1 0
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

esto indica encender del puerto b (7,4,3,1) para todos los demas permanecer en cero logico es decir apagados , este es muy util en caso de encender un grupo de leds.

listo vamos con el programa

Código:
@ device xt_osc ; oscilador externo XT 
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz 

trisb=0   ;puerto b como salidas 

inicio:

Portb=%00000001 ;controla todo el puerto pero solo enciende RBO 
PAUSE 2000 ; tiempo de espera de 2s 
Portb=%0000000 ;apaga todos los pines del puerto B
PAUSE 2000 ; tiempo de espera de 2s 
GOTO inicio ; crea un bucle cerrado 

aqui hay otra forma se manejan solo un pin a la vez del puerto y no todos a la vez como en el ejemplo anterior

@ device xt_osc ; oscilador externo XT 
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz 

trisb=0   ;puerto b como salidas 

inicio:

Portb.0=1 ; enciende RBO 
PAUSE 2000 ; tiempo de espera de 2s 
Portb.0=0 ;apaga RB0
PAUSE 2000 ; tiempo de espera de 2s 
GOTO inicio ; crea un bucle cerrado

todo ello gracia a que este compilador reconoce basees numerales en deciamal, binario y exagesima:


10 es igual a %1010 (binario) $A exagesimal

siempre debe se debe utilizar los prefijos % para escribir un numeo en biario y $ para exagecimal ya que sin ello el PBP o compilador no lo reconoce .

Espero te halla servido mi explicacion si deeas puedes modificar el programa de manejo de puertoB y encender cualquier tipo de pines de este ubicando leds a sus salidas.
Citar
24-may-2009 #9
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
bien empezaremos con proyectos con leds:

Código:
;proyecto con leds 1

; encender un led conectado al pin 37 (RB4) del pic 16F877A durante 2.5 seg y 
;luego apagarlo 0.5 seg el proceso debe repetirse 4 veces luego el led debe 
;permanecer apagado.


                                
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz
x var byte       ; crea la variable x y asigna un espacio de memoria
                 ; de o a 255
LED var portb.4   ; asigna el nombre de led a RB4 del pic 16f877A


programa:          ; inicio de la linea de programa 
for x=0 to 3       ; repetir 4 veces
high led           ;enciende led
pause 2500         ; esperar 2.5 seg
low led            ;apaga led 
pause 500          ; espera 0.5 seg
next               ; siguiente repeticion hasta que sea x=3
end                ; fin del programa
Archivos Adjuntos
Tipo de Archivo: zip proyecto_1_204.zip (9,7 KB (Kilobytes), 723 visitas)
Citar
24-may-2009 #10
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
;proyecto con leds 2

Código:
; encender 2 leds conectados a (RB0-RB1) del pic 16F877A alternadamente , es 
;decir un led esta encendido mientras el otro esta apagado y viceversa los 
;tiempos de transicion son de 700mls entre encendido y apagado el proceso 
;debe continuar indefinidamentedurante.

                                
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz
x var byte       ; crea la variable x y asigna un espacio de memoria
                 ; de o a 255
LED1 var portb.0   ; asigna el nombre de led1 a RB0 del pic 16f877A
LED2 VAR portb.1   ; asigna el nombre de led2 a RB1

programa:          ; inicio de la linea de programa 

high led1:low led2   ;enciende led1 y apaga led 2
pause 700           ; esperar 0.7 seg
low led1:high led2  ;apaga led1 y enciende led2 
pause 700          ; espera 0.7 seg
goto programa       ; ir a programa
end                ; fin del programa
Archivos Adjuntos
Tipo de Archivo: zip proyecto2_167.zip (10,0 KB (Kilobytes), 469 visitas)
Citar
24-may-2009 #11
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
;proyecto 3

;con este proyecto se pretende faimilarizarse mas con el manejo de los puertos, esta vez vamos a utilizar las 8 salidas del puesro b del pic 16f877A, se trata de una secuencia de luces que deben encenderse de izquierda a derechauna tras otra con imtervalos de tiempo de 200mls, luegos se encenderan las luces del medio hacia los extremos con intervalos de 200mseg


Código:
;  leds=leds<<1    EQUIVALE A MULTIPLICAR POR DOS Y DESPLAZARSE UNO A UNO
;  leds=leds<<2    EQUIVALE A MULTIPLICAR POR CUATRO Y DESPLAZARSE DE DOS EN DOS
;  leds=leds>>1    EQUIVALE A DIVIDIR  POR DOS Y DESPLAZARSE UNO A UNO HACIA LA
;                  DERECHA.  
                                
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz
x var byte       ; crea la variable x y asigna un espacio de memoria
                 ; de o a 255
LEDS var PORTB     ; asigna el nombre de leds a todo el puerto B del pic 16f877A
LED0 var portb.0   ; asigna el nombre de led1 a RB0 del pic 16f877A
LED1 VAR portb.1   ; asigna el nombre de led2 a RB1
LED2 VAR portb.2
LED3 VAR portb.3
LED4 VAR portb.4
LED5 VAR portb.5
LED6 VAR portb.6
LED7 VAR portb.7
TRISB=0          ; hacemos salidas a todo el puerto b
leds=1           ; cargamos el puerto b con 1 (%00000001)

programa:             ; inicio de la linea de programa 
for x=0 to 6       ; repetir 7 veces
LEDS=LEDS<<1          ;desplaza uno a uno a la left
GOSUB TIEMPO             ; esperar 0.2 seg

next                  ; siguiente repeticion hasta que sea x=6
for x=0 to 6        ; repetir 7 veces
LEDS=LEDS>>1           ; desplaza uno a uno a la right 
pause 200              ; esperar 0.2 seg
next     

high led3:HIGH LED4:LOW LED0:LOW LED7
GOSUB TIEMPO
LOW LED3:LOW LED4:HIGH LED2:HIGH LED5
GOSUB TIEMPO 
LOW LED2:LOW LED5:HIGH LED1:HIGH LED6
GOSUB TIEMPO
LOW LED1:LOW LED6:HIGH LED0:HIGH LED7
GOSUB TIEMPO

GOTO PROGRAMA

TIEMPO:
PAUSE 200
RETURN

end                    ; fin del programa
Archivos Adjuntos
Tipo de Archivo: zip proyecto3_511.zip (28,0 KB (Kilobytes), 459 visitas)
Citar
24-may-2009 #12
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
vamos con mas

proyecto con pulsadores

proyecto1:

Código:
; leer el estado de un pulsador ubicado el RB0 del pic 16f877A en donde una vez 
;accionado se enciende un led ubicado en RB1 del mismo pic 

@ device xt_osc ; oscilador externo XT 
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz 

inicio
if portb.0=0 then encender   ; pregunta si se acciono el pulsador ir a encender
goto inicio                   ; crea un bucle cerrado

encender:                    ;rutina encender
high portb.1                 ; enciende led ubicado en este pin 
pause 500                    ;espera 500mls
toggle portb.1                ; apaga led
pause 500
goto inicio                   ;ir a inicio

end                            ;fin del programa
Archivos Adjuntos
Tipo de Archivo: zip pulsadores_134.zip (16,4 KB (Kilobytes), 521 visitas)
Citar
24-may-2009 #13
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
Proyecto2 pulsadores


Código:
;Proyecto con 2 pulsadores y 3 leds ; cuando es accionado P1(primer pulsador) se 
;enciende un led ubicado en RB2 durante un segundo,lo mismo pasa si se acciona 
;P2 con otro led ubicado en RB3 , pero si son accionados al mismo tiempo un 
;tercer led (RB4)parpadeara 5 veces duante 300mls se uitliza pic 16F877A.

@ device xt_osc ; oscilador externo XT 
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz 

;configuracion de pines 

led1 var portb.2               ;ubicacion del primer LED en RB2 del pic 16F877A 
led2 var portb.3               ;""""                        RB3
led3 var portb.4                ;""""""""""""""""""""       RB4
p1 var portb.0                  ;"""""""del primer pulsador RB0 """"""""""""
p2 var portb.1                  ;"""""""segundo pulsador   RB1
x var byte                      ;variable x con capacidad de 255


; lectura de pulsadores
inicio
if p1=0 then encender   ; pregunta si se acciono el pulsador 1 ir a encender
PAUSE 200
if p2=0 then encender1  ;  """ pulsadodor2 ir a encender 1
PAUSE 200
if (p1=0) AND (p2=0) then encender2  ; """"pulsador1 y pulsador2 ir a encender2
PAUSE 200
goto inicio                   ; crea un bucle cerrado


encender:                    ;rutina encender
high led1                 ; enciende led 
pause 1000                   ;espera 1seg
toggle led1                ; apaga led
pause 1000
goto inicio                   ;ir a inicio

encender1:
high led2                 ; enciende led 
pause 1000                   ;espera 1seg
toggle led2                ; apaga led
pause 1000
goto inicio 

encender2:
for x=0 TO 4           ; repite cinco veces 
high led3                ; enciende led 
pause 300                   ;espera 300mls
low led3                ; apaga led utilice comando low que cumple la misma 
                         ;funcion que toggle que cambia la configuracion
                         ;de un bit es decir si esta en ALTO LO PASA A BAJO
                         ;y viceversa
pause 300
NEXT                   ; SIGUIENTE HASTA QUE SE REPITE 5 VECES
goto inicio 
end                            ;fin del programa
Archivos Adjuntos
Tipo de Archivo: zip pulsador_p2_153.zip (37,1 KB (Kilobytes), 488 visitas)
Citar
25-may-2009 #14
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
vamos con proyectos con display

proyecto 1 displays

Código:
 ; proyecto con display
 
 ;contador de 0 a 9 con pic 16f877A y dispaly de anodo comun se utiliza puertoB
 ;para mostrar el conteo  


@ device xt_osc ; oscilador externo XT 
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz 
Cnt VAR Byte   ; variable de conteo 
Pattern VAR Byte  ; variablle de alamcanamiento


TRISB = 0              ;PORTB ES SALIDA 
LOOP:                  ; INICIO DEL PROGRAMA 
Cnt = 0                ; carga Cnt con cero
NXT:GOSUB CONVERT      ; ir a conversion
PORTB = Pattern        ; envia al puerto B lo que esta en la variable pattern
Cnt = Cnt + 1         ; Increment count
PAUSE 1000            ;espera 1 segundo
IF CNT = 10 THEN LOOP  ;prefunta si ha llegado a diez ir a inicio de programa  
GOTO NXT               ;ir a NXT
CONVERT:               ; rutina de conversion 
LOOKUP Cnt, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F], Pattern ; inicia
;conversion y lo guarda en pattern
Pattern = Pattern ^ $FF ;invierte los bit de la variable pattern
RETURN                   ; retorna el gosub que lo llamo 
END                        ;fin del programa
Archivos Adjuntos
Tipo de Archivo: zip display_132.zip (16,3 KB (Kilobytes), 543 visitas)
Citar
25-may-2009 #15
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
bueno ahora vamos con un proyecto interesante un contador de un solo dito pero con CI7447 y un pulsador integrado que a trves de este realizamos el conteo

Código:
;contador decimal de un digito con pic 16f877A ,c.i 7447 y pulsador  


@ device xt_osc ; oscilador externo XT 
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz

TRISB=%11110000             ;hace salidas los bit de menos valor del puertoB 
NUMERO VAR BYTE
PULSADOR VAR PORTB.4

INICIO:
numero=0                     ; carga la variable numero con cero

display:
portb=numero                      ;muestra en portb el contenido de numero
if pulsador=0 then aumentar       ; preunta si el pulsador a sido activado
goto display

aumentar:
if pulsador=0 then aumentar         ;rutina para estabilizar tecla 
pause 300
if numero=9 then inicio             ; pregunta si ha llegado a nueve 
numero =numero+1
goto display                        ; suma uno a la variable numero y guarda el
                                     ;resultado en al misam variable
end
Archivos Adjuntos
Tipo de Archivo: zip display2_190.zip (18,2 KB (Kilobytes), 459 visitas)
Citar
25-may-2009 #16
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
proyecto 3

Código:
;proyecto display 

;programa que presenta la palabra HOLA en 4 displays pic 16f84A con 
;despalzamiento de derecha a izquierda.

                                
@ device xt_osc  ; oscilador externo XT
define osc 4     ; especifica que se va a utilizar uno de 4 Mhz

trisb=0                      ;puerto b como salidas
trisa=0                      ;puerto a como salidas
x var byte                   ;variable con capacidad de 255

texto:
for x=1 to 20                 ; repeticiones de estye segmento
porta=14:portb=8             ;formacion de la letra A en el dispaly
GOSUB TIEMPO                 ; ir a rutina tiempo
porta=13:portb=71            ;forma la letra L
gosub tiempo                 ; ir a rutina tiempo
porta=11:portb=64            ;forma la letra O
gosub tiempo                  ; ir a rutina tiempo
porta=7:portb=9               ;forma la letra H
gosub tiempo                   ; ir a rutina tiempo
next                          ; siguiente repeticion

for x=1 to 20
porta=14:portb=127            ;apaga el display
GOSUB TIEMPO                   ; ir a rutina tiempo
porta=13:portb=8              ;forma la letra A
gosub tiempo                  ; ir a rutina tiempo
porta=11:portb=71             ;forma la letra L
gosub tiempo                  ; ir a rutina tiempo
porta=7:portb=64               ;forma la letra O
gosub tiempo                  ; ir a rutina tiempo
next

for x=1 to 20
porta=14:portb=9               ;forma la letra H
GOSUB TIEMPO                   ; ir a rutina tiempo
porta=13:portb=127             ;apaga el display
gosub tiempo
porta=11:portb=8                ;forma la letra A
gosub tiempo
porta=7:portb=71                ;forma la letra L
gosub tiempo
next

for x=1 to 20
porta=14:portb=64            ;forma la letra O
GOSUB TIEMPO
porta=13:portb=9              ;forma la letra H
gosub tiempo
porta=11:portb=127             ;apaga el display
gosub tiempo
porta=7:portb=8                 ;forma la letra A
gosub tiempo
next

for x=1 to 20                   ;forma la letra L
porta=14:portb=71
GOSUB TIEMPO
porta=13:portb=64                ;forma la letra O
gosub tiempo
porta=11:portb=9                ;forma la letra H
gosub tiempo
porta=7:portb=127               ;apaga el display
gosub tiempo
next
goto texto                      ;IR A TEXTO

TIEMPO:
PAUSE 5                        ;espera5mls
RETURN                         ;returna al gosub que la llamo 
end                             ;fin deel programa
con este programa de aprende a utilizar el multiplexado para manejar varios displays
Archivos Adjuntos
Tipo de Archivo: zip hola_134.zip (16,1 KB (Kilobytes), 540 visitas)
Citar
25-may-2009 #17
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
Nos vamos acercando a manejo de LCD
Citar
26-may-2009 #18
mot1258


Ubicación: México D.F
Mensajes: 51
Hola amigo mecatrodatos muy buena la explicacion que das para los que empezamos a familiarizarnos con pic´s y tengo una pregunta, ¿como podemos darle tiempo a una salida por ejemplo de 5 minutos que se mantenga en alto? y si se vuelve a activar la entrada antes de los 5 minuntos que se reinicie el conteo, sorry por querer correr antes de empezar a caminar ops: y aprovecho para agradecerte el apoyo que me has brindado en otros post. saludos



Pd.me gustaria probar eso con el 16f84
Citar
27-may-2009 #19
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
que tal amigo mot1258 mira posteare el manejo del lcd en 4 bits con este compilador y si me tienes paciencia lo que te entiendo es hacer una especie de cronometro, de tu comentario entiendo que por medio de una señal de entrada pulsador o interruptor se me active una señal alta puede ser un led o cualquier dispositivo de salida, pero sino se ha culmipo el termino de tiempo o se interrupe volviendo activar la señal el sistema se recetea y vuelve a empezar desde el tiempo establecido (cinco minutos) estoy en lo correcto porque sera el segundo proyecto de manejo de lcd.
Citar
27-may-2009 #20
mecatrodatos

<phrase 1=

Ubicación: Colombia _Bogota
Mensajes: 315
proyectos lcd:

los LCD son utilizados para mostrar mensajes que indican la consecusion de un proceso en forma visual , instrucciones de manejo , mostrar valores , en si permiten la comunicacion entre maquinas y humanos pudiendo mostrar cualquier caracter ASCII.

El LCD mas conicido es el de 2x16, dos lineas y 16 caracteres cada una que son los que vemos porque en realidad son 40 caracteres cuestion que comprobaremos mas adelente.


Descripción de pines:

PIN Nº SIMBOLO DESCRIPCION
1 Vss Tierra de alimentación GND
2 Vdd Alimentación de +5V CC
3 Vo Contraste del cristal liquido. ( 0 a +5V )
4 RS Selección del registro de control/registro de datos:
RS=0 Selección registro de control
RS=1 Selección registro de datos

5 R/W Señal de lectura/escritura:
R/W=0 Escritura (Write)
R/W=1 Lectura (Read)

6 E Habilitación del modulo:
E=0 Módulo desconectado
E=1 Módulo conectado

7-14 D0-D7 Bus de datos bidireccional.


la declaracio LCDOUT en el compilador PBP sirve para mostrar items en el LCD seguidos de algunos de los siguientes comandos:

LCD commands
Command Operation
$FE, 1 Clear display
$FE, 2 Home cursor
$FE, $0C Cursor off
$FE, $0E Underline cursor on
$FE, $0F Blinking cursor on
$FE, $10 Move cursor left by one position
$FE, $14 Move cursor right by one position
$FE, $80 Move cursor to the beginning of first row
$FE, $C0 Move cursor to the beginning of second row
$FE, $94 Move cursor to the beginning of third row
$FE, $D4 Move cursor to the beginning of fourth row

estamos listos para nuestros primeros pasos con manejo de LDC
Citar
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.