ami_20
Newbie level 2
hello guys...i am new to this forum...i saw many thread regarding serial communication betwwen pc and 8051 ..but it did not solve my problem.i want to send a string of 8 character continusly.and i m using interrupt here...in my program i want to display''we are in isr"on hyperterminal each time when isr is running...plz help me...here what i have done until now...its not workin and showing warning in printf ....
#include <REG51.H>
#include<stdio.h>
void send(unsigned char *);
sbit led=P1^0;
void inti_serialsetup();
unsigned char serialdata[]="ABCDEF";
void main()
{
inti_serialsetup();
send(serialdata);
while()
{
led=~led;
TH0=0XFF;
TL0=0X89;
TR0=1;
while(!TF0);
TF0=0;
}
}
void inti_serialsetup(void)
{
IE=0X90; //initialise serial interrupt
TMOD=0X21; //timer 0 in 16 bit and timer 1 in 8 bit mode
TH1=0XF6; //baud rate
SCON=0X50;
TR1=1;
}
void send(unsigned char *val)
{
unsigned char i=0;
for(i=0;i<7;i++)
{
SBUF=*val;
P1=SBUF;
val++;
}
}
void serialintrpt(void)interrupt 4
{
printf("\n we r in isr");
if(T1==1)
T1=0;
else
P1=SBUF;
RI=0;
}
#include <REG51.H>
#include<stdio.h>
void send(unsigned char *);
sbit led=P1^0;
void inti_serialsetup();
unsigned char serialdata[]="ABCDEF";
void main()
{
inti_serialsetup();
send(serialdata);
while()
{
led=~led;
TH0=0XFF;
TL0=0X89;
TR0=1;
while(!TF0);
TF0=0;
}
}
void inti_serialsetup(void)
{
IE=0X90; //initialise serial interrupt
TMOD=0X21; //timer 0 in 16 bit and timer 1 in 8 bit mode
TH1=0XF6; //baud rate
SCON=0X50;
TR1=1;
}
void send(unsigned char *val)
{
unsigned char i=0;
for(i=0;i<7;i++)
{
SBUF=*val;
P1=SBUF;
val++;
}
}
void serialintrpt(void)interrupt 4
{
printf("\n we r in isr");
if(T1==1)
T1=0;
else
P1=SBUF;
RI=0;
}