单片机原理及应用(曹克澄)课程课后习题答案.doc

上传人:苏美尔 文档编号:7195734 上传时间:2020-11-05 格式:DOC 页数:52 大小:362.50KB
返回 下载 相关 举报
单片机原理及应用(曹克澄)课程课后习题答案.doc_第1页
第1页 / 共52页
单片机原理及应用(曹克澄)课程课后习题答案.doc_第2页
第2页 / 共52页
单片机原理及应用(曹克澄)课程课后习题答案.doc_第3页
第3页 / 共52页
单片机原理及应用(曹克澄)课程课后习题答案.doc_第4页
第4页 / 共52页
单片机原理及应用(曹克澄)课程课后习题答案.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《单片机原理及应用(曹克澄)课程课后习题答案.doc》由会员分享,可在线阅读,更多相关《单片机原理及应用(曹克澄)课程课后习题答案.doc(52页珍藏版)》请在三一文库上搜索。

1、 单片机原理及应用习题答案第一章 基础知识1微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为RAM和ROM。输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。2.

2、 将下列十进制数分别转换成为二进制数,十六进制数和BCD码数的形式:100,64,78,80解:1)100=1100100B=64H=0001 0000 0000BCD; 2)64=1000000B=40H=0110 0100BCD; 3)78=1001110B=4EH=0111 1000BCD。H=3. 写出下列十六进制无符号数对应的十进制数和二进制: 0D5H,64H,2CH,4FEH解:1)0D5H=213=11010101B;2) 64H=100=1100100B;3) 2CH=44=101100B;4) 4FEH=1278=10011111110B。4. 写出下列十进制数对应的二进制

3、原码、反码和补码:+35,+50,-10,-20解:1) 35(23H)原=(23H)反=(23H)补; 2) 50(32H)原=(32H)反=(32H)补;3) 10(8AH)原(0F5H)反(0F6H)补;4) 20(94H)原(0EBH)反(0ECH)补;5. 根据给定的原码、反码、补码求真值。1) (0CBH)原=(-75)真值; 2) (8BH)反=(-116)真值; 3) (9BH)补=(-101)真值; 4) (6BH)补=(+107)真值;解:1) (0CBH)原=(-75)真值; 2) (8BH)反=(-116)真值; 3) (9BH)补=(-101)真值; 4) (6BH)

4、补=(+107)真值;6. 试分别判断下列各组数据大小?1)A=0.011BB=0.011 C=0.011H2)A=1001BB=1001C=1001H解:1)A=0.011B=02-1+12-2+12-3=0.25+0.125=0.375;B=0.011C=0.011H=016-1+116-2+116-3=0.004150390625所以:ABC2)A=1001B=9;B=1001;C=1001H=4097所以:ABC7.先将下列各组数据转换为补码表示的带符号数,然后用进行补码运算,再将结果还原成原码,并写出对应的十进制数检验结果是否正确。1) (74)412) (74)41解:根据补码定义

5、有:74(0B6H)补,41(29H)补,41(0D7H)补1)(74)+41补(74)补+(41)补(0B6H29H)补(0DFH)补(33)真值十进制数运算:(74)+4133所以:二者运算结果相同。2)(74)41补(74)补+(41)补(0B6H0D7H)补(8DH)补 (115)真值十进制数运算:(74)41=115所以:二者运算结果相同。8.何谓单片机?单片机有何特点? 答:单片机(Single Chip Microcomputer)是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。单片机在控制应用领域中的特点:(1)体积小

6、、结构简单、可靠性高;(2)控制功能强;(3)低电压、低功耗;(4)优异的性价比。9.单片机内部ROM的配置有几种形式?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或Flash ROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。第2章 MCS-51系列单片机的结构和时序18051单片机内包含哪些主要功能部件?各有什么

7、功能?答:8051单片机是一个完整的单片微型计算机。它包括以下功能部件:(1)1个8位CPU;(2)片内4KB的程序存储器ROM;(3)片内128B的数据存储器RAM;(4)可寻址外部程序存储器和数据存储器空间各64KB的控制电路;(5)21个特殊功能寄存器SFR;(6)4个8位并行I/O口P0P3,共32根I/O线;(7)1个全双工的串行口;(8)2个16位定时器/计数器;(9)5个中断源,有2个优先级嵌套中断结构;(10)片内振荡器及时钟电路。2.8051单片机的信号有何功能?8031的引脚应如何处理,为什么?答:(1) 是访问外部程序存储器ROM的控制信号。当为低电平(接地)时,CPU只

8、执行外部程序存储器中的程序。当为高电平且PC值小于0FFFH(4K)时,CPU执行内部程序存储器的程序,但当PC的值超出4K时(对8051/8751/8951)将自动转去执行片外程序存储器内的程序。8031单片机无片内ROM的,必须外部扩展程序存储器,因此,8031的必须接地(低电平)。3MCS-51单片机的P0P3口各有什么特点?答:MCS-51单片机有P0、P1、P2、P3四个双向的8位并行I/O口,每个端口可以按字节输入或输出,每一条I/O线也可以单独用作输入或输出(即按位进行输入或输出)。每个端口都是由一个锁存器(即特殊功能寄存器P0P3),一个输出驱动器和两个(P3口为3个)输入缓冲

9、器组成。并行I/O口作输出时数据可以锁存,作输入时数据可以缓冲,但它们又各具特点。(1)P0口和P2口构成MCS-51单片机的16位地址总线,P0口还是8位的数据总线。P3口多用于第二功能输入或输出。通常只有P1口用于一般输入/输出。P3口各位的第二功能P3口引脚第二功能P3口引脚第二功能P3.0RXD(串行输入端)P3.4T0(定时器0的外部输入)P3.1TXD(串行输出端)P3.5T1(定时器1的外部输入)P3.2(外部中断0输入)P3.6(片外数据存储器写选通控制输出)P3.3(外部中断1输入)P3.7(片外数据存储器读选通控制输出)(2)系统复位后,P0P3口的32个管脚均输出高电平,

10、因此在系统的设计过程中,应保证这些管脚控制的外设不会因为系统复位而发生误动作。(3)P0P3口输出级的电路结构有所不同。P0口是三态输出,其每个管脚均可以驱动8个LSTTL输入,而P1P3口的输出级均有上拉电阻,每个管脚可驱动4个LSTTL输入。(4)每个并行口,可定义一部分管脚为输入脚,另一部分管脚为输出脚,没有使用的管脚可以悬空。4.简述8051单片机存储器的组织结构和片内RAM的地址空间分配。答:8051单片机的存储器包括程序存储器和数据存储器,从用户使用的角度可分为三个逻辑地址空间:(1)片内、片外统一编址的64KB程序存储器地址空间0000H0FFFFH;(2)64KB的外部数据存储

11、器或扩展I/O口地址空间0000H0FFFFH;(3) 256B的片内数据存储器地址空间00HFFH(包括低128B的内部RAM地址00H7FH和高128B的特殊功能寄存器地址空间,21个SFR离散地分布在这个区域)。内部RAM共有128个单元,根据用途可划分为工作寄存器区、位寻址区和通用RAM区,各区域的特性如下:(1)工作寄存器区(00H1FH) 寄存器区32个单元共分4个组,每个组有8个8位的寄存器R0R7。在任何时刻,四个组中只能有一组可以成为当前工作寄存器组使用,其他三组作为一般的内部RAM使用。当前工作寄存器组由程序状态字寄存器PSW的RS0和RS1两位的状态来决定。(2)位寻址区

12、( 20H2FH)共16个单元,每个单元有8个位,每个位都有一个位地址,编号为00H7FH,位寻址区的16个单元也可以按字节寻址,作为一般的内部RAM使用。(3)通用RAM区(30H7FH) 这部分存储空间作为一般的内部RAM区或堆栈区,CPU只能按字节方式寻址。5.8051单片机有哪些特殊功能寄存器?答:8051单片机有21个8位的特殊功能寄存器(SFR),它们的地址离散地分部在内部数据存储器的80HFFH地址空间。在8051单片机结构中,21个SFR在物理上是分散在片内各功能部件中: (1)CPU的中SFR:Acc、B、PSW、SP和DPTR(16位寄存器,由DPH和DPL组成);(2)定

13、时/计数器单元中的寄存器:TMOD、TCON、T0(16位寄存器,由TH0和TL0组成)和T1(16位寄存器,由TH1和TL1组成);(3)并行I/O口寄存器:P0、P1、P2和P3;(4)中断系统内的寄存器:IE和IP;(5)串行端口中的寄存器:SCON、SBUF和PCON。6程序计数器PC的功能和特点?答:程序计数器PC是一个16位的专用寄存器,用来存放即将要执行的指令地址,可对64KB的程序存储器直接寻址。它具有自动加1功能,当CPU要取指令时,PC的内容送地址总线上,从存储器中取出指令后,PC内容则自动加1,指向下一条指令,从而保证程序按顺序执行。PC虽然也是CPU内部的一个寄存器,但

14、它在物理结构上是独立的,没有地址,是不可寻址的,用户无法对它进行直接读写,不属特殊功能寄存器。7什么叫堆栈?堆栈指针SP的作用是什么?8051单片机堆栈的最大容量是多少字节?答:堆栈是按照“先进后出,后进先出”的原则来存取数据的一个内部RAM区域,这个存储器区域的一端是固定的(栈底),另一端是活动的(栈顶),每个存储单元是不能按字节任意访问的。堆栈指针SP始终指向栈顶单元,栈顶随着数据入栈和出栈上下浮动。8051单片机堆栈的最大容量是128字节。88051单片机是如何确定和改变当前工作寄存器组?答:在任何时刻,8051单片机的四个工作寄存器组中只能有一组可以成为当前工作寄存器组使用,其他三组作

15、为一般的内部RAM使用。当前工作寄存器组由程序状态字寄存器PSW的RS0和RS1两位的状态来决定,如表所示。当前工作寄存器组的选择RS1RS0被选寄存器组寄存器R0R7的地址000组00H07H011组08H0FH102组10H17H113组18H1FH根据需要,用户可以利用传送指令或位操作指令改变RS1和RS0的内容来选择不同的工作寄存器组。9单片机复位后,CPU使用了哪一组工作寄存器?工作寄存器R0R7对应的单元地址是什么?答:单片机复位后,RS1和RS0都为0,CPU选中第0组作为当前工作寄存器组,工作寄存器R0R7对应的单元地址是00H07H。10程序状态字寄存器PSW的作用是什么?各

16、位的作用是什么?答:PSW是一个8位的特殊功能寄存器,由一些标志位组成,用于存放程序运行中的各种状态信息。它可以进行位寻址。各位的作用如下:Cy:进位标志位。在进行加(或减)法运算时,若操作结果的最高位(D7位)有进位(或借位)时,Cy由硬件置1,否则Cy清0。在进行位操作时,Cy又是位累加器,指令助记符用C表示。AC:辅助进位标志位。在进行加(或减)运算时,若操作结果的低半字节(D3位)向高半字节产生进位(或借位)时,AC位将由硬件自动置1,否则AC位清0。F0:用户标志位。用户根据需要对F0置位或复位,作为软件标志。RS1和RS0:工作寄存器组选择控制位。由用户用软件改变RS1和RS0的状

17、态,以选择内RAM中的哪组工作寄存器为当前工作寄存器组。OV:溢出标志位。当进行补码运算时,运算结果超出128127范围时,产生溢出,则OV自动置1,否则OV清0。PSW.1:保留位。8051中未定义。P:奇偶校验标志位。每条指令执行完后,该位始终跟踪累加器A中1的数目的奇偶性。如果A中有奇数个1,则P1;否则P0。11什么是时钟周期、机器周期和指令周期?答:(1)时钟周期(又称为振荡周期)是指振荡器产生一个振荡脉冲信号所用的时间,是振荡频率的倒数,称为拍节。(2)机器周期是指CPU完成某一个规定操作所需的时间,8051单片机的一个机器周期包含6个状态,并依次表示为S1S6,每个状态分为2个节

18、拍。因此一个机器周期包含12个时钟周期(振荡周期),依次表示为:S1P1、S1P2、S2P1、S6P1、S6P2。(3)指令周期是指CPU执行一条指令所需要的时间称为指令周期。MCS-51单片机指令周期根据指令的不同,可包含有1或2或4个机器周期。128051单片机复位后寄存器PC、A、PSW、SP 、P0P3的状态各是什么?复位后内部RAM中的数据有何影响?答:8051单片机复位后PC为0000H,A和PSW均为00H,SP为07H,P0P3均为FFH。单片机的复位不影响内部RAM的状态(包括工作寄存器Rn )。1380C51如何进入节电工作方式?答:只有CHMOS型单片机(如80C51)才

19、有这种工作方式,有两种节电方式,即待机方式和掉电保护方式。由片内SFR中的电源控制寄存器PCON的低4位来控制待机和掉电两种方式,其格式如下:位D7D6D5D4D3D2D1D0位名称SMODGF1GF0PDIDL(1)IDL:待机方式位。若IDL1,进入待机方式;(2)PD:掉电方式位。若PD1,进入掉电方式;当PD和IDL同时为1,则先进入掉电工作方式。复位后,PCON中有定义的位均为0。第3章 MCS-51系列单片机指令系统1简述汇编指令格式。答:汇编语言的指令格式一般如下:标号:操作码第一操作数,第二操作数,第三操作数;注释其中:带有方括号的部分代表可选项。标号:是表示该指令的符号地位,

20、可以根据需要进行设置。标号以英文字母开始的16个字母或数字组成的字符串表示,并以“:”结尾。操作码:是表示指令的操作功能,用助记符表示。每条指令都有操作码,是指令的核心部分。操作数:表示参与传送、运算的数据或数据地址。这里的操作数不一定就是直接参与运算或传送的,而应根据操作数的寻址方式,寻找出真正参与运算或传送的数据。二个或二个以上操作数之间用“,”间隔。注释:用来解释该条指令或一段程序的功能,便于对指令或程序的阅读理解。注释以“;”为开始,注释部分对程序的执行没有影响。2什么叫寻址方式?在MCS51系列单片机指令系统中,主要有哪几种寻址方式?试分别举例说明。答:寻址就是寻找操作数的地址,寻找

21、操作数地址的方式,称为操作数地址的寻址方式,简称寻址方式。在MCS51系列单片机指令系统中,主要的寻址方式有:(1)立即寻址方式,指令如:MOVA,67H;(2)立即寻址方式,指令如:MOVA,66H;(3)寄存器寻址方,指令如:MOVA,R3;(4)寄存器间接寻址方式,指令如:MOVA,R1;(5)变址寻址方式,指令如:MOVCA,ADPTR;(6)相对寻址方式,指令如:SJMP30H;(7)位寻址方式,指令如:MOVACC.3,Cy3试说明下列指令中划线部分的寻址方式。MOVA,R0ADDA,36HMOVCA,APCDJNZR2,relSETBRS1CLRAMOV45H,ACLRC解:第1

22、条为寄存间接寻址方式;第2条指令为立即寻址方式;第3条指令为变址寻址方式;第4条指令为相对寻址方式,第5条指令为位寻址方式,第6条指令为寄存器寻址,第6条指令为直接寻址方式,第7条指令为位寻址方式。4设A9BH,R030H,内RAM的(30H)40H,(40H)6DH,分别执行下列指令,说明被真正传送的数据是多少?1)MOVA,40H2)MOV40H,R03)MOVA,30H4)MOVA,R05)MOVA,R0答:1)真正被传送的数据是立即数40H。 2)真正被传送的数据是R0间址中(即30H单元中)的数据40H。 3)真正被 传送的数据是30H单元中的数据40H。 4)真正被传送的数据是R0

23、间址中(即30H单元中)的数据40H。 5)真正被传送的数据是R0中的数据30H。5设A86H,R030H,R140H,内RAM的(30H)76H,(40H)6BH,执行下面程序:MOVA,40HMOVR0,AMOVA,R0MOVR1,AMOVR1,AMOVR1,70H后,A,R0,R1,(30H),(40H)解: MOVA,40H ;A=6BHMOVR0,A ;(R0)=(30H)=6BHMOVA,R0 ;A=30HMOVR1,A ;(R1)=(40H)=30HMOVR1,A ;R1=30HMOVR1,70H ;(R1)=(30H)=70H所以:A30H,R030H,R130H,(30H)7

24、0H,(40H)30H6设A65H,R030H,R131H,R232H,内RAM的(30H)40H,(31H)50H,(32H)60H,(40H)70H,(50H)80H,执行下面程序:XCHDA,R1MOV40H,ASWAPAMOV50H,AXCHA,R2MOVR0,A后,A,R0,R1,R2,(30H),(31H),(32H),(40H),(50H)解: XCHDA,R1 ;A=60H,(R1)=(31H)=55HMOV40H,A ;(40H)60HSWAPA ;A=06HMOV50H,A ;(50H)=06HXCHA,R2 ;A=32H,R2=06HMOVR0,A ;(R0)=(30H)

25、=32H所以:A32H,R030H,R131H,R206H,(30H)32H,(31H)55H,(32H)60H,(40H)60H,(50H)06H7执行下面程序后,试问:A?ORG1000HMOVDPTR,1020HMOVA,03HMOVCA,ADPTRRETORG1020HDB56H,78H,65H,29H,10H解: ORG1000HMOVDPTR,1020H ;DPTR=1020HMOVA,03H ;A=03HMOVCA,ADPTR ;A=(1023H)=29HRETORG1020HDB56H,78H,65H,29H,10H所以:A=29H8试用数据传送指令来实现下列要求的数据传送。1

26、)将R2中的内容送到R3中。2)将内RAM30H单元中的内容与外RAM2040H单元中的内容交换。3)将ROM2040H单元中的数据存放在内RAM50H单元中。4)将外RAM30H单元中的内容送到R2中。5)将R2与R3中的内容进行交换。6)将ROM2100H单元中内容送外RAM3165H单元中。解:1) MOV A,R2 MOV R3,A 2) MOV DPTR 2040H MOVX A,DPTR MOV R1,A MOV A,30H MOVX DPTR,A MOV 30H,R1 3) MOV A,#00H MOV DPTR,#2040H MOVC A,A+DPTR MOV 50H,A 4)

27、 MOV R0,#30H MOVX A,R0 MOV R2,A 5) XCH A,R2 XCH A,R3 XCH A,R2 6) MOV A,#00H MOV DPTR,#2100H MOVC A,A+DPTR MOV DPTR,#3165H MOVX DPTR,A 9设A7EH,R040H,(40H)9AH,B23H,Cy=1。分别执行下列指令后,试问:A?各标志位为什么状态?1)ADDA,R02)ADDCA,R03)SWAPA4)XCHA,R05)INCA6)SUBBA,56H7)SUBBA,R08)RLCA9)RRA10)CPLA11)ANLA,R012)ORLA,8FH13)XRLA,

28、40H14)ANL40H,A15)ORL40H,0F0H16)ANLA,0FH17)DECA18)MULAB19)DIVAB20)RRCA解:1)ADDA,R0 AA(R0)A(40H)7EH9AH18H,Cy1,AC1,OV0,P02)ADDCA,R0 AAR0Cy7EH40H10BFH,Cy0,AC0,OV1,P13)SWAPA A0E7H4)XCHA,R0 A(R0)(40H)9AH,(R0)(40H)A7EH,P05)INCA AA17EH17FH,P16)SUBBA,56H AA56HCy7EH56H127H,Cy0,AC0,OV0,P07)SUBBA,R0 AAR0Cy7EH40H

29、13DH,Cy0,AC0,OV0,P18)RLCA A11111101B0FDH,Cy0,P19)RRA A00111111B3FH,P010)CPLA A81H,P011)ANLA,R0 AA(R0)A(40H)7EH9AH1AH,P112)ORLA,8FHAA8FH7EH8FH0FFH,P013)XRLA,40H AA(40H)7EH9AH0E4H,P014)ANL40H,A (40H)(40H)A9AH7EH1AH,A7EH15)ORL40H,0F0H (40H)(40H)0F0H9AH0F0H0FAH,A7EH16)ANLA,0FH AA0FH7EH0FH0EH,P117)DECA A

30、A17EH17DH,P018)MULAB AB7EH23H01111110B00100011B0001 0001 0011 1010B113AH B11H,A3AH,OV1,P019)DIVAB AB7EH23H0111 1110B0010 0011B0000 0011B余0001 0101B A03H,B15H,OV0,P020)RRCA A0BFH,Cy0,P110试编写程序,要求将内RAM30H4FH中的内容平移送到40H5FH中。解:(参考程序)START:MOV R0,#4FHMOV R1,#5FHMOV R2,#20HLOOP:MOV A,R0MOV R1,ADEC R0DEC R

31、1DJNZ R2,LOOPEND 11试编写程序,将内RAM的30H4FH中的内容清零。解:(参考程序)START:MOV R0,#30HCLR AMOV R2,#20HLOOP:MOV R0,AINC R0DJNZ R2,LOOPEND12试编写程序,在内RAM的30H4FH中查找关键字0AH,若有,则将内RAM的50H单元置为01H,并将找到的存放第一个关键字的单元地址存放在内RAM的52H单元中。解:(参考程序)START:MOV R0,#30HMOV R2,#20HMOV 50H,#00HLOOP1:CJNE R0,#0AH,LOOP2 MOV 50H,#01H MOV 52H,R0

32、SJMP LOOP3LOOP2:INC R0DJNZ R2,LOOP1LOOP3:END13在内RAM从30H到3FH单元中存放着符号数,要求统计正数、零、负数的个数,结果分别存放在内RAM的40H、41H、42H三个单元中。解:(参考程序)START:MOV R0,#30HMOV R2,#10HMOV 40H,#00HMOV 41H,#00HMOV 42H,#00HLOOP1:MOV A,R0 JNZ LOOP2 ;判断A是否为非0,非0转移 INC 41H ;零的个数统计量加1 SJMP LOOP4LOOP2:JB ACC.7,LOOP3 ;判断A是否为负数,是负数则转移INC 40H ;

33、正数的个数统计量加1SJMP LOOP4LOOP3:INC 42H ;负数的个数统计量加1LOOP4:INC R0DJNZ R2,LOOP1END14分析执行下面各段程序的结果。(1)ORG1000H MOVA,34HADDA,78HDAARETA,OV,P,Cy,AC解: ORG1000HMOVA,34H ;A34HADDA,78H ;AA78H34H78H0ACH,Cy=0,AC=0,OV=1,P=0DAA ;AA66H0ACH66H12H,Cy=1,AC=0,OV=0,P=0RET所以:A12H ,OV0 ,P0,Cy1,AC0(2) MOVSP,5FHMOVA,54HMOVB,78HP

34、USHAPUSHBPOPAPOPBRETA,B,SP解: MOVSP,5FH ;SP=5FHMOVA,54H ;A=54HMOVB,78H ;B=78HPUSHA ;SP=60H,(SP)=(60H)=54HPUSHB ;SP=61H,(SP)=(61H)=78HPOPA ;A=(SP)=(61H)=78H,SP=60HPOPB ;B=(SP)=(60H)=54H,SP=5FHRET所以:A78H,B54H,SP5FH(3) MOVA,7DHADDA,6BHMOVR0,34HMOV34H,0BCHADDCA,R0XRLA,R0ORLA,34HMOVR0,ASWAPA XCHA,R0RETA,R

35、0,(34H)解: MOVA,7DH ;A=7DH ADDA,6BH ;A=7DH6BH=0E8H,Cy=0 MOVR0,34H ;R0=34H MOV34H,0BCH ;(34H)=0BCH ADDCA,R0 ;A=A(R0)Cy=A(34H)Cy=0E8H0BCH0=0A4H,Cy=1 XRLA,R0 ;A=AR0=0A4H34H=90H ORLA,34H ;A=A(34H)=90H0BCH=0BCH MOVR0,A ;(R0)=(34H)=A=0BCH SWAPA ;A=0CBH XCHA,R0 ;A=34H,R0=0CBHRET所以:A34H,R00CBH,(34H)0BCH(4)CL

36、RCMOVA,55HMOVR0,23HLOOP1:ADDCA,R0JNCLOOP1RETA,R0解: CLRC ;Cy=0MOVA,55H ;A=55HMOVR0,23H ;R0=23HLOOP1:ADDCA,R0 ;(1)A=A+R0+Cy=78H,(2)A=9BH,(3)A=0BEH,(4)A=0E1H ;(5)A=04H,Cy=1JNCLOOP1RETA04H,R023H(5) ORG2000HMOVA,00HMOVR2,09HLOOP1:ADDA,03HDAADJNZR2,LOOP1MOV30H,ARETA,R2,(30H)解: ORG2000HMOVA,00H ;A=00HMOVR2

37、,09H ;R2=09HLOOP1:ADDA,03H ;(1)A=03H,(2)A=06H,(3)A=09H,(4)A=0CH,(5)DAA ;(1) A=03H,(2)A=06H,(3)A=09H,(4)A=12H,(5)DJNZR2,LOOP1;(1) R2=08H,(2)R2=07H,(3)R2=06H,(4)R2=05H,(5)MOV30H,A ;(30H)=27HRETA27H ,R200H,(30H)27H15对3-14(1)、(5)题进行手工汇编。解:(1)源程序地址机器码ORG1000HMOVA,34H1000H74 34ADDA,78H1002H24 78DAA1004HD4

38、RET1005H22 (5)源程序地址机器码ORG2000HMOVA,00H2000H74 00MOVR2,09H2002H7A 09LOOP1:ADDA,03H2004H24 03DAA2006HD4 DJNZR2,LOOP12007HDA FBMOV30H,A2009HF5 30RET200BH22 16试编制能延时40ms的程序。解: 设fosc=12MHz,则机器周期为1us。参考程序START:MOV R0,#84H ;1个机器周期数,R0=132MOV R1,#96H ;1个机器周期数,R1=150LOOP1:DJNZ R1,LOOP1 ;2个机器周期数MOV R1,#64H ;1

39、个机器周期数DJNZ R0,LOOP1 ;2个机器周期数RET ;2个机器周期数上述程序执行的机器周期数为:11(215012)132240000(个)所以上述程序执行的时间即为40ms。17试编制程序,实现123100?解:分析:进行十进制数加法,因此需要进行BCD码调整,其中千位、百位数存放在31H单元,十位、个位数存放在30H单元中。 参考程序START:MOV A,#00H MOV R0,#01H MOV 31H,#00HLOOP1:ADD A,R0 DA A JNC LOOP2 INC 31HLOOP2:PUSH A MOV A,R0 ADD A,#01H DA A JC LOOP3 MOV R0,A POP A SJMP LOOP1LOOP3:POP AINC 31H MOV 30H,A END18在内RAM的30H3FH单元中存放着16个字节的无符号数,要求比较大小,并按从大到小顺序存放在内RAM的30H3FH单元中。解:参考程序 START:MOV R0,#30H MOV R2,#0FH

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1