您现在的位置: 主页 > MCU > 单片机技术应用 > c51串口通信程序 -
本文所属标签:
为本文创立个标签吧:

c51串口通信程序 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]//-------------------------------------------------------------------------------------------------------------------//程序名称:串口通信程序//功能:实现单片机与PC之间的串口通信,PC向单片机发送,单片机

//-------------------------------------------------------------------------------------------------------------------

本文引用地址: http://www.21ic.com/app/mcu/201807/785533.htm

//程序名称:串口通信程序

//功能:实现单片机与PC之间的串口通信,PC向单片机发送,单片机返回PC所发的内容

//硬件连接:单片机的P3.0 P3.1经max232电平转化后与PC串口相连

//测试情况:本程序已经由我亲自上机测试,确保无误

//-------------------------------------------------------------------------------------------------------------------

#include
#define uint unsigned int
#define uchar unsigned char
uchar num,flag;
void main()
{

TMOD=0X20;//设置定时1为工作方式2
TH1=0XFD;//设置定时器初始值
TL1=0XFD;
TR1=1; //启动定时器
SCON=0X50;
EA=1;//开总中断
ES=1;//开串口中断

while(1)
{

if(flag==1) //flag为标志位,当flag==1时,说明此时已经发生串口中断,也就是说此时PC已经向单片机发送了数据
{
EA=0; //为防止受影响,关闭所有中断
flag=0;//清标志位
SBUF=num;//将串口收到的值num存放在串口发送寄存器中
while(!TI); //TI是串口发送标志位,当发送完毕后,硬件自动置1,所以一般此句话的意思叫等待发送完毕
TI=0;//清发送标志位,以便下次中断后能再次发送
EA=1; //开总中断
}
}
}

void ser() interrupt 4 //中断服务子程序
{
RI=0; //RI接受标志位,为0时允许接收,接收完毕后置1
num=SBUF; //串口接收寄存器接收到的值赋给变量num
flag=1; //中断标志位置1
}

注:有时候对于新手来说,有些特殊功能寄存器或者一些 位 的操作不理解,其实只要翻开课本查一下这个是什么作用,对于程序就明白怎么写了,比如本文的 RI TI SCON SBUF等等 ,读懂了他们的作用自热而然的就知道怎么用了。查资料很重要




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > c51串口通信程序 -
 

"c51串口通信程序 -"的相关文章

网站地图

围观()