Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




Ayuda con un programa para el pic 16f628A


       



#1  Ayuda con un programa para el pic 16f628A
esteban_santiago83

Registrado: 26 Abr 2007
Mensajes: 9
Ubicación: Quito, Ecuador
citar
Hola como están, estoy trabajando en mi tesis y la verdad tengo algunas problemas con esto de los pic. He trabajado antes con microas atmel pero no pics. Estoy haciendo un programa en C para el cnotrol de una. La verdad el programa es sencillo pero me falta la parte de la intensidad de corriente con pulsos PWM y es ahí donde requiero ayuda. el código de programación es el siguiente:
INCLUDE "modedefs.bas"

serial VAR BYTE
var1 VAR BIT
var2 VAR BIT
var3 VAR BIT
var1=0
var2=0
var3=0
X=0


luz1 VAR portb.5
luz2 VAR portb.
rele VAR portb.7
temp VAR portb.

INICIO:
SERIN portb.0,N9600,serial
IF serial="L" THEN estado
IF serial="O" THEN fijo2
IF serial="g" THEN inten1
IF serial="h" THEN inten2
IF serial="i" THEN inten3
IF serial="j" THEN inten4
IF serial="k" THEN inten5
IF serial="l" THEN menos
IF serial="R" THEN rele1
IF serial="C" THEN rele2
IF serial="T" THEN tempe
IF serial="S" THEN salida
GOTO INICIO

estado:
IF var1=0 THEN
SEROUT portb.1,N9600,["b"]
IF var1=1 THEN
SEROUT portb.1,N9600,["c"]
IF var3=0 THEN
;pulso PWM 0%
SEROUT portb.1,N9600,["n"]
IF var3=1 THEN
;pulso PWM 25%
SEROUT portb.1,N9600,["o"]
IF var3=2 THEN
;pulso PWM 50%
SEROUT portb.1,N9600,["p"]
IF var3=3 THEN
;pulso PWM 75%
SEROUT portb.1,N9600,["q"]
IF var3=4 THEN
;pulso PWM 100%
SEROUT portb.1,N9600,["r"]
GOTO INICIO

fijo2:
IF var1=0 THEN
HIGH portb.5
var1=1
SEROUT portb.1,N9600,["c"]
GOTO INICIO
IF var1=1 THEN
LOW portb.5
var1=0
SEROUT portb.1,N9600,["b"]
GOTO INICIO

rele1:
IF var2=0 THEN
SEROUT portb.1,N9600,["d"]
IF var2=1 THEN
SEROUT portb.1,N9600,["e"]
GOTO INICIO

rele2:
IF var2=0 THEN
HIGH portb.7
var2=1
SEROUT portb.1,N9600,["e"]
GOTO INICIO
IF var2=1 THEN
LOW portb.7
var2=0
SEROUT portb.1,N9600,["d"]
GOTO INICIO

inten1:
var3=0
;pulso PWM 0%
SEROUT portb.1,N9600,["n"]
GOTO INICIO

inten2:
var3=1
;pulso PWM 25%
SEROUT portb.1,N9600,["o"]
GOTO INICIO

inten3:
var3=2
;pulso PWM 50%
SEROUT portb.1,N9600,["p"]
GOTO INICIO

inten4:
var3=3
;pulso PWM 75%
SEROUT portb.1,N9600,["q"]
GOTO INICIO

inten5:
var3=4
;pulso PWM 100%
SEROUT portb.1,N9600,["r"]
GOTO INICIO

menos:
IF var3=4 THEN
;pulso PWM 75%
SEROUT portb.1,N9600,["q"]
var3=3
IF var3=3 THEN
;pulso PWM 50%
SEROUT portb.1,N9600,["p"]
var3=2
IF var3=2 THEN
;pulso PWM 25%
SEROUT portb.1,N9600,["o"]
var3=1
IF var3=1 THEN
;pulso PWM 0%
SEROUT portb.1,N9600,["n"]
var3=0
IF var3=0 THEN
SEROUT portb.1,N9600,["n"]
GOTO INICIO

tempe:
X=portb.
SEROUT portb.1,N9600["f"]
SEROUT portb.1,N9600["X"]
;hay que poner una subrutina que genere un tiempo de 1 miliseg para que vuelva a tomar el dato, lo actualice y envíe
GOTO INICIO

tambien necesito ayuda con lo del retardo de un milisegundo y debo hacer dos pregutnas: debo incluir algun comando o línea para habilitar el oscilador de 4MHz interno?, y el archivo .bas incluido en el inicio, de donde lo consigo o me lo pueden facilitar?, trabajo con mplab8 para generar el archivo .hex
Gracias y perdonen las molestias.

#2  
eserock

Registrado: 27 Abr 2005
Mensajes: 118
Ubicación: Cd. de Mexico
citar
Hola antes que nada ese programa que muestras esta en picbasic no en C, esmas facil si primero señalas lo que tiene que hacer tu programa y despues se revisa la programacion.

#3  
esteban_santiago83

Registrado: 26 Abr 2007
Mensajes: 9
Ubicación: Quito, Ecuador
citar
El programa tiene que controlar una luz fija prendiendo y apagandola desde una aplicacion de Visual Basic que ya la tengo. Luego desde la misma aplicación tiene que regular la intensidad de una luz y tambien recoger la temperatura de la habitación con el LM35 que esta conectado al pic. Intente hacerlo en assembler pero no me cuadran en cambio como poner 1 o 0 en los puertos de las salidas.El pic se comunica con la aplicación del computador a traves de letras.

#4  
eserock

Registrado: 27 Abr 2005
Mensajes: 118
Ubicación: Cd. de Mexico
citar
creo que lo mas complicado en tu trabajo es el controlar la intensidad de la lampara aqui en el foro buscando encontraras vbarios circuitos de dimmer tanto para corriente directa como alterna creo que seria la forma mas simple ya que se usa un triac y un optoaislador para proteger el pic con lo que dices de tu circuito estoy analizando el funcionamiento de tu programa y despues te doy mi opinion

#5  
esteban_santiago83

Registrado: 26 Abr 2007
Mensajes: 9
Ubicación: Quito, Ecuador
citar
Gracias por tu ayuda voy a ponerme a buscar tus opciones. La verdad necesaria que me ayuden en como mandar las señales al pic para controlar la intensidad de luz, pues tengo entendido que los dimmer sin analogos. Yo espero tu pronta ayuda y gracias nuevamente

#6  
eserock

Registrado: 27 Abr 2005
Mensajes: 118
Ubicación: Cd. de Mexico
citar
bueno espero explicarme
los dimmer en realidad controlan el disparo de un triac, conmutando en tiempo el disparo de este mismo, lo complicado podriamos decir es sincronizar este disparo con el cruce por sero leste pequeño pulso lo puede enviar el pic, pero te repito debe ser en el momento que la corriente alterna sea cero.

#7  
Electrowolf

Registrado: 21 Mar 2008
Mensajes: 6
Ubicación: Mexico
citar
Hola mi estimado Esteban

bien, si en donde necesitas ayuda es en la parte de programacion, podria recomendarte un programa muy bueno que encontre ahora poco, "flowcode" que es un programa que genera codigo para pics en base a diagramas de flujo.....quiza te sirva puesto que no necesitarias manejar directamente las intrucciones sino na mas los bloques del diagrama.

otro que podrias manejar es el "niple" que tiene funcion similar.

espero te ayude Wink

Saludos

 Responder



Google
 


 Temas de interés 
No hay mensajes nuevos Generar una señal de video NTSC usando un PIC
No hay mensajes nuevos Generar ruido blanco
No hay mensajes nuevos Generar audio con PIC
No hay mensajes nuevos Como generar un ejecutable .EXE en TURBO C
No hay mensajes nuevos Generar senales que afecten amplificadores de audio

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||