⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 muti-commu_r.c

📁 单片机之间的通讯(多个) 可以设定选择接收端 KEIL C 开发平台 PROTEUS 测试过 附有proteus 原理图
💻 C
字号:
#include<regx51.h>
#include<intrins.h>
#include <lcd.h>
/*---------------
110529Mhz/(12*16*(256-253(TH1=0XFD)))
baudrate 19200
---------------*/
#define COUNT 10
#define NODE_ADDR 64 //经测试 该64与主机的NODE_ADDR 相同时才能接收到主机发出的信号
unsigned char buffer[COUNT];
unsigned char k=0;
int pointer;
void delay()
{
unsigned int i;
for(i=0;i<20;i++)
_nop_();
}
void main(void)
{
	   init_LCD();//
       clear_LCD();//
	   
SCON=0XF0;
TMOD=0X20;
TH1=0XFD;
TR1=1;
ET1=0;
ES=1;
EA=1;
pointer=0;
while(pointer<=COUNT)
{
  if(k>=11)	//完全接收到10个字符时显示一次
  {	k=0;
	gotoxy(2,0);
	display_LCD_string(buffer);	 
	}
  
}
}
void recieve(void) interrupt 4 using 3
{
  RI=0;
  k++; 
  if(RB8==1)
  {
  if(SBUF==NODE_ADDR)  //地址桢相同则接收数据
  SM2=0;
  return;
  }
  buffer[pointer++]=SBUF;
  gotoxy(1,0);
  //display_LCD_string(&buffer[pointer-1]);//可以
  write_LCD_data(buffer[pointer-1]);
  if(pointer==COUNT)  
  SM2=1;
  //clear_LCD();
  //gotoxy(1,3);  
  //display_LCD_string(buffer);
  //gotoxy(1,10);
  //display_LCD_number(k);    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -