所需E币: 4
时间: 2020-1-15 13:50
大小: 143.09KB
51单片机IO口模拟串行通信89C51单片机I/O口模拟串行通信的实现方法严天峰目前普遍采用的MCS51和PIC系列单片机通常只有一个(或没有)UART异步串行通信接口,在应用系统中若需要多个串行接口(例如在多机通信系统中,主机既要和从机通信又要和终端通信)的情况下,通常的方法是扩展一片8251或8250通用同步/异步接收发送芯片(USART),需额外占用单片机I/O资源。本文介绍一种用单片机普通I/O口实现串行通信的方法,可在单片机的最小应用系统中实现与两个以上串行接口设备的多机通信。1.串行接口的基本通信方式串行接口的有异步和同步两种基本通信方式。异步通信采用用异步传送格式,如图1所示。数据发送和接收均将起始位和停止位作为开始和结束的标志。在异步通信中,起始位占用一位(低①电平),用来表示字符开始。其后为7或8位的数据编码,第8位通常做为奇偶校验位。最后为停止位(高电平)用来表示字符传送结束。上述字符格式通常作为一个串行帧,如无奇偶校验位,即为常见的N.8.1帧格式。串行通信中,每秒传送的数据位称为波特率。如数据传送的波特率为1200波特,采用N.8.1帧格式(10位),则每秒传送字节为120个,而字节中每一位传送时间即为波特率的倒数:T=I/1200=0.833ms。同样,如数据传送的波特率为9600波特,则字节中每一位传送时间为T=1/9600=0.104ms。根据数据传送的波特率即字节中每一位的传送时间,我们便可用普通I/O口来模拟实现串行通信的时序。2.硬件电路89C51单片机通过普通I/O口与PC机RS232串口实现通信的硬件接口电路如图2所示。由于PC系列微机串行口为RS232C标准接口,与输入、输出均采用TTL电平的……