51单片机通过串口实现数据的发送与接收程序

51单片机通过串口实现数据的发送与接收程序,第1张

串口收发,要有通信协议。也就是什么时候开始接收,接收到指令后,转发什么数据。这个要知道,才可以写。而且使用不同的51单片机,其内部寄存器配置是不同的。

一般来说,过程如下:

1,配置串口参数、波特率等,开启串口中断;

void Init_UART()

{

}

2,中断函数里写中断响应函数,根据接收的指令或者数据,执行相应的动作;

程序一般为:

void UART_ISR() interrupt x using y

{

串口中断处理函数

}

x - 单片机的C51中断号

y - 指定使用的当前工作寄存器组号(0-3 PSW中的RS0,RS1组合)

3,主程序

int main(void)

{

Init_UART()

while(1)

{

//数据发送函数

}

}

void Init_Com(void)//功能:串口初始化,波特率,方式1

{

TMOD=0x20//定时器工作方式2

TH1=0xfa//晶振11.0592,波特率4800

TL1=0xfa

SCON=0x50//串行口工作在方式1,允许接收,波特率由定时器控制

PCON=0x00//串行口加倍位为0

ES=1

TR1=1

ES = 1 //开串口中断

EA = 1 //开总中断

}

void Com_Int(void) interrupt 4 //串口接收中断函数

{

EA = 0

if(RI == 1) //当硬件接收到一个数据时,RI会置位

{

DATA= SBUF//保存接收到的数据

RI = 0 //接收到一位数据后就让RI为零,关闭中断

}

EA = 1

}

C,不过是软件打工仔们常用的语言。

要想深入到计算机内部,机器语言、汇编语言,才是真正的计算机语言。

参考一下:

http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/b738c5d010b2ce349a5027ee.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7837220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存