feng-bxr

/****实验现象:通过PC的超级终端向MCU发\'A\',能给返回\'B\',以此类推;

               并且按下S4键能向PC机发\'A\'。******/

 

 #include <reg52.h>

 sbit WINT1=P3^3;        // 外部中断,接S4按键

 

/*

*****初始化子函数

*/

void init() {

PCON=0x00;            //波特率不加倍

TMOD=0x20;            //定时器1用作波特率发生器(具有自动重装载初值的功能)

 SCON=0x50;            //8为异步收发,波特率可变(由定时器控制)选择串口方式1,接收允许

TH1=0x0fd;

TL1=0x0fd;            //设置波特率为9600bps,晶振11.0592MHz

RI=0;           //清标志位

 TI=0;

TR1=1;              //开启计数T1

ES=1;      //开串口中断

IT1=1;      //设置为跳变触发方式

EX1=1;      //开外部中断1

EA=1;      //开总中断       

}

 

/*

*****主函数

*/

void main(){

init();

while(1);             //延时等待中断

}

 

/*

*****串口中断服务子函数

*/

void uart_interrupt (void) interrupt 4{

char date;

ES=0;              //关闭串口中断

if(TI) {           //判断是发送中断

TI=0;          //清除发送中断标志

}

else {

date=SBUF;     //数据缓存到date中

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

date++;   //数据处理

SBUF=date;   //返回数据

}

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

}

 

/*

*****外部中断服务子函数

*/

void int1_interrupt(void) interrupt 2 {

while(!WINT1);      //按键松手检测

SBUF=0X41;          //发送字符数据A

}

 

分类:

技术点:

相关文章:

  • 2021-12-18
  • 2022-01-26
  • 2022-12-23
  • 2021-12-18
  • 2021-12-28
  • 2021-04-11
  • 2021-12-08
猜你喜欢
  • 2021-12-18
  • 2021-12-08
  • 2021-12-08
  • 2021-12-18
  • 2021-12-18
  • 2021-12-18
  • 2021-12-28
相关资源
相似解决方案