单片微型计算机原理-胡乾斌--课后习题答案 联系客服

发布时间 : 星期一 文章单片微型计算机原理-胡乾斌--课后习题答案更新完毕开始阅读

LOOP2: INC 10H ; SJMP STRAT ;

6.10 简要说明若要扩展定时器/计数器的最大定时时间,可采用哪些方法? 答:1,降低晶体振荡器主频,

2,采用多次累计计数等方法,见例6-4. 习题 7

7.1 什么是串行异步通信,它有哪些特点?

答:串行异步通信的数据通常是以字符(或字节)为单位组成字符帧按顺序传送的。字符帧通过传输线由发送端一帧一帧地发送到接收端,接收端一帧一帧地接收。

特点:优点是不需要传送同步脉冲,字符帧长度也不受限制,故所需设备简单。缺点是因字符帧中包含有起始位和停止位而降低了有效数据的传输速率。

7.2 串行异步通信的字符格式由哪几个部分组成?某异步通信接口,其帧格式由1个起始位(O),7个数据位,1个偶校验和1个停止位组成。用图示方法画出发送字符“5”(ASCII码为0110101B)时的帧结构示意图。

答:1,串行异步通信的字符格式由一个起始位表示字符的开始,一个停止位表示字符的结束。数据位在起始位之后,停止位之前,这样构成一帧数据。奇偶校验位位与数据位之后,停止位之前,用于表示串行通信中采用奇校验位还是偶校验位,由用户根据需要决定。 2,发送字符“5”(ASCII码为0110101B)时的帧结构示意图: 7.3 MCS-51单片机的串行口由哪些功能模块组成?各有什么作用?

答:MCS-51单片机的串行口主要由两个数据缓冲寄存器SBUF,一个输入移位寄存器以及两个控制寄存器SCON和PCON组成。其中,缓冲寄存器SBUF是两个在物理上独立的专用寄存器,一个作发送缓冲器,另一个作接收缓冲器。两个缓冲器共用一个地址99H,可通过指令对SBUF的读写来区别,CPU写SBUF就是修改发送缓冲器的内容;读SBUF就是读接收缓冲器的内容。

控制寄存器SCON和PCON用来设定串行口的工作方式并对接收和发送进行控制。串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),因此可以同时发送、接收数据,实现全双工通信。 7.4 MCS-51单片机的串行口有哪几种工作方式?有几种帧格式?各工作方式的波特率如何确定? 答:有4种工作方式。

工作方式0为同步移位寄存器方式,该方式以8位数据为一帧,没有起始位和停止位,先发送或接收最低位。

工作方式1为8位异步通信方式,适合于点对点的异步通信。这种方式规定发送或接收一帧信息为10位,即1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。数据传输率可以改变。 工作方式2和3为9位异步通信方式。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控的第9位数据和1位停止位。 1. 方式0的波特率

串行口工作在方式0时,波特率由振荡器的频率fosc所确定: 波特率=

2. 方式2的波特率

串行口工作在方式2时,波特率由振荡器的频率fosc和SMOD所确定: 波特率= fosc

若SMOD=0,则所选波特率为fosc/64;若SMOD=1,则波特率为fosc/32。 3. 方式1或3的波特率

串行口工作在方式1或方式3时,波特率由定时器T1的溢出率和SMOD所确定: 波特率= 定时器T1的溢出率

7.5 MCS-51单片机的串行口控制寄存器SCON的SM2,TB8,RB8有何作用?

答:1,SM2主要用于方式2和方式3,因为多机通信是在方式2和方式3下进行的。 在方式2和方式3下,若SM2=1接收到第9位数据(RB8)为0时,则接收中断不被激活,将接收到的前8位数据丢弃。只有在接收到第9位数据(RB8)为1时才将接收到的前8位数据送入SBUF,并置位RI产生中断请求。当SM2=0时,则不论接收到第9位数据是0还是1,都将接收到的前8位数据送入SBUF中,并产生中断请求。在方式1中,若SM2=1,只有接收到有效的停止位RI才被激活。在方式0中,SM2必须是0。

2,TB8发送数据的第9位

在方式2、方式3中,TB8作为第9位数据发送出去,根据需要用软件置位或清0。TB8可在双机通信中作为奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。一般约定,发送地址帧时设置 TB8=1;发送数据帧时设置TB8=0。在方式0和方式1中,该位未用。

3,RB8 接收数据的第9位

在方式2、方式3中,RB8是接收的第9位数据,在多机通信中为地址、数据标志位;方式0中RB8未用;在方式1中,若SM2=0,则接收的停止位自动存入RB8中。

1. 设fosc=6 MHz,试编写一段对串行口初始化程序,使之工作在方式1,波特率为1200 b/s;

并用查询串行口状态的方式,读出接收缓冲器的数据并回送到发送缓冲器。

答:串行方式1波特率取决于T1溢出率,若设SMOD=1,T1工作在方式2,则T1的计数初值为: X=256-(2/32)6000000/121200=230=0E6H ORG 0000H LJMP MAIN ORG 100H

MAIN: MOV SP, #60H

MOV TMOD, #20H ;设T1工作方式2 MOV TL1, #0E6H ;置T1计数初值 MOV TH1, #0E6H CLR ET1 ;禁止T1中断 SETB TR1 ;启动T1

MOV SCON,#40H ;置串口方式1 MOV PCON,#00H ;置SMOD=0 CLR ES ;禁止串行中断 MOV A, SBUF ;读接收缓冲器 MOV SBUF, A ;回送到发送缓冲器 LP: JNB TI, LP ;等待一帧数据发送完 CLR TI ;清发送标志位 SJMP $

7.7 设晶振频率为11.0592 MHz,串行口工作在方式1,波特率为4800 b/s。写出用T1作为波特率发生器的方式字并计算T1的计数初值。

答:串行方式1波特率取决于T1溢出率,设SMOD=0, 即PCON=00H T1工作在定时方式2,则T1的计数初值为: X=256-(1/32)11059200/124800=250=0FAH 用T1作为波特率发生器的方式字 TMOD=20H,

7.8 为什么定时器T1用作串行口波特率发生器时,常选用工作方式2,若已知系统时钟频率和通信的波特率,则如何计算其初值?

答:因工作方式2可以自动装入初值,避免由程序装入初值带来波特率的误差 波特率= 定时器T1的溢出率

7.9 简述MCS-51单片机多机通信的原理。 答:多机通讯工作过程如下:

(1)从机串行口编程为方式2或方式3接收,且置“1”SM2和REN位,使从机只处于多机通讯且接收地址帧的状态。

(2)在主机先将从机地址(即准备接收数据的从机地址)发送给各从机,然后再传送数据或命令,主机发出的地址信息的第9位为1,数据(包括命令)信息的第9位为0。当主机向各从机发送地址时,各从机的串行口接收到的第9位信息RB8为1,且由于SM2=1,则置“1”中断标志位RI,各从机响应中断执行中断服务程序。在中断服务子程序中,判断主机送来的地址是否与本机地址相符合,若为本机地址,则该从机清“0”SM2位,准备接收主机的数据或命令;若于本机地址不相符,则保持SM2=1状态。 (3)接着主机发送数据帧,此时各从机串行口接收到的RB8=0,只有与前面地址相符合的从机(即已清“0”SM2位的从机)才能激活中断标志位RI,从而产生中断,进入中断服务程序,在中断服务程序中接收主机的数据(或命令);其它的从机因SM2保持为1,而RB8=0不激活中断标志RI,不能进入中断,将所接收的数据丢弃不作处理,从而保证主机和从机间通讯的正确性。图7-22所示的多机系统是主从式,由主机控制多机之间的通讯,从机和从机的通讯只能经主机才能实现。

7.10设计一个单片机的双机通信系统,串行口工作在方式1,编写通信程序将甲机内部RAM 30H~3FH存储区的数据块通过串行口传送到乙机内部RAM 40H~4FH存储区中去。 答:假设甲、乙双方均采用6MHz晶振,波特率为2400。 若设SMOD=1,T1工作在方式2,则T1的计数初值为: