单片机单片机原理与应用第4版习题答案.pdf

上传人:无*** 文档编号:90875984 上传时间:2023-05-18 格式:PDF 页数:30 大小:4.20MB
返回 下载 相关 举报
单片机单片机原理与应用第4版习题答案.pdf_第1页
第1页 / 共30页
单片机单片机原理与应用第4版习题答案.pdf_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《单片机单片机原理与应用第4版习题答案.pdf》由会员分享,可在线阅读,更多相关《单片机单片机原理与应用第4版习题答案.pdf(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、单片机单片机原理与应用第4版 习题答案第一章1 .单片机内部至少包含哪些部件?答:中央处理器C PU、I/O 随机存储器R A M、只读存储器R OM。2 .根据程序存储器的差别,单片机可以分为哪几种类型?答:M C S-5 1 系列单片机按片内不同程序存储器的配置来分,可以分为以下3 种类型:1、片内带M a s k R OM(掩膜R OM)型:例如80 5 1、80 c 5 1、80 5 2、80 c 5 2。此类芯片是由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩膜工艺制作到R OM 中。其应用程序只能委托半导体厂家“写入”,一旦写入后不能修改。此类单片机适合大批量使用。2、片

2、内带E PR OM 型:例 如 87 5 1、87 c 5 1、87 5 2。此类芯片带有透明窗口,可通过紫外线擦除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。此类单片机价格较贵,不宜于大批量使用。3、片内带E E PR OM(电可擦可编程只读存储器)型:例如895 1、89c 5 1、895 2。此类芯片可以在电脑上或专用设备上擦除已有信息,重新编程。此类单片机目前应用很广。4、片内无R OM(R OM L e s s)型:例 如 80 3 1、80 c 3 1、80 3 2 此类芯片的片内没有程序存储器,使用时必须在外部并行扩展程序存储器存储芯片

3、。此类单片机由于必须在外部并行扩展程序存储器存储芯片,造成系统电路复杂,目前较少使用。3 .单片机的主要特点是什么?它适宜构成通用微机系统还是专用微机系统?为什么?答:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器C PU、随机存储器RAM只读存储器R OM、多种1/0 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。其主要特点如下:1、价格便宜。2 、功能不大。只能专用在适用的领域,但在适用的领域中,性价比却是最佳。3 、可靠性高,抗干扰能力强。4

4、 、功耗比较低。对电源要求低,适用面广。5 、外围扩展能力强。可以应用到不同的控制系统中。根据其特点可知,单片机功能不大,不适宜构成通用微机系统,只适宜构成专用微机系统。4 .研制微机应用系统时,应如何选择单片机的型号?答:在单片机应用研究系统开发中,单片机是整个设计的核心。在进行正式的单片机应用研究系统开发之前,需要根据不同单片机的特性,从中作出合理的选择。1 .仔细调查市场,尽量选用主流的、货源充足的单片机型号,这些器件使用比较广泛,有许多设计资料供学习或参考。2 .尽量选择所需硬件集成在单片机内部的型号,例如A D C、D A C、I 2 C、S P I 和 U S B 等。这样便于整个

5、控制系统的软件管理,减少外部硬件的投入,缩小整体电路板的面积,从而减少总体投资等。3 .对于手持设备,移动设备或者其他需要低功耗的设备,尽量选择低电压、低功耗的单片机型号,这样可以减少能量的消耗,延长设备的使用寿命。4 .在资金等条件允许的情况下,尽量选择功能丰富,扩展能力强的单片机,这样便于以后的功能升级和扩展。5 .对于体积有限制的产品,尽量选择贴片封装的单片机型号,这样可以减少电路板面积,从而降低硬件成本,同时也有助于电磁兼容设计。*1 .分别写出一个M C S-5 1 中 R O M、E P R O M、无 R O M 型单片机的型号和内部资源。其中哪个产品内部具有固化的软件?该软件能

6、否被所有用户所使用?怎样使用该种产品?答:1、8 0 5 1、8 0 c 5 1、8 0 5 2、8 0 c 5 2。此类芯片带有4 K 字节的掩膜R O M,由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩膜工艺制作到R O M 中。其应用程序只能委托半导体厂家“写入”,一旦写入后不能修改。2、8 7 5 1、8 7 c 5 1、8 7 5 2。此类芯片带有4 K 字节的E P R O M,带有透明窗口,可通过紫外线擦除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。3、8 03 1、8 0c 3 1、8 03 2。此类芯片片内无R O M,使

7、用时必须在外部并行扩展程序存储器芯片。其中8 05 1、8 0c 5 1、8 05 2、8 0C 5 2 等产品具有固化软件,该软件不能被所有用户所使用,应用程序只能委托半导体厂家“写入”。2 .M C S-5 1中无R O M 型单片机在应用中P 2 口和P 0 口能否直接作为输入/输出口连接开关、指示灯之类的外围设备?为什么?答:不能。因为无R O M 型单片机在应用中必须扩展程序存储器,P 0 口必须作为地址总线的低8位及数据总线复用,P 2 口必须作为高8位地址总线送出高8位地址,因此P 2 口和 P 0 口的输出信号都是不稳定的,不能直接作为输入/输出口连接开关、指示灯之类的外围设备

8、。3 .什么是堆栈?8 03 2 的堆栈区可以设在什么地方?一般应设在什么区域?如何实现?试举例说明。答:堆栈是在片内R A M 中专门开辟出来的一个区域,数据的存取是以后进先出”的结构方式处理的。实质上,堆栈就是一个按照后进先出”原则组织的一段内存区域。堆栈操作指令P U S H d i r e c t、P O P d i r e c t 只能采用直接寻址方式,8 03 2 的片内R A M 中只 有 低 12 8 字节可以采用直接寻址方式访问,因此,尽 管 8 03 2 片 内 R A M 的地址范围是O O H-O F F H,但堆栈区只可以设在内部R A M 中的00H-7 F H 的

9、区域内,一般应设在3 0H-7 F H 的范围内。可以通过赋值的方式设置堆栈区,如:M O V S P,#6 0H。4 .8 03 1的内部R A M 中,哪些可以作为数据缓冲区?答:8 03 1内部R A M 的 12 8 字节均可以作为数据缓冲区,但 00H 1F H 通常作为工作寄存器区使用,2 0H 2 F H 通常作为位寻址区使用。5 .对 于 8 05 2 单片机,地址为9 0H 的物理单元有哪些?答:一个是P l 口,P l 口的物理地址就是9 0 H,使用直接寻址方式访问;还有一个是R A M单元,必须使用寄存器间接寻址方式访问。6 .M C S-5 1 单片机构成系统时,程序

10、存储器的容量最大是多少?答:M C S-5 1 单片机构成系统时,程序存储器的容量最大是6 4 K B。7 .当单片机系统的程序存储器的容量为8 K B 时,程序存储器的开始地址为多少?答:因为单片机复位时,P C=O O O O H,程序都是从0 0 0 0 H 开始执行,所以无论何种情况,程序存储器的开始地址都必须是0 0 0 0 H 8 .M C S-5 1 单片机构成系统时,外部数据存储器的容量最大是多少?答:M C S-5 1 单片机构成系统时,外部存储器的容量最大是6 4 K B。9 .当单片机系统外部数据存储器的容量为8 K B 时,数据存储器的开始地址一定要是0 0 0 0 H

11、 吗?答:不一定。1 0 .什么是单片机的的节电方式?答:M C S-5 1 系列运行时耗电小,还提供两种节电工作方式一一空闲方式和掉电方式。在单片机空闲时程序停止运行,进入待机状态,在接收到一个中断时退出空闲方式,处理完后继续进入空闲方式,就这样断断续续的工作以达到节电目的。1 1 .C H M 0 S 型单片机,进入掉电方式时,单片机的振荡器是否工作?采用什么办法能使单片机退出掉电方式?答:不工作。在掉电方式中,振荡器停止工作,单片机内部所以功能部件停止工作。在掉电方式期间,内部R A M 和寄存器的内容维持不变。退出掉电方式的唯一方法是硬件复位。1 2 .C H M O S 型单片机,进

12、入空闲方式时,单片机的振荡器是否工作?采用什么办法能使单片机退出空闲方式?答:工作。进入空闲方式中,中断、串行口和定时器继续工作。C P U 现场、内部R A M 和其他特殊功能寄存器内容维持不变。有两种方法退出空闲方式,一是采用被允许的中断源请求中断;二是硬件复位,因为空闲方式中,振荡器在工作,所以仅需两个机器周期便完成复位。第三章1.指出下列指令中划线操作数的寻址方式和指令的操作功能。答:M O V A,#7 8 1 1;立即寻址,将立即数送入累加器AM O V A,7 8 H;直接寻址,将内部R A M 7 8 H 单元内容送累加器AM O V A,R 6;寄存器寻址,将 R 6 内容送

13、累加器AI N C R 0;寄存器间接寻址,将指针R 0 指向的内部R A M 单元内容加1P U S H A C C;直接寻址,将累加器A的内容入栈R L A;寄存器寻址,将累加器A的内容左移1 位C P L 3 0 H;位寻址,将位变量3 0 1 1 的内容取反S J M P$;相对寻址,原地等待M O V C A,A+P C;基寄存器加变址寄存器间接寻址,程序存储器P C 和累加器A中内容相加形成R O M 地址,取数送到累加器A。2.指出下列指令中哪些是非法的?I N CD E CM O VM O VM O VM O VM O VM O VM O VR R CR LA N LX R L

14、答:D E C R 1D P T RA,R 2R I,R 0P l.1,3 0 H#3 0 H,A2 0 H,2 1 H0 V,3 0 HA,A+D P T R3 0 HB2 0 H,#3 0 1 1C,3 0 HD P T RD E C D P LM O VA,R 2M O V A,R 1M O VR I,R 0M O V A,R 0M O VP l.1,3 0 HM O V C,3 0 H 和 M O V P l.1,CM O V#3 0 1 1,AM O V A,#3 0 HM O V0 V,3 0 HM O V C,3 0 H 和 M O V 0 V,CM O VA,A+D P T R

15、M O V C A,A+D P T RR R C3 0 HR R C A因为所有的移位指令均是对累积器A进行的R L BR L AX R L C,3 0 H错,因为位操作指令中,没有位的异或运算3.如何将1 个立即数3 0 H 送入内部R A M 9 0 H 单元?如何将立即数送特殊功能寄存器P 1?答:(1)M O V R O,#9 0 HM O V R 0,#3 0 H(2)M O V P l,#3 0 H4.执行下列一段程序后,试分析有关单元内容。答:M O V P S W,#0;(P S W)=0 0 HM O V R 0,#3 0 1 1;(R 0)=3 0 HM O V 3 0 H

16、,#4 0 H(3 0 H)=4 0 HM O V 4 0 H,#5 0(4 0 1 1)=3 2 HM O V A,R 0(A)=4 0 HA D D C A,#O C E I I(A)=4 0 I I+0 C E H+0=0 E H P S W=1 0 0 0 0 0 0 1 B=8 1 HI N C R 0(R 0)=3 1 H最后的执行结果:(R 0)=3 1 H,(3 0 H)=4 0 H,(4 0 H)=3 2 H,(A)=O E I I,(P S W)=8 1 HPSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.OCy AC FO RSI

17、 RSO OV P5 .试编写一段程序,将内部R A M 4 0 H、4 1 H 单元内容传送到外部R A M 2 0 0 0 H、2 0 0 1 H 单元中去。答:M O V D P T R,#2 0 0 0 HM O V R O,#4 0 HM O V A,R 0M O V X D P T R,AI N C R OI N C D P T RM O V A,R 0M O V X D P T R,A6 .试编写一段程序,根据累加器A的内容,到程序存储器1 0 0 0 H 起始的表格中取一双字节数,送内部R A M 5 0 H、5 1 H 单元。答:M O V D P T R,#1 0 0 0

18、HP U S H A C CM O V C A,A+D P T RM O V 5 0 H,AP O P A C CI N C D P T RM O V C A,A+D P T RM O V 5 1 H,A7 .试编写一段程序,进行两个1 6 位数的相减运算:6 4 8 3 H-5 6 E 2 H o 结果高8位存内部R A M 4 0 H,低 8 位存 4 1 H o答:C L R CM O V A,#8 3 HS U B B A,#0 E 2 HM O V 4 1 H,AM O V A,#6 4 HS U B B A,#5 6 HM O V 4 0 H,A8 .试编写一段程序,将 3 0 H

19、、3 1 H 单元中存放的B C D 数,压缩成一个字节(原3 0 H 单元内容为高位),并放入3 0 H 单元。答:M O V A,3 0 HS W A P AO R L A,3 1 HM O V 3 0 H,A9 .试编写一段程序,将 3 0 H-3 2 H 单元中的压缩B C D 拆成6个单字节B C D 数,并放入3 3 H到 3 8 H 单元。答:M O V A,3 0 HM O V R O,#3 3 HA C A L L L PM O V A,3 1 HA C A L L L PM O V A,3 2 HA C A L L L PS J M P$L P:M O V B,AA N L

20、 A,#O F HM O V R O,AI N C R OM O V A,BS W A P AA N L A,#O F HM O V R O,AI N C R OR E T1 O.设晶振频率为6 M H z,试编写一个延时I m s 的子程序,并利用该子程序,编写一段主程序,在 PL0引脚上输出高电平宽2 m s、低电平宽1 m s 的方波信号。答:机器周期T=2u s,延 时 1 m s 的子程序应运行5 00T,子程序为:D E L AY:M O V R O,#248;I TD J N Z R O,$;2TN O P;I TR E T 2T子程序运行机器周期数为:1 T+248*2T+1

21、T+2T=5 00T,5 00T=l m s主程序为:M O V P SW,#00HL O O P:SE T B P 1.0AC AL L D E L AYAC AL L D E L AYC L R P 1.0AC AL L D E L AYSJ M P L O O P第四章L试根据P l 口和P 3 口的结构特性,指出它们作为输入口或第二功能输入/输出的条件。答:P 1 口作为输入口时,相应的口锁存器必须先置“1”,使输出场效应管T截止,C P U读 P l 时才能准确读取外部电路的输入信息。同理,P 3 口作为第二功能I/O 口时,相应的口锁存器也必须先置“1”。2.M C S-5 1 中

22、无R O M 型单片机,在应用中P 0 口和P 2 口能否直接作为输入/输出口连接开关、指示灯之类的外围设备?为什么?答:不能。因为无R O M 型单片机在应用中必须扩展程序存储器,P 0 口必须作为地址总线的低8 位及数据总线复用,P 2 口必须作为高8 位地址总线送出高8 位地址,因此P 2 口和 P 0 口的输出信号都是不稳定的,不能直接作为输入/输出口连接开关、指示灯之类的外围设备。3.什么是堆栈?堆栈的作用有哪些?答:堆栈是在片内R AM 中专门开辟出来的一个区域,数据的存取是以后进先出”的结构方式处理的。实质上,堆栈就是一个按照“后进先出”原则组织的一段内存区域。作用:(1)子程序

23、调用和中断服务时C P U 自动将当前P C 值压栈保存,返回时自动将P C 值弹出堆栈。(2)保护现场/恢复现场(3)数据传输4.M C S-5 1 的 T O、T 1 的定时器和计数器的方式差别是什么?试举例说明这两种方式的用途。答:M C S-5 1 的 T O、T 1 的定时器和计数器本质上都是计数器,定时器方式是对单片机内部的机器周期数进行计数,计数器方式是对T O、T 1 引脚上输入的外部脉冲(方波)信号进行计数。定时器方式用来产生定时信号,可用于串行通信,也可以通过口输出脉冲和方波信号;计数器方式可以用来检测外部信号的频率和脉宽。5 .晶振为1 2M H z,用 T O 产 生

24、1 m s 的定时,可以选择哪几种方式?分别写出定时器的方式字和计数初值。如需要1 s 的定时,应如何实现?答:由于定时器工作在方式2和方式3 下时的最大定时时间只有0.2 56m s,因此要想获得 1 m s 的定时时间,定时器必须工作在方式0 或方式1。机器周期T=1 2 X l/1 2 X 1 0 s=l u s,计数值 T MFl m s/1 u m=1 0 0 0。1、采用方式0,定时器的方式字TMO D=O O H,定时器的计数初值为T C=M-T/T 计 数=21 3-1*1 O3/1=71 92=1 C 1 8H,TH 0 应装#1 C H;TL0 应装#1 8H。2、采用方式

25、1,定时器的方式字TM0 D=0 1 H,定时器的计数初值为T C=M-T/T 计 数=21 6-l*1 03/l=64536=FC 1 8H,TH 0 应装#0 F C H;TL0 应装#1 8H。如需要Is 的定时,可以采用查询相应溢出标志位,结合软件计数1 0 0 循环,即可实现1 s 的定时。6 .晶振为1 2 M H z,如何用T 0 来测试2 0 H z7 0 0 0 H z之间的方波信号(设高低电平宽度相同)的周期?又如何测试频率为0.5 M H z左右的脉冲频率?答:1、使用定时器方式,利用方波的边沿触发定时器的开始与结束,比如使用上升沿来启动定时器计数,机器周期T 为1N S

26、,下降沿停止计数。依据计数值N 计算周期,周期=2 N*T。2、T O 工作在计数器方式,待测试的脉冲信号引入T 0引脚计数,同时T 1 工作在定时器方式,定 时 1 m s,1 m s 定时结束时取T 0 计数值,脉冲频率=1 0 0 0*T 0 计数值。7.若晶振为1 1.0 592 MH z,串行口工作于方式1、波特率为480 0 b i t/s,分别写出用T1、T2 作为波特率发生器的方式字和计数初值。答:T1 作为波特率发生器。由:波特率二?11*振荡器频率/32*1 2*(2 56-X)设 SM0 D=0,可得,480 0=2*1 1 0 592 0 0/32/1 2/(2 56-

27、X),可得的计数初值 X=2 50=0 FA H,将 X值装入TH 1 中,TM0 D=2 0 H MO V TMO D,#2 0 H;T1 方式 2MO V TH 1,#O FA HT2 作为波特率发生器,需对 T2 C 0 N(置“1”TC LK、RC LK)、TH 2、TL2、RC A P2 H,RC A P2 L初始化编程,再 置“1”TR2,具体略。8.串行口方式0能否外接多个74LS1 64?若不可以,说明原因;若可以,画出逻辑框图并说明数据输出方法。答:串口工作方式0时,可以外接多个74LS1 64,此时TX D用于发送同步脉冲接74LS1 64的 C LK端,RX D用于发送数

28、据接第一片74LS1 64的数据输入端DSA 和 DSB,74LS1 64的/C R和 V c c 端接+5V,V s s 端接地,后一片74LS1 64的数据输入端DSA 和 DSB 接前一片74LS1 64的 Q 7。只要将数据载入SU B F之后,时钟脉冲和数据就会自动出现在单片机的I/O 端口,程序不需要对1/0 口再进行干预。出现在74LS1 64的数据低位在右,高位在左。将数据多次载入 SU B F,就可以在多个74LS1 64的输出端得到稳定的数据。逻辑框图略,可参考教材的例4-8.9.MC S-51 的中断处理程序能否存储在64KB 程序存储器的任意区域?若可以,如何实现?答:

29、可以。因为每个中断源的中断入口地址处均预留了 8个单元的空间,8个单元足够存放一条跳转指令,使程序转向6 4K B 程序存储区的任意区域。在相应的中断入口使用J MP 指令进行跳转就可以实现。1 0 .在 一 个 8 0 31 系统中,晶 振 为 1 2MH z,一个外部中断请求信号是一个宽度为50 0 ms的负脉冲,则应该采用哪种中断触发方式,如何实现?答:应该采用边沿触发方式,采用S ET B I T O或 S ET B I T 1 即可。若采用电平触发方式,由于外部中断请求信号长期存在,可能会引起重复中断。1 1 .若外部中断请求信号是一个低电平有效的信号,是否一定要选择电平触发方式?为

30、什么?答:不一定。因为采用边沿触发,能自动锁存中断信号,是一种可靠的中断管理方式。第五章1.若晶振为6 MH z,试编写一个21 ns 延时子程序。答:晶振为6 MH z,机器周期T为 2 H s,应计满1 0 0 0 个 T。DELA Y:MOV R 7,#1 0DLYO:MOV R 6,#49DLY1:DJ NZ R 6,DLY1;2TDJ NZ R 7,DLYO;2TR ET2.试编制一个子程序,对串行口初始化,使串行口以方式1,波 特 率 1 20 0 b i t/s(晶振为 1 L0 59 MH z)发送字符串“MC S-51”。答:OR G 0 0 0 0 HA J MP MA I

31、 NOR G 0 1 0 0 HMA I N:MOV T MOD,#20 HMOV T L1,#OE8 I IMOV T H 1,#OE8 HS ET B T R IMOV S C ON,#42HMOV R 4,#0MOV DP T R,#T A BFS 1:MOV A,R 4MOV C A,A+DP T RC J NE R 4,#6,FS 2S J MP FS J SFS 2:J B C T I,FS 3S J MP FS 2FS 3:MOV S B U F,AI NC R 4S J MP FS 1FS J S:S J MP$T A B:M ,C ,S ,J ,5,TEND3.晶振为1 1.

32、0 59 MH z,串行口工作与方式3,波特率为240 0 b i t/s,第 9位数据为奇校验位。编制一个程序,对串行口初始化,并用查询方式接受串行口上输入的1 0 个字符存入内部R A M中 30 H 开始的区域。答:R EC S:MOVS C ON,#ODOH;串行口方式3 允许接收MOVT MOD,#20 H;T 1 方式2 定时MOVT L1,#0 F4H;写入T 1 时间常数MOVT H 1,#0 F4HS ET BT R I;启动T 1MOVR O,#30 1 1;设数据指针MOVR 7,#1 0;接收数据长度W A I T:J B CR I,NEX T;等待串行口接收S J M

33、PW A I TNEX T:MOVA,S B U F;取一个接收字符J NBP,C OMP;奇偶校验J NBR B 8,ER R;P W R B 8,数据出错S J MPR I GH T;P=R B 8,数据正确C OMP:J BR B 8,ER RR I GH T:MOVR 0,A;保存一个字符I NCR 0;修改指针DJ NZR 7,W A I T;全部字符接收完?C LRF0;F0 =0,接收数据全部正确ER R:S ET BF0;F0 =1,接收数据出错R ET4.写一个子程序,其功能是将(R 0)指出的两个R A M单元中的数转化为A S C I I字符,并用查询方式从串行口上发送出

34、去。答:设串行口以方式1工作,波特率为1 20 0 b i t/s,晶振为1 1.0 59 MH z。OR G 0 0 0 0 HA J MP MA I NOR G 0 1 0 0 I IMA I N:MOV T MOD,#20 HMOV T L1,#OE8 I IMOV T H 1,#OE8 HS ET B T R IMOV S C ON,#42HMOV R 4,#2FS 1:MOV A,R 0A NL A,#0 FHMOV DP T R,#T A BMOV C A,A+DP T RFS 2:J B C T I,FS 3S J MP FS 2FS 3:MOV S B U F,AI NC R

35、ODJ NZ R 4,FS 1FS J S:S J MP$T A B:DB 30 H,31 H,32H,33H,34H,35H,36 H,37 H,38 H,39 H,41 H,41 H,43H,44H,45H,46 HEND5.试编写一个子程序将字 符 串“MC S-51 Mi c r o c o mp u t e rw装入外部R A M 8000H开始的显示缓冲区。答:O R G 0000HA J M P 0030HM I A N:M O V D P T R,#800011M O V R l,#0M O V R O,#20L O O P:M O V A,R IA D D A,#6M O V

36、 C A,A+P CM O V X D P T R,AI N C D P T RI N C R ID J N Z R O,L O O PS J M P$T A B:D B M CS-51 M i c r o c o m p ut e rJE N D6.试设计一个n字节的无符号十进制数加法子程序,其功能为将(R 0)和(R 1)指出的内部R A M 中两个n字节压缩B CD 码无符号十进制数相加,结果存放于被加数单元中。子程序入口时,R O,R 1分别指向被加数和加数的低位字节,字节数n存 于 R 2,出口时R 0 指向和的最高位字节,CY为进位位。答:L E N E Q U nO R G 00

37、00HA J M P M A I NO R G 0030HM A I N:M O V S P.#6011M O V R 2,#L E NA CA L L A D D _ N B YT ES J M P$A D D _ N B YT E:CL R CL O O P:M O V A,R 0A D D C A,R 1D A AM O V R 0,AI N C R OI N C R ID J N Z R 2,L O O PR E TE N D7,试设计一个n字节的无符号十进制数减法子程序,其功能是将R 0指出的内部R A M 中n字节无符号压缩B CD 码减去(R 1)指出的内部R A M 中 n字节

38、无符号压缩B CD 码,结果存放在被减数单元中。子程序入口时,R O,R 1 分别指向被减数和减数的低位字节,字节数n存于R 2,出口 R 0指向差的高位字节,CY=1为正,CY=O 为负,结果为补码。答:以 n=2为例。1.将 2 字节无符号压缩B CD 码被减数转换4 位 B CD 码,存入60H 63H,再转换为二进制数,存 R 3R 4。M O V A,R 0A N L A,#O F HM O V 63H,AM O V A,R 0S W A P AA N L A,#O F HM O V 62H,AI N C R OM O V A,R OA N L A,#O F HM O V 63H,A

39、M O V A,R OS W A P AA N L A,#O F HM O V 62H,AD T B:M O V R O,#60HM O V R 3,#3M O V R 3,#0M O V A,R 0M O V R 4,AL O O P:M O V A,R 4M O V B,#10M U L A BM O V R 4,AM O V A,BXCH A,R 3M O V B,#10M U L A BA D D A,R 3M O V R 3,AI N C R OM O V A,R 4A D D A,R 0M O V R 4,AM O V A,R 3A D D C A,#0M O V R 3,AD J

40、 N Z R 2,L O O P2.用相同程序可将2 字节无符号压缩B CD 码减数转换4 位 B CD 码,存入60H 63H,再转换为二进制数,存 R 5R 6。3.双字节无符号数减法程序,差存入R 7R 1N S U B 1:M O V A,R 4CL R CS U B B A,R 6M O V R I,AM O V A,R 3S U B B A,R 5M O V R 7,AJ B C P O U TCM P T:M O V A,R I;负数求补CP L AA D D A,#lM O V R I,AM O V A,R 7CP L AA D D C A,#0M O V R O,AD E C

41、 R OM O V R O,R II N C R OR E T8.试设计一个子程序,其功能为判断R 2R 3R 4R 5中的压缩B CD 码十进制数最高位是否为0,若最高位为0,且该十进制数不为0,则通过左移使最高位不为0。略9.试设计一个双字节无符号整数乘法子程序,其 功 能 将 R 3R 2和 R 5R 4相乘,积存于30H-33H 单元。答:M U L T B:CL R AM O V 30H,AM O V 31H,AM O V 32H,AM O V 3311,AM O V R 0,#30HM O V A,R 2M O V B,R 4M U L A BA CA L L R A D DM O

42、 V A,R 2M O V B,R 5M U L A BD E C R 0A CA L L R A D DM O V A,R 4M O V B,R 3M U L A BD E C R 0D E C R 0A CA L L R A D DM O V A,R 5M O V B,R 3M U L A BD E C R 0A CA L L R A D DS J M P$R A D D:A D D A,R 0M O V R O,AM O V A,BI N C R OA D D C A,R OM O V R O,AI N C R OM O V A,R OA D D C A,#O O HM O V R O,

43、AR E T1O.试设计一个子程序,其功能将无符号二进制整数R 2R 3R 4R 5除以R 6R 7,其商存放于30H,31H单元,余数存于R 2R 3。略11.试设计一个子程序,其功能为将R 0指出的内部R A M中6个单字节正整数按从小到大的次序重新排列。答:O R G 0200HM O V 30H,#6S U M IE Q U 30HS U M 2E Q U 31HL O O P 1:M O V A,R OI N C AM O V R I,AM O V S U M 2,S U M ID J N Z S U M I,L 00P 2S J M P D O N EL O O P 2:D J N

44、 Z S U M 2,L O O P 3S J M P L O O P 1L O O P 3:M O V A,R 0CL R CS U B B A,R 1J C N E XTXCH A,R 1M O V R O,AN E XT:I N C R OI N C R IS J M P L 00P 2D O N E:E N D12.试设计一个子程序,其功能为应用查表指令:M O V C A,0A+P C,求累加器A的平方值,结果送入A,入口时A 15。答:M E M O:I N C AM O V C A,e A+P CR E TT A B:D B 0,1,4,9,16,25,36,49D B 64,8

45、1,100,121,144,169,196,22513.试设计一个子程序,其功能将R 0 指出的内部R A M 中双字节压缩B CD 码转化为二进制数存放于R 1指出的内部R A M 中,并将结果再转化为B CD 码存放于30H 开始的单元中。答:先将压缩B CD 码转化为B CD 码存放于3011开始的单元中M O V R 2,R 0M O V A,R 0P U S H A CCA N L A,#O F HM O V 30H,AP O P A CCS W A P AA N L A,#O F HM O V 31H,AI N C R OM O V A,R 0P U S H A CCA N L A

46、,#O F HM O V 32H,AP O P A CCS W A P AA N L A,#O F HM O V 33H,AM O V A,3111;(R l)=(31H)*10+(30H)M O V B,#10M U L A BA D D A,30HM O V R 1,AM O V A,32H;(R l)+1)(R l)=(32H)*100+(R I)M O V B,#100M U L A BA D D A,R 1M O V R 1,AI N C R IM O V A,BA D D C A,R 1M O V R 1,AM O V A,3311;(R l)+1)(R l)=(3311)*100

47、0+(R I)+1)(R I)M O V B,#232M U L A BD E C R IA D D A,R 1P U S H P S WM O V R 1,AI N C R IM O V R 1,BM O V A,33HM O V B,#3M U L A BP O P P S WA D D C A,R 1M O V R 1,A1 4.若晶振为6 M H z,用 T O 产 生 5 0 0 us的定时中断,试编写有关的初始化程序和对时钟进行计数的T O 中断服务程序。时钟计数单元为:3 0 H,3 1 H,3 2 H,分别存放压缩B C D 码的时分秒参数。答:晶振为6M H z,机器周期T为

48、2H S,500US=250T,T O 可以工作在方式2。有关的初始化程序和对时钟进行计数的T O 中断服务程序如下:O R G 0000HS J M P M A I NO R G O O O B HS J M P P T OO R G 0030HM A I N:M O V T M O D,#02HM O V T H O,#6M O V I E,82HS E T B T R OCL R AM O V 30H,AM O V 31H,AM O V 32H,AM O V 33H,AM O V 34H,AM O V 35H,AM O V R 7,#40M O V R 6,#50S J M P$P T

49、O:D J N Z R 7,A lM O V R 7,#40D J N Z R 6,A lM O V R 6,#50I N C 33HCJ N E 33H,#60,A 2M O V 33H,#0M O V 3011,#0I N C 34HCJ N E 3411,#60,A 3M O V 34H,#0M O V 31H,#0I N C 35HCJ N E 35H,#24,A 4M O V 35H,#0M O V 3211,#0A l:R E T IA 2:M O V A,33HM O V B,#10D I V A BS W A P AM O V 30H,BM O V R O,#30HXCI 1D

50、 A,R 0M O V 30H,AS J M P A lA 3:M O V A,34HM O V B,#10D I V A BS W A P AM O V 31H,BM O V R O,#31HXCH D A,R 0M O V 3111,AS J M P A lA 4:M O V A,35HM O V B,#10D I V A BS W A P AM O V 32H,BM O V R O,#32HXCU D A,R 0M O V 32H,AS J M P A l15.在一个8031系统中,晶振为12M H z,P l 口上输入8 路脉冲,频率为0.-3 H z,现用T O 产 生 1m s 定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com