第8章1.单片机存储器的主要功能是存储()和()。答:(程序)、(数据)2.试编写一个程序(例如将05H和06H拼为56H),设原始数据放在片外数据区2001H单元和2002H单元中,按顺序拼装后的单字节数放入2002H。解:本题主要考察正确使用MOVX指令对外部存储器的读、写操作。编程思路:首先读取2001H的值,保存在寄存器A中,将寄存器A的高四位和低四位互换,再屏蔽掉低四位,然后将寄存器A的值保存到30H中,然后再读取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后将寄存器A的值与30H进行或运算,将运算后的结果保存在2002H中。ORG1000HMAIN:MOVDPTR,#2001H;设置数据指针的初值MOVXA,@DPTR;读取2001H的值SWAPA;A的高四位和低四位互换ANLA,#0F0H;屏蔽掉低四位MOV30H,A;保存AINCDPTR;指针指向下一个MOVXA,@DPTR;读取2002H的值ANLA,#0FH;屏蔽掉高四位ORLA,30H;进行拼合MOVX@DPTR,A;保存到2002HEND3.假设外部数据存储器2000H单元的内容为80H,执行下列指令后:MOVP2,#20HMOVR0,#00HMOVXA,@R0累加器A中的内容为()。答:(80H)4.编写程序,将外部数据存储器中的4000H~40FFH单元全部清零。答:本题主要考察对外部数据块的写操作;编程时要注意循环次数和MOVX指令的使用。ORG1000HMAIN:MOVA,#0;送预置数给AMOVR0,#00H;设置循环次数MOVDPTR,#4000H;设置数据指针的初值LOOP:MOVX@DPTR,A;当前单元清零INCDPTR;指向下一个单元DJNZR0,LOOP;是否结束END5.在MCS-51单片机系统中,外接程序存储器和数存储器共16位地址线和8位数据线,为何不会发生冲突?答:因为控制信号线的不同:外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE,分别与MCS-51的RD和WR引脚相连。外扩的EPROM在正常使用时只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,与MCS-51单片机的PSEN引脚相连。6.区分MCS-51单片机片外程序存储器和片外数据存储器的最可靠的方法是:(1)看其位于地址范围的低端还是高端(2)看其离MCS-51芯片的远近(3)看其芯片的型号是ROM还是RAM(4)看其是与RD信号连接还是与PSEN信号连接答:(4)7.在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的()端提供信号。答:(片选)8.请写出图8-18中4片程序存储器27128各自所占的地址空间。答:图中采用了译码法。4片程序存储器27128各自所占的地址空间分别为0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。9.起止范围为0000H~3FFFH的存储器的容量是()KB。答:(16)10.在MCS-51中,PC和DPTR都用于提供地址,但PC是为访问()存储器提供地址,而DPTR是为访问()存储器提供地址。答:PC是为访问(程序)存储器提供地址,而DPTR是为访问(数据)存储器提供地址。11.11根地址线可选(2KB)个存储单元,16KB存储单元需要(14)根地址线。答:若存储器的首地址均默认为0000H,则2KB的存储器需要11根地址线,地址为0000H-07FFH;4KB的存储器需要12根地址线,地址为0000H-0FFFH;8KB的存储器需要13根地址线,地址为0000H-1FFFH;16KB的存储器需要14根地址线,地址为0000H-3FFFH;32KB的存储器需要15根地址线,地址为0000H-7FFFH;64KB的存储器需要16根地址线,地址为0000H-FFFFH12.32KBRAM存储器的首地址若为2000H,则末地址为(9FFF)H。解:由上题总结得出,32KBRAM存储器的大小为0000H-7FFFH,所以只要将7FFFH加上2000H即得到正确答案。13.现有8031单片机、74LS373锁存器、1片2764EPROM和两片6116RAM,请使用它们组成一个单片机应用系统,要求:(1)画出硬件电路连线图,并标注主要引脚;(2)指出该应用系统程序存储器空间和数据存储器空间各自的地址范围。答:(1)电路图如下所示(2)2764的地址为C000H-DFFFH;第一个6116的地址为A000H-A7FFH;第二个6116的地址为6000H-67FFH;事实上,由于采用是线选法导致了地址不连续,地址空间利用不充分。U474LS373347813141718111256912151619D0D1D2D3D4D5D6D7OCGQ0Q1Q2Q3Q4Q5Q6Q7U28031313938373635343332212223242526272817162930EA/VPP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RDWRPSENALE/PU5HM611687654321232219182021910111314151617A0A1A2A3A4A5A6A7A8A9A10CSOEWED0D1D2D3D4D5D6D7U3276410987654325242123220222711112131516171819A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPPO0O1O2O3O4O5O6O7U6HM611687654321232219182021910111314151617A0A1A2A3A4A5A6A7A8A9A10CSOEWED0D1D2D3D4D5D6D714.使用89C51芯片外扩1片E2PROM2864,要求2864兼作程序存储器和数据存储器,且首地址为8000H。要求:(1)确定2864芯片的末地址;(2)画出2864片选端的地址译码电路;(3)画出该应用系统的硬件连线图。答:(1)2864为8KB存储器,如果首地址为8000H,则其末地址为9FFFH,理由参见12题;(2)电路图如下所示:P2.6N1U28031313938373635343332212223242526272817162930EA/VPP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RDWRPSENALE/PP2.6P2.7U174LS13812364515141312111097ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y7P2.7+5vP2.5P2.5(3)电路图如下所示:U474LS373347813141718111256912151619D0D1D2D3D4D5D6D7OCGQ0Q1Q2Q3Q4Q5Q6Q7N1U174LS13812364515141312111097ABCG1G2AG2BY0Y1Y2Y3Y4Y5Y6Y7U28031313938373635343332212223242526272817162930EA/VPP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RDWRPSENALE/PP2.6N1P2.7P2.7U3286410987654325242123220222711121315161718191A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEWED0D1D2D3D4D5D6D7READYP2.6+5vP2.5P2.5