《关于单片机工作方式等.ppt》由会员分享,可在线阅读,更多相关《关于单片机工作方式等.ppt(116页珍藏版)》请在金锄头文库上搜索。
1、MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计Powerpoint制作:制作:五邑大学信息学院五邑大学信息学院课程主讲:王洪涛课程主讲:王洪涛MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列
2、单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MCS-51MCS-51系列单片机内部定时系列单片机内部定时/ /计数器、计数器、中断系统及串行口中断系统及串行口I/OI/O口的应用口的应用第十一讲内容提示第十一讲内容提示5.8串行口及串行通信串行口及串行通信(续续)5.9RS-232C接口标准接口标准5.11多个中断
3、源同时开放时应注意的问题多个中断源同时开放时应注意的问题MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计(2)方式)方式1、2、3当设置当设置SCON中的中的SM0、SM1为为01、10、11时,时,串行口工作在方式串行口工作在方式
4、1、2、3。串口均为异步串行通信口,。串口均为异步串行通信口,其中其中TXD是发送端,是发送端,RXD是接收端。发送或接收帧信息是接收端。发送或接收帧信息包括包括1位起始位(固定为位起始位(固定为0)、)、8(方式(方式1)或)或9位(方式位(方式2、3)串行数据(低位在前,高位在后)和一位停止位)串行数据(低位在前,高位在后)和一位停止位(固定为(固定为1)共)共10或或11位,这是他们的共性。位,这是他们的共性。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行
5、口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计方式方式1、3的波特率是可变的。波特率与定时器的波特率是可变的。波特率与定时器T1或或T2的溢出率、的溢出率、SMOD位有关。注意:位有关。注意:51机的机的T0不能不能作为波特率发生器用。方式作为波特率发生器用。方式2的波特率固定为:的波特率固定为:(5-4)方式方式1、方式、方式3波特率与定时器波特率与定时器T1溢出率、溢出率、SMOD位关系如下:位关系如下
6、:(5-5)MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计5-5式分子中的式分子中的SMOD是是PCON的的SMOD位。当位。当SMOD位为位为1时,波特率是时,波特率是SMOD为为0时的两倍。因此,时的两倍。因此,PCON寄存器
7、中的寄存器中的SMOD位被称为波特率倍增位。对方位被称为波特率倍增位。对方式式1、2、3都成立。都成立。如前所述,波特率(这里等同于比特率)是每秒钟如前所述,波特率(这里等同于比特率)是每秒钟传输数据的倍数。在异步串行数据传输时,表面上看来双传输数据的倍数。在异步串行数据传输时,表面上看来双方的同步是靠波特率实现(移位)的。方的同步是靠波特率实现(移位)的。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/
8、OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计但为了降低误码率,提高通信的靠性,接收方若在但为了降低误码率,提高通信的靠性,接收方若在每个数据位时间间隔中点(信号畸变最小处),将数据移每个数据位时间间隔中点(信号畸变最小处),将数据移位并锁存,可以克服因信号的畸变导致的通信错误。实现位并锁存,可以克服因信号的畸变导致的通信错误。实现的上述目的一种方法是进行时间细分,如图的上述目的一种方法是进行时间细分,如图5-34所示,所示,在每传输在每传输1位的时间段内,插入位的
9、时间段内,插入16个等宽时钟脉冲。当接个等宽时钟脉冲。当接收方收检测到发送方的起始信号后,以延迟收方收检测到发送方的起始信号后,以延迟8个时钟脉冲个时钟脉冲后的时刻为同步参考点。之后每后的时刻为同步参考点。之后每16个时钟脉冲移位并锁个时钟脉冲移位并锁存数据,如图所示,这些作用点正好是每位信号的中点。存数据,如图所示,这些作用点正好是每位信号的中点。我们将每传输一位数据的时钟脉冲个数称为波特率因子,我们将每传输一位数据的时钟脉冲个数称为波特率因子,图图5-34的波特率因子的波特率因子=16。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系
10、列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用
11、工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计方式方式1的发送的发送在在TI为为0情况下(表示串行口发送控制电路处于空情况下(表示串行口发送控制电路处于空闲状态),闲状态),任何写缓冲器任何写缓冲器SBUF指令指令(如(如MOVSBUF,A)均会触发串行发送过程:均会触发串行发送过程:51串行口自动在串行口自动在8个数据位的个数据位的前、后分别插入一个起始位和一个停止位,构成前、后分别插入一个起始位和一个停止位,构成10位信位信息帧,按设定的波特率依次输出起始位、息帧,按设定的波特率依次输出起始位、8个数据位(顺
12、个数据位(顺序为序为b0b7)和停止位。当和停止位。当8位数据发送结束后(即开位数据发送结束后(即开始发送停止位)时,串行口自动将发送中断标志始发送停止位)时,串行口自动将发送中断标志TI置置1。TI标志可用来查询发送过程是否完成。在中断处于开放标志可用来查询发送过程是否完成。在中断处于开放状态下,状态下,TI有效时,将导致串行中断。有效时,将导致串行中断。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/
13、OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计方式方式1的接收过程的接收过程在接收中断标志在接收中断标志RI为为0(串行接收缓冲寄存器(串行接收缓冲寄存器SBUF处于空闲)情况下,当处于空闲)情况下,当REN位为位为1时,串行口处于接收状时,串行口处于接收状态。此时,串行口不断检测态。此时,串行口不断检测RXD引脚的电平状态(检测引脚的电平状态(检测频率是移位脉冲的波特率因子倍),当发现频率是移位脉冲的波特率因子倍),当发现RXD引脚由引脚由高电平变为低电平后,表明
14、发送端开始发送起始位,便自高电平变为低电平后,表明发送端开始发送起始位,便自动启动接收过程。按设定波特率顺序读出数据位和停止位。动启动接收过程。按设定波特率顺序读出数据位和停止位。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计当接
15、收完一帧信息(即接收到停止位)后,如果当接收完一帧信息(即接收到停止位)后,如果RI位为位为0,便将接收到的内容装入串行数据输入缓冲寄存器,便将接收到的内容装入串行数据输入缓冲寄存器SBUF中,并将串行接收中断标志中,并将串行接收中断标志RI置置1。因此。因此RI可作可作为接收过程是否已完成查询标志用。在串口中断及总中断为接收过程是否已完成查询标志用。在串口中断及总中断处于开放状态下,处于开放状态下,RI有效时将触发串行中断。有效时将触发串行中断。值得注意是值得注意是CPU响应串行中断后,不会自动清除响应串行中断后,不会自动清除RI或或TI标志位,需要用指令如标志位,需要用指令如“CLR”等清
16、除等清除RI或或TI标志。标志。以便继续进行串口的收以便继续进行串口的收/发工作。发工作。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计方式方式2和方式和方式3的帧数据格式与方式的帧数据格式与方式1的区别的区别串行口方式串行口方式
17、2与方式与方式3都是都是9位异步串行通信口,唯位异步串行通信口,唯一区别是方式一区别是方式2的波特率固定为时钟频率的的波特率固定为时钟频率的32或或64分频,分频,不可变。不可变。由于他的波特率与通用串行通信设备对不上,因由于他的波特率与通用串行通信设备对不上,因此只用于此只用于51机之间的通信,方式机之间的通信,方式2的波特率是所有方式中的波特率是所有方式中最高的,这是他的优点。最高的,这是他的优点。方式方式3与方式与方式1在波特率方面没有区别。在波特率方面没有区别。区别在于帧区别在于帧格式上:方式格式上:方式2、方式、方式3是是9位数据格式。一帧信息为位数据格式。一帧信息为11位,由一位起
18、始位、位,由一位起始位、9位串行数据、一位停止位。位串行数据、一位停止位。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计发送方在方式发送方在方式2、方式、方式3时,时,9位数据的构成与写入位数据的构成与写入顺序为:必须先将第顺序为
19、:必须先将第9位(用位(用b8)表示,写入表示,写入SCON的的TB8位,他通常用于表示同帧中的字节数据(位,他通常用于表示同帧中的字节数据(b0b7)的性质如:数据或命令等辨识信息。在双机通信的性质如:数据或命令等辨识信息。在双机通信(多机通(多机通信不适用)信不适用)中,第中,第9位数据也可作为帧数据的奇偶校验信位数据也可作为帧数据的奇偶校验信息;第息;第2步,将步,将8位数据写入位数据写入SBUF,注意:一但执行写注意:一但执行写SBUF命令,发送过程便被启动,除非命令,发送过程便被启动,除非TI为为“1”。这就。这就是为什么先写第是为什么先写第9位数据的原因。位数据的原因。由于方式由于
20、方式3波特率可变,波特率可变,因此,串行口方式因此,串行口方式3比方式比方式2应用范围更广。应用范围更广。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计方式方式2、方式、方式3中,接收的信息的第中,接收的信息的第9位在位在SCON
21、寄寄存器的存器的RB8位中。位中。8位数据仍在位数据仍在SBUF中。中。方式方式2、方式、方式3是多机通信方式,在应用时要留意多是多机通信方式,在应用时要留意多机通信控制位机通信控制位SM2的含义。的含义。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下
22、的单片机原理及系统设计5.8.5双机通信及编程举例双机通信及编程举例1.最简单的双机通信例子最简单的双机通信例子双机通信也称为点对点通信。是通信中最基本的形双机通信也称为点对点通信。是通信中最基本的形式。顾名思义,双机通信就是两台机的信息交换过程。本式。顾名思义,双机通信就是两台机的信息交换过程。本节我们只讨论单片机之间的双机通信问题,至于单片机与节我们只讨论单片机之间的双机通信问题,至于单片机与PC机之间的通信问题,将在本章的后续部分讨论。机之间的通信问题,将在本章的后续部分讨论。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机
23、内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计若两片若两片51机相距很近,可以不需任何调制与电平转机相距很近,可以不需任何调制与电平转换而直接互联,其通信电路如图换而直接互联,其通信电路如图5-35所示。我们可将这所示。我们可将这种联接方式与打电话(双方耳朵与听筒的交叉)进行对比,种联接方式与打电话(双方耳朵与听筒的交叉)进行对比,更容易理
24、解。就象打电话双方必须用双方都能懂的语言交更容易理解。就象打电话双方必须用双方都能懂的语言交流一样。注意:图中的地线是用于统一双方的流一样。注意:图中的地线是用于统一双方的“0”参考参考电位的。电位的。方式方式1、2、3都能进行双机通信,但要注意:在点都能进行双机通信,但要注意:在点对点通信时,为避免复杂操作,双方都要将对点通信时,为避免复杂操作,双方都要将SM2置置“0”。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统
25、及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理
26、及系统设计【例【例5-16】两个两个8031系统进行最高速率通信。系统进行最高速率通信。要求使用串口方式要求使用串口方式2,8031A作为发送方,不使用串口作为发送方,不使用串口中断;中断;B机接收,使用串口中断。设两机的机接收,使用串口中断。设两机的focs相同,发相同,发送方只将一个字节数据,如送方只将一个字节数据,如0AAH发向发向B机便结束。机便结束。分析:分析:本例是最简单、最基本的一个通信程序了。本例是最简单、最基本的一个通信程序了。编写通信程序要全盘考虑双方的硬件设置(主要是工作方编写通信程序要全盘考虑双方的硬件设置(主要是工作方式、式、focs等),以实现波特率匹配;还要制定通
27、信协议等),以实现波特率匹配;还要制定通信协议(发送信息的识别方法、数据有含义的解释方法、通信数(发送信息的识别方法、数据有含义的解释方法、通信数据的个数、一次通信过程的结束条件、要不要校验、用什据的个数、一次通信过程的结束条件、要不要校验、用什么校验方式等)。么校验方式等)。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工
28、程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计本例中硬件条件:方式本例中硬件条件:方式2、focs相等;协议简单:相等;协议简单:收收/发一个数据,不要求校验和解释。发一个数据,不要求校验和解释。解解根据题目要求,发送方参考程序如下:根据题目要求,发送方参考程序如下:ORG0000HAJMPSTARTORG0040HMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/
29、OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计START: MOVSP,#5FHMOVSCON,#90H;方式方式2,允许接收,允许接收SM2=0MOVPCON,#80H;波特率加倍,最波特率加倍,最高速率高速率SETPSW.4CLRPSW.3;工作区用工作区用2区区MOVSBUF,#0AAHWAIT2: JBCTI,STOPSJMPWAIT2STOP:SJMPSTOPENDMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系
30、列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计接收方参考程序如下:接收方参考程序如下:ORG0000HAJMPSTARTORG0023HLJMPSINT;串行中断入口串行中断入口ORG0040HSTART: MOVSCON,#90H;方式方式2,允许接收,允许接收SM2=0MOVPCON,#80H ;波特率加倍波特
31、率加倍MOVIE,#90H;串口及总中断开放串口及总中断开放CLRF0MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计SETBPSW.4CLRPSW.3;工作区用工作区用2区区WAIT1: JBCF0,TRDATA;F0由中断服务程
32、序置位由中断服务程序置位SJMPWAIT1;置位或清零置位或清零TRDATA:CLRES;关串口中断,此为甲机的程序关串口中断,此为甲机的程序MOVA,SBUFSJMP$SINT:CLRRISETBF0;置成功接收标志置成功接收标志MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片
33、机原理及系统设计工程背景下的单片机原理及系统设计RETI;中断返回中断返回END训练题训练题5-28教材中教材中【例【例5-15】中若中若focs=6MHz,通通信的波特率为多少?又串口方式信的波特率为多少?又串口方式2对通信双方的对通信双方的focs有何有何要求?要求?MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景
34、下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计2.串行通信数据校验方法之一:奇偶校验串行通信数据校验方法之一:奇偶校验受串行通信的距离、通信速率、信息量、通信线路、受串行通信的距离、通信速率、信息量、通信线路、环境条件等因素的影响,可能会出现数据传输错误问题。环境条件等因素的影响,可能会出现数据传输错误问题。为保证通信的正确性,计算机中采用对通信数据的为保证通信的正确性,计算机中采用对通信数据的校对方法,确认数据传输的正确性。称为校验。实际上,校对方法,确认数据传输的正确性。称为校验。实际上,校验是手段,纠错是目的。校验是手段,纠错是目的。我们将这种利
35、用我们将这种利用数据的奇偶性查错的方法称为奇偶数据的奇偶性查错的方法称为奇偶校验法校验法。这是本书讨论的第一种校验法。这是本书讨论的第一种校验法。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计奇偶校验的实现方法如下:奇偶校验的实现
36、方法如下:发送方将所发送的每一帧数据的奇偶状态位,作为发送方将所发送的每一帧数据的奇偶状态位,作为发送数据的第九位数据写入发送数据的第九位数据写入SCON的的TB8位,将字节数位,将字节数据写入发送缓冲器据写入发送缓冲器SBUF中后,帧数据开始发出。中后,帧数据开始发出。接收方接收的每一帧数据,第九位数据存在接收方接收的每一帧数据,第九位数据存在SCON的的RB8位中,字节数据在缓冲器位中,字节数据在缓冲器SBUF中,接收方将中,接收方将SBUF中数据的奇偶性与中数据的奇偶性与RB8进行比较,两者相等则确定进行比较,两者相等则确定此帧数据通信正确无误,否则,这帧数据必然有错误。此帧数据通信正确
37、无误,否则,这帧数据必然有错误。对于校验的结果,通信双方根据通信协议进行相应对于校验的结果,通信双方根据通信协议进行相应的处理,这里没有通用方法。的处理,这里没有通用方法。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计使用奇偶校验
38、应注意的问题:使用奇偶校验应注意的问题:(1)51机只有在串口方式机只有在串口方式2、3时(时(9位数据)且位数据)且SM2位必须为位必须为“0”才有条件进行奇偶校验;才有条件进行奇偶校验;(2)为测得数据的奇偶状态,用为测得数据的奇偶状态,用MOVA,SUBF指令最方便;指令最方便;(3)并不是所有的通信都要使用校验,更不是都并不是所有的通信都要使用校验,更不是都要用奇偶校验,校验与否通信双方要在通信协议中确定。要用奇偶校验,校验与否通信双方要在通信协议中确定。反映在习题中,要认真审题,要求校验,才能写校验的程反映在习题中,要认真审题,要求校验,才能写校验的程序部分,避免犯画蛇添足的错误。序
39、部分,避免犯画蛇添足的错误。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计【例【例5-17】两个两个8031系统进行双机通信。要求系统进行双机通信。要求使用串口方式使用串口方式2、奇偶校验、使用工作寄存器组、奇偶校验、使用工作寄存
40、器组2。8031A作为发送方,连续发送作为发送方,连续发送n个字节(片内个字节(片内RAM足够足够使用),使用),B机接收。设两机的机接收。设两机的focs相同。只要校验的结果相同。只要校验的结果分析:分析:本例是奇偶校验应用问题。编写双机通信程本例是奇偶校验应用问题。编写双机通信程序,延用序,延用【例【例5-15】的方法,再将奇偶校验的内容加进的方法,再将奇偶校验的内容加进去。发去。发/收程序的过程是往复式的,他们结构基本相同。收程序的过程是往复式的,他们结构基本相同。因此,先写发送程序,再修改为接收程序就容易多了。因此,先写发送程序,再修改为接收程序就容易多了。本例的特点是奇偶校验和多帧数
41、据的收本例的特点是奇偶校验和多帧数据的收/发。另外还发。另外还采用发送中断编程,注意体会。采用发送中断编程,注意体会。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计发送方参考程序如下:发送方参考程序如下:ORG0000HAJMPS
42、TARTORG0023HLJMPSINT;串行中断入口串行中断入口ORG0040HSTART: MOVSP,#5FHMOVR7,#nCLR01H;01H=0通信成功,通信成功,=1通信错误通信错误CLRF0;F0=1启动发送启动发送MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片
43、机原理及系统设计工程背景下的单片机原理及系统设计MOVSCON,#80H;方式方式2,不允许接,不允许接收收SM2=0MOVPCON,#80H ;波特率波特率加速加速MOVIE,#90H;串口及总中断串口及总中断SETBPSW.4CLRPSW.3;工作区用工作区用2区区WAIT1: JBCF0,TRDATA;F0由过程设置由过程设置SJMPWAIT1;置位或清零置位或清零TRDATA:MOVA,R0MOVC,P;取奇偶取奇偶位位MOVTB8,C;装入装入TB8作为作为第第9位数据位数据MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片
44、机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MOVSBUF,AINCR0;CPU可进行其他工作可进行其他工作WAIT2: JBC01H,AGAINSJMPWAIT2AGAIN: DJNZR7,TRDATA;R7为发送字节数为发送字节数MOVR7,#n;重复初重复初值值LJPMWAIT1SINT:CLRTISETB01HMCS-51MCS
45、-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计RETIEND接收方参考程序如下:接收方参考程序如下:ORG0000HAJMPSTARTORG0023HLJMPSINT;串行中断入口串行中断入口ORG0040HSTART: MOVSP,#5FHMCS
46、-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MOVR6,#nCLR01H;01H=0成功,成功,=1错误错误CLRF0;F0=1一次接收完成一次接收完成MOVSCON,#90H;允许接收允许接收SM2=0MOVPCON,#80H ;波
47、特率加速波特率加速MOVIE,#90H;串口及总中断串口及总中断SETBPSW.4CLRPSW.3;工作区用工作区用2区区;CPU可进行其他工作可进行其他工作MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计WAIT1: JBCF0,
48、USEDATA;F0数据成功接收数据成功接收SJMPWAIT1;置位或清零置位或清零USEDATA:JBC01H,DELERR;转通信出错处理转通信出错处理;通信正常处理;通信正常处理SJMPOTHERDELERR:;通信出错处理程序部分通信出错处理程序部分OTHER: ;CPU进行的其他工作进行的其他工作MOVR7,#nSJMPWAIT1MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的
49、应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计SINT:CLRRI;接收中断服务程序接收中断服务程序MOVA,SBUFMOVR1,AINCR0DECR6JNBP,NOP;P为为0转移转移JNBRB8,ERR;P为为1,RB8为为0转错误处理转错误处理SJMPCON1NOP:JNBRB8,CON1ERR:ESTB01H;置出错标志置出错标志MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系
50、统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计CON1:CJNER6,#00H,CONJ;没收完继续没收完继续SETBF0;接收完成标志接收完成标志CONJ:RETI;中断返回中断返回ENDMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器
51、、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计小结:小结:整个通信过程收、发数据的时刻是随机的,整个通信过程收、发数据的时刻是随机的,但多数情况下,但多数情况下,发送数据的时机都是在发送数据的时机都是在CPU的掌控之下的掌控之下的,的,即什么情况下该发什么数据都在程序中安排好的。在即什么情况下该发什么数据都在程序中安排好的。在这种情况下,常用查询方式编写数据发送程序部分,而不这种情况下,常用查询方式编写数据发送程序
52、部分,而不用中断方式编程,效果更好。至于数据接收的时刻,则完用中断方式编程,效果更好。至于数据接收的时刻,则完全是随机的,用串口中断来实时响应全是随机的,用串口中断来实时响应“数据到数据到”事件。由事件。由于只在数据接收时开放了串口中断,因此中断服务程序只于只在数据接收时开放了串口中断,因此中断服务程序只需对接收数据进行处理。需对接收数据进行处理。串口接收中断的使用方法也应视具体通信任务而定串口接收中断的使用方法也应视具体通信任务而定MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数
53、器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计训练题训练题5-29若教材中若教材中【例【例5-17】中,中,n=256,例题的例题的计数器能装得下吗?若认为装得下,计数器能装得下吗?若认为装得下,n的初取值为何?若的初取值为何?若认为装不下,修改程序结构。注意要用片外认为装不下,修改程序结构。注意要用片外RAM!MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内
54、部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计3.定时器定时器T1溢出率的计算溢出率的计算串口方式串口方式1、3波特率可变,且与波特率可变,且与T1定时器定时器T1溢出溢出率有关。串口方式率有关。串口方式1、3波特率的计算方法由式(波特率的计算方法由式(5-5)给出:给出:(1)T1工作于方式工作于方式0很
55、少用,从略,可自学。很少用,从略,可自学。(2)T1工作于方式工作于方式1方式方式1为为16位定时器,设位定时器,设T1的初值的初值Z(16位)则位)则T1的溢出率(的溢出率(m)为:为:(5-6)MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机
56、原理及系统设计式中:式中:NR为执行为执行T1溢出到恢复初值的中断溢出到恢复初值的中断服务的周期数:服务的周期数:NR=N1+N2其中其中N1为为CPU从响应中断到转入中断服务程序所从响应中断到转入中断服务程序所需的周期数,一般需的周期数,一般N1=5;N2为执行为定时器重装初值为执行为定时器重装初值的周期数,取的周期数,取N2=4。所以:所以:NR=9。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/O
57、I/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计(3)T1工作于方式工作于方式2方式方式2为自动恢复初值的为自动恢复初值的8位定时器,设位定时器,设T1的初值的初值Z(8位),则位),则T1的溢出率(的溢出率(m)为:为:(5-7)因为因为T1方式方式2不需要中断处理,所以不需要中断处理,所以NR=0。通常,用于波特率发生器时,通常,用于波特率发生器时,T1选用方式选用方式2较好。较好。最重要的理由是他的自动重装特性,省去中断服务程序,最重要的理由是他的自动重装特性,省
58、去中断服务程序,节省了节省了CPU的开销。只有对于非常低的波特率,定时器的开销。只有对于非常低的波特率,定时器方式方式2不能用时,才选用定时器不能用时,才选用定时器T1方式方式1。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计【例
59、【例5-18】波特率计算方法与误差分析。设串行口波特率计算方法与误差分析。设串行口工作于方式工作于方式1或方式或方式3,波特率定为,波特率定为2400,T1工作于方工作于方式式2系统系统fosc=6MHz。求求T1的初值和波特率的误差的初值和波特率的误差解:综合(解:综合(5-5)、()、(5-6)式,得)式,得(5-8)本例中:整理(本例中:整理(5-8)式得)式得(5-9)MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系
60、统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计取取SMOD=0得得Z=249.49,由于由于Z只能取整数,只能取整数,若取取若取取Z=250时,波特率为时,波特率为波特率相对误差为波特率相对误差为同理若取同理若取Z=249则:波特率为则:波特率为2232,波特率相对,波特率相对误差为误差过大,不易使用。实践表明:当两个串行通信误差为误差过大,不易使用。实践表明:当两个串行通信设备之间的波特率误差超过设备之间的波特率误差超过2.5%时,串行通信将无
61、法进时,串行通信将无法进行,且通信速率越高,发送、接收波特率的允许误差范围行,且通信速率越高,发送、接收波特率的允许误差范围就越小。就越小。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计为此,取为此,取SMOD=1,计算得计算得Z
62、=242.98,取取Z=243=F3H,波特率波特率=2403.8,误差为,误差为0.16%,可满足精度要求。但误差不能完全消除。可满足精度要求。但误差不能完全消除。彻底消除波特率误差的办法彻底消除波特率误差的办法,调整单片机系统的,调整单片机系统的fOSC,当其为当其为1.8432整数或半整数频率均可以消除波特整数或半整数频率均可以消除波特率非整数误差,当率非整数误差,当Z出现小数时,可调整出现小数时,可调整SMOD使之为整使之为整数(数(1.8432的有理数倍频率也可以),的有理数倍频率也可以),11.0592MHz则为最常用的一种常用的频率,因为则为最常用的一种常用的频率,因为11.05
63、92是是1.8432的的6倍,且与标准倍,且与标准51最高频率(最高频率(12MHz)最接最接近的一个。这样标准设备及近的一个。这样标准设备及PC常用的波特率在常用的波特率在51机上都机上都可无误差的产生出来。可无误差的产生出来。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机
64、原理及系统设计工程背景下的单片机原理及系统设计为使用者提供方便。因此要学会波特率为使用者提供方便。因此要学会波特率-定时定时器初值查表的方法。常用波特率列于表器初值查表的方法。常用波特率列于表5-6中。中。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下
65、的单片机原理及系统设计MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计方式1或方式3MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系
66、统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计在学习串行通信时常见错误:在学习串行通信时常见错误:混淆串行口工作方式混淆串行口工作方式和定时器工作方式。和定时器工作方式。【例【例5-19】两台两台51以串口方式以串口方式1进行通信,约定进行通信,约定波特率为波特率为9600。A机的机的focs为为11.0592MHz,B机的机的focs为为7.3728MHz,编写编写A机为发
67、送方,机为发送方,B机为接收方,机为接收方,只进行一个字节数据通信的程序。只进行一个字节数据通信的程序。解:本例的目的是学习在解:本例的目的是学习在51机的开发系统下实现通机的开发系统下实现通信的编程与操作过程。信的编程与操作过程。第一步:第一步:设两机相距不远,不需要任何形式的调制设两机相距不远,不需要任何形式的调制与电平转换,直接用导线作为通信线路,如图与电平转换,直接用导线作为通信线路,如图5-32所示所示MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计
68、数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计第二步:第二步:确定定时器工作方式,计算定时器初值。确定定时器工作方式,计算定时器初值。作为波特率发生器用,作为波特率发生器用,T1最好用的就是方式最好用的就是方式2。下面则是。下面则是初值的计算问题:初值的计算问题:A机的初值机的初值Z可直接从表可直接从表5-6中查出为中查出为FDH(SMOD=0););A机的初值机的初值Z计算过程如下:将式(计算过程如下:将式(
69、5-9),中的,中的2400改为改为9600并取并取SMOD=0得得MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计易知:取易知:取SMOD=1时,时,Z=2564=252=FCH;在两个可取的初值中,应尽量取在两个可取的初值中,应
70、尽量取SMOD=0的,因的,因为他的波特率因子大。为他的波特率因子大。第三步:编写发送方参考程序如下:第三步:编写发送方参考程序如下:ORG0000HAJMPSTARTORG0040HSTART: MOVSP,#5FHMOVSMOD,#20H;T1方式方式2、定时定时MOVTH1,#0FDHMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原
71、理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MOVTL1,#0FDHMOVSCON,#40H;方式方式1,禁止接收,禁止接收SM2=0MOVPCON,#00H ;波特率不加倍波特率不加倍SETBTR1;开启波特率发生器开启波特率发生器MOVSBUF,#0AAHWAIT:JBCTI,STOPSJMPWAITSTOP:SJMPSTOPENDMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统
72、及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计第四步:第四步:COPY发送程序,稍加修改得接收方参考发送程序,稍加修改得接收方参考程序如下:程序如下:ORG0000HAJMPSTARTORG0040HSTART: MOVSP,#5FHMOVSMOD,#20H;T1方式方式2、定时定时MOVTH1,#0FEHMOVTL1,#0FEHMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内
73、部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MOVSCON,#50H;方式方式1,允,允许接收许接收MOVPCON,#00H ;波特率波特率不加倍不加倍SETBTR1;开启波特率发生器开启波特率发生器WAIT:JBCRI,RECISJMPWAITRECI:MOVA,SBUFSJMP$ENDMCS-51MCS-51MCS-5
74、1MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计第五步:第五步:分别在分别在A、B两台开发机的两台开发机的PC机的编译器机的编译器上,对这两个源程序进行编译、连接,通过后,进入调试上,对这两个源程序进行编译、连接,通过后,进入调试界面;界面;若上述调试成功,若上述调
75、试成功,A、B方交换程序,反向收方交换程序,反向收/发,发,多数是成功的。若不然,仿真器的芯片可能有损。多数是成功的。若不然,仿真器的芯片可能有损。再此基础上,将程序复杂化,如连续收再此基础上,将程序复杂化,如连续收/发多个字节发多个字节试试,收益将会很大。试试,收益将会很大。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工
76、程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计4.串行通信数据校验方法之二:累加和校验串行通信数据校验方法之二:累加和校验与奇偶不同,累加和校验以组为单位进行,效率高与奇偶不同,累加和校验以组为单位进行,效率高累加和校验的原理和工作过程如下累加和校验的原理和工作过程如下:数据传送时,发送方在数据发送前先逐一对每个数数据传送时,发送方在数据发送前先逐一对每个数据进行累加求和。累加和可以是任意位,但一般采用据进行累加求和。累加和可以是任意位,但一般采用8位,位,存放累加和的寄存器称为累加和寄存器。注意,在累加过存放累加和的寄存器称为累加和寄存器。注意
77、,在累加过程中溢出的部分自动丢弃,即累加和只保留和的低程中溢出的部分自动丢弃,即累加和只保留和的低8位。位。在每组数据发送完后,发送方要接着将这组数据的累加发在每组数据发送完后,发送方要接着将这组数据的累加发出去,以为接收方提供的校验依据。出去,以为接收方提供的校验依据。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景
78、下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计接收方每次接收一个数据,进行一次累加,形成累加和。当接收方每次接收一个数据,进行一次累加,形成累加和。当一组数据接收完后,还要再接收一个由发送方发来的累加和数据帧。一组数据接收完后,还要再接收一个由发送方发来的累加和数据帧。将这个累加和数据与本机产生的累加和进行比较。若两者相等则可将这个累加和数据与本机产生的累加和进行比较。若两者相等则可认为这组数据收、发正确,否则,收认为这组数据收、发正确,否则,收/发过程中至少存在一次错误。发过程中至少存在一次错误。至于每组数据多少,根据双方制定的通信协议确定。至于每组
79、数据多少,根据双方制定的通信协议确定。对于校验的结果,通信双方根据通信协议进行相应的处理。对于校验的结果,通信双方根据通信协议进行相应的处理。这里没有通用方法。这里没有通用方法。使用累加和校验应注意的问题:使用累加和校验应注意的问题:累加和校验不需要累加和校验不需要9位数据格式支持,即位数据格式支持,即51机串口方式机串口方式1、2、3都可进行累加和校验;都可进行累加和校验;并不是所有的实际通信都要使用校验,是否要进行数据校并不是所有的实际通信都要使用校验,是否要进行数据校验。要根据通信双方的通信协议而定。验。要根据通信双方的通信协议而定。MCS-51MCS-51MCS-51MCS-51系列单
80、片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计【例【例5-20】设通信双方设通信双方51机的机的fosc均为均为11.0592MHz,双方约定:波特率双方约定:波特率9600,8位数据,采用累加和校验。编写程序位数据,采用累加和校验。编写程序实现如下工作:实现如下工作:A机发送:将外
81、部数据存储器机发送:将外部数据存储器4000H42FF单元的内容发单元的内容发送至送至B机。机。通信协议:通信协议:A机在发送之前先将数据块长度发给机在发送之前先将数据块长度发给B机,若机,若B机机接收正确,应答接收正确,应答00H,否则,回答其他任意字节数据作应答后,重否则,回答其他任意字节数据作应答后,重新接收。以后每发完新接收。以后每发完256字节(不足字节(不足256时当计数器低位字节为时当计数器低位字节为0时),向时),向B机发送一个累加校验和。当数据全部发送完后,若机发送一个累加校验和。当数据全部发送完后,若B机机接收正确,应答接收正确,应答00H,否则,应答其他数据,准备重新接收
82、。主机否则,应答其他数据,准备重新接收。主机收到正确应答后,则结束本次通信过程,否则重发数据直到成功。收到正确应答后,则结束本次通信过程,否则重发数据直到成功。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计发送方子程序清单:发送方
83、子程序清单:TRT: MOVTMOD,#20H ;波特率波特率设置设置MOVTL1,#0FDHMOVTH1,#0FDHSETBTR1MOVSCON,#50H;方式方式1,REN=1MOVPCON,#00H ;串口初串口初始化始化MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原
84、理及系统设计工程背景下的单片机原理及系统设计RPT: MOVDPTR,#4000HMOVR6,#NUMLOWHMOVR7,#NUMHIHMOVR5,#00H;地址及长度计数器地址及长度计数器 MOVSBUF,R6MOVA,R5ADDA,R6MOVR5,A;形成累加和送形成累加和送R5ML0:JBCTI,ML1SJMPML0MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应
85、用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计ML1:MOVSBUF,R7;发送长度发送长度高高8位位MOVA,R5ADDA,R7MOVR5,A;形成累加和形成累加和送送R5ML2:JBCTI,ML3SJMPML2ML3:MOVSBUF,R5;发累加和发累加和后清零后清零MOVR5,#00HML4:JBCTI,ML5SJMPML4MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统
86、及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计ML5:JBCRI,ML6;等等B机回答机回答SJMPML5ML6:MOVA,SBUFJZML7;正确转正确转ML7LJMPPRT;不正确重发不正确重发ML7:CJNER6,#00H,CONWOLJMPML9;计数低位为计数低位为0转转CONWO:DECR6MOVXA,DPTR;读数据写入读数据写入BUFMOVSBUF,AMCS-51MCS-51MCS-5
87、1MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计ADDA,R5;形成累加和形成累加和MOVR5,AINCDPTRML8:JBCTI,ML90;等待发完一字节等待发完一字节SJMPML8ML90:LJMPML7ML9:CJNER7,#00H,ML14 ;发完发完?否!
88、否!只发了一页转只发了一页转MOVSBUF,R5;完成,发最后一个完成,发最后一个累加和累加和MOVR5,#00HMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计ML10: JBCTI,ML11SJMPML10ML11: JBCRI
89、,ML12;等等B机回答机回答SJMPML11ML12: MOVA,SBUFJZML13;正确返回正确返回LJMPRPT;错重发错重发ML13: RETML14: DECR7MOVSBUF,R5;发校验发校验和和MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程
90、背景下的单片机原理及系统设计MOVR5,#00HML15: JBCTI,CONWO;全部字节没发完继续全部字节没发完继续SJMPML15本题目的限制条件为不能发本题目的限制条件为不能发0个数据,因此,在调个数据,因此,在调用此程序时,要判断发送数是否为用此程序时,要判断发送数是否为“0”。B机接收程序机接收程序留作习题来完成。留作习题来完成。【例【例5-20】用】用C语言编写语言编写【例【例5-19】的接收方程的接收方程序。序。 (自学自学)MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串
91、行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计训练题训练题5-33用汇编语言编写教材中用汇编语言编写教材中【例【例5-20】的接收方的接收方程序。程序。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I
92、/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计【例【例5-22】串行口工作方式串行口工作方式1及通信协议在本教材及通信协议在本教材工程实例中的应用。工程实例中的应用。通信在实际中,一定要有通信协议,哪怕是最简单通信在实际中,一定要有通信协议,哪怕是最简单的。本工程只涉及的。本工程只涉及应用协议部分应用协议部分。本工程系统中键盘显示模块(图本工程系统中键盘显示模块(图3-13)接收键盘命)接收键盘命令,通过串口发送到检测控制模块。我们将系统任务简化令,通过串口
93、发送到检测控制模块。我们将系统任务简化为:检测控制模块只有上、下、左、右及工作参数和工作为:检测控制模块只有上、下、左、右及工作参数和工作6个键。前个键。前4个命令的用于加工机械与工件的定位(微调)个命令的用于加工机械与工件的定位(微调),工作参数则是工件的加工信息(多字节,其他命令为单,工作参数则是工件的加工信息(多字节,其他命令为单字命令),在收到工作命令后,便进行一个工件的加工,字命令),在收到工作命令后,便进行一个工件的加工,如此反复。如此反复。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、
94、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计通信协议要对每个命令进行编码通信协议要对每个命令进行编码,键盘显示模块每,键盘显示模块每发一个命令要求检测控制模块校验并应答,如应答不正确,发一个命令要求检测控制模块校验并应答,如应答不正确,则键盘显示模块将重发此命令。对命令的编码越自然越好。则键盘显示模块将重发此命令。对命令的编码越自然越好。由于每个键都有对应的键值,所以
95、上、下、左、右由于每个键都有对应的键值,所以上、下、左、右4个命个命令就用其键值编码,参数和工作用键值以外的任意数表示。令就用其键值编码,参数和工作用键值以外的任意数表示。本系统采用灵活的校验方法,其实是累加和的变通本系统采用灵活的校验方法,其实是累加和的变通编程通信程序时,先编写键盘显示模块这部分的,编程通信程序时,先编写键盘显示模块这部分的,键盘响应部分的程序与键盘响应部分的程序与【例【例5-13】一样,一样,在本例中就只在本例中就只写通信部分。其主体结构如下:写通信部分。其主体结构如下:MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时
96、系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计voidsi_send_data(uchars_data)SBUF=s_data;while(TI!=1);TI=0;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中
97、断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计voidrepeak(void)/*限时等待串口回答函数限时等待串口回答函数*/delay_times=6000;while(RI=0)delay_times-=1;DelayX1ms(1);if(delay_times=0)break;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内
98、部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计Main()/*主程序部分,同接收程序主程序部分,同接收程序*/TMOD=0x21;/*定时器定时器0方式方式1,定时器定时器1方式方式2*/TL1=0xfd;/*置初值置初值*/TH1=0xfd;PCON=0x80;/*PCON=0x80,波特率波特率19.2K*/SCON=0x50;/*串行口
99、为方式串行口为方式1*/TR1=1;IT0=1;IT1=1;IE=0x07;/*开中断,允许开中断,允许INT0,INT1,T0中断中断*/*主程序其他部分主程序其他部分*/MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计STEP7
100、7:while(INTM_MARK=0);/*见例见例5-13*/if(INTM_MARK=0x01)/*RIGHT键键*/si_send_data(0x01);if(INTM_MARK=0x07)/*LEFT键键*/si_send_data(0x07);if(INTM_MARK=0x04)/*UP键键*/si_send_data(0x04);if(INTM_MARK=0x09)/*DOWN键键*/si_send_data(0x79);if(INTM_MARK=0x02)/*R键,确定键,确定*/gotoR_key;INTM_MARK=0;goto STEP77;MCS-51MCS-51MCS
101、-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计R_key:si_send_data(0x77);/*77H为工作参数编码为工作参数编码*/Ep_Use_Data19=0;for(i=7;i13;i+)/*发送发送6个数个数*/SBUF=Ep_Use_Datai
102、;Ep_Use_Data19+=Ep_Use_Datai;/*形成累加和形成累加和*/while(TI!=1);TI=0;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计repeak();/*等待时间为等待时间为6秒秒*/if(RI
103、=1)RI=0;si_re_data=SBUF;if(si_re_data!=Ep_Use_Data19)/*累累加和不对,重发加和不对,重发*/gotoR_key;elsegotoSTEP9;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理
104、及系统设计STEP9:si_send_data(0xaa);/*AAH为工作编码为工作编码*/repeak();/*等待时间为等待时间为6秒秒*/if(RI=1)RI=0;si_re_data=SBUF;if(si_re_data!=Ep_Use_Data19)/*累累加和不对,重发加和不对,重发*/gotoWAIT;elsegotoSTEP9;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/
105、O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计WAIT:while(RI!=1);RI=0;si_re_data=SBUF;if(si_re_data!=0x92)/*0x92为加工完成码为加工完成码*/gotoDETR;/*转应答不对处理转应答不对处理*/gotoR_key;/*重复加工重复加工*/*主程序其他部分主程序其他部分*/MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断
106、系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计编写检测控制模块程序时,第一步先做好程序框架编写检测控制模块程序时,第一步先做好程序框架如下:如下:#defineON0xaavoids_int(void)interrupt4/*单片机串口中断原型单片机串口中断原型*/status4=1;RI=0;/*清中断标志清中断标志*/rece_count=SBUF;MCS-51MCS-
107、51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计while(1)ES=1;EA=1;if(status7=1)/*status7为系统重新工作命令标志为系统重新工作命令标志*/break;while(status4=1)status4=0;switch
108、(rece_count)MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计case0x01:/*RIGHT微调一个单位微调一个单位*/;break;case0x07:/*LEFT微调一个单位微调一个单位*/;break;case0x0
109、4:/*UP键键*/;break;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计case0x09:/*DOWN键键*/;break;case0x02:/*R键后才可进行加工键后才可进行加工*/;break;case0x77:/*加
110、工参数键加工参数键*/;break;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计case0x77:/*加工指令键加工指令键*/for(i=0;i6;i+) /*接收加工参数接收加工参数*/while(RI=0);RI=0;OpD
111、atai=SBUF;OpData7+=OpDatai;si_send_data(OpData7);/*发送累加和发送累加和*/;break;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计caseON:/*0xaa加工命令加工命令*
112、/*执行加工命令并完成执行加工命令并完成*/ES=0;SBUF=0x92;/*通报加工完成通报加工完成*/while(TI!=1);TI=0;ES=1;break;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计5.8.6多机通信原
113、理及系统设计多机通信原理及系统设计1.51机多机通信的物理基础机多机通信的物理基础串行口方式串行口方式2、3支持多机通信。对其控制集中在支持多机通信。对其控制集中在SCON的的SM2位上。位上。SM2为多机通信控制位。为多机通信控制位。SM2=1,则接收到的第则接收到的第9位数据(位数据(RB8)为为0时,不启动时,不启动接收中断标志接收中断标志RI(即保持即保持RI=0),),并且将接收到的前并且将接收到的前8位数据丢位数据丢弃。弃。RB8为为1时,才将接收到的前时,才将接收到的前8位数据送入位数据送入SBUF,并置位并置位RI当当SM2=0时,则不论第时,则不论第9位数据为位数据为0或或1
114、,只要串行口收到,只要串行口收到有效数据帧,置位有效数据帧,置位RI,并将前并将前8位数据装入位数据装入SBUF中。中。其中其中RB8是寄存器是寄存器SCON的一个控制位,当串行口工作在方的一个控制位,当串行口工作在方式式2和方式和方式3时,为接收到的第时,为接收到的第9位数据,他是发送方第位数据,他是发送方第9位数据位数据MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的
115、应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计(TB8)的对应数据位。注意:作为奇偶校验位用,只是的对应数据位。注意:作为奇偶校验位用,只是RB8的一个兼职工作。的一个兼职工作。2.多机通信的分类多机通信的分类多机通信分有主多机通信和多机通信两种系统。多机通信分有主多机通信和多机通信两种系统。有主多机通信系统,也称为主有主多机通信系统,也称为主-从多机通信系统。从多机通信系统。与主与主-从多机通信系统相比较,无主多机通信系统中,各从多机通信系统相比较,无主多机通信系统中,各计算机所处的地位相同,没有
116、主计算机所处的地位相同,没有主-从之分。系统中每台计从之分。系统中每台计算机随时都可以启动一次通信过程。算机随时都可以启动一次通信过程。主主-从式多机通信系统构成如图从式多机通信系统构成如图5-36所示。所示。本书只讨论主本书只讨论主-从通信技术。从通信技术。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原
117、理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计图图5-36MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计3.51机构成的主机构成的主-从系统通信的步骤:从系统通信的步骤:首先置所有首先置所有从机从机S
118、M2位为位为1,即从机处于监听状态,即从机处于监听状态主机先发出一帧广播地址信息主机先发出一帧广播地址信息8位地址位地址,第,第9位位为地址为地址/数据信息标志位(主机通过置数据信息标志位(主机通过置TB8位为位为“1”或为或为“0”来实现),该位为来实现),该位为“1”表示为地址(命令)帧信息;表示为地址(命令)帧信息;从机收地址帧后,从机收地址帧后,与本机的从地址比较与本机的从地址比较,如地址相符,如地址相符,则将,则将SM2位清位清0,同时将自己的从地址发回主机,同时将自己的从地址发回主机(可(可选),选),以表示应答(注意,从机发送内容一定为数据,即以表示应答(注意,从机发送内容一定为
119、数据,即从机的从机的TB8位应恒为位应恒为“0”),并准备接收主机随后发来),并准备接收主机随后发来的的MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计所有信息;其他与地址不符的从机保持所有信息;其他与地址不符的从机保持SM2=1不
120、变,退不变,退出通信,他们将不会收到主机随后对指定从发出的数据,出通信,他们将不会收到主机随后对指定从发出的数据,直到收到主机发出新的地址帧。直到收到主机发出新的地址帧。主机收到从机的正确应答后主机收到从机的正确应答后(可选),进入本次通(可选),进入本次通信过程。这里关键是主机要将信过程。这里关键是主机要将TB8置为零(数据信息标置为零(数据信息标志),这样只有被选中的从机可接收到主机的信息,而组志),这样只有被选中的从机可接收到主机的信息,而组内其他从机不受干扰,命令或数据全部发送完成后,即可内其他从机不受干扰,命令或数据全部发送完成后,即可结束本次通信过程。结束本次通信过程。MCS-51
121、MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计指定的从机接收命令或数据完成后,即可结束本指定的从机接收命令或数据完成后,即可结束本次通信过程。次通信过程。注意:注意:结束时,一定要置结束时,一定要置SM2为为1,进入监,进入监听状态。否则,该
122、从机从此再不能接收到主机的呼叫,而听状态。否则,该从机从此再不能接收到主机的呼叫,而在主机给其他从机发送数据信息时,将给出错误应答,从在主机给其他从机发送数据信息时,将给出错误应答,从而造成整个通信系统的崩溃。而造成整个通信系统的崩溃。重复步骤重复步骤15,进行下一次通信过程。进行下一次通信过程。4.由由51机构成的主机构成的主-从系统通信协议从系统通信协议为保证通信的可靠性,可在每个通信过程中用往复为保证通信的可靠性,可在每个通信过程中用往复应答来保证。当从机不应答时,可多次广播呼叫,另一方应答来保证。当从机不应答时,可多次广播呼叫,另一方面为防止系统进入等待死循环,通信可加限时控制,一旦面
123、为防止系统进入等待死循环,通信可加限时控制,一旦通信超时,则应退出通信,返回主程序准备再次通信。通信超时,则应退出通信,返回主程序准备再次通信。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计5.8.7多机通信及编程举例多机通信及编
124、程举例【例【例5-23】主主-从方式多机通信,设系统中所有从方式多机通信,设系统中所有51机机fosc=11.0592MHz。要求:通信波特率要求:通信波特率9600。模拟通信内容:每次通信主机发一个字节的从机号模拟通信内容:每次通信主机发一个字节的从机号(0255),接着发一个字节的读或写命令。如主机发),接着发一个字节的读或写命令。如主机发写命令,主机接着发第三个数据;如主机发读命令,主机写命令,主机接着发第三个数据;如主机发读命令,主机则接收从机发回的一字节数据,并返回主程序。从机接收则接收从机发回的一字节数据,并返回主程序。从机接收到主机第一字节后,与自己的从机号比较,两者相等则从到主
125、机第一字节后,与自己的从机号比较,两者相等则从监听转为接收方式,完成本次通信后,从机回到监听方式监听转为接收方式,完成本次通信后,从机回到监听方式并返回主程序;其他从机直接返回主程序。并返回主程序;其他从机直接返回主程序。解解只有方式只有方式2、3支持多机通信。但要求波特率支持多机通信。但要求波特率9600,所以只能选用方式,所以只能选用方式?MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O
126、口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计参考主机程序:参考主机程序:ORG0000HSJMPSTARTORG0040HSTART: MOVSP,#60HMOVTMOD,#20HMOVTH1,#0FDHMOVTL1,#0FDHMOVPCON,#00HMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口
127、I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MOVSCON,#0C0H;方式方式3SETBRENSETBTR1SETBTB8;准备发准备发(地址地址)命令命令MOVSBUF,B;被呼叫的从机号存于被呼叫的从机号存于B中中WAIT1: JBCTI,CON1;等待发送完成等待发送完成SJMPWAIT1CON1:CLRTB8;发送命令发送命令MOVA,R5;命令存于命令存于R5中,中,00H为写为写01H为读为读MOVSBUF,AMCS-51MCS-51MCS
128、-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计WAIT2: JBCTI,CON2SJMPWAIT2CON2:CJNEA,#00H,READ;转读命令处理转读命令处理MOVA,R6;要发送的数据存于要发送的数据存于R6中中MOVSBUF,AWAIT3: JBCT
129、I,CON3SJMPWAIT3CON3:SJMPSTOPREAD:JBCRI,STOP1SJMPREADMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计STOP1: MOVR7,SBUF;接收从机的数据存接收从机的数据存于于R7中中
130、STOP:SJMPSTOPEND从机参考程序:从机参考程序:ORG0000HSJMPSTARTORG0023HLJMPSCOMORG0050HMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计START: MOVSP,#60HMOVR
131、0,#01H;R0为从机号,设为为从机号,设为1号号CLRF0MOVTMOD,#20HMOVTH1,#0FDHMOVTL1,#0FDHMOVPCON,#00HMOVSCON,#0E0H;方式方式3,SM2=1(地址地址)SETBRENSETBESMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工
132、程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计SETBTR1SETBEACHECK: JBCF0,STOPSJMPCHECKSTOP:SJMPCHECK;调试程序用,再通信多次调试程序用,再通信多次SCOM:CLRRICLREAMOVA,SBUFSUBBA,R0JNZCON4;不是本机,退出中断不是本机,退出中断MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用
133、口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计CLRSM2;是本机,准备接收命令是本机,准备接收命令WAIT2: JBCRI,CON2SJMPWAIT2CON2:MOVA,SBUFJNZREAD;不是写命令,转读处理不是写命令,转读处理WAIT3: JBCRI,CON3SJMPWAIT3CON3:MOVR1,SBUF;(;(R1)为从机发给主机为从机发给主机的内容的内容SJMPCON4MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机
134、内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计READ:MOVSBUF,R1WAIT5: JBCTI,CON5SJMPWAIT5CON5:SETBF0CON4:SETBEASETBSM2RETIENDMCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、
135、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计5.9RS-232-C接口标准接口标准5.9.1RS-232-C接口标准接口标准DB9型型RS-232-C串行接口连接器如图串行接口连接器如图5-37所示。所示。各信号含义如下:各信号含义如下:地线地线GND收收/发数据端发数据端RXD:串行数据接收,输入,空闲时为负电位(逻串行数据接收,输入,空闲时为负电位(逻辑辑“1”)
136、;);TXD:串行数据发送,输出空闲时为负电位(逻辑串行数据发送,输出空闲时为负电位(逻辑“1”););MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部
137、定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计联络(控制)信号联络(控制)信号RTS:发送请求,输出。当发送请求,输出。当DTE准备好要向准备好要向DCE发送数据时,向接收方发送数据时,向接收方(DCE)发送的信号。发送的信号。CTS:清除发送,输入。当清除发送,输入。当DCE接收到接收到DTE的的RTS请示
138、信号后,如果准备好接收数据,就向请示信号后,如果准备好接收数据,就向DTE发送发送清除发送信号。清除发送信号。DTR:数据终端数据终端(DTE)就绪信号,输出。当就绪信号,输出。当DTE要要与与DCE通信时,则发送此信号,在通信时,则发送此信号,在DTR的触发下,的触发下,DCE与通信线相连,并且由与通信线相连,并且由DTR有效来保持这种连接。有效来保持这种连接。DTR是是DCE设备的主控信号;设备的主控信号;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数
139、器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计DSR:数据设备数据设备(DCE)准备就绪信号,输入,当准备就绪信号,输入,当DCE收到收到DTR信号后,完成自身线路的连接后,就向信号后,完成自身线路的连接后,就向DTE发出数据设备就绪信号;发出数据设备就绪信号;以上四个信号对数据传输起着控制作用。事实上,以上四个信号对数据传输起着控制作用。事实上,只有当以下条件满足时,只有当以下条件满足时,DTE才向才向DCE发
140、送数据:发送数据:DTR有效,为正电位;有效,为正电位;DSR有效,为正电位;有效,为正电位;RTS有效,为正电位;有效,为正电位;CTS有效,为正电位;有效,为正电位;MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计调制解调器状态
141、信号调制解调器状态信号RI:振玲指示;振玲指示;CD:载波检测,输入。当调制解调器收到远程载波载波检测,输入。当调制解调器收到远程载波信号后,如果准备好与远程主机交换数据,就向数据终端信号后,如果准备好与远程主机交换数据,就向数据终端(DTE)发出载波检测信号;发出载波检测信号;RI、CD两信号是专为电话网设计的,只有利用调两信号是专为电话网设计的,只有利用调制解调器进行远程通信时才需要。制解调器进行远程通信时才需要。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串
142、行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计5.9.2RS-232-C逻辑电平逻辑电平在在RS-232-C标准中,为保证数据可靠传送,均采标准中,为保证数据可靠传送,均采用用EIA电平。规定用电平。规定用-3-15V表示逻辑表示逻辑1,+3+15V表示逻辑表示逻辑0。-3V+3V为过渡区,他保证即使信号线为过渡区,他保证即使信号线受到干扰,其信号的逻辑也不易发生变化。受到干扰,其信号的逻辑也不易发生变化
143、。此外,此外,RS-232-C标准还规定发送端与接收端之间标准还规定发送端与接收端之间必须保证必须保证2V的噪声容限。的噪声容限。噪声容限定义:指发送端必须达到的逻辑电平的绝噪声容限定义:指发送端必须达到的逻辑电平的绝对值的下限与接收端识别输入逻辑所需绝对值下限之差。对值的下限与接收端识别输入逻辑所需绝对值下限之差。RS-232-C接收下限为接收下限为|-3|V,噪声容限为噪声容限为2V,则发送端下限绝对值为则发送端下限绝对值为3V+2V=5V。也就是说在发送也就是说在发送MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/
144、 / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计端下限绝对值为端下限绝对值为3V+2V=5V。即在发送端即在发送端+5V+15V表示逻辑表示逻辑0;-5V-15V表示逻辑表示逻辑1。5.9.3RS-232-C标准的电气连接方式标准的电气连接方式RS-232-C标准中,采用如图标准中,采用如图5-35所示的非平衡所示的非平衡的连接方式。所谓非平衡的连接,
145、就是每条信号线只有一的连接方式。所谓非平衡的连接,就是每条信号线只有一条连线。缺点是信道噪声会叠加在信号上并全部反映到接条连线。缺点是信道噪声会叠加在信号上并全部反映到接收器中,这会加大通信的误码率;优点是降低了通信成本,收器中,这会加大通信的误码率;优点是降低了通信成本,在短距离通信中(在短距离通信中(RS-232-C标准中规定标准中规定15米)常用。米)常用。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/
146、OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计5
147、.9.4RS-232-C设备与设备与TTL/CMOS器件接口器件接口-电平转换电平转换PC机及带有异步串口的设备,多数为标准机及带有异步串口的设备,多数为标准RS-232-C电气标准接口。他们均采用电气标准接口。他们均采用EIA电平。在工程应电平。在工程应用中,常需要单片机与用中,常需要单片机与PC机或其他带有机或其他带有RS-232-C接口接口设备进行通信。单片机串行口采用正逻辑的设备进行通信。单片机串行口采用正逻辑的TTL电平,他电平,他们电平在幅度上和逻辑意义上都不兼容,但帧格式在逻辑们电平在幅度上和逻辑意义上都不兼容,但帧格式在逻辑上完全相同,因此他们是有互通条件的。要实现上完全相同,
148、因此他们是有互通条件的。要实现TTL电平电平与与EIA电平系统的通信,只需在他们之间加电平转换(翻电平系统的通信,只需在他们之间加电平转换(翻译)环节。译)环节。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计RS-232-C与与T
149、TL之间电平转换芯片现在常之间电平转换芯片现在常用用MAX232系列专用芯片。系列专用芯片。该系列芯片内置了电压倍增电路及负电源电路,所该系列芯片内置了电压倍增电路及负电源电路,所以集成度高,使用单以集成度高,使用单+5V电源工作,只需外接电源工作,只需外接5个容量个容量为为0.11F的电容即可提供两路的电容即可提供两路RS-232-C与与TTL电电平之间转换通道,由于以上的优秀品质,被广泛应用。该平之间转换通道,由于以上的优秀品质,被广泛应用。该系列中典型芯片系列中典型芯片MAX232的内部结构及典型应用如图的内部结构及典型应用如图5-39所示。所示。MCS-51MCS-51MCS-51MC
150、S-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及
151、串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计在实际应用系统中,可以使用在实际应用系统中,可以使用RS-232-C中的中的4个个联络(控制)信号,通过硬件握手方式,进一步保证通信联络(控制)信号,通过硬件握手方式,进一步保证通信质量,但这会增加硬件成本(单片机方需增加质量,但这会增加硬件成本(单片机方需增加I/O、还要还要增加电平转换通道数量),特别是长距离时;也可以通过增加电平转换通道数量),特别是长距离时;也可以通过协议以软件握手的方式,一样可保
152、证通信的可靠性。协议以软件握手的方式,一样可保证通信的可靠性。到底应如何看图到底应如何看图5-39与图与图5-35的区别?从的区别?从硬件上看,图硬件上看,图5-39由于在传输线上加入电平转换由于在传输线上加入电平转换器,器,MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理
153、及系统设计工程背景下的单片机原理及系统设计实现了通信双方的电平匹配,从帧的数据流格式上看,通实现了通信双方的电平匹配,从帧的数据流格式上看,通信双方都没做任何改变,换句话说,如果一个不懂硬件的信双方都没做任何改变,换句话说,如果一个不懂硬件的编程者,他在调试过单片机与单片机、编程者,他在调试过单片机与单片机、PC机与机与PC机(不机(不用硬件握手)的点对点通信后,在硬件工程师连好图用硬件握手)的点对点通信后,在硬件工程师连好图5-39的电路后,通信双方可分别使用单片机和的电路后,通信双方可分别使用单片机和PC机的(导机的(导线互联)通信程序,不需做任何修改,就能进行双机通信线互联)通信程序,不
154、需做任何修改,就能进行双机通信了。对不懂硬件的编程者来说,可将图了。对不懂硬件的编程者来说,可将图5-39中的电平转中的电平转换部分看成一个黑盒子,或更明显一点,把他看成通信电换部分看成一个黑盒子,或更明显一点,把他看成通信电路的一部分,只是这一部分电路(或线路)为通信实现了路的一部分,只是这一部分电路(或线路)为通信实现了信号的硬件转换与对接而已。信号的硬件转换与对接而已。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统
155、及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计无论是单片机与单片、无论是单片机与单片、PC机与机与PC机,还是单片机机,还是单片机与与PC机的通信,波特率和帧格式一致是必须要保证的。机的通信,波特率和帧格式一致是必须要保证的。单片机的通信程序与我们上面讨论的完全相同。至单片机的通信程序与我们上面讨论的完全相同。至于于PC机的异步串口通信编程,与单片机编程原理相同,机的异步串口通信编程,与单片机编程原理相同,只是工作平台不同。要注意的是:波特率、通信
156、方式(决只是工作平台不同。要注意的是:波特率、通信方式(决定帧格式),除此之外双方的协议要明确,如校验方式等。定帧格式),除此之外双方的协议要明确,如校验方式等。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计5.11多个中断源同时
157、开放时应注意的问题多个中断源同时开放时应注意的问题实际的单片机应用系统,一般都将单片机片内资源实际的单片机应用系统,一般都将单片机片内资源(这里讲的是外部中断、定时计数器、串行口)都用起来(这里讲的是外部中断、定时计数器、串行口)都用起来了,有时甚至对外部中断源、定时计数器还要采用复用技了,有时甚至对外部中断源、定时计数器还要采用复用技术扩展,才能满足系统对资源的需求。本书中工程实例还术扩展,才能满足系统对资源的需求。本书中工程实例还不仅如此,由于设计采用了不仅如此,由于设计采用了STC系列单片机,在检测控制系列单片机,在检测控制模块中还用到了外部中断模块中还用到了外部中断2和外部中断和外部中
158、断3及定时计数器及定时计数器T2。他们中的多数都采用了中断方式。现在的问题是:在使用他们中的多数都采用了中断方式。现在的问题是:在使用多个中断源的系统中,如何控制他们有条不紊地、正确地多个中断源的系统中,如何控制他们有条不紊地、正确地为为CPU提供消息(中断请求信号),为系统可靠运行当提供消息(中断请求信号),为系统可靠运行当好好CPU的服务员(秘书)。的服务员(秘书)。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串
159、行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计要控制好多个中断系统,关键要对要控制好多个中断系统,关键要对中断的整个过程中断的整个过程有全面的理解。有全面的理解。把握好对中断源的中断开放控制。把握好对中断源的中断开放控制。下面对下面对多个中断源同时开放的技术问题进行讨论。多个中断源同时开放的技术问题进行讨论。第一种情况,系统中各中断源的中断请求事件独立。第一种情况,系统中各中断源的中断请求事件独立。即系统正常运行时,与中断相关的外部及内部事件没有交即系
160、统正常运行时,与中断相关的外部及内部事件没有交叉的可能。例如,外部中断源、定时计数器、串口中断同叉的可能。例如,外部中断源、定时计数器、串口中断同时开放,他们中断服务程序中不涉及其他中断源的控制,时开放,他们中断服务程序中不涉及其他中断源的控制,因此各个中断是独立的,永远不会相互影响。这种情况的因此各个中断是独立的,永远不会相互影响。这种情况的系统没有太多的控制技术问题。系统没有太多的控制技术问题。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统
161、及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计第二种情况,系统中几个中断源的中断请求事件不第二种情况,系统中几个中断源的中断请求事件不独立,有某种的关联或交叉。如本书工程实例中,检测控独立,有某种的关联或交叉。如本书工程实例中,检测控制板。参考图制板。参考图3-34,系统在,系统在X轴上运动到指定点这一过轴上运动到指定点这一过程实现过程中,首先要开放外部中断程实现过程中,首先要开放外部中断0,找到参考点后,找到参考点后,一定
162、要关闭外部中断一定要关闭外部中断0,开放定时器,开放定时器T0计数中断,当来自计数中断,当来自长光尺的计数脉冲使长光尺的计数脉冲使T0生产溢出时,程序停止步进电机,生产溢出时,程序停止步进电机,关闭关闭T0中断,完成定位任务。中断,完成定位任务。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工
163、程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计在在CPU等待等待T0中断的过程中,如果没有关闭外部中断的过程中,如果没有关闭外部中断中断0,则在其间必须发生多次外部中断,则在其间必须发生多次外部中断0的中断,而这的中断,而这些中断是无任何意义的,只会增加些中断是无任何意义的,只会增加CPU的负担。对这种的负担。对这种事件交叉的系统,要对中断开放与禁止进行适时的控制,事件交叉的系统,要对中断开放与禁止进行适时的控制,避免无用的事件引发系统的运行错误。在本书中,列举了避免无用的事件引发系统的运行错误。在本书中,列举了很多有条件开放或关闭中断的例子,其目的就是告诫读者,很多有条件开放
164、或关闭中断的例子,其目的就是告诫读者,中断源的中断开放和禁止,是实际工程序中常用的技术。中断源的中断开放和禁止,是实际工程序中常用的技术。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计下面的问题更为重要:禁止了相互交叉而无意义事下
165、面的问题更为重要:禁止了相互交叉而无意义事件对应的中断,但件对应的中断,但不能禁止其中断请求标志不能禁止其中断请求标志,同第二种情,同第二种情况,关闭了外部中断况,关闭了外部中断0,等待,等待T0中断发生过程中,外部中中断发生过程中,外部中断断0的请求信号被置位(在此过程中多次出现的的请求信号被置位(在此过程中多次出现的REF信号信号所致),如果所致),如果CPU不加处理,等到下次开放外部中断不加处理,等到下次开放外部中断0时,时,CPU将立即响应这个错误的请求,导致系统运行错误。将立即响应这个错误的请求,导致系统运行错误。这个问题是窥容易解决的,但设计者却常常出现这样的错这个问题是窥容易解决
166、的,但设计者却常常出现这样的错误,原因是忽视了对这种问题的重视,编程习惯不好。误,原因是忽视了对这种问题的重视,编程习惯不好。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计解决的办法:解决的办法:在硬件允许的条件下,如本工程实例在
167、硬件允许的条件下,如本工程实例已加有已加有74HC125隔离,在外部中断隔离,在外部中断0不用时,切断其请不用时,切断其请求信号通道,即可避免上述情况发生。求信号通道,即可避免上述情况发生。在没有硬件隔离的系统中,当要再下次开放外部中在没有硬件隔离的系统中,当要再下次开放外部中断断0(前)时,用指令将中断请求标志清除。将系统垃圾(前)时,用指令将中断请求标志清除。将系统垃圾清除,对本例来说,就是要将清除,对本例来说,就是要将IE0清零。清零。对中断交叉系统,我们一般都是分时开放不同的中对中断交叉系统,我们一般都是分时开放不同的中断源的中断的。最方便的办法是在中断断服务程序中,将断源的中断的。最
168、方便的办法是在中断断服务程序中,将不确定的中断请求标志清除。具体办法如下:不确定的中断请求标志清除。具体办法如下:MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计voidtimer0()interrupt1/*T0中断服务程序中断服
169、务程序*/*T0中断服务内容中断服务内容*/IE0=0;/*清除外部中断清除外部中断0请求标志请求标志*/记住:这些技巧来自使用者对中断的原理、中断过记住:这些技巧来自使用者对中断的原理、中断过程的理解。程的理解。MCS-51MCS-51MCS-51MCS-51系列单片机内部定时系列单片机内部定时系列单片机内部定时系列单片机内部定时/ / / /计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口计数器、中断系统及串行口I/OI/OI/OI/O口的应用口的应用口的应用口的应用 工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计工程背景下的单片机原理及系统设计训练题训练题5-38两两51机点对点联接,机点对点联接,fosc均为均为11.0592MHz,9600波特率。从机以事件触发程序结波特率。从机以事件触发程序结构工作,主机以时间触发结构工作。每次时间(设间隔为构工作,主机以时间触发结构工作。每次时间(设间隔为2ms)触发主机将触发主机将1字节决策值,通过串口发至从机,引字节决策值,通过串口发至从机,引发从机串口中断事件,从机响应事件后再发发从机串口中断事件,从机响应事件后再发P1口的内容口的内容至主机提供决策依据(这个决策依据是滞后型依据)。至主机提供决策依据(这个决策依据是滞后型依据)。本章结束本章结束