Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Public seg2 As Integer
Public numero1 As Integer
Public hora As Integer
Public seg As String
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
MSComm1.RThreshold = 1
MSComm1.InputLen = 2
MSComm1.Settings = "2400,N,8,1"
MSComm1.DTREnable = False
MSComm1.CommPort = 1
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
seg = MSComm1.Input
Label1.Caption = seg
seg2 = CInt(seg)
End If
If seg2 > 59 Then
numero1 = Val(numero1) + 1
Label2.Caption = numero1
End If
If numero1 > 59 Then
numero1 = 0
hora = Val(hora) + 1
Label3.Caption = hora
End If
End Sub
@ DEVICE pic16F628A, MCLR_OFF, XT_OSC
INCLUDE "modedefs.bas"
TRISA=%00000000
TRISB=%00000000
OPTION_REG = %1010110 ;setea TMR0 configurando y habilita PORTB pullups
INTCON = %10100000 ;hablilita TMR0 interrupción interna
ON INTERRUPT GOTO interrup
cuenta var byte
seg var byte
minu var byte
hora var byte
estado var bit
x var byte
For x = 1 to 3
high porta.2
pause 500
low porta.2
next
seg=1
minu=0
hora=0
estado = 0
high porta.2
inicio:
if hora=>24 and estado=0 then
seg=1
minu=0
hora=0
estado=1
high portb.4
else
goto inicio
endif
if seg=>20 and estado=1 then
low portb.4
seg=1
minu=0
hora=0
estado=0
goto inicio
else
goto inicio
endif
DISABLE ;deshabilita interrupciones durante el proceso
interrup:
cuenta = cuenta + 1 ;cuenta las interrupciones del TMR0
TMR0=4 ;resta 4 al contador de 256 del TMR0
IF cuenta < 31 THEN reset ;31 cuentas (32256ms = 999936uS)
cuenta = 0
seg = seg + 1
SEROUT portb.5,N2400,[#seg]
IF seg >= 60 THEN
seg = 0
minu = minu + 1
IF minu >= 60 THEN
minu = 0
hora = hora + 1
IF hora >= 24 THEN
hora = 0
ENDIF
ENDIF
ENDIF
reset:
INTCON.2 = 0
RESUME
END
Al trabajar con 4MHz y el oscilador interno, pueden enviarse datos erróneos, sobre todo cuando se envían cadenas, en tu programa como sólo envías letras (1 Byte), no existe mucho problema.Realicé un proyecto controlado por el puerto RS232, pero tengo unos problemas y unas dudas:
1) Es necesario utilizar un oscilador externo? use el interno y no tuve problemas, pero leí que si los trae.
Errores de programación no tienes, pero al programa en PICBasic le hacen falta algunas mejoras.2) Mi proyecto falla en algún punto, es un interruptor vía pc, el cual activa salidas del micro mediante un programa en Visual Basic.
El proyecto consta de 9 salidas, 6 de estas funcionan de maravilla, las ultimas 3 tienen problemas.
Son las salida aux4, 5 y 6.
Si activo una de éstas, luego al querer activar otra de éstas, se apaga la primera y ni siquiera se activa la 2da que toque, sólo se apaga la primera.
No encuentro errores en la programación ni de VB ni de MICROCODE STUDIO.
Ajunto todo lo referente al proyecto, Saludos y muchas gracias.
Pues lo que tienen esos pines, es que son las entradas análogas de comparadores.Estimado D@rkbytes he probado con sus programas y sucede lo mismo que en el caso anterior (he probado con dos micros), me pregunto si los puertos que "fallan" (A0,A1,A2) tienen alguna diferencia en cuanto a los demás, le comento que estoy usando un conversor USB-RS232 para la transmisión de datos.
Posiblemente exista alguna solución en este tema:Aprovecho para hacerle unas consultas:
1-He tenido un problema con mi pickit2 , cuando toque escribir y quise grabar un micro me salió el siguiente mensaje: programming failed at program memory adress 0×000000 , ya me ha pasado anteriormente. ¿Hay alguna solución?
Me parece que las netbook tienen unos 500mA. cómo máximo, no estoy muy seguro.2- Es posible alimentar las cargas del micro y el micro desde el puerto rs-232 que sale del usb de mi computador? Así evitamos el uso de una fuente externa , si es así, ¿cuanta corriente puede brindarme el usb de una netbook?
De nada.Muchísimas gracias por su ayuda.
Los modos no invertidos llevan una T al principio y los invertidos una N.Procederé a hacer la prueba declarando CMCON, la verdad no necesito los datos invertidos.
Me gustaría que me dijeras cómo hacer para no invertirlos.
Edit: declarando CMCON = 7, funciona todo perfectamente.
Si no te molesta te hago una consulta. ¿Por qué 7? ¿Y qué pasa si igualo a otro número?
Procederé a montar el proyecto y a agregarle una etapa de potencia.
Muchas gracias por toda su ayuda.
Gracias. F.D.E. Por suerte, también cuenta con miembros muy capacitados.La verdad que sus explicaciones son muy didácticas.
www.forosdeelectronica.com tiene grandes moderadores.
El voltaje lo tienes que tomar de los pines 1 (VCC) y 4 (GND) del conector USB.El proyecto está funcionando a la perfección.
Mi última consulta es acerca de la fuente de alimentación.
Cómo bien me dijo, el puerto usb suministra 0.5 amperios.
¿Pero al hacer la conversión USB-RS232, sigue manteniendo este valor?
Esa caída de tensión en las salidas de chip es normal y ese voltaje es suficiente para que el microcontrolador lo interprete como un 1 lógico.He realizado mediciones en la ficha DB9 y he encontrado 4.6-4.8 voltios entre un terminal y masa (Pin 4 con respecto a masa)
¿Mi pregunta es, si con esta tensión puedo alimentar al micro controlador y al menos 1 o 2 leds?
No quise probarlo físicamente por miedo a dañar el puerto.
Esto me permitiría controlar pequeñas cargas sin necesidad de una fuente externa y una rápida prueba de funcionamiento.
Saludos
La mayoría de los puertos USB tienen protección de cortos/sobrecargas aunque es mejor no tentar a la suerte, y con respecto a la corriente que necesitas lo mejor es que midas con un amperímetro el consumo y si estas muy pegado a limite del máximo que da tu puerto puedes "tomar" mas corriente si usas dos puertos. Cada mother board es diferente unos son de 500mA otros de 1A dependiendo del fabricante.La verdad que sus explicaciones son muy didácticas, forosdeelectronica tiene grandes moderadores.
El proyecto esta funcionando a la perfección, mi ultima consulta es acerca de la fuente de alimentación, como bien me dijo el puerto usb suministra 0.5 amperios , pero al hacer la conversión USB-RS232, sigue manteniendo este valor?. He realizado mediciones en la ficha DB9 y he encontrado 4.6-4.8 voltios entre un terminal y masa (Pin 4 con respecto a masa) mi pregunta es si con esta tensión puedo alimentar al micro controlador y al menos 1 o 2 leds, No quise probarlo físicamente por miedo a dañar el puerto. Esto me permitiría controlar pequeñas cargas sin necesidad de una fuente externa y una rápida prueba de funcionamiento. Saludos
http://www.brainboxes.com/files/catalog/product/UC/UC-701/img/UC-701_RS-232_Pinout.jpg
Ya que no uso oscilador de 4Mhz sera posible usar esos dos pines como puertos comunes?
¿A qué te refieres con agrandar el proyecto?Alguna sugerencia para agrandar el proyecto será agradecida.
Si es posible cuando no usarás un cristal y así es como está en el proyecto modificado del post #129Consulta Técnica: Ya que no uso oscilador de 4Mhz. ¿Será posible usar esos dos pines como puertos comunes?
Pues eso depende de qué pienses hacer, y no has explicado en qué consiste tu proyecto.Me refiero a agregarle funciones, así le saco todo el jugo posible al micro, pero si hay que agregar algo mas externo no hay problema!
Esto ahora depende de lo que pienses controlar.Les hago otra consulta: ¿Para la etapa de potencia que iría después del PIC?
¿Qué es lo más recomendable? He hecho etapas con salida a relay y con salida a transistor.
Ahora se me ocurre usar opto acopladores, para evitar posible ruido.
¿Qué me recomiendan ustedes que use? O también podría hacer todas opto aisladas, algunas con salida a transistor que se alimente con la fuente IN BOARD y otras a relay para alimentar desde la carga.
Ahí mencionas: Adjunto todo lo referente al proyecto.Realicé un proyecto controlado por el puerto RS232. Pero tengo unos problemas y unas dudas:
1) ¿Es necesario utilizar un oscilador externo? usé el interno y no tuve problemas, pero leí que si los trae.
2) Mi proyecto falla en algún punto, es un interruptor vía pc, el cual activa salidas de micro mediante un programa en Visual Basic. El proyecto consta de 9 salidas, 6 de estas funcionan de maravilla, las ultimas 3 tienen problemas .... Son las salida aux4,5 y 6. Si activo una de estas, luego al querer activar otra de estas se apaga la primera y ni siquiera se activa la 2da que toque, solo apaga la primera. No encuentro errores en la programación ni de VB ni de MICROCODE STUDIO. Adjunto todo lo referente al proyecto.
Saludos y muchas gracias.
PD: Las salidas del micro activan leds, los pines que se usan como SERIN y SEROUT llevan resistencia 22K y 220 respectivamente.
Adjunto los cambios que se deben hacer para usar el módulo USART.¿Qué cambio haría en el proyecto para usar el USART?