/********************************************************/
1)串行接口
1.简称串口(通常指com接口) 。
2.特点:数据一位一位的顺序传送。通信线路简单,只要一对传输线就可以实现双向通信。工作方式有单工,半双工,全双工。
单工:单向传递。半双工:A->B传送信息 过一点时间后B->A 回消息。全双工:用户A用户B像人和人面对面交流一样。
串行通信的距离可以是几米到几千米。
3.分类:
RS232 TTL RS485 LORA(无线串口)
4.原理:
串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
接法
发送数据TXD——接收数据RXD
接收数据RXD——发送数据TXD
接受过程
pc机————————————51单片机
八位二进制数 00001000
第一位0 第二位0.第四位1 51单片机接收通 过高低电平
识别接收。低电平 0,高电
平1。
/******************************************************************/
2)串口通信协议内容:
1.数据格式:
有数据位、起始位、停止位、奇偶校验位
2.波特率:控制传输速度。
(两个人对话,对话的语言就是数据位。。。。说话的速度就是波特率)
/**********************************************************/
3)串口编程(51单片机):查看芯片手册配置通信协议参数、原理图、
1.给SCON寄存器(有八位)配置。如:
SCON = 00x50 ;
表示选择方式1 : 01010000(最后两位TI、RI前者发送,后者接收会被硬件置1需要手动清0)
SBUF:数据缓存,发送接收都往该寄存器存放数据。
PC将数据发给51 ,存在SBUF(8位)中。
SBUF可以存放PC机上输入的信息。
char data;
if(RI= =1){
data = SBUF;
} // RI==1表示接收完数据,后将数据存在data中。
SBUF既可以当输入也可以当输出。
给串口初始化可以实现单片机和电脑之间的对话。
2.波特率的计算:
查看手册对应串口的工作方式,找到波特率的计算公式。
(syc指的是晶振频率11.0592MHZ),选定9600或者115200波特率 再结合公式求出THx 和 TLx 的值。
/******************************************************************/
使用串口和PC机对话时候,要判断TI和RI的状态
TI 发送 发完后由硬件置1 要由软件清0.
RI 接收 接收完后由硬件置1 。。。。
SBUF存放信息。串口助手上的发送信息栏发送1 SBUF存放,经过TI发送到单片 实现电脑数据控制单片机。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)