通过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所以只能是软件修改
}
}