51单片机串口通信中字符发送的总结

来源:本站
导读:目前正在解读《51单片机串口通信中字符发送的总结》的相关信息,《51单片机串口通信中字符发送的总结》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机串口通信中字符发送的总结》的详细说明。
简介:本文对51单片机串口通信中字符发送进行了总结。

/*字符发送方式一*/

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

uchar flag,a,i;

uchar code table[]="I get ";

void init()

{

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

SM0=0;

SM1=1;

REN=1;

//TI=1;

EA=1;

ES=1;

}

void main()

{

init();

while(1)

{

if(flag==1)

{

ES=0;

for(i=0;i<6;i++)

{

SBUF=table[i];

while(TI==0);

TI=0;

}

SBUF=a;

while(TI==0);

TI=0;

ES=1;

flag=0;

}

}

}

void ser() interrupt 4

{

a=SBUF;

RI=0;

P1=~P1;

flag=1;

}

/*字符发送方式二*/

#include<reg52.h>

#include<stdio.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar flag,a,i=0;

uchar code table[]="I get ";

void init()

{

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

SM0=0;

SM1=1;

REN=1;

//TI=1;

EA=1;

ES=1;

}

void main()

{

init();

while(1)

{

if(flag==1)

{

ES=0;

while(table[i]!='')//注意字符串末尾为''

{

SBUF=table[i];

while(TI==0);

TI=0;

i++;

}

i=0;//用完了i记得清零

SBUF=a;

while(TI==0);

TI=0;

ES=1;

flag=0;

}

}

}

void ser() interrupt 4

{

a=SBUF;

RI=0;

P1=~P1;

flag=1;

}

/*字符发送方式三--打印函数(重要)*/

#define uint unsigned int

uchar flag,a,i=0;

uchar code table[]="I get ";

void init()

{

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

SM0=0;

SM1=1;

REN=1;

//TI=1;

EA=1;

ES=1;

}

void main()

{

init();

while(1)

{

if(flag==1)

{

ES=0;

TI=1;//用printf,puchar,_getkey等函数要先进行初始化串行口

//该函数在头文件中的定义如下

//while(!TI);

// TI=0;

//return(SBUF=a);

//所以用打印函数时如果没有将TI设置为1,执行到该句会进入死循环

printf("I get %cn",a);

while(TI==0);

TI=0;

ES=1;

flag=0;

}

}

}

void ser() interrupt 4

{

a=SBUF;

RI=0;

P1=~P1;

flag=1;

}

提醒:《51单片机串口通信中字符发送的总结》最后刷新时间 2024-03-14 00:55:22,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机串口通信中字符发送的总结》该内容的真实性请自行鉴别。