单片机串行口通信程序C语言

发布网友 发布时间:2022-04-25 18:12

我来回答

2个回答

热心网友 时间:2023-10-02 13:41

/*
程序把接收的数据发送出去,波速率为2400。
打开串口调试软件,把波速率设置为2400,
向板发送一个字节数据,软件应能接收到同样的数据。

*/

#include<reg51.h>
void delayms(unsigned int i);
unsigned char b;
void rs_dmx() interrupt 4 using 2//串口中断服务程序
{

b=SBUF;//接收数据

SBUF=b;//把接收的数据发送出去
while(TI==0);TI=0;
delayms(1);

RI=0;
}
main()
{
//write(1,60);
//b=read(1);
EA=1;
// TR0=1;
// ET0=1;
// TMOD=0X01;

TMOD=0x21;

TH1=0xF3;//波速率为2400
TL1=0xf3;
TR1=1;
EA=1;
SCON=0XD0;

ES=1;

while(1)
{

}

}

void delayms(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=100;j>0;j--);
}

自己改波特率,该程序通过单片机与串口助手相互通信

热心网友 时间:2023-10-02 13:41

发送:
#include <reg52.h>
#include<intrins.h>
#include<string.h>
#define uchar unsigned char

uchar data i,j,p,TEST;

sbit INTT0=P3^2;
uchar code V_35[10]={'V','o','l','t',' ','3','.','5',13,10};

void Init();
void Delay();
void Volt_35();
void main()
{
Init();

while(1)
{

if(TEST)
{
Volt_35();
TEST=0;
}

}
}

void Init()
{
P0=0XFF; //I/O口初始化
P1=0xFF;
P2=0XFF;
P3=0xFF;
SCON=0x50; //设置成串口方式1
T2CON=0x34;
TH2=0xff; //晶振11.0592MHZ,波特率9600
TL2=0xdc;
RCAP2H=0XFF;
RCAP2L=0XdC;
EA=1;
EX0=1;
IT0=1;
TEST=0;
}

void Delay()
{
for(i=0;i<100;i++)
for(j=0;j<100;j++);
}

void Volt_35()
{

for(p=0;p<10;p++)
{
SBUF=V_35[p];
while(!TI);
TI=0;

}
}

void int0svr(void) interrupt 0 using 1
{

Delay();
if(!INTT0)
{
while(!INTT0);
TEST=1;

}

}

接收:
#include <reg52.h>
#include<intrins.h>
#include<string.h>
#define uchar unsigned char

uchar data i;

void Init();

void main()
{
Init();

while(1)
{

for(i=0;i<10;i++)
{
while(!RI);
P1=SBUF;
RI=0;
}

}
}

void Init()
{
P0=0XFF;
P1=0xFF;
P2=0XFF;
P3=0xFF;
SCON=0x50;
T2CON=0x34;
TH2=0xff;
TL2=0xdc;
RCAP2H=0XFF;
RCAP2L=0XdC;

}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com