89C52单片机 串口接收发送 数据

文章目录

1.简介

通过串口对单片机发送数据,然后 数据 +1 返回串口
在这里插入图片描述

2. 功能实现


#include <reg52.h>

#define uchar unsigned char
#define uint  unsigned int

sbit beep = P2^3;//蜂鸣器接口
uchar num;//发送暂存变量

void delay(uint z)
{
	uint x,y;
	for(x = z; x > 0; x--)
		for(y = 114; y > 0 ; y--);
}	
void UART_init()
{
	TMOD = 0x20;  	//T1工作模式2  8位自动重装
	TH1 = 0xfd;
	TL1 = 0xfd; 	//比特率9600 
	TR1 = 1;		//启动T1定时器
	SM0 = 0;
	SM1 = 1; 		//串口工作方式1 10位异步
	REN = 1;		//串口允许接收
	EA  = 1;		//开总中断
	ES  = 1;		//串口中断打开
}
void main()
{
	UART_init(); //串口初始化
	while(1);	
}


void UART() interrupt 4  //串口中断
{
	if(RI)	//检测是否接收完成 当硬件接收一个数据时 RI 高位
	{
		num = SBUF;	  //num 取出接收缓存器的值
		beep = 0;
		delay(100);
		beep = 1;//蜂鸣器发出滴提示音
		num++;//把接收的数据加1并发送
		RI = 0;
		SBUF = num;	  //将数据返回缓存区
		while(!TI);
		TI = 0;
	}
}
发布了354 篇原创文章 · 获赞 114 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/qq_27061049/article/details/102409731