发布网友 发布时间: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;
}