hola a toda la comunidad electronica:
en estos momentos quiero pedirle el favor a alguien que me colabore con un proyecto que estoy desarrolando se trata de 5 pics conectados mediante la comunicacion rs232 y lo que quiero es que uno que es el maestro o el que mada el a los demas tiene un teclado matricial 3x4 entonces quiero que cuando precione un determinada tecla uno de los pic me active una de sus patillas. aqui les dejo lo que mas o menos quiero hacer . espero que alguien se apiade de mi y me colabore grasias.
este es el codigo de el pic maestro.
quiero decirles que este codigo si me envia el numero que estoy enviando el problema es el que resive.
#include <16f628.h>
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_a1,rcv=pin_a2)
#include <kbd.c>
char k; //caracter que será leido
void main()
{
port_b_pullups (TRUE);
while(true){
kbd_init();
k=kbd_getc();//para cactar lo que se pulse o no se pulse en el teclado
if(k!=0){ //esta instrucción verifica si se ha pulsado una tecla
putc(k);
}
}[/B][/B]
este es el codigo de los otros pic:
#include <16f628a.h>
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_b1,rcv=pin_b2,bits=8)
#byte porta=05
#byte trisa=85
#byte portb=06
#byte trisb=86
int valor;
#int_rda
rda_isr()
{
valor=getc();
}
void main (){
trisa=0x00;
trisb=0xff;
enable_interrupts(int_rda);
enable_interrupts(global);
if (valor==1)
output_high(pin_b6);
}
este es el ejemplo en proteus:
en estos momentos quiero pedirle el favor a alguien que me colabore con un proyecto que estoy desarrolando se trata de 5 pics conectados mediante la comunicacion rs232 y lo que quiero es que uno que es el maestro o el que mada el a los demas tiene un teclado matricial 3x4 entonces quiero que cuando precione un determinada tecla uno de los pic me active una de sus patillas. aqui les dejo lo que mas o menos quiero hacer . espero que alguien se apiade de mi y me colabore grasias.
este es el codigo de el pic maestro.
quiero decirles que este codigo si me envia el numero que estoy enviando el problema es el que resive.
#include <16f628.h>
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_a1,rcv=pin_a2)
#include <kbd.c>
char k; //caracter que será leido
void main()
{
port_b_pullups (TRUE);
while(true){
kbd_init();
k=kbd_getc();//para cactar lo que se pulse o no se pulse en el teclado
if(k!=0){ //esta instrucción verifica si se ha pulsado una tecla
putc(k);
}
}[/B][/B]
este es el codigo de los otros pic:
#include <16f628a.h>
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=pin_b1,rcv=pin_b2,bits=8)
#byte porta=05
#byte trisa=85
#byte portb=06
#byte trisb=86
int valor;
#int_rda
rda_isr()
{
valor=getc();
}
void main (){
trisa=0x00;
trisb=0xff;
enable_interrupts(int_rda);
enable_interrupts(global);
if (valor==1)
output_high(pin_b6);
}
este es el ejemplo en proteus:
Adjuntos
Última edición: