pc 串口发送 c语言,【求助】51单片机串口发送接收问题(PC向单片机发送1位字符,单片机接收后发回PC)...

本帖最后由 liaolinhui 于 2014-8-31 00:28 编辑

你看看我这个程序,或许是你波特率的原因

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

*  标题:                  RS232串口通信试验(接收与发送)                            *

*                                                                                                                                                                   *

*  1.通过本例程了解串口的基本原理及使用 ,理解并掌握对串口进行初始化                                   *

*                                                                                                                                                                   *

*   2.请使用串口调试助手(Baud 4800、数据位8、停止位1、效验位无)做为上位机来做收发试验。

*     在调试助手字符串输入框中输入数字和字符,按发送按钮,然后观察接受窗口的变化。也可以用

*         调试助手自动循环发送。                                                                                                            *

*                                                                                      *

* 请学员认真消化本例程,学会用C语言操作串口                                             *

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

#include

unsigned char SenData,Flag;

void main()

{

SCON = 0x50;      //REN=1允许串行接受状态,串口工作模式1

TMOD|= 0x20;      //定时器工作方式2

PCON|= 0x80;

//TH1  = 0xFD;     //baud*2  /* reload value 19200、数据位8、停止位1。效验位无 (11.0592)

TH1 = 0xF3;                                        // //baud*2  /*  波特率4800、数据位8、停止位1。效验位无 (12M)

TL1 = 0xF3;

TR1  = 1;

ES   = 1;        //开串口中断

EA   = 1;        // 开总中断

// IE = 0x0;

while(1)

{

if (Flag==1)

{

EA=0;

SBUF=SenData;                     //SUBF接受/发送缓冲器

while(TI==0);

TI=0;

Flag=0;

EA=1;

}

}

}

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

串口中断程序

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

void ser_int (void) interrupt 4 using 1

{

unsigned char ReData;

if(RI == 1)        //RI接受中断标志

{

RI = 0;                    //清除RI接受中断标志

ReData = SBUF;  //SUBF接受/发送缓冲器

SenData=ReData;

Flag=1;

}

}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值