ImageVerifierCode 换一换
格式:DOCX , 页数:54 ,大小:91.58KB ,
资源ID:3206501      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3206501.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课后习题及答案.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

微机原理课后习题及答案.docx

1、微机原理课后习题及答案第一章1-1 请说明CPU的功能以及CPU是如何执行指令和程序的。答:CPU的功能是执行程序和统筹处理计算机系统中各类事务。CPU执行指令分为3步:取指令、分析指令、执行指令;计算机程序是由一条条指令按一定的顺序排列组成的,CPU执行程序的过程就是一条条指令累计执行的过程,其方式分为串行作业方式和流水线作业方式。1-2 请说明单片机内部主要是由哪些部件组成的,并说明各部件的作用。答:CPU:由控制器和运算器构成,控制器的作用是执行指令和协调系统各部件的工作;运算器的作用是进行逻辑运算和算术运算。 存储器:存储计算机工作时使用的信息,即指令代码和数据代码。 I/O接口电路:

2、具有数据缓冲、数据隔离及数据转换的功能。1-3 请问对于容量位8K的存储器芯片,它的地址线是多少根?答:8K=8192=213,故地址线为13根。另附:存储器的数据线由存储器的字长决定,例如一块32K16(存储器容量显示格式:存储单元数存储单元的字长)的存储器,其地址线为15根,数据线为16根。1-4 将十进制数78,134,分别用二进制数、十六进制数和8421BCD吗表示。答:(78)D=(1001110)B=(4E)H=(01111000)8421BCD(134)D=(10000110)B=(86)H=(000100110100)8421BCD注:8421BCD码为4位表示一个十进制数符,

3、本质是符号不是数值,所以不可省略0。 1-5 将下列真值分别转化为用8位和16位二进制数表示的原码、补码和反码。X=1000100; X8位原=X8位反=X8位补=01000100;X16位原=X16位反=X16位补=0000000001000100X= -1000100X8位原=11000100,X8位反=10111011,X8位补=10111100;X16位原=1000000001000100,X16位反=111111*1,X16位补=111111*0;X= -0111111X8位原=10111111,X8位反=11000000,X8位补=11000001;X16位原=1000000000

4、111111,X16位反=1111111111000000,X16位补=1111111111000001;1-6 将下列补码转化成二进制数的真值。1-7 已知下列补码X补和Y补,分别求X+Y补、X-Y补。并判断运算结果是否出现溢出。X补=10011001, Y补=00101100; -Y补=11010100, X+Y补=X补+Y补=11000101不溢出;X-Y补=X补+-Y补=X补-Y补=01101101溢出;X补=11111111, Y补=10000000; -Y9位补=010000000, X+Y补=X补+Y补=01111111溢出;X-Y补=X补+-Y补=X补-Y补=01111111不

5、溢出;X补=00110111, Y补=11100000; -Y补=00100000, X+Y补=X补+Y补=00010111不溢出;X-Y补=X补+-Y补=X补-Y补=01010111不溢出;X补=10000111, Y补=11000000; -Y补=01000000, X+Y补=X补+Y补=01000111溢出;X-Y补=X补+-Y补=X补-Y补=11000111不溢出;方法提示:由于补码是按序列排列的,所以可以直接进行加和减,即X+Y补=X补+Y补;X-Y补=X补-Y补另补码减法也可用加法实现X-Y补=X补+-Y补。上题的第2小题,由于Y8位补=10000000=28,Y=-28,所以(-

6、Y)= 28,已不能用8位补码表示,可以先扩补位9位补码,然后进行运算,或直接用X-Y补= X补-Y补进行计算。判断结果是否溢出,可按下列方法:加法时,如果正负数相加(即两数的符号位不同),则结果肯定不溢出;如果同号数相加,结果与被加数和加数异号的则溢出(即正正相加结果为负或负负相加结果为正时)。减法时,如果同号数相减(即两数的符号位相同),则结果肯定不溢出;如果异号数相减,结果与被加数异号的则溢出(即正负相减结果为负或负正相减结果为正时)。此法比用变形补码直观,加和减都适用。第二章2-1 请说明单片机89C52内部有哪些资源。答:1个8位CPU、8KB的FLASH程序存储器、256B的SRA

7、M数据存储器、4个8位的并行I/O口(P0,P1,P2,P3)、1个全双工串行口、中断系统(5个中断源、2个中断优先级)、3个16位的定时/计数器(T0,T1,T2)、时钟电路(时钟频率624MHZ)。2-2 为什么51系列单片机的存储器系统采用哈佛结构。答:哈佛结构指的是指令代码和数据分别存放在程序存储器和数据存储器中,两部分存储器分别采用不同的地址总线系统。单片机在工作时一般执行固定不变的应用程序代码,而作为嵌入式控制系统的核心,受限于体积要求,单片机系统一般不会带有辅助存储器(例如硬盘等),为了在断电时也能保存用户的应用程序,故需将程序固化在只读存储器中,而单片机工作时程序运行过程中的数

8、据是变化的,所以需要放在随机访问存储器中。2-3 51单片机中的工作寄存器分布在存储器的哪个区域?答:分布在内部数据存储器的00H1FH区域。2-4 在51系列单片机中,工作寄存器分几个区?如何改变工作寄存器区? 答:分为0、1、2、3四个区。修改特殊功能寄存器PSW的RS1和RS0位可改变当前工作寄存器区。2-5 特殊功能寄存器和工作寄存器在存放信息方面有和区别?答:特殊功能寄存器(SFR)中存放的是一些专用信息,这些信息与下列内容有关:计算机指令的执行条件及状态标志,定时/计数器的使用控制、中断系统的使用、并行I/O及串行I/O接口的使用。 工作寄存器只是用于暂时存放指令执行过程中一般的被

9、操作数据。2-6 特殊功能寄存器的地址空间如何?答:特殊功能寄存器(SFR)的地址为8为二进制编码,地址范围为80H0FFH,但各特殊功能寄存器的地址并非连续分布的。指令通过直接寻址的方式才能访问到。2-7 51单片机中的位寻址区在哪里?它们的地址空间如何?答:51单片机的位寻址区分布在两个地方。一部分位于内部数据存储器中字节地址为20H2FH的16个单元中,这部分包括128个位,位地址空间为00H7FH;另一部分位于字节地址能被8整除的特殊功能寄存器中, 位地址空间为80H0FFH。2-8 请指出下列位地址所在的内部数据存储器单元的字节地址或SFR名称。答: 00H 内部RAM的20H单元;

10、(20H).020H 内部RAM的24H单元;(24H).00A0H P2;P2.00B0H P3;P3.064H 内部RAM的2CH单元;(2CH).4E6H 累加器ACC; ACC.6。提示:1) 内部数据存储器内的可寻址位,其位地址(00H7FH)与所在单元的字节地址(20H2FH)间的关系如下:位地址(字节地址20H)8DX, DX该位在字节单元中的位置(D0D7)位地址8,商20H字节地址,余数DX2) SFR中的可位寻址(位地址80H0FFH)的寄存器,其最低位的位地址与其字节地址相同。关系如下:位地址8,商*8SFR的字节地址,余数DX,DX该位在SFR中的位置(D0D7)2-9

11、 若某51单片机应用系统将F000HFFFFH地址空间分配给它外部的I/O接口,那么该单片机应用系统最多给外部数据存储器分配多少单元?地址空间如何?答:51单片机的外部I/O接口和外部数据存储器是统一编制的,占用同一个地址空间,地址空间的容量为64KB,地址范围为0000HFFFFH。据题意,系统已将F000HFFFFH地址空间分配给它外部的I/O接口,则只剩下0000HEFFFH可分配给外部数据存储器,容量为60KB。2-10 在图2-9中的电容C,如果它取值太小,对复位电路有何影响?答:51单片机上电复位,需要在RST引脚上保持10ms以上的高电平。如果C太小,则其充电时间变短,上电后,R

12、ST引脚上高电平保持的时间太短,则单片机内部复位将不能完全完成,有些寄存器内容将变得不确定。2-11 上电复位和人工按钮复位后对内部数据存储器具有什么不同的影响?2-12 51应用系统中,为何要对堆栈指针SP重新设置?答:复位后(SP)=07H,则堆栈是从08H开始存放数据的。而内部数据存储器中00H1FH单元为工作寄存器区,而20H2FH单元为位寻址区,在实际的应用系统中,这些区域都可能使用到。故一般将堆栈设置在地址30H以后的单元中,所以需要对堆栈指针SP重新设置。2-13 51单片机中的I/O接口中,那个接口在作为准双向口时需要外接电阻?若对某一接口进行读引脚的操作,必须事先对该接口做什

13、么操作?答:P0口需外接上拉电阻(因为P0是集电极开路结构)。若需对某个接口读引脚(即读取外部输入信号的状态),需要对该接口的口锁存器写入1(例如:若需要读取P1.0、P1.1、P1.2、P1.3的引脚状态时,需要先执行MOV P1, #0FH。这也是为什么复位后(P0)= (P1)=(P2)=(P3)=0FFH的道理。)第三章3-1 指令的格式是由哪些部分组成的?每部分的含义是什么?答:指令由操作码和操作数组成。在形式上操作码和操作数都是二进制代码。操作码用来表示指令的种类和功能,经由控制器中的指令译码器译码后产生控制信号。操作数是指令的操作对象,表示被操作数据或数据所在的存储单元地址。3-

14、2 什么是寻址方式?51系列指令系统有哪些寻址方式?答:指令中给出操作数的方式叫做寻址方式。51系列机给出的寻址方式一般有7中:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址(直接寻址的一个特例地址指向位单元)。3-3 对于内部数据存储器00H1FH区域的访问有哪些寻址方式?对于外部数据存储器的访问有哪些寻址方式?对于特殊功能寄存器的访问有哪些寻址方式?答:对于内部数据存储器00H1FH区域的访问有直接寻址、寄存器寻址、寄存器间接寻址三种方式。对于外部数据存储器的访问只有寄存器间接寻址一种方式(以DPTR或R0、R1为指针)。对于特殊功能寄存器的访问只有直接寻址一种

15、方式。同时对于内部数据存储器80H0FFH的128个单元的访问只有寄存器间接寻址一种方式(以R0、R1或SP为指针);借助于两种不同的寻址方式,可以将在地址上重合(80H0FFH)的SFR和内部RAM高128字节单元的两部分空间加以区分。3-4 51系列单片机有哪些标志位?这些标志位存放在哪里?答:51单片机在程序运行时通常需要一下标志位:Cy,AC,OV,P,RS1,RS0,它们都存放在特殊功能寄存器PSW(程序状态字寄存器)中。3-5 分析下列各指令的操作数,指出它们的寻址方式。MOV R4, 38H ;寄存器寻址,直接寻址ADD A, R1 ;寄存器寻址,寄存器间接寻址MOVC A, A

16、+DPTR ;寄存器寻址,变址寻址(又称基址寄存器加变址寄存器间接寻址)MOVX A, DPTR ;寄存器寻址,寄存器间接寻址DEC B ;直接寻址SETB 24H ;位寻址(直接寻址的一种,只是给出的直接地址是位地址)CJNE A, #100, NEXT ;寄存器寻址,立即寻址,相对寻址ANL 30H, #00H ;直接寻址,立即寻址PUSH P1 ;寄存器间接寻址(指针为SP,只是在堆栈操作指令中省略了),直接寻址堆栈操作除了用PUSH和POP指令,完全可以用其它指令来完成,举例如下:PUSH P1可用下列程序段完成INC SPMOV R0, SPMOV R0, P1 POP P1可用下列

17、程序段完成MOV R0, SPMOV P1, R0DEC SP提示:上题答案中按操作数先后顺序给出其对应的寻址方式。3-6 下列各指令或指令组执行前有关寄存器和存储器的状态如下表,要求分析各指令或指令组执行后有关寄存器、存储器和标志位的状态。内部数据存储器和特殊功能寄存器外部数据存储器程序存储器寄存器名内容单元地址内容单元地址内容单元地址内容程序计数器内容B64H73H10H900BH12H1206H35H(PC)=1200HACC03H72H11H900AH83H1205H34HPSW80H71H00H9009HD1H1204H33H标号及标号值DPL05H70H80H9008H79H120

18、3H32HNEXT1=0800HDPH90H9007H0CH1201H31HNEXT2=0900HSP71H36HF8H9006H23H1200H30HNEXT3=1280HR000H35H2BH9005H13HLOOP=1148HR136H34H36H9004H4DHR235H33H74H9003H2EHR3B7H32H59H9002H7FHR403H9001H54HR5F6H26H66H9000H38HR6E4H25H55HR721H24H44HP07CHP290H提示:在上表中需注意几点:(PSW)=80H,即Cy=1, AC=0, RS1=RS0=0(故当前工作寄存器区为0区)。工作寄

19、存器区为0区时,R0R7指向内部数据存储器的00H07H,所以当指令中出现直接地址00H07H中的某个时,其初始条件即为R0R7中某个对应的寄存器的值。另,因为(DPH)=90H, (DPL)=05H, 所以(DPTR)=9005H。标号值实质上是代表标号所在处的指令在程序存储器中的地址,标号往往出现在程序转移指令中,指出转移指令的目标地址。1)MOV R0,#32; (R0)=32=20H2)MOV 25H,R1; (25H)= 0F8H3)MOVX A,DPTR; (A)= 13H P=14)MOVX A,R0; (A)= 38H P=15)MOVC A,A+PC; (A)= 33H P=

20、06)MOV A,04H; (A)= 03H P=07)XCH A,34H; (A)= 36H (34H)= 03H8)XCHD A,R1; (A)= 08H (36H)=0F3H9)PUSH DPL; (SP)=72H (72H)=05H10)POP DPH; (DPH)=00H (SP)=70H11)SUBB A,R1; (A)= 0CCH Cy=1 P=0 AC=1 OV=012)ADD A,R6; (A)= 0E7H Cy=0 P=0 AC=0 OV=013)ADDC A,36H; (A)= 0FCH Cy=0 P=0 AC=0 OV=014)MUL AB; (A)= 2CH (B)=

21、01H15)INC R0; (R0)= 01H 16)DEC A; (A)= 02H P=117)ADD A,#49H;DA A; (A)=52H Cy=0 P=118)ANL A, R1; (A)= 02H (R1)=36H P=119)ORL A,32H; (A)= 5BH P=120)ORL 26H,#35H; (26H)=77H P=021)XRL A,R0; (A)= 03H P=022)XRL A, ACC; (A)=0 P=023)XRL A,#0FFH; (A)= 0FCH P=024)CPL A; (A)=0FCH P=025)RL A; (A)=06H Cy=126)RRC

22、 A; (A)=81H Cy=127)MOV C,(25H).2; Cy=128)MOV F0,C; (PSW)=0A0H29)SETB RS0; (PSW)=88H30)CLR C; (PSW)=031)ANL C,(24H).0 Cy=032)JZ NEXT1; (PC)=1202H33)JC NEXT2; (PC)= 0900H34)CJNE A, 25H, NEXT3; (PC)= 1280H Cy=135)DJNZ R7,LOOP; (PC)= 1148H (R7)=20H36)LCALL 1800H; (PC)=1800H (SP)=73H (72H)=03H (73H)=12H3

23、7)RET; (PC)=0080H (SP)=6FH 38)ANL C, /32H; Cy=0 (32H)=1 ,提示此处32H为位存储器39)STOP: JBC P0.3, STOP; (PC)=1200H (P0)=74H 40)JNB P0.4, NEXT1; (PC)=1203H红色部分为附加题,答案就在本期内找_,看看你们的本事了,哈哈哈哈3-7分析下列程序段的功能。1)MOV A, R3MOV R4, A功能:将R3中的内容送入R4,即(R3)R42)MOV A, R5CPL AMOV R5, A功能:R5中的数据按位取反后送回R53)MOV A, R4MOV B, R5DIV A

24、BMOV R4, BMOV R5, A功能:R4中的数除以R5中的数,结果商送入R5,余数送入R44)MOV C, P1.1ANL C, P1.2ANL C, /P1.3MOV P1.6, C功能:P1.1P1.2P1.65)MOV C, 0ORL C, 1MOV F0, CMOV C, 2ORL C, 3ANL C, F0MOV P1.7, C功能:(20H).0(20H).1) (20H).2(20H).3) P1.7 6)CLR CMOV A, R4RLC AMOV R4, AMOV A, R3RLC AMOV R3, A功能:R3、R4中的内容左移一位,R4最低位移入0,R4最高位移入

25、R3最低位,R3最高位移出至Cy。7)CLR CMOV A, R5RLC AADD A, R5MOV R5, A功能:8)CLR AMOV R0, AMOV R7, ALOOP: MOV R0, AINC R0DJNZ R7, LOOPSTOP: SJMP STOP功能:将内部数据存储器00H0FFH 256个单元全部清零。9)PUSH ACCPUSH BPOP ACCPOP B功能:利用堆栈将ACC与B中的内容互换,即(ACC)(B)10)MOV R0, #30HXCHD A, R0SWAP AINC R0XCHD A, R0SWAP AMOV 40H , A功能:将ACC的低四位送入30H

26、单元低四位,ACC的高四位送入31H的低四位,而原先30H单元的低四位送入40H单元的低四位,原31H单元的低四位送入40H单元的高四位。举例说明如下,设程序段运行前有(ACC)=12H,(30H)=34H,(31H)=56H;则程序段运行后有(30H)=32H,(31H)=51H, (ACC)= (40H)=64H3-8 指出下列指令中哪些是合法指令,哪些是非法指令。MOV P1, R4 ;合法MOV R2,R4 ;非法CLR R3 ;非法RLC R5 ;非法MOV 30H, 31H ;合法MOV 00H, P ;非法ORL 40H, R7 ;非法PUSH R6 ;非法POP R0 ;非法I

27、NC DPTR ;合法注:常见的错误还有类似:MOV R0, C; ADD 30H,31H; MOV A, R5; DEC DPTR等,编程时切记勿错!3-9 按要求编制下列各程序段。将内部数据存储器30H和31H单元的内容互换。 比较法一、法二的优缺点,你认为哪个方法更好?将寄存器R7的内容向右循环移位一次。XCH A, R7RR AXCH A, R7将寄存器R3的内容乘以4(结果不超出8为二进制数的范围)。法一:MOV A, R3MOV B, #4MUL ABMOV R3, A 法二:XCH A, R3RL ARL AXCH A, R3将寄存器DPTR的内容减1。法三:(DPH)(DPL)

28、+0FFFFHDPTRXCH A, DPLADD A, #0FFHXCH A, DPL XCH A, DPHADDC A, #0FFHXCH A, DPH比较以上各方法,其中法三利用了-1的补码是0FFFFH的原理,将减法改为了加法。将寄存器R6的内容压入堆栈(设寄存器工作在3区)PUSH 1EH将R4, R5寄存器连接起来循环右移一位。(设R4为高8位,R5为低8位;执行完后R4R5中的内容右移一位,R4的最低位移入R5的最高位,同时R5的最低位移入R4的最高位)XCH A, R4 ;将R4中的内容送入ACC,同时将ACC的内容放入R4中暂存。RRC A ;ACC中原先R4的内容右移一位,同

29、时Cy移入最高位,而原先R4的最低位移入Cy位XCH A, R5 ;R5中的内容送入ACC,上一步中产生的ACC的内容送入R5暂存RRC A ;ACC中原先R5的内容右移一位,Cy(即原R4的最低位)移入最高位,而原R5的最低位移入Cy位XCH A, R5 ;将结果送入R5(R5移位已完成),同时将第三步暂存在R5中的内容取出。MOV ACC.7, C ;将Cy位中存放的原R5的最低位送入ACC的最高位(即送入R4的最高位)XCH A, R4 ; 将结果送入R4,同时取出ACC原来的值第四章4-1 用伪指令将下列常数依次定义在1600H为首地址的程序存储器中。 0,1,4,9,16,25,36,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2