资源简介

89C51双机通信的Proteus仿真及C语言收发程序,包括电路图。一个MCU发送数据,另一块接收并以ASCII数值LED显示

资源截图

代码片段和文件信息

#include  	 
#include    

#define XTAL            11059200  // CPU振荡频率  
#define baudrate        9600      // 波特率  
#define ILEN            8      // 接收缓冲区大小     
unsigned char  istart;          // 接收缓冲区起始   
unsigned char  iend;              // 接收缓冲区末尾 
char idata  inbuf[ILEN];          // 接收缓冲区  
bit  have_data_arrive;              //有数据被接收,用于同步显示
unsigned char ipos=0;               //当前接收的数据在缓冲区的位置
//显示位控制
sbit L=P1^0; //4常0                        
sbit R=P1^1; //3
sbit L1=P1^2;//2
sbit R1=P1^3;//1
//定义表格
unsigned char code table[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};  //共阴极段码表

//延时函数
void delay(unsigned char nms)
{
   unsigned char xy;
   for(x=0;x      for(y=0;y<110;y++);
}

//数码显示
void display_2(unsigned char dd)
{
    R=L=L1=R1=1;

    L=1;
//P0=table[0];
//delay(1);
//L=1;
R=0;
P0=table[(dd/100)%10];
delay(1);
R=1;
L1=0;
P0=table[(dd/10)%10];
delay(1);
L1=1;
R1=0;
P0=table[dd%10];
delay(1);
R1=1;
}


//接收中断例程
static void com_isr (void) interrupt 4 using 1 

 
char c; 
//数据接收中断
if (RI) 
{   
c = SBUF;  // 读数据

RI = 0;  // 清除中断标志  
ipos=iend & (ILEN-1);//存放位置
    iend++;              //调整指针
if (istart + ILEN != iend) //缓冲区未用完


   inbuf[ipos] = c;  // 写入数据到接收缓冲区 
     have_data_arrive=1;  //告诉主程序,接收数据准备好,可以开始显示了

}   
}   



//串口初始化  
void com_initialize (void) 
{   
istart = 0;  // 清空缓冲区 
iend = 0; 
have_data_arrive=0;//没有数据 

// 配置T1作为波特率发生器
PCON |= 0x80;  // 波特率加倍  
TMOD |= 0x20; // T1方式2,自动重装  
TH1 = (unsigned char) (256 -(XTAL / (16L * 12L * baudrate)));   
TR1 = 1;  // 启动T1   
SCON  = 0x50;//串口方式1,允许接收
ES = 1;  // 允许串行中断
}   

   
void main (void) 
{   
 
com_initialize (); //初始化串口
    EA = 1;     //开总中断
while(!have_data_arrive);//等待数据到来
while (1) 

         //显示接收到的数据
 display_2(inbuf[ipos ]);
}   
}   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2580  2009-12-30 16:53  send.c

     文件      90310  2009-12-30 17:01  vterminal.DSN

     文件       2209  2009-12-30 17:21  rcv.c

----------- ---------  ---------- -----  ----

                95099                    3


评论

共有 条评论