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

📄 c51serial.c

📁 C51与PC机通过查收的方式进行数据传递。中间只需要进行简单的协议设定。
💻 C
字号:
#include <reg51.h>
#define uchar unsigned char
uchar  xdata rt_buf[32];
uchar  r_in, t_out;
bit  r_full, t_empty;
sbit led_1=P2^0;
sbit led_2=P2^1;

 
serial() interrupt 4 
//void fun()
{
  if(RI && r_full)
{
   rt_buf[r_in]=SBUF;
RI=0;
led_1=1;
led_2=0;
if(rt_buf[r_in]==0x24)
{
  r_full=0;
SBUF=rt_buf[t_out];
t_empty=1;
}
/*接收字符为$,则接收结束;设置接收结束标志,开始发送*/
r_in=++r_in;
}
else if(TI && t_empty)
{
  TI=0;
  led_1=0;
  led_2=1;
t_out=++t_out;
SBUF=rt_buf[t_out];
if(t_out==r_in)
t_empty=0;
r_full=1;
/*t_out=r_in则发送完,设发送完标志t_empty*/
}
}
main()
{
uchar a;
/*设置定时器T1工作于方式2,计数常数为0xfdH*/
TMOD=0x20;
TL1=0xfe;
TH1=0xfe;
SCON=0x50;
PCON=0x00;
IE=0x10;
TR1=1;
EA=1;
r_in=t_out=0;
t_empty=0;
r_full=1;
while(1){

}
}

⌨️ 快捷键说明

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