用51单片机实现串口通讯

通过51单片机和上位机进行串口通讯以下是程序以及备注在这里我们要设置SCON PCON

#include <REG52.H>
#include <INTRINS.H>
#include "LCD1602.h"


void Delay500()//延时
{
	unsigned char i, j, k;
	_nop_();
	_nop_();
	i =22;
	j = 3;
	k = 227;
	do
	{
		do
		{
			while(--k);
		}while(--j);
	}while(--i);
}

void UART_Init()
{
	SCON = 0x50;//串口配置寄存器
	PCON |= 0x80;//配置波特率是否翻倍为1翻倍为0不翻倍
	
	//配置定时器
	TMOD &= 0x0F;//高4位清0,后4位不变
	TMOD |= 0x20;//高4位配置为定时器1的模式3,底4位不变
	
	TH1 = 0xF4;//配置波特率
	TL1 = 0xF4;//配置波特率
	TR1 = 1;//开启定时器
	ET1 = 0;//打开中断1
	ES = 1;
	EA = 1;//总中断
}
void USART_SendBit(unsigned char BYTE)
{
	SBUF = BYTE;
	while(TI == 0);
	
		TI = 0;
	
}
int main()
{
	UART_Init();
	while(1)
	{
//		LED = 0;
	}
  return 0;
}




void zhongduan() interrupt 4
{
	if(RI == 1)//判断是否是发送端还是接收端
	{
		P1 = SBUF;
		USART_SendBit(SBUF);
			RI = 0;//硬件不能修改为0所以只能是软件修改
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值