Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

09/09/2011 #261


Como este es un espacio abierto, me gustaría decirle al amigo mendek que muchos de los ejercicios están hechos con el pic16f628, el cual no tiene muchas diferencias con el 16f84, mas bien mejorías, tenemos los comparadores y más memoria disponible, aquí te paso un enlace a donde tratan el tema para que veas.

http://todopic.mforos.com/6510/34618...e-para-migrar/
20/09/2011 #262


Que bueno este tutorial sobre el manejo de PROTON Basic, ya descargue los 7 archivos, muy buenos todos.
Creo q con esos seria nivel principiante. Ahora tengo q multiplexar displays de 7 segmentos para mostrar la temperatura en grados C utilizando el conversor A/D del 16F877A.
No tengo incoveniente alguno en realizar la conversion ADC, ya que todo se resume a una regla de tres simple. Lo que si es algo nuevo para mi es el manejo de las interrupciones y recien estoy empezando a documentarme sobre el tema, pero creo q con un ejemplo despejaria mis dudas.
Tengo entendido que PROTON tiene dos formas de manejar las interrupciones, segun su manual de usuario:

- On Interrupt : interrupcion por software
- On_Interrupt : interrupcion por hardware

Segun el manual de PROTON, la mas eficiente y RECOMENDADA es por medio de hardware. Para ello se definen todos los registros. He aqui un ejemplo con el 16F84:

Código PHP:
' Flash an LED attached to PortB.0 at a different rate to the
LED attached to PortB.1
Device 
16F84
On_Hardware_Interrupt 
Goto Flash
' Assign some Interrupt associated aliases
Symbol T0IE = INTCON.5 ' 
TMR0 Overflow Interrupt Enable
Symbol T0IF 
INTCON.2 ' TMR0 Overflow Interrupt Flag
Symbol GIE = INTCON.7 ' 
Global Interrupt Enable
Symbol PS0 
OPTION_REG.0 ' Prescaler ratio bit-0
Symbol PS1 = OPTION_REG.1 ' 
Prescaler ratio bit-1
Symbol PS2 
OPTION_REG.2 ' Prescaler ratio bit-2
Prescaler Assignment (assigned to WDT 0 assigned to oscillator)
Symbol PSA OPTION_REG.3
' Timer0 Clock Source Select (0 = Internal clock 1 = External PortA.4)
Symbol T0CS = OPTION_REG.5
Symbol LED = PORTB.1
Goto Over_interrupt ' 
Jump over the interrupt subroutine
' Interrupt routine starts here
Flash:
xor PortB with 1Which will turn on with one interrupt
' and turn off with the next the LED connected to PortB.0
PORTB = PORTB ^ 1
T0IF = 0 ' 
Clear the TMR0 overflow flag
Context Restore 
' Restore the registers and exit the interrupt
Over_interrupt :
TRISB = %00000000 ' 
Configure PortB as outputs
PORTB 
' Clear PortB
Initiate the interrupt
GIE 
' Turn off global interrupts
PSA = 0 ' 
Assign the prescaler to external oscillator
PS0 
' Set the prescaler
PS1 = 1 ' 
to increment TMR0
PS2 
' every 256th instruction cycle
T0CS = 0 ' 
Assign TMR0 clock to internal source
TMR0 
' Clear TMR0 initially
T0IE = 1 ' 
Enable TMR0 overflow interrupt
GIE 
' Enable global interrupts
Inf:
Low LED
DelayMs 500
High LED
DelayMs 500
Goto Inf 
segun el comentario inicial, sirve para parpadear dos LEDs a distintas frecuencias.
Alguien capo q me de una mano con el codigo sobre todo en la interrupcion por desborde del timer0.
Gracias.
20/09/2011 #263


Saludos adiktofer,

Pues lo mejor, creo yo, es ir de lo básico a lo complejo, primero este ejemplo sencillo para que te relaciones con una interrupción bien sencilla, te adjunto un documento que quizas te ayude.
Device = 16F877A
Xtal = 4

'Declaration for Analog to Digital Conversion
Adin_Res = 8 '10 bit resolution
Adin_Tad = FRC 'RC OSC
ADIN_DELAY = 50 '10us delay for sampling


'Declaration for LCD
Declare LCD_Type = 0 ;LCD is Alpha
Declare LCD_DTPin = PORTD.4 ;LCD data line starting port.pin
Declare LCD_ENPin = PORTD.1 ;LCD EN line
Declare LCD_RSPin = PORTD.0 ;LCD RS line
Declare LCD_Interface = 4 ;LCD 4 line interface
Declare LCD_Lines = 2


Symbol LED= PORTB.1
Symbol LED2=PORTB.2

On Interrupt GoTo interrupcion ; En caso de interrupción ir a subrutina interrupción
INTCON=%10010000 ; el bit 7 habilita las interrupciones en general
; El bit 4 habilita la interrupción B.0

PROG:
High LED
DelayMS 200
Low LED
DelayMS 200
GoTo PROG

Disable ; Desabilita las interrupciones en el handler

interrupcion:
High LED2
DelayMS 2000
Low LED2
INTCON=%10010000 ; Habilita la interrupción B.0 (INTCON.1=0)
Resume ; Retorna al programa donde ocurrió la interrupción
Enable ; Habilita las interrupciones después del handler
End
Archivos Adjuntos
Tipo de Archivo: rar TEMPORIZADORES Y CONTADORES CON PIC16F877.rar (504,8 KB (Kilobytes), 322 visitas)
06/10/2011 #264

Avatar de reyvilla

Buenas estoy empezando a trabajar con proton y he realizado algunos programas, les comento que trabajo mucho con PBP por lo cual se me ha hecho fácil entender el proton, hace poco tenia problemas con la configuración de los fuses y encontré un programita interesante para resolver este problema les anexo el link de descarga, es de mucha ayuda a la hora de programar en proton.

https://rs297dt.rapidshare.com/#!dow...ar|206|R~0|0|0

PD: yo lo descargue y lo probé esta bien completo aunque solo trabaja con mas o menos 10 pic los mas populares.
07/10/2011 #265

Avatar de mendek

que tal buenos dias, tengo un problema con el 16f84a, lo que pasa es que hice una alarma para un local, pero a la hora de encender el pic la mayoria de los leds a las salidas se encienden por un tiempo muy pequeño tiempo y se apagan casi inmediatamente, mi duda es si no habra alguna instruccion de proton ide para evitar que las salidas enciendan hasta que no se cumplan las condiciones del programa.
desde ya gracias por la ayuda.
07/10/2011 #266


prueba colocar portb = 0 antes de cofigurar los trisb
07/10/2011 #267

Avatar de mendek

si de hecho puse eso antes de empesar con el programa
09/10/2011 #268

Avatar de atricio

capaz que es solo configuracion de tu programa nada mas

hola amigos un favor alguien monto el protocolo modbus en un micro sabe alguien como hacerlo
ojala pudieran postear algo de eso por favor
espero me puedan ayudar con informacion con el tema
17/10/2011 #269

Avatar de mecatrodatos

Que tal hay atricio hay dos formas con rs 232 o rs 485, que deseae relizar ¿comunicacion industrial ? o algo como el scada.
18/10/2011 #270

Avatar de atricio

hola amigo mecatrodatos quisiera hacerlo por rs232 me parece el mas facil hasta para poder
armarlo porque no se como se hace en 485.
es para hacer una pequena red para una comunicacion entre maestros y esclavos y poderlo montar en labview talvez estoy delirando pero es un proyecto de la U y no se por donde atacar primero he tratado de leer algo sobre el tema pero me tiene mas confundido las cosas.
sera que tienes algo con lo que pueda comenzar para poder trabajar porque si me siento en el limbo y no quiero seguir nadando contracorriente gracias de antemano por la ayuda que me puedas prestar muy agradecido por la atencion que le des a este mensaje
19/10/2011 #271


Pido disculpas a atricio por interrumpir el hilo que lleva pero necesito formular una pregunta a ver si encuentro respuesta en el foro, me gustaría saber que programa o complemento para proton puedo utilizar para convertir en código las imágenes y así trabajarlas con una pantalla gráfica, hasta ahora no he podido no he logrado dar con Pic BasicPlus glcd que menciona Mecatrodatos en la última guía que publicó, estaría supremamente agradecido si pudieran orientarme al respecto.
23/10/2011 #272

Avatar de mecatrodatos

DEPREDADORX1:

los programs son:

1.Pic BasicPlus
2.GLiPIC2
3.BMP-2 Asm
4.y otros tantos mas que no me acuerdo. hay una mas que esta incluido en el proton de 32 bits pero no me acurdo del nombre.


El complemento:
1. Graphic LCD Data Mate: http://wiki.picbasic.org/index.php?n...hicLCDDataMate que es un plugin.

Atricio ya respondi a tu consulta mira en tu email, saludos
23/10/2011 #273


Gracias Mecatrodatos,

Respecto al complemento Data Mate no he logrado que me funcione, siempre obtengo un error de ejecución 429 que no sé a que debe y tengo la versión de Proton ide 2.0.0.7 con compilador 3.5.1.1. Tendré que probar con los otros programas.

Nuevamente gracias por la ayuda y espero poner a trabajar lo más pronto posible poner a trabajar una de una pantalla gráfica.
23/10/2011 #274

Avatar de mecatrodatos

DEPREDADORX1:

Sera subir el programa porque hay casos en que falta librerias para ubicacion de registros, por otro lado vere si puedo subir otra tutoria de manejo de Glcd con los otros programas que conozco y el plugin de proton.
24/10/2011 #275


Muchas gracias por atender nuestras inquietudes y bueno, seguiremos expectantes ese material a ver si nos ponemos manos a la obra con algun proyecto especial con pantallas gráficas, a mi particularmente me interesa hacerme un velocímetro digital con algún tipo de animación bien colorida, ojalá y pueda materializarlo.

Hasta nuevo aviso.
24/10/2011 #276


Ayuda con practica de microprocesadores
hola amigos... soy estudiante de ing de telecomunicaciones y necesito ayuda con una practica de laboratorio, que se refiere a lo siguiente:
1. Implementar un mecanismo para monitorear el ángulo de desplazamiento de una articulación usando como elemento transductor: a) un potenciómetro b) fibra óptica y opto-acoplador, muestre a través de una pantalla LCD la lectura del sensor y accione un servo-motor posicionándolo al ángulo leído (entre 0 – 180°), una mecanismo robótico equivalente al mecanismo sensor para reproducir sus movimientos.

Yo he realizado la siguiente configuracion en proton pero no se porque no me corre en proteus...

Device 16F877
XTAL 20
ADCON1= $80
TRISA =$1
Declare LCD_DTPIN PORTD.4
Declare LCD_RSPIN PORTD.1
Declare LCD_EMPIN PORTD.2
LCD_INTERFACE = 4
LCD_LINES = 2
LCD_TYPE = 0
DelayMS 150
Cls
Dim potenc As Word
Dim POS As Word
Dim ang As Byte
Dim a As Byte
Inicio:
potenc= ADIn 0
ang= LookDownL potenc,<[$002,$080,$0ff,$180,$200,$27f,$2ff,$37f,$3ff]
POS = LookUpL ang,[1000,1167,1250,1333,1500,1665,1750,1832,3000]
Servo PORTC.0 , POS
Print At 1,1, "servo motor"
Print At 2,1, HEX potenc
DelayMS 1000
GoTo Inicio


Si me pueden ayudar se lo estaria muy agradecida... Gracias...
y son excelentes las tutoriales he aprendido mucho
24/10/2011 #277


que error es el que te muestra proteus. saludos
25/10/2011 #278


Hola Diogra,

Pues hice unas modificaciones para el lcd y aparentemente funciona, te tocaría mirar bien si lo que está haciendo es lo que requieres, de cualquier forma, aun sin ser expertos estamos en disposición de ayudarte en lo que podamos.

Aquí te adjunto lo que hice y mucha suerte con lo tuyo.
Archivos Adjuntos
Tipo de Archivo: rar CONTROL DE POSICION BRAZO.rar (53,3 KB (Kilobytes), 178 visitas)
26/10/2011 #279


Hola Depredador... Gracias por la ayuda.. falta algunas cosas y montarlo para defenderlo.. Gracias por la ayuda.... :-D
03/11/2011 #280


hola a todos los del foro, si alguien pudiera ayudarme, el problema que tengo es el siguiente: estoy ralizando transmision y recepcion de datos por usb con proton ide y visual basic 6.0, pero solo logro realizar el envio de datos del visual al pic o solamente del pic a la pc, pero no logro ambas al mismo tiempo.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.