📄 ex7_5.c
字号:
//程序:ex7_5.c
//功能:乙机接收程序,中断方式实现
#include<reg51.h>
void main() //主函数
{
TMOD=0x20; //设定定时器1的工作方式为方式2
TH1=0xfd; //设置串行口波特率为9600
TL1=0xfd;
TR1=1;
SCON=0x50; //设置串行口的工作方式为方式1,允许接收
PCON=0x00;
ES=1; //开串行口中断
EA=1; //开总中断允许位
P1=0xff;
while(1);
}
//函数名:serial
//函数功能:串行口中断接收函数
//形式参数:无
//返回值:无
void serial()interrupt 4 //串口中断类型号为4
{
EA=0; //关中断
RI=0; //软件清除中断标志位
while((SBUF^0x01) !=0)); //判断是否接收到01H
do {
SBUF=0x02; //向甲机发送应答02H
while(!TI); //查询发送是否完毕
TI=0; //发送完毕,TI由软件清0
while(!RI); //查询等待接收
RI=0; //接收完毕,RI由软件清0
P1=SBUF; //根据甲机P1口的状态点亮发光二极管
while(!RI); //查询等待接收
RI=0; //接收完毕,RI由软件清0
}
while((SBUF^0xff)!=0); //判断是否接收到结束符FFH
SBUF=0xff; //发送应答结束符FFH
while(!TI); //查询发送是否完毕
TI=0; //发送完毕,TI由软件清0
EA=1; //开中断允许位
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -