一 、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。串口通信的工作原理请同学们参看教科书。 以下对串口通信中一 些需要同学们注意的地方作一 点说明: 1、波特率选择 波特率(Boud Rate)就是在串口通信中每秒能够发送的位数(bits/second)。MSC-51串行端口在四种工作模式下有不同的波特率计算方法。其中,模式 0和模式 2波特率计算很简单,请同学们参看教科书;模式 1和模式 3的波特率选择相同,故在此仅以工作模式 1为例来说明串口通信波特率的选择。 在串行端口工作于模式 1,其波特率将由计时/计数器 1来产生,通常设置定时器工作于模式 2(自动再 加 模式)。在此模式下波特率计算公 式为: 波特率=(1+SMOD)*晶 振 频 率/(384*(256-TH1)) 其中,SMOD——寄存器 PCON的第 7位,称为波特率倍增位; TH1——定时器的重载值。 在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作特点,确定通信的频 率范围。然后考虑通信时钟误差。使用同一 晶 振 频 率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频 率进行通信。 下面举例说明波特率选择过程:假设系统要求的通信频 率在 20000bit/s以下,晶 振 频 率为 12MHz,设置 SMOD=1(即波特率倍增)。则 TH1=256-62500/波特率 根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。列计数器重载值,通信误差如下表: 因此,在通信中,最好选用波特率为 1200,2400,4800中的一 个。 2、通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一 步动作。假定我们需要在 PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定: 0xA1:单片机读取 P0端口数据,并将读取数据返回 PC机; 0xA2:单片机从 PC机接收一 段控制数据; 0xA3:单片机操作成功信息。 在系统工作过程中,单片机接收到 PC机数据信息后,便查找协议,完成相应的操作。当单片机接收到 0xA1时,读取 P0端口数据,并将读取数据返回 PC机;当单片机接收到 0xA2时,单片机等待从 PC机接收一 段控制数据;当 PC...