单片机原理与接口技术课后答案(段晨东主编)详尽版.docx_第1页
单片机原理与接口技术课后答案(段晨东主编)详尽版.docx_第2页
单片机原理与接口技术课后答案(段晨东主编)详尽版.docx_第3页
单片机原理与接口技术课后答案(段晨东主编)详尽版.docx_第4页
单片机原理与接口技术课后答案(段晨东主编)详尽版.docx_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 复习思考题答案一、选择题1:B2:C3:B4:A5:B6:D7:D8:C9:B10:B二、思考题1. 简述微型计算机的组成和工作原理。微型计算机主要由微处理器CPU、存储器、输入设备和输出设备组成。当使用计算机解决某个具体问题时,首先,根据解决问题的方案,编写出一系列解决这个问题的程序;然后,把程序输入到计算机中,命令计算机按照这些事先拟定步骤顺序执行。CPU包括控制器和运算器。CPU是计算机中最重要的部件,由它实现程序控制、操作控制、时序控制、数据加工、输入与输出控制、对异常情况和请求的处理等等。存储器是计算机中的记忆部件,用来存储编写的程序,存放程序所用的数据以及产生的中间结果。由输入设备把程序和数据送入计算机内部的“存储器”中保存,程序处理完毕把结果通过“输出设备”输出,以便人们识别。接通电源后,CPU会自动地从存储器中取出要执行的程序代码,通过译码解析出代码所赋予的功能,如果进行数据运算,则从存储器中提取运算所需要的数据,再进行运算操作,并把运算结果存储到程序指定的存储区域,结束本次执行操作;如果执行转移操作,则提取程序代码中的转移信息,计算出程序转移的目标地址,然后跳转。紧接着,CPU再从存储器中提取下一次要执行的代码,不断地重复上述操作过程。2. 简述单片机在结构上与微型计算机的区别与联系。微型计算机是以微处理器为基础,配以内存储器及输入输出(I/0)接口电路和相应的辅助而构成。单片机是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等集成到一块芯片上的微型计算机。3. 单片机与微处理器有什么不同?单片机也称微控制器,它集成CPU、ROM、RAM、存储器、I/O口等,而微处理器是是CPU,它仅集成了运算器和控制器,没有存储器和接口。4. 把下列十进制数转换为二进制数、八进制和十六进制数。(1)32768(2)23.156(3)-56.8125(4)59解:(1)(32768)10=(1000000000000000)2=(100000)8=(8000)16(2)(23.156)10=(10111.00100111)2=(27.116)8=(17.27)16(3)(-56.8125)10=(-111000.1101)2=(-70.64)8=(-38.D)16(4)(59)10=(111011)2=(73)8=(3B)165. 把下列二进制数转换为十进制数、十六进制数:(1)10001010111 (2)10110.11101解:(1)(10001010111)2 =(1111)10=(457)16(2)(10110.11101)2=(22.90625)10=(16.E8)166. 求下列数据的原码、反码、补码(以8位表示)(1)73(2)23(3)1(4)109解:(1)73原=0100101173反=0100101173补=01001011(2)23原=0001011123反=0001011123补=00010111(3)-1原=10000001-1反=11111110-1补=11111111(4)-109原=11101101-109反=10010010-109补 =100100117. 求下列数据的原码、反码、补码(以16位表示)(1)-12137(2)0(3)-1(4)23679解:(1)-12137原=1010111101101001 -12137反=1101000010010110 -12137补=1101000010010111(2)+0原=0000000000000000+0反=0000000000000000+0补=0000000000000000-0原=1000000000000000-0反=1111111111111111+0补=0000000000000000(3)-1原=1000000000000001 -1反=1111111111111110 -1补=1111111111111111(4)+23679原=0101110001111111=+23679反=+23679补8. 把下列十进制数转换为二进制、十六进制数,并把它们用BCD码表示:(1)128 (2)7891 (3)819 (4)21解:(1)(128)10=(1000 0000)2=(80)16=(0001 0010 1000)BCD(2)(7891)10=(1111011010011)2=(1ED3)16=(0111 1000 1001 0001)BCD(3)(819)10=(1100110011)2=(333)16 =(1000 1001 0001)BCD(4)(21)10=(10101)2=(15)16=(0010 0001)BCD9. 写出下列数据的定点小数和浮点数,定点小数的小数部分为1个字节,浮点数为3字节浮点数格式。(1)76.25 (2)3789(3)32767(2)1.109375解:(1)定点数11001100.00100000浮点数87 98 40H(2)定点数111011001101.00000000浮点数0C EC D0H(3)定点数1111111111111111浮点数8F FF FEH(4)定点数0001.00011011浮点数01 8D 80H10请把下列字符串用ASCII码表示。(1)WWW.CCTV.COM(2)Wo123_Password: 0解:(1)57 57 57 2E 43 43 54 56 2E 43 4F 4D(2)57 6F 31 32 33 5F 50 61 73 73 77 6F 72 64 3A 30第二章 复习思考题答案一、选择题1: B 2: B 3: A 4: D 5: C 6: C 7: A 8: B 9: B 10:B11:B 12:D 13:B14:A 15:B 16:C 17:B 18:C 19:C 20:B21:C 22:D 23:C 24:C 25:B 26:A27:A 28:D 29:D 30:C31:A 32:B 33:C 34:D 35:B 36:D 37:A 38:A 39:B 40:C二、简答题1. MCS-51单片机芯片包含哪些主要逻辑功能部件?各有什么功能?中央处理器CPU:完成运算和控制操作。存储器:内部数据存储器RAM用于存放程序的机器代码和常数;内部程序存储器用于存放可读写的数据。特殊功能寄存器用于存放相应功能部件的控制命令、状态和数据。并行口:P0P3除了可以作为基本的I/O功能之外,P3口的第二功能还提供了串行口、外部中断、外部计数等功能以及访问外部数据存储器和外部I/O口的控制信号。串行口:用于串行通信。定时/计数器:2个16位定时器/计数器,具有多种工作模式,用于计数、定时和产生串行通信的波特率。中断系统:单片机有5个中断源,分别为2个外部中断、2个定时器/计数器溢出中断、1个串行口接收/发送中断,提供2个中断优先级。实现实时控制等。2. MCS-51的控制总线信号有哪些?它们各起什么作用?ALE地址锁存控制信号,输出。ALE用于锁存地址总线的低八位。该信号频率为振荡器频率的1/6,可作为外部定时或时钟使用。外部程序存储器读选通信号,输出,为低电平时,CPU从外部程序存储器的单元读取指令。内、外程序存储器选择控制端,输入,当接地(0)时,CPU对程序存储器的操作仅限于单片机外部。当接高电平(1)时,CPU对程序存储器的操作从单片机内部开始,并可延伸到单片机的外部。RESET复位信号。在RESET引脚上保持2个机器周期以上的高电平,单片机复位。3. MCS-51单片机的信号有什么功能?在使用8031时,引脚应如何处理?为内、外程序存储器选择控制端,当接地(0)时,CPU对程序存储器的操作仅限于单片机外部。当接高电平(1)时,CPU对程序存储器的操作从单片机内部开始,并可延伸到单片机的外部。8031无片内ROM,所以必须接地。4. 程序计数器PC的作用是什么?程序计数器PC是一个16位的寄存器,用来存放下一条即将执行指令的地址。CPU每取一次机器码,PC的内容自动加1,CPU执行一条指令,PC的内容自动增加该指令的长度(指令的字节数)。CPU复位后,PC的内容为0000H,它意味着程序从头开始执行。5. MCS-51单片机有哪些控制信号需要芯片引脚以第二功能的方式提供?(1)串行口:P3.0作为串行口数据的接收端RXD;P3.1作为串行口数据的发送端TXD;(2)外部中断触发信号的输入P3.2作为外部中断的中断触发信号的输入端;P3.3作为外部中断的中断触发信号的输入端;(3)外部计数脉冲的输入端P3.4作为定时/计数器T0外部计数信号的输入;P3.5作为定时/计数器T1外部计数信号的输入;(4)访问外部RAM的读写控制信号P3.6作为外部数据存储器写控制信号;P3.7作为外部数据存储器读控制信号6MCS-51单片机的存储器地址空间如何划分?各个空间的地址范围和容量是多少?MCS51单片机的存储器地址空间可分为以下5类:程序存储器,最大空间64K;片内数据存储器,128个单元;特殊功能寄存器,共21个;位寻址空间,211位;外部数据寄存器,最大空间64K。7简述内部RAM的功能分区?说明各部分的使用特点。片内RAM分为3个区域:(1)001FH:32个单元为工作寄存器区,包含4个工作寄存器组。(2)202FH:16个单元为位寻址区。CPU可以对每一位按位地址直接操作。(3)307FH:80个单元为数据缓冲区。数据缓冲区作为数据缓冲、数据暂存、作为堆栈区使用;这些单元只能按单元访问。8如何选择MCS-51单片机的当前工作寄存器组?单片机当前工作寄存器组是由程序状态寄存器PSW中的RS1、RS0的状态决定:当RS1、RS0=00时,选择工作寄存器组0区,R0R7对应单元地址为00H07H;当RS1、RS0=01时,选择工作寄存器组1区,R0R7对应单元地址为08H0FH;当RS1、RS0=10时,选择工作寄存器组2区,R0R7对应单元地址为10H17H;当RS1、RS0=11时,选择工作寄存器组3区,R0R7对应单元地址为18H1FH;9堆栈有哪些功能?堆栈指针SP是多少位的寄存器?SP的作用是什么?在应用系统程序设计时,为什么要对SP重新赋值?堆栈的功能是保护CPU执行程序的现场(如子程序调用、中断调用等);堆栈指针SP是8位寄存器;其作用是指出栈顶位置;对SP重新赋值是为了避免堆栈向上生成时覆盖所存储的有效数据和标志,一般情况下,把堆栈区设在30H单元之后的区域。10MCS-51单片机有多少个可以寻址的特殊功能寄存器(SFR)?简要介绍它们的功能。共21个,其中与CPU相关的有:ACC,B,PSW,SP,DPTR(DPH,DPL)。与并行I/O口相关的有:P0,P1,P2,P3。与串行口相关的有:SCON,SBUF,PCON。与定时器/计数器相关的有:TCON,TMOD,TH0,TL0,TH1,TL1。与中断系统相关的有:IP,IE。B寄存器,用于乘除法运算,其他情况作为缓冲寄存器使用;ACC:累加器,用于算数运算,逻辑运算,移位运算以及传送运算;PSW:程序状态寄存器,用于反映累加器ACC参与运算时的一些特征,指出当前工作寄存器组;DPTR可作为访问外部RAM的地址指针或作为访问程序存储器的基地址寄存器。堆栈指针SP指出栈顶位置;P0P3作为 I/O口,P0和P2还可以作为地址和数据总线,P3可提供第二功能。中断优先级寄存器IP用于设置中断源的优先级;中断控制寄存器IE控制中断开放和禁止,串行口控制寄存器SCON用于定义串口工作方式,控制数据的接收和发送,记录工作状态标志。:定时/计数器控制寄存器TCON记录中断标志,控制定时/计数器。11在MCS-51单片机中,CPU对特殊功能寄存器(SFR)访问有什么特点?CPU访问这些SFR只能采用直接寻址方式,即按单元地址访问的模式。12简单说明MCS-51单片机PSW寄存器各个标志位的意义。Cy进位位。在运算过程中,最高位D7有(借)进位时,(Cy)=1,否则,(Cy)=0;AC辅助进位位。用于十进制数(BCD)运算。在运算过程中,当D3向D4位(即低四位向高四位)进(借)位时,(AC)=1,否则,(AC)=0;OV溢出标志位。在运算过程中,对于D6、D7两位,如果其中有一位有进(借)位而另一位无进(借)位时,(OV)=1,否则,(OV)=0;P奇偶校验位。运算结束时,如果ACC中1的个数为奇数,(P)=1,否则,(P)=0。F0用户标志位,用户在编程时可作为自己定义的测试标志位。RS0、RS1寄存器组选择位,选择当前工作寄存器组。13简述MCS-51单片机的位寻址空间的构成?由两部分构成,一部分是内部RAM位寻址区20H2FH单元的128位,位地址范围为00H7FH,另一部分是11个单元地址尾数为0和8的SFR构成的位寻址区,共83位,位地址范围为80HFFH。14MCS-51单片机的P0P3口在结构上有何不同?在使用上各有什么特点?MCS51系列单片机的P0P3并行口在结构上基本相同,每个并行口包含1个锁存器(特殊功能寄存器P0P3)、1个输出驱动器和1个输入缓冲器。P0当作为通用的I/O口使用时,输出电路是漏极开路的,因此,需要外接上拉电阻。另外,用作输入时,应先向输出口的锁存器写1,然后再读相应的引脚。P0可用作地址/数据总线,口的每位输出可以驱动8个TTL负载。P1、P2、P3口的输出电路含有内部上拉电阻,口的每一位能驱动4个TTL负载,在作为输入口时,必须先对相应的锁存器写1,即进行设置输入口的操作。15把P1.4作为输入,外接一个开关,如果要读取开关的状态,如何操作?当将P1.4作为输入之前,必须先向锁存器写入1,当P1.4输入数据时,“读引脚”信号有效,打开输入缓冲器,使数据进入内部总线,完成P1.4输入。16MCS-51单片机的时钟电路有几种实现方式?请分别给出相应的电路。两种方式,内部方式和外部方式。内部方式利用单片机芯片上提供的反相放大器电路,在XTAL1,XTAL2引脚之间外接振荡源构成一个自激振荡器,自激振荡器与单片机内部时钟发生器构成单片机的时钟电路;如图1.1所示。外部方式实现单片机的时钟电路时,单片机的时钟直接由外部时钟信号源提供,即单片机使用外部振荡器。如图1.2所示。17什么是时钟周期、机器周期和指令周期?如何计算机器周期?晶振频率为12MHz时,计算时钟周期、机器周期。时钟周期:振荡器信号的周期。机器周期:CPU完成一个基本操作所用的时间。指令周期:执行一条指令需要的时间。计算公式:,其中为晶振频率。当晶振频率为=12MHZ时,时钟周期:。机器周期:TM=1。18:MCS-51单片机的复位条件是什么?在应用系统设计时,实现单片机的复位有几种方法?请给出相应的电路原理图。单片机复位条件是在单片机RESET引脚上保持2个机器周期以上的高电平。有两种复位方式,上电自动复位电路,如图1.3所示;按钮开关及上电自动复位电路,如图1.4所示; 图1.3 上电自动复位电路 图1.4 按钮开关及上电自动复位电路19简述MCS-51单片机复位后的状态。单片机复位后,程序计数器PC内容为0000H;累加器A、B寄存器、数据指针DPTR被清0;程序状态字寄存器PSW的内容为00H,P0P3寄存器中所有的位被置1,I/O口P0P3的锁存器内容为0FFH;除了串行口数据缓冲器SBUF的内容不确定外,其他与定时器/计数器、中断系统、串行口有关的特殊功能寄存器(SFR)中的有效位为全部被清0。20MCS-51单片机运行出错或程序进入死循环时,采用强制复位摆脱困境。在这种情况下,单片机内部RAM和特殊功能寄存器(SFR)的状态与复位前相比有什么变化?在单片机由于某种原因被强制复位时,内部RAM单元的内容不会受复位的影响,会保持复位以前的状态。对于位寻址空间来说,单片机工作过程中的强制复位,不会影响位于内部RAM的202FH单元中的位的状态,而SFR中的可寻址位却被遗失了。特殊功能寄存器A、B、DPTR被清0;PSW的内容为00H,P0P3寄存器中所有的位被置1,I/O口P0P3的锁存器内容为0FFH;除了串行口数据缓冲器SBUF的内容不确定外,其他与定时器/计数器、中断系统、串行口有关的特殊功能寄存器(SFR)中的有效位为全部被清0。第三章复习思考题答案一、选择题1. B2. D3. D4. C5. A6. A7. D8. E9. B 10.C11.D12.C 13.A 14.B 15.A 16.C 17.C 18.D 19.D 20.A 21.C 22.B 23.C 24.B 25:B 26.D 27.A 28.B 29.D 30.C二、思考题1. 寻址方式是CPU执行指令时获取操作数的方式。MSC-51单片机有7种不同的寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、位寻址和相对寻址。2. (A) = 25H,(R0) = 50H,(50H)= 00H,(51H)= 25H3. (DPTR)=25F0H4. (A)= 30H,(B)= 20H5. (A)=80H6. XCH:字节交换指令,将源操作数与A累加器的内容互换,源操作数必须是工作寄存器、SFR或内部RAM的存储单元。XCHD:半字节交换指令,把指定单元内容的低4位与累加器A的低4位互换,而二者的高4位保持不变。SWAP:高低四位互换指令,将累加器A的高4位和低4位互换。7. MOVC A,A+DPTR:常数所在存储单元的地址由DPTR和累加器A的内容之和确定。常数表可以放在程序存储器64K的任何区域,最大长度可以是64KB。MOVC A,A+PC:常数所在存储单元的地址由程序计数器PC和累加器A的内容之和确定。常数表紧随该指令存放,最大长度不能超过256个字节。8. 1030H9. 8140H10. (SP)=62H,60H单元内容不变,(61H)=30H,(62H)=70H11. (SP)=60H,60H单元内容不变,(61H)=50H,(62H)=7AH,(DPTR)=7A50H12. (A)= 34H,(Cy)= 1,(AC)= 1,(OV)= 1,(P)= 113. (A)= 83H,(Cy)= 1,(AC)= 1,(OV)=0,(P)= 114. (A)=00H,(R3)=10H,(30H)=F1H,(R0)=01H15. (A)=23H,(Cy)=116. 20H、30H和31H单元进行了加法运算,结果存放在31H单元17. ADD:不带进位位的加法指令。ADDC:带进位位的加法指令。18. DA:其功能就是在用加法指令完成BCD码加法运算之后,对运算结果进行处理,把运算结果转换为BCD码形式。使用方法:必须与加法指令联合使用; 19. (A)=0EH,(R7)=18H,(30H)=0FFH,(R1)=40H,(41H)=0FDH20. 20H和30H单元参与减法运算,程序的结果存储在2FH单元。21. (A)= 00H, (B)= 32H,(Cy)=0 ,(OV)=122. (A)=0DH,(B)=11H,(Cy)=0, (OV)=023. 0CBH24. (1) (A)=00H,(R5)=0AAH (2) (A)=0FFH,(R5)=0AAH (3) (A)=0FFH,(R5)=0AAH25. 26. LCALL指令在调用前,先把下一条指令的地址推入堆栈保留,以便执行子程序返回指令RET时能找到返回地址,实现正确返回;而转移指令LJMP指令不需要保护返回地址。27. 转移到REDO处28. 当ACC.7为1时,执行JB指令程序转移到LABEL处,执行JBC指令程序转移到LABEL处并将ACC.7淸0。29. RET:子程序返回指令, 子程序的最后一条指令必须是RET,它标志子程序结束。RETI:中断返回指令,令专用于中断处理程序,是中断处理结束的标志。RETI指令与RET指令的区别在于RETI指令在实现中断返回的同时,重新开放中断使CPU能够接收同优先级的另外一个中断请求。30. ,执行时间为:1+125+2=753ms三、程序设计1. 把内部RAM的20H、21H、22H单元的内容依次存入2FH、2EH和2DH中。MOV 2FH,20HMOV 2EH,21HMOV 2DH,22H2. 把外部RAM的2040H单元内容与3040H单元内容互换。方法一:MOV DPTR,#2040HMOVX A,DPTRMOV 20H,AMOV DPTR,#3040HMOVX A,DPTRMOV 21H,APUSH 20HPUSH 21HPOP 20HPOP 21HMOV DPTR,#2040HMOV A,20HMOVX DPTR,AMOV DPTR,#3040HMOV A,21HMOVX DPTR,A方法二:MOV DPTR,#2040HMOVX A,DPTRMOV 20H,AMOV DPTR,#3040HMOVX A,DPTRXCH A,20HMOVX DPTR,AMOV DPTR,#2040HMOV A,20HMOVX DPTR,A3. 把内部RAM的40H单元与5000H单元的低四位互换。MOV DPTR,#5000HMOVX A,DPTRMOV R1,#40HXCHD A,R1MOVX DPTR,A4. 已知一个2维数据表格如下,存储在程序存储器中,编程实现自动查表。X012340B0C0D0E0FY111201ADDDAB244B7CAA MOV DPTR,#5000HMOVC A,A+DPTRRET5000H DB 11H5001H DB 12H5002H DB 01H.500EH DB 7CH500FH DB AAH5. 已知二进制数X和Y,X被存放在20H(高8位)和21H(低8位)单元,Y被存放在22H,编程实现下XY。MOV A,21HADD A,22HMOV 25H,AMOV A,20HADDC A,#00HMOV 24H,AMOV A,#00HADDC A,#00HMOV 23H,A6. 已知二进制数X和Y,X被存放在20H(高8位)、21H、22H单元,Y被存放在30H(高8位)、31H、32H单元,编程实现下XY。MOV A,22HADD A,32HMOV 32H,AMOV A,21HADDC A,31HMOV 31H,AMOV A,20H ADDC A,30HMOV 30H,AMOV A,#00HADDC A,#00HMOV 2FH,A7. 已知8位十进制数X和Y以压缩BCD的格式存储,X被存放在20H23H单元,Y被存放在40H43H,编程实现下XY。MOV R0, #20H MOV R1, #40H MOV A, R0ADD A, R1DA AMOV 10H, A INC R0 INC R1MOV A, R0ADDC A, R1DA AMOV 11H, AINC R0 INC R1MOV A, R0ADDC A, R1DA AMOV 12H, AINC R0 INC R1MOV A, R0ADDC A, R1DA AMOV 13H, A MOV A, #00ADDC A, #00 MOV 14H, A8. 已知二进制数X和Y,X = 6F5DH,Y = 13B4H,编程求XY。MOV 21H,#5DHMOV 20H,#6FHMOV 23H,#0B4HMOV 22H,#13HMOV R0, #21H MOV R1, #23H MOV A, R0CLR CySUBB A,R1MOV R0,A DEC R0 DEC R1MOV A,R0SUBB A,R1MOV R0,A9. 已知二进制数X和Y,已知X被存放在20H(高8位)、21H和22H单元,Y被存放在22H,编程实现下XY。MOV A,22HCLR C SUBB A,32HMOV 22H,AMOV A,21HSUBB A,#00HMOV 21H,AMOV A,20HSUBB A,#00HMOV 20H,A10. 已知二进制数X和Y, X被存放在20H23H单元,Y被存放在30H33H单元,编程实现下XY。MOV A,23HCLR CSUBB A,33HMOV 23H,AMOV A,22HSUBB A,32HMOV 22H,AMOV A,21HSUBB A,31HMOV 21H,AMOV A,20HSUBB A,30HMOV 20H,A11. 已知十进制数X和Y以压缩BCD码的格式存储,X被存放在20H(高位)和21H单元,Y被存放在22H和23H单元,编程实现下XY。MOV A, #9AHCLR C SUBB A, 23H MOV 23H, AMOV A, #9AHCLR C SUBB A, 22H MOV 22H, AMOV A,21HADD A, 23HDA A MOV 23H, A MOV A,20HADDC A, 22HDA A MOV 22H, A12. 已知二进制数X被存放在20H,编程实现下X3。MOV A, 20HMOV B, 20H MUL ABMOV 21H, A MOV 22H, BMOV A, 21H MOV B, 20H MUL ABMOV 23H, A MOV 24H, BMOV A, 20HMOV B, 22HMUL ABMOV 25H, AMOV 26H, BCLR CMOV A, 24HADD A, 25HMOV 24H, AMOV A, 26HADDC A, #0MOV 25H, A13. 已知二进制数X被存放在20H(高8位)21H、22H单元,Y被存放在30H单元,编程实现下XY。MOV A,22HMOV B,30HMUL ABMOV 22H,AMOV 23H,BMOV A,21HMOV B,30HMUL ABMOV 24H,AMOV 25H,BMOV A,20HMOV B,30HMUL ABMOV 26H,AMOV 27H,BMOV A,23HADD A,24HMOV 23H,AMOV A,25HADDC A,26HMOV 24H,AMOV A,27HADDC A,#00HMOV 25H,A14. 二进制数X被存放在20H(高8位)21H单元,用移位方法实现2X。MOV A, 21HCLR CRLC AMOV 21H, AMOV A, 20HRLC AMOV 20H, ACLR ARLC AMOV 19H, A15. 4位十进制数X以压缩BCD的格式存储在内部RAM中,编程实现X乘以10。MOV R1, #20HSCALL BCD2BMOV 30H, R7MOV 31H, R6MOV A, 31HMOV B, #10MUL ABADD A, 30HMOV 30H, AMOV A, BADDC A,#00MOV 31H, AMOV R1, #21HSCALL BCD2BMOV 32H, R7MOV 33H, R6MOV A, 33HMOV B, #10MUL ABADD A, 32HMOV 32H, AMOV A, BADDC A,#00MOV 33H, ABCD2B:MOV A, #0XCHD A, R1MOV R7, AMOV A, R1SWAP AMOV R6, ARET16. 二进制数X被存放在20H(高8位)21H单元,用移位方法实现X/2。MOV A, 20HCLR CRRC AMOV 20H, AMOV A, 21HRRC AMOV 21H, A17. 4位十进制数X以压缩BCD的格式存储在内部RAM中,编程实现X/10,并把小数部分存储在R6中。MOV 22H,#4REL:MOV A,21HCLR CRRC AMOV 21H,AMOV A,20HRRC AMOV 20H,ADJNZ 22H,RELMOV R6,CRET18. MOV A,21H XRL A,#FFH MOV 21H,AMOV A,20H XRL A,#7FH MOV 20H,A MOV A,21H ADD A,#01H MOV 21H,A MOV A,20H ADDC A,#00HMOV 20H,A19. MOV DPTR,#JMP_TABLEMOV A,XJMP A+DPTR JMP_TABLE: AJMP PROG1AJMP PGOG2AJMP PGOG3AJMP PGOG420. X EQU 20HY EQU 21HZ EQU 22HMOV A, XCLR CSUBB A, YJC LOOPMOV A, XCLR CSUBB A, ZJC LOOP1MOV 50H, XJMP RRETLOOP:MOV A, YCLR CSUBB A, ZJC LOOP1MOV 50H, YJMP RRETLOOP1:MOV 50H, ZRRET:RET21. MOV R0, #20HMOV DPTR, #2000HMOV R1, #16LOOP: MOV A, R0MOVX DPTR, AINC R0INC DPTRDJNZ R1, LOOPRET22. MOV A, 5FHRR AXRL A, 5FHMOV 5FH , A23. MOV C,P3.3ORL C,P1.2ANL C,P1.1MOV 20H.0,CMOV C,28H.1ANL C,/2EH.0CPL CMOV 21H.0,CMOV C, 20H.0ORL C,/TFOORL C,21H.0MOV P1.5,C24. MOV R0, #20HMOV R1, #100CLR R7 MAIN: MOV A, R0CLR CSUBB A, #65HJZ LOOP1INC R0DJNZ R1, MAINRET LOOP: INC R7INC R0DJNZ R1, MAINRET25. MOV R0, #10HMOV R7, #50MOV R1, #50HMAIN:MOV A, R0JNB ACC.0 , LOOPAJMP LOOP1LOOP: MOV R1,A INC R1LOOP1:INC R0DJNZ R7, MAINRET26.MOV 20H,#7MOV R5,#00MOV R6,#00MOV DPTR,#3000HMOVX A,DPTRLOP:JNB ACC.0 LOOPINC R6RR A AJMP LOOP1LOOP:INC R5RR ALOOP1:DJNZ 20H, LOPRET27. MOV R1, 20HSCALL EXCHMOV 30H, R6MOV 31H, R7MOV R1, 21HSCALL EXCHMOV 32H, R6MOV 33H, R7LOOP:NOPNOPSJMP LOOPEXCH:CLR AXCHD A, R1MOV R7,AMOV A, R1SWAP AMOV R6, ARET28.LIGHT EQU 20HORG 0000HJMP MAINORG 0030HMAIN:MOV LIGHT,#0FFHMOV P1,LIGHTLOP:MOV R1,#8LOOP:CLR CMOV A,LIGHTRLC AMOV LIGHT,AMOV P1,LIGHTLCALL DELAY200MSDJNZ R1,LOOPMOV R1,#8MOV LIGHT,#0LOOP1:SETB CMOV A,LIGHTRRC AMOV LIGHT,AMOV P1,LIGHTLCALL DELAY200MSDJNZ R1,LOOP1LCALL DELAY2SMOV LIGHT,#00MOV P1,LIGHTLCALL DELAY2SMOV LIGHT,#0FFHMOV P1,LIGHTLJMP LOP第四章一、选择题1. C2 . A3. A4. D5. C6. C7. C8. A9. B10. C 11. C12. B, D 13. D14. C15. D16. C17. A18. B19. B20. A二、思考题1. 在计算机系统中,什么是中断、中断源、断点和中断处理?中断是指CPU在执行程序的过程中,由于某一事件发生时,要求CPU暂停正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到原来程序停止处继续执行;中断源是指触发产生中断的事件;CPU停止执行现行程序的间断处称为断点;CPU执行的与中断相关的处理程序的处理过程即为中断处理。2. 在计算机系统中,中断处理和子程序调用有什么不同?主要区别在于:子程序调用时,调用哪个子程序、完成什么任务是用户在设计程序时事先安排好的,采用子程序调用指令实现。中断事件发生是随机的,哪个事件发生、何时调用中断处理程序是事先无法确定的,在程序中无法事先安排调用指令,调用中断处理程序的过程是由硬件自动完成的。3. MCS-51单片机提供了哪几种中断源?在中断管理上如何控制?各个中断源中断优先级的高低如何确定?MCS-51单片机具有5个中断源,分别为2个外部事件中断、2个定时器/计数器计数溢出事件触发的中断和1个串行口缓冲器接收到或发送完数据触发的中断。MCS-51单片机在中断管理实行2级控制,CPU开放中断与否、中断源是否允许中断由中断控制寄存器IE设定,中断优先级由中断优先级寄存器IP中的位来设定,优先级相同时CPU响应中断请求的顺序由查询电路确定,实现硬件调用响应的中断处理程序。4. MCS-51单片机响应中断的条件是什么?如果此时不存在下列3种情形,CPU将响应这个中断请求进行中断处理。这3种情形如下:(1)CPU正在处理相同优先级或高级优先级的中断。(2)当前的机器周期不是指令的最后一个机器周期。(3)正在执行的指令是RETI、或者是访问特殊功能寄存器IE或IP的指令。CPU响应中断时,必须是在一条指令执行结束之后。另外,CPU执行RETI指令和对寄存器IE和IP访问的指令时,即使指令执行结束也不会立即相应,必须至少再执行一条指令方可响应中断请求。5. MCS-51单片机的CPU响应多个中断请求时,如何处理多个中断同时请求的问题?当有多个中断同时向MCS-51单片机发出请求时,单片机首先会响应高优先级的中断,CPU响应中断请求时,中断系统会根据中断源的优先级把相应的高优先级触发器或低优先级触发器置1,以封锁相同优先级和低级优先级的中断请求;然后执行中断处理程序。6. MCS-51单片机如何分配中断处理程序入口地址的?应用系统中没有中断时,这些单元如何处理?如果中断处理程序太长,编程时如何处理?MCS-51单片机中断处理程序入口地址分配如下:外部事件中断的中断处理程序入口地址0003H;定时器/计数器溢出T0的中断处理程序入口地址000BH;外部事件中断的中断处理程序入口地址00013H;定时器/计数器溢出T1的中断处理程序入口地址0001BH;串行口的中断处理程序入口地址000BH。如果不使用中断处理,为了避免干扰或其他因素意外触发中断导致程序“跑飞”的现象发生,在中断入口地址所在单元放置RETI指令,使程序能够安全地返回到断点处继续运行。由于2个中断入口地址之间只有8个单元,中断处理程序太长时,通常在入口地址处安排一条无条件转移指令LJMP或AJMP,把中断处理程序存放在程序存储器的其它区域;7. 简述MCS-51单片机的中断响应过程。在设置CPU的中断控制位和中断允许控制位以后,当中断源触发中断时,相应的中断标志位被置1。单片机的中断系统在每一个机器周期的S5P2相采样所有的中断标志位的状态,并在随后的一个机器周期查询这些中断标志,以确定哪一个中断源请求中断。如果中断系统检测到某个中断标志为1,则表明该中断源向CPU发出了中断请求。如果此时不存在下列3种情形,CPU将响应这个中断请求,立即产生一个硬件调用,使程序转移到相应的中断处理程序入口地址处调用中断处理程序,进行中断处理。这3种情形如下:(1)CPU正在处理相同优先级或高级优先级的中断。(2)当前的机器周期不是指令的最后一个机器周期。(3)正在执行的指令是RETI、或者是访问特殊功能寄存器IE或IP的指令。CPU响应中断时,必须是在一条指令执行结束之后。另外,CPU执行RETI指令和对寄存器IE和IP访问的指令时,即使指令执行结束也不会立即响应,必须至少再执行一条指令方可响应中断请求。CPU响应中断时,对外部事件中断和跳变触发方式时的中断请求标志IE0和IE1,定时器/计数器溢出的中断标志TF0和TF1,自动清除中断请求标志,CPU响应中断请求时,中断系统会根据中断源的优先级把相应的高优先级触发器或低优先级触发器置1,以封锁相同优先级和低级优先级的中断请求;然后由硬件调用把当前程序计数器PC的内容(即断点)压入堆栈保护,并且把相应的中断处理程序入口地址装入程序计数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论