AT89S52串口通讯

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

/******************************//* 主函数 *//********************************/

void main (void)

{

      SCON = 0x50;         /* SCON: 模式 1, 8-bit UART, 使能接收 */

      TMOD |= 0x20;        /* TMOD: timer 1, mode 2, 8-bit reload */

      TH1 = 0xFD;            /* TH1: reload value for 9600 baud @ 11.0592MHz */

      TR1 = 1;                   /* TR1: timer 1 run */

      EA = 1;                    /*打开总中断*/

      ES = 1;                    /*打开串口中断*/

      while (1)                  /*主循环不做任何动作*/

      { }

}

 

/**************************//* 串口中断程序 *//****************************/

void UART_SER (void) interrupt 4           //串行中断服务程序

{

     unsigned char Temp;                            //定义临时变量

     if(RI)                                                        //判断是接收中断产生

     {

          RI=0;                                                 //标志位清零

          Temp=SBUF;                                  //读入缓冲区的值

          P1=Temp;                                       //把值输出到P1口,用于观察

          SBUF=Temp;                                 //把接收到的值再发回电脑端

      }

     if(TI)                                                      //如果是发送标志位,清零

          TI=0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值