接着上次的电脑接收单片机的数据,我们来了解一下电脑向单片机发送数据
在实现该功能时,串口的模式也要相应的进行调整
具体代码如下
void UART_Init()
{
SCON=0x50;
PCON=0x80;
TMOD &= 0x0F;
TMOD |= 0x20;
TL1=0xF4;
TH1=0xF4 ;
TF0=0;
TR1=1;
ET1=0;
EA=1;
ES=1;
PT0=0;
}
与接收的区别是在发送数据时不是持续发送的,这里我们需要是要中断函数来实现发送数据
当电脑附送数据时执行中断函数,在中断函数中来向单片机发送数据,这样才能避免电脑一直向单片机发送数据。
下面是规定的单片机的中断函数,不同中断函数都有各自的作用,要正确使用相应的中断函数
这里我们需要用到图中第五个中断函数
具体代码如下
void UART_Routine() interrupt 4
{
if(RI==1)
{
P2=~SBUF;
UART_SendByte(SBUF);
RI=0;
}
}
由于完整过程中会有两次中断,一次发送中断,一次接收中断,而发送数据实在接收中断实现的
,所以要加入if判断是否为接收中断,而P2=~SBUF就是在发送数据的同时控制led的亮灭,接着使用UART_SendByte(SBUF)函数将接收到的数据发送回电脑
中断函数需要放在主函数中发挥作用,主函数的代码如下
#include <REGX52.H>
#include "Delay.h"
#include"UART.h"
unsigned char Sec;
void main()
{
UART_Init();
while(1)
{
}
}
void UART_Routine() interrupt 4
{
if(RI==1)
{
P2=~SBUF;
UART_SendByte(SBUF);
RI=0;
}
}
运行结果
串口显示
led显示
版权声明:本文为weixin_68131472原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。