元器件交易网-中发网全新升级平台
关注我们:
首页 > IC技术 > 单片机 > 正文

单片机通过串口中断与电脑连接技术

  本实验实现串口中断实验,通过中断和计算机进行通信

  首先接受联机信号,然后接受计算机的相关控制信号

  本实验中,采用发送不同的字符给计算机来模拟接收到的不同的计算机控制命令

  通过扩展,可以实现不同的功能

  * *

  *

  * *

  ********************************************************************************/

  #include

  #define uchar unsigned char

  uchar time,b_break,b_break_3;

  uchar buf;

  void waitsend()

  {

  while(!TI)

  {

  };

  TI = 0;

  }

  //串行中断程序

  void int_s(void) interrupt 4 {

  ES = 0; //关闭串行中断

  RI = 0; //清除串行接受标志位

  buf = SBUF; //从串口缓冲区取得数据

  P1 = buf; //数据送往p1口显示出来

  if(buf == 255) SBUF = 255; //发送联络信号

  else{

  switch(buf)

  {

  case 1: SBUF = "M",waitsend();break; //如果接受到1,发送字符"M"给计算机

  case 2: SBUF = "C",waitsend();break; //如果接受到2,发送字符"C"给计算机

  case 3: SBUF = "S",waitsend();break; //如果接受到3,发送字符"S"给计算机

  case 4: SBUF = "5",waitsend();break; //如果接受到4,发送字符"5"给计算机

  case 5: SBUF = "1",waitsend();break; //如果接受到5,发送字符"1"给计算机

  default: SBUF = "n",waitsend();break; //如果接受到其它数据,发送n给计算机

  }

  }

  ES = 1; //允许串口中断

  }

  void main(void) {

  P0 = 0;

  P2 = 255; //关闭数码管显示

  EA=1;

  SCON=0x50;PCON=0X80;

  TMOD=0x20;ES = 1;

  TL1=TH1=0xf3;TR1=1; //串口工作在模1,波特率4800@12Mhz)

  while(1);

  //无限循环等待串行中断

  }

扫描左侧的二维码

科技圈最新动态一手掌握
每日砸蛋,中奖率100%