当前位置:文档之家› 张毅刚版单片机课后答案7-10章

张毅刚版单片机课后答案7-10章

第七章习题解答1.单片机存储器的主要功能是存储(程序)和(数据)。

2.试编写一个程序(例如将05H和06H拼为56H),设原始数据放在片外数据区2001H单元和2002H单元中,按顺序拼装后的单字节数放入2002H。

解:本题主要考察了对外部存储器的读、写操作,同学们只要记住正确使用MOVX指令就可以了。

编程思路:首先读取2001H的值,保存在寄存器A中,将寄存器A的高四位和低四位互换,再屏蔽掉低四位然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后将寄存器A的值与30H进行或运算,将运算后的结果保存在2002H中。

ORG 0000HMAIN:MOV DPTR,#2001H ;设置数据指针的初值MOVX A,@DPTR ;读取2001H的值SWAP AANL A,#0F0H ;屏蔽掉低四位MOV 30H,A ;保存AINC DPTR ;指针指向下一个MOVX A,@DPTR ;读取2002H的值ANL A,#0FH ;屏蔽掉高四位ORL A,30H ;进行拼装MOVX @DPTR,A ;保存到2002HEND3.假设外部数据存储器2000H单元的内容为80H,执行下列指令后:MOV P2,#20HMOV R0,#00HMOVX A,@R0累加器A中的内容为(80H)。

4.编写程序,将外部数据存储器中的4000H—40FFH单元全部清零。

解:本题主要考察了对外部数据块的写操作;编程时只要注意循环次数和MOVX指令的使用就可以了。

ORG 0000HMAIN:MOV A,#0 ;送预置数给AMOV R0,#0FFH ;设置循环次数MOV DPTR,#4000H ;设置数据指针的初值LOOP:MOVX @DPTR,A ;当前单元清零INC DPTR ;指向下一个单元DJNZ R0,LOOP ;是否结束END5.在MCS-51单片机系统中,外接程序存储器和数据存储器共16位地址线和8位数据线,为何不会发生冲突?解:因为控制信号线的不同:外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。

外扩RAM的读、写控制引脚分别与MCS-51的RD和WR引脚相连。

外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51单片机的PSEN相连。

6.区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是:(1)看其位于地址范围的低端还是高段(2)看其离MCS-51芯片的远近(3)看其芯片的型号是ROM还是RAM(4)看其是与RD信号连接还是与PSEN信号连接解:本题的答案是3,4。

7.在存储器扩展中,无论是线选法还是译码法,最终都是为了扩展芯片的(片选)端提供信号。

8.请写出图8-18中4片程序存储器27128各自所占的地址空间。

解:图中采用了译码法。

4片地址分别为0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。

9.起止范围为0000H-3FFFH的存储器的容量是(16)KB。

解:本题属于常识题,在第十一题时将有解答。

10.在MCS-51中,PC和DPTR都用于提供地址,但PC是为了访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。

11.11根地址线可选(2KB)个存储单元,16KB存储单元需要(14)根地址线。

解:通过总结所学知识,我们得到以下几个信息:2KB的存储器需要11根地址线,地址为0000H-07FFH;4KB的存储器需要12根地址线,地址为0000H-0FFFH;8KB的存储器需要13根地址线,地址为0000H-1FFFH;16KB的存储器需要14根地址线,地址为0000H-3FFFH;32KB的存储器需要15根地址线,地址为0000H-7FFFH;64KB的存储器需要16根地址线,地址为0000H-FFFFH(以上存储器的首地址均默认为0000H)。

12.32KB RAM存储器的首地址若为2000H,则末地址为(9FFF)H。

解:由上题总结得出,32KB RAM存储器的大小为0000H-7FFFH,所以只要在后面加上2000H即得到正确答案。

13.现有8031单片机、74LS373锁存器、1片2764EPROM和2片6116RAM,请使用他们组成一个单片机系统,要求:(1)画出硬件电路连线图,并标注主要引脚;(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。

解:(1)电路图如下所示:(2)2764的地址为C000H-DFFFH;第一个6116的地址为A000H-A7FFH;第二个6116的地址为6000H-67FFH;事实上,由于采用的是线选法,导致了地址不连续,地址空间利用不充分。

建议在实际工作中要具体情况具体分析。

在两种地址分配中选一种较好的来应用。

14.使用89C51芯片外扩一片E2PROM2864,要求2864兼作程序存储器和数据存储器,且首地址为8000H。

要求:(1)确定2864芯片的末地址;(2)画出2864片选端的地址译码电路;(3)画出该应用系统的硬件连接图。

解:(1)2864为8KB的存储器,如果首地址为8000H,则其末地址为9FFFH,理由参考第12题;(2)电路图如下所示:(3)电路图如下所示:第八章习题解答1.I/O接口和I/O端口有什么区别?I/O接口的功能是什么?解:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。

I/O接口是指单片机与外设间的I/O接口芯片。

I/O接口功能:一.实现和不同外设的速度匹配;二.输出数据缓存;三.输入数据三态缓冲。

2.常用的I/O接口编址有哪两种方式?它们各有什么特点?MCS-51的I/O端口编址采用的是哪种方式?解:一.独立编址方式:独立编址方式就是I/O地址空间和存储器地址空间分开编址。

独立编址的优点是I/O 地址空间和存储器地址空间相互独立,界限分明。

但是,却需要设置一套专门的读写I/O的指令和控制信号。

二.统一编址方式:这种编址方式是把I/O端口的寄存器与数据存储器单元同等对待,统一进行编址。

统一编址的优点是不需要专门的I/O指令,直接使用访问数据存储器的指令进行I/O操作,简单、方便且功能强大。

MCS-51单片机使用的是I/O和外部数据存储器RAM统一编址的方式。

3.I/O数据传送有哪几种传送方式?分别在哪些场合下使用?解:一.同步传送方式:同步传送又称为有条件传送。

当外设速度可与单片机速度相比拟时,常常采用同步传送方式,最典型的同步传送就是单片机和外部数据存储器之间的数据传送。

二.查询传送方式:查询传送方式又称为有条件传送,也称异步传送。

单片机通过查询得知外设准备好后,再进行数据传送。

异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。

为了提高单片机的工作效率,通常采用中断方式。

三.中断传送方式:中断传送方式是利用MCS-51本身的中断功能和I/O接口的中断功能来实现I./O数据的传送。

单片机只有在外设准备好后,发出数据传送请求,才中断主程序,而进入与外设进行数据传送的中断服务程序,进行数据的传送。

中断服务完成后又返回主程序继续执行。

因此,采用中断方式可以大大提高单片机的工作效率。

4.编写程序,采用8255A的C口按位置位/复位控制字,将PC7置0,PC4置1,(已知8255A各端口的地址为7FFCH-7FFFH)。

解:本题主要考察对8255A的C口的操作。

其方式控制字的高位为0时,低四位对C口进行置位。

由题目我们得到了方式控制字的地址为7FFFH。

ORG 0000HMAIN: MOV DPTR,#7FFFH ;控制字寄存器地址送DPTRMOV A,#0EH ;将PC7置0MOVX @DPTR,AMOV A,#09H ;将PC4置1MOVX @DPTR,AEND5.8255A的方式控制字和C口按位置位/复位控制字都可以写入8255A的同一控制寄存器,8255A是如何区分这两个控制字的?解:8255A通过它们的最高位来进行判断,最高位为1时,这时8255A认为这是方式控制字,否则认为是C口按位置位/复位控制字6.由图9-6来说明8255A的A口在方式1的选通输入方式下的工作过程。

解:当外设输入一个数据并送到PA7-PA0上时,输入设备自动在选通输入线STBA向8255A发送一个低电平选通信号。

8255A收到选通信号后:首先把PA7-PA0上输入的数据存入A口的输入数据缓冲/锁存器;然后使输入缓冲器输出线IBFA变成高电平,以通知输入设备,8255A的A口已收到它送来的输入数据。

8255A检测到联络线STBA由低电平变成了高电平、IBFA为1状态和中断允许触发器INTEA为1时,使输出线INTRA(PC3)变成高电平,向8031发出中断请求。

(INTEA的状态可由用户通过对PC4的置位/复位来控制。

8031相应中断后,可以通过中断服务程序从A口的输入数据缓冲/锁存器读取外设发来的输入数据。

当输入数据被CPU读走后,8255A撤销INTRA上的中断请求,并使IBFA变为低电平,以通知输入外设可以送下一个输入数据。

7.8155H的端口都有哪些?哪些引脚决定端口的地址?引脚TIMERIN和TIMEROUT的作用是什么?解:8155H的端口有以下几种:命令/状态寄存器、A口、B口、C口、计数器和RAM单元。

引脚IO/M、A2、A1、A0决定端口地址。

TIMERIN是计数器输入线,输入的脉冲上跳沿用于对8155H片内的14位计数器减一。

TIMEROUT为计数器输入线。

当14位计数器减为0时就可以在该引线上输出脉冲或方波,输出的信号的形状与所选的计数器工作方式有关。

8.判断下列说法是否正确,为什么?(1)由于8155H不具有地址锁存功能,因此在与8031的接口电路中必须加地址锁存器。

(2)在8155H芯片中,决定端口和RAM单元编址的信号线是AD7-AD0和WR。

(3)8255A具有三态缓冲器,因此可以直接挂在系统的数据总线上。

(4)8255A的B口可以设置成方式2。

解:(1)8155H具有地址锁存功能;(2)引脚IO/M、A2、A1、A0决定端口地址和RAM单元编址;(3)8255A不具有三态缓冲器;(4)8255A的B口只可以设置成方式0和方式1。

9.现有一片8031,扩展了一片8255A,若把8255A的B口用做输入,B口的每一位接一个开关,A口用作输出,每一位接一个发光二极管,请画出电路原理图,并编写出B口某一位接高电平时,A口相应位发光二极管被点亮的程序。

解:由于电路图比较简单,在这里就画了,大家可以参考图9-10,A口每一位接二极管的正极,二极管的负极接低。

相关主题