第四章习题与思考答案4-3 外设端口有哪两种编址方法?各有什么特点?答:微型计算机对I/O端口进行编址的方式有两种:单独编址和统一编址。
1.外设端口单独编址特点:(1)需要专用I/O指令,实现CPU和外设间数据传送。
(2)I/O端口地址的独立。
2.外设端口与存储器统一编址特点:(1)无需专用I/O指令(2)I/O端口地址是内存地址中的一部分。
4-4 I/O数据有哪四种传送方式?各有什么特点?CPU与外设之间的数据传送方式有无条件传输方式、查询方式、中断方式和DMA方式。
1.无条件传输方式无条件传送又称为同步传送或直接传送方式。
CPU在与外设进行数据交换时,外设随时处于准备好的状态,这样CPU不必查询外设的状态,也不必等待,而是直接进行数据的输入输出。
2.查询传输方式查询传输方式也称为异步传输、条件传输方式。
采用查询方式时,CPU每次与外设进行数据传输前,都要先读取状态端口的信息,查询外设是否准备就绪,只有在外设处于“就绪”状态时,才能向外设的数据端口发送数据或从其中读取数据,如果外设未就绪,就需要CPU原地循环等待外设完成准备工作,所以CPU的工作效率不高。
3.中断传输方式在中断传输方式中,以外设为主动方,每次外设准备好就可以向CPU发出一次中断请求,使CPU暂停当前正在执行的程序,转去与外设进行一次数据传输工作,当完成了本次数据的输入或输出后,再回到原先被打断的地方继续执行原来的程序。
中断方式可以大大提高CPU的效率和系统的实时性。
4.DMA方式DMA方式即直接存储器存取方式,是一种在DMA控制器的控制下实现的外设与存储器之间的直接数据传输方式。
在整个DMA 传输过程中,是不需要CPU参与的,完全是通过硬件逻辑电路用固定的顺序发地址和读写信号来实现的,数据不需要经过CPU而是在外设和存储器之间高速传输。
4-5 8051内部的并行I/O口有哪些?各有什么功能?1.P0口P0口的第一功能是作为通用I/O口使用。
P0口的第二功能是作为地址(低8位地址)/数据总线的复用口。
2.P1口P1口的第一功能是作为通用I/O口使用3.P2口P2口的第一功能是通用I/O口P2口的第二功能是作为地址总线,输出高8位地址信号,与P0口输出的低8位地址组合,共同完成外部存储器单元16位地址信号的输出。
4.P3口P3口的第一功能是通用I/O口,且各引脚有不同的第二功能。
4.8 中断处理的过程是怎样的?所谓中断是指CPU在正常执行程序的过程中,由于某种随机发生的事件使它暂停当前正在执行的程序,转而去执行另外的一段程序(中断服务程序),在这段程序完成后自动返回被打断的程序处继续执行的过程。
CPU与外设之间一个完整的可屏蔽中断传输过程包括:中断请求、中断响应、中断处理和中断返回。
4.9 8051单片机有几个中断源?各自对应的中断标志是什么?对应的中断服务子程序入口地址是什么?IE寄存器的作用是什么?8051单片机提供5个中断源,其中2个外部中断,2个定时器/计数器中断,1个串行口中断。
外部中断INT0/ INT1以各自引脚上输入低电平或负跳变信号作为中断触发事件。
当检测到外部中断请求时,外部中断的标志IE0/IE1被置为1定时器/计数器中断是由8051内部的定时器/计数器计满溢出产生的。
T0或T1计满溢出时,中断标志TF0或TF1被置1.串行口中断包括发送中断和接收中断, 当串行口接收完一组数据时,串行口接收中断标志RI被置 1; 当串行口发送完一组数据时,串行口发送中断标志TI被置 1。
IE寄存器:通过中断允许寄存器IE可以对中断实现两级控制。
每个中断源都对应有各自的中断屏蔽位,当中断屏蔽位为1时允许中断,当中断屏蔽位为0时禁止中断;IE寄存器还有一个总中断允许位EA,对整个中断系统进行开中断或关中断的控制。
4-10 MCS-51单片机的中断系统有几级中断优先级?IP寄存器的作用是什么?2级:高级中断优先级和低级中断优先级。
IP寄存器是中断优先级寄存器,用于选择各个中断源的中断优先级。
其各位的定义参见图4-12。
4-11 MCS-51单片机中断响应的条件有哪些?如何进行中断响应的操作?✧当前没有同级或高优先级的中断正在被服务。
✧CPU应保证执行完当前正在执行的指令。
✧如果当前正在执行的指令是RETI或任何访问IE、IP寄存器的指令,则应至少再执行一条其他指令。
中断响应条件满足时,硬件系统产生一个硬件长调用LCALL。
硬件长调用LCALL操作将当前程序计数器PC的值推入堆栈保存起来,并将不同中断源对应的中断入口地址转入PC。
4-12 MCS-51单片机内部定时器有几种工作方式?如何通过定时器方式控制寄存器进行设置?工作方式控制寄存器TMOD用来设定定时器/计数器T0和T1的工作方式。
其中M1M0两位可以选择4种方式:方式0、方式1、方式2和方式3。
具体设置的方法见图4-18。
4-13试比较MCS-51内部定时器在4种工作方式下的异同。
方式0是13位计数器方式,以T0为例,13位计数器由TH0的8位和TL0中的低5位组成,TL0的高3位不用,当计数器计满溢出时,由硬件将TF0标志置1。
由C/T控制位选择作为定时器还是计数器工作。
当GATE=0时,只要TR0置位,定时器即开始工作;当GATE=1时,TR0置1后,只有INT0上出现高电平信号时,T0才开始工作。
方式1是16位计数器方式,由TH0的8位与TL0的8位组成16位计数器,其它工作过程与方式0相同。
方式2是8位自动重装载计数器方式。
在计数器计满溢出时,可以自动重新装入计数初值,循环计数。
而方式0和方式1都不具备自动重装载的功能。
T0和T1的以上3种方式是完全相同的,而方式3下T0和T1是不相同的。
如果设置T1为方式3,则T1停止工作。
T0设置为方式3作为两个独立的8位计数器工作。
4-14设单片机时钟为12MHz,请分别计算定时器工作在方式0和方式1时定时2ms所需要的定时器初值。
(1)初值H-=-==8192Nx183061922000213=(2)初值H-==-=216=65536Nx830635362000F4-16 设单片机时钟为12MHz ,请利用定时器T0编出令P1.0引脚输出2ms 的矩形波程序,要求占空系数为1:2(高电平时间短)。
高电平: 2ms/3=667μs初值: 162655366676486965x N FD H =-=-==低电平: 20006671333s s s μμμ-=初值: 162655361333642030x N FACBH =-=-==ORG 0000HAJMP MAINORG 000BHAJMP T0INTMAIN: MOV TMOD,#01H ;T0选择工作方式1,16位定时器MOV T H0,#0FDH ;初始化T0值MOV TL0,#65HMOV IE,#82H ;开T0中断SETB TR0 ;启动T0定时器SJMP $T0INT: MOV C,P1.0JC NEXT ;判断P1.0的高低电平MOV TH0,#0FDH ;P1.0为低则装入高电平的初始值MOV TL0,#65HSJMP COMNEXT: MOV TH0,#0FAH ;P1.0为高则装入低电平的初始值MOV TL0,#0CBHCOM: CPL P1.0RETIEND4-17 已知8051单片机内部RAM 中以10H 为起始地址的数据区有50个字节,要求每隔100ms 向内部RAM 中以70H 为起始地址的数据区传送10个字节,通过5次传送完毕。
要求采用定时器T1定时,单片机时钟为12MHz ,请编写程序。
定时器50ms,循环2次可得100ms,设定初值3CB0HORG 0000HAJMP MAINORG 001BHAJMP BRT1MAIN: MOV TMOD #10H ;T1选择工作方式1,16位定时器MOV TH1,#3CH ;计数器初始化MOV TL1,#0B0HMOV R1,#10HMOV R0,#70HMOV R2,#5 ;传送次数MOV R3,#02H ;定时两次,每次50msMOV IE,#88H ;开T1中断SETB T R1 ;启动T1计数器LOOP: SJMP $BRT1: MOV TH1,#3CH ;定时50msMOV TL1,#0B0HDJNZ R3,DONEMOV R3,#02HDJNZ R2,LOOPDCLR ET1 ;传送数据完毕,关闭T1中断SJMP DONELOOPD: MOV R4,#10 ;每次传10个字节LOOP1: MOV A,@R1MOV @R0,AINC R1INC R0DJNZ R4,LOOP1DONE: RETIEND4-18 异步通信和同步通信的主要区别是什么?MCS-51串行口有没有同步通信功能?异步通信是字符帧通信通信原理:(1) ........................................... 发送/接收端有两个相互独立时钟源;(2) ........................................... 接收端检测到RXD线的低电平(起始位)接收端便知发送端已开始发送。
同步通信靠同步头通信通信原理:接收端检测RXD线上有同步头便知对方已开始发送。
MCS-51串行口无同步通信功能。
4-21 串行通信有哪几种制式?各有什么特点?通信方式可分为:单工通信、半双工通信与全双工通信。
(1) ........................................... 单工通信只支持数据在一个方向上传输(2) ........................................... 半双工通信允许数据在两个方向上传输,但在同一时刻,只允许数据在一个方向上传输(3) ........................................... 全双工通信允许数据同时在两个方向上传输,即通信的双方可以同时发送和接收数据。
4-24 MCS-51串行口工作方式有哪4种?如何设定?串行口的工作方式有方式0、方式1、方式2和方式3四种工作方式。
方式0:在方式0下,方式0时SM2位必须为0。
其波特率是固定的,为/12f。
osc方式1:在方式1下,串行口为10位通用异步接口。
方式2:在方式2下,串行口为11位通用异步接口。
先根据通信协议用软件设置TB8。
其信息传送波特率与SMOD有关。
方式3:方式3为波特率可变的11位异步通信方式。
4-26 请用中断法编出串行口方式1下的接收程序。
设8051单片机主频为6MHz,波特率为600b/s,接收数据缓冲器在外部RAM,起始地址为RBLOCK,接收数据区长度为30,采用偶校验(数据块长度不发送)。