- 硬件:STC89C52RC
- 开发工具:Keil uVision4
前言:8051是一款很经典的、历史悠久的单片机,作为一款入门级的单片机8051受到很多初学者的欢迎。89c52是8051系列的成员之一,拥有8K字节程序存储空间,512字节随机数据存储空间;I/O口控制端口、中断功能、定时器及串行接口。下面详细讲述串行接口功能的使用。
不管你用的芯片是不是STC89C52RC,只要你看完这篇文章,就能自行运用到不同的芯片上;因为一种串口通信协议的传输原理在任何芯片上都是统一的;所以它可以作为不同芯片一起协作的通信媒介。
目前普遍的单片机都有串行通信的接口,因为它依赖的硬件比较简单,一条串行数据输出线(TX)、一条串行数据接收线(RX)、一条用于电压参考的共地线。由此看出,芯片可以同时接受和发送数据,也实现了所说的全双工;而且,数据的传输时异步进行的,也就是说当芯片发送数据的时候,不需要对方应答,甚至不接目标器件也能成功发送;与之相反的同步通讯,就是需要对方应答或者通过时钟线控制传输的过程。
波特率:每秒钟可以传送几位的数据成为波特率,单位是BPS(Bit Per Second)。典型的波特率有9600bps、115200bps,以9600bps为例,使用8个数据位,没有检验位,1个停止位,起始位一直会存在。那么发送一个字节共需要发送10位,9600/10=960字节,也就是说一秒最多能发960字节的数据,波特率越高,传送的时间越短。我们所说的4M宽带的4M指的也是波特率,是一秒可以发4M位,而不是一秒可以发4M字节。
串行异步通信时的数据格式:
⑴ 起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。
⑵ 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。
⑶ 奇偶位:奇偶检验为仅占一位,用于进行奇校验或偶校验,也可以不设奇偶位。
⑷ 停止位:停止位为1位、1.5位或2位,可有软件设定。它一定