Hi
I use Pic16f877a to communicate with computer through COM port.But I only can send "hello" to computer but cannot received any signal from computer.I write program by CCS C and Proteus for simulation.So anyone can help me
#include <16f877a.h>
#device pic16f877*=16 adc=10
#fuses hs,nowdt,noprotect,nolvp,brownout
#use delay(clock=20mhz)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7,bits=8)
#byte portB=0x06
#byte portC=0x07
#byte portD=0x08
char datareceive='0';
#int_rda
void rda_isr()
{
output_high(pin_d0);
output_high(pin_d5);
datareceive = getc();
if(datareceive=='1')
output_low(pin_b0);
if(datareceive=='2')
output_low(pin_b1);
if(datareceive=='3')
output_low(pin_b2);
}
void main()
{
set_tris_d(0x00);
set_tris_b(0x00);
portb=0xff;
portd=0x00;
enable_interrupts(int_rda);
enable_interrupts(global);
printf("hello");
printf("hello");
while(1);
}
I use Pic16f877a to communicate with computer through COM port.But I only can send "hello" to computer but cannot received any signal from computer.I write program by CCS C and Proteus for simulation.So anyone can help me
#include <16f877a.h>
#device pic16f877*=16 adc=10
#fuses hs,nowdt,noprotect,nolvp,brownout
#use delay(clock=20mhz)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7,bits=8)
#byte portB=0x06
#byte portC=0x07
#byte portD=0x08
char datareceive='0';
#int_rda
void rda_isr()
{
output_high(pin_d0);
output_high(pin_d5);
datareceive = getc();
if(datareceive=='1')
output_low(pin_b0);
if(datareceive=='2')
output_low(pin_b1);
if(datareceive=='3')
output_low(pin_b2);
}
void main()
{
set_tris_d(0x00);
set_tris_b(0x00);
portb=0xff;
portd=0x00;
enable_interrupts(int_rda);
enable_interrupts(global);
printf("hello");
printf("hello");
while(1);
}
Attachments
-
322.8 KB Views: 91