一 、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制
由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用
串口通信的工作原理请同学们参看教科书
以下对串口通信中一 些需要同学们注意的地方作一 点说明: 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、通信协议的使