一 串口通信 ATm ega16 单片机带有一个全双工的通用同步/异步串行收发模块USART,该接口是一个高度灵活的串行通讯设备。其主要特点如下: 全双工操作,可同时进行收发操作; 支持同步或异步操作; 支持5、6、7、8 和 9 位数据位,1 位或者 2 位停止位的串行数据帧结构; 三个完全独立的中断,TX 发送完成,TX 发送数据寄存器空,RX 接收完成; 支持多机通讯模式; 相关寄存器: USART 数据寄存器—UDR; USART 控制和状态寄存器—UCSRA,UCSRB,UCSRC; 波特率寄存器—UBRRL 和 UBRRH; 串口背景知识 (1)串行通讯简介 串行同步通讯容易理解,约定一个同步时钟,每一时刻传输线上的信息就是要传送的信息单元。串行异步通讯是把 一个字符看作一个独立的信息单元,每一个字符中的各位是以固定的时间传送。因此,这种传送方式在同一字节内部是同步的,而字符间是异步的。在异步通信中收 发双方取得同步的方法是采用在字符格式中设置起始位,而在字符结束时发送 1~2 个停止位。当接收器检测到起始位时,便能知道经接着的是有效的字符位,于是开始接收字符,检测到停止位时,就将接收到的有效字符装载到接收缓冲器中。最简单的串口通信使用3 根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit 的个数。例如300 波特表示每秒钟发送 300 个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800 波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800 和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8 位的,标准的值是5、7 和8 位。如何设置取决于你想传送的信息。比如,标准的ASCII 码是0~127(7 位)。扩展的ASCII 码是0~255(8 位)。如果数据使用简单的文本(标准 ASCII 码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇...