您的位置 首页 软件

51单片机 串口通讯 中止

从一段程序开始实现电脑向单片机发送一些数据,单片机返回Iget+数据#include#defineucharunsignedchar#defineuintuns…

从一段程序开端 完成电脑向单片机发送一些数据,单片机回来Iget +数据

#include #define uchar unsigned char

#define uint unsigned int unsigned char flag,a,i;//声明标志位 flag

uchar code table[]=”I get”

void init()

{

TMOD=0x20;//设置T1定时器作业方法为2 8位初值主动重装的8位定时器 这儿设置了两个计数器的作业方法

TH1=0xfd; / /T1定时器装初值(高八位) 操控串口通讯的波特率(由定时器1的溢出率操控)

TL1=0xfd; //T1定时器装入初值(低八位)

TR1=1; //定时器1运转操控位 置一发动定时器1

REN=1; //答应串口接纳

SM0=0; //设置串口作业方法为一

SM1=1; EA=1; //大局中止答应位 置一开大局中止

ES=1; //串口中止答应位

}

void main()

{

init();

while(1)

{

if(flag==1)

{

ES=0;

for(i=0;i<6;i++)

{

SBUF=table[i];

while(!TI);

TI=0;//发送中止标志 发送数据完成后触发中止 硬件置一 有必要软件清零

}

SBUF=a; // 串口发送数据

while(!TI);

TI=0;

ES=1;

flag=0;

}

}

}

void ser() interrupt 4 //串口中止服务程序

{

RI=0; // 收到数据硬件置一,由软件清零

a=SBUF; //将寄存器的值 赋给a flag=1; //标志位

}

此程序中共用的串口中止,

定时器1中止 特别功用寄存器SBUF

中止呼应的条件

中止源有中止请求 此中止源答应位为1 cpu开中止(即EA=1)以上三个条件一起分量

串口通讯设置

确认串口通讯波特率(编程TMOD寄存器定时器作业方法寄存器)

核算定时器初值转载THX TLX

确认串行口作业方法(编程SCON寄存器串行口操控方法寄存器)

串行口作业在中止方法时,要进行中止设置如TI,RI软件清零

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/265630.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部