最新单片机第三章作业参考答案汇编
单片机 第3章 习题解答

MOV C,P2.2 ORL C,TCON.5 ANL C,P1.1 MOV F0,C MOV C,TCON.3 ORL C,/20H.0 ANL C,F0 ANL C,/20H.1 MOV P3.3,C
试编写程序,查找内部RAM的20H—30H单 元中出现00H的次数,并将结果送入31H单元
编写一段程序,比较内部RAM中20H
CLR C MOV A, 20H SUBB A, 21H JNC MAX MOV A, 20H XCH A , 21H MOV 20H, A MAX:SJMP MAX
在内部RAM的20-2FH连续16个单元中存放单字节无
P.52 1—1
MOV R1, #00H MOV A, #00H MOV DPTR, #2000H LOOP1: MOVX @DPTR, A INC DPTR DJNZ R1, LOOP SJMP $
P.52 1—2
MOV R2, #16 MOV R0, #20H MOV R1, #30H LOOP: MOV A, @R0 XCH A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2,LOOP SJMP $
P.52 2—1
MOV A, 40H ADD A, 50H MOV R4, A MOV A, 41H ADDC A, 51H MOV R3, A
P.52 2—2
CLR C MOV A, 40H SUBB A, 50H MOV R7, A MOV A, 41H SUBB A, 51H MOV R6, A
PSW .5 P1.5 B.0 A.0 A.7
单片机原理及应用(高教第二版)第3章参考答案及解析

第3章 AT89S51的指令系统参考答案及解析:1.解析:总体可根据指令表P61解答(1)错P48 3.3 MOV direct,@Ri,i=0或1。
(2)错P54 6 减1指令中不包括数据指针DPTR。
(3)对P52数据指针DPTR自增1。
(4)错P54清0指令只对累加器A操作,不能对寄存器操作。
(5)错P55求反指令同样只对累加器A操作,不能对寄存器操作。
(6)错P47-48 寄存器间不可传送数据,若想传送可通过累加器A。
(7)错P48 进栈指令PUSH后加8位数据寄存器的地址或SFR的地址,若想使用PUSH加数据指针。
DPTR,则要说明使用的部分,即DP0H(DP1H)或DP0L(DP1L)。
(8)对P59 P25 数据位传送指令可对SFR进行寻址,SFR可寻址的字节地址为0H或8H。
(9)错P59根据Acc.3可知,该指令为位操作数据传送指令,但其中一个操作数必须为进位标志C。
(10)对P61外部RAM(8位地址)传送到A。
(11)对P59 (26H).0内容传送到仅为标志位。
(12)错P55 RLC只对累加器A操作。
2.答:(A)对(B)对(C)错(D)错解析:(A)对P45 4. 立即数寻址方式就是直接在指令中给出操作数。
(B)对指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成是从取指令、分析指令到执行完所需的全部时间。
(C)错P44 2.指令中直接给出操作数的单元地址。
(D)错P45 3.寄存器Ri作为间接寻址器前接@。
3.答:A,PC,DPTR解析:P45 5.基址寄存器加变址寄存器间址寻址方式是以DPTR或PC作为基址寄存器,以累加器A 作为变址寄存器,并以两者的内容相加形成16为地址作为目的地址进行寻址的方式。
4.答:直接寻址方式和位寻址方式解析:P46 表3-1 直接寻址和位寻址的寻址空间都包含SFR。
5.答:操作码,操作数,操作码解析:P43 3.2一条指令通常由两部分组成:操作码和操作数。
单片机原理及应用第三章习题答案

习题三1.在MCS-51单片机中,寻址方式有几种?其中对片内RAM 可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。
片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。
片外RAM寻址有:寄存器间接寻址方式。
2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR 间接寻址有什么区别?答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。
3.在位处理中,位地址的表示方式有哪几种?答:1.直接位地址(00H~0FFH)。
例如:20H2.字节地址带位号。
例如:20H.3表示20H单元的3位。
3.特殊功能寄存器名带位号。
例如:P0.1表示P0口的1位。
4.位符号地址。
例如:TR0是定时/计数器T0的启动位。
4.写出完成下列操作的指令。
(1)R0的内容送到R1中。
MOV A,R0MOV R1,A(2)片内RAM的20H单元内容送到片内RAM的40H单元中。
MOV 40H,20H(3)片内RAM的30H单元内容送到片外RAM的50H单元中。
MOV A,30HMOV R0,#50HMOVX @R0,A(4)片内RAM的50H单元内容送到片外RAM的3000H 单元中。
MOV A,50HMOV DPTR,#3000HMOVX @DPTR,A(5)片外RAM的2000H单元内容送到片内RAM的20H 单元中。
MOV DPTR,#2000HMOVX A,@DPTRMOV 20H,A(6)片外RAM的1000H单元内容送到片外RAM的4000H 单元中。
MOV DPTR,#1000HMOVX A,@DPTRMOV DPTR,#4000HMOV @DPTR,A(7)ROM的1000H单元内容送到片内RAM的50H单元中。
单片机第3章习题答案

第3章习题答案一、选择题1.在中断服务程序中,至少应该有一条( D )。
(A)传送指令(B)转移指令(C)加法指令(D)中断返回指令2.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( C )。
(A)MOV (B)MOVC (C)MOVX (D)以上都行3.JNZ rel指令的寻址方式是( C )。
(A)立即寻址(B)寄存器寻址(C)相对寻址(D)位寻址4.执行LCALL 1020H指令时,MCS-51所完成的操作是( D )。
(A)保护PC (B)PC←1020H(C)保护现场(D)PC+3入栈,PC←1020H5.下面哪条指令产生WR信号( D )。
(A)MOVX A,@DPTR (B)MOVC A,@A+PC(C)MOVC A,@A+DPTR (D)MOVX @DPTR,A6.在执行PUSH ACC指令时,MCS-51完成的操作是( A )。
(A)(SP)←(SP)+1,((SP))←(ACC)(B)(SP)←(ACC),((SP))←(SP)-1(C)(SP)←(SP)-1,((SP))←(ACC)(D)((SP))←(ACC),(SP)←(SP)+17.MCS-51执行完MOV A,#08H后,PSW的哪一位被置位( D )。
(A)C (B)F0 (C)OV (D)P8.指令AJMP的跳转范围是( C )。
(A)256B (B)1KB (C)2KB (D)64KB9.在寄存器间接寻址方式中,指定寄存器中存放的是( B )。
(A)操作数(B)操作数地址(C)转移地址(D)地址偏移量10.执行返回指令时,返回的断点是( C )。
(A)调用指令的首地址(B)调用指令的末地址(C)调用指令下一条指令的首地址(D)返回指令的末地址二、填空题:1.8051指令基本格式由标号、操作码助记符、操作数和注释组成。
2.MOV A,20H源寻址方式为直接寻址。
3.执行ANL A,#0FH指令后,累加器A的高4位=0000B 。
单片机第三章答案

3.2指出下列每条指令的寻址方式和功能:○1MOV A, #50H该指令是立即数寻址方式,功能:A←立即数52H,就是操作数包含在指令字节中,跟在指令操作码后面字节内容就是操作数本身,把立即数52H送到累加器中。
○2MOV A, 50H该指令是直接寻址方式,功能:A←50H,指令中直接给出该操作数所在的单元的地址,将50H 单元里的内容送到累加器中。
○3MOV A, @R0该指令是寄存器间接寻址方式,功能:A←(R0),指令中给出的某一个寄存器的内容是操作数所在的存储单元地址,从该地址去取操作数,把R0单元的操作数送到累加器里。
○4MOV A, R7该指令是寄存器寻址方式,功能:A←R7,指令中直接给出该寄存器的名称,将寄存器单元里的操作数送给累加器。
○5MOVC A, @A+PC该指令是变址寻址方式,功能:操作数的地址是由一个基地址加一个偏移地址组成。
该指令把基址寄存器PC的内容为基本地址,加上变址寄存器A的内容形成16位的地址,访问程序存储器中的数据表格。
○6SJMP LOOP该指令是相对转移指令该指令的寻址方式为相对寻址方式,功能:PC ←PC+2,PC←PC+LOOP3.3设内部RAM中的69H单元的内容为50H,写出当执行下列程序段后寄存器A﹑R0和内部RAM中50H﹑51H单元的内容为何值?MOV A,69H ;A中的值为50HMOV R0,A ;将A中的值送到R0中MOV A,#00H ;将立即数00H送到A中MOV @R0,A ;将A中的内容送到间接寻址的内部RAM中50H单元中MOV A,#35H ;将立即数35H送到A中MOV 51H,A ;将A中的值送到51H单元中MOV 52H,#80H ;将立即数80H送到52H单元中可以知道:完成这段程序后,A中的值为:35H,R0:50H,内部RAM中50H:00H,51H:35H3.6设堆栈指针SP中的内容为60H,内部RAM中的30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR以及SP中内容将有何变化?PUSH 30H ;SP←SP+1,(SP)←(30H),SP=61H,(61H)=24HPUSH 31H ;SP←SP+1,(SP)←(31H),SP=62H,(62H)=10HPOP DPL ;DPL←(SP),SP←SP-1,(82H)=10H,SP=61HPOP DPH ;DPH←(SP),SP←SP-1,(83H)=24H,SP=60HMOV 30H,#00H ;30H←00HMOV 31H,#0FFH ;31H←0FFH可以知道:完成这段程序后,61H中的内容为:24H,62H:10H,内部RAM中30H:00H,31H:0FFH,DPTR:2410H,SP:60H。
单片机第3章作业及答案

第3章作业1、简述89C51的寻址方式,每一种方式请举一例。
(1) 立即数寻址(Immediate Addressing)立即数寻址是将操作数直接存放在指令中,作为指令的一部分存放在代码段里。
例如指令:MOV A,#30H(2) 直接寻址(Direct Addressing)直接寻址是将操作数的地址直接存放在指令中。
这种寻址方式的操作数只能存放在内部数据存贮器和特殊功能寄存器中。
例如:MOV A,30H(3) 寄存器寻址(Register Addressing)寄存器寻址是指操作数存放在以上所说的寄存器中,并且寻址时的寄存器已隐含在指令的操作码中。
例如:MOV A,R0(4) 寄存器间接寻址(Register Indirect Addressing)寄存器间接寻址是指操作数存放在以寄存器内容为地址的单元中。
例如:MOV A,@R0(5) 变址寻址(Base-Register-plus-Index-Register-Indirect Addressing)变址寻址是指操作数存放在变址寄存器和基址寄存器的内容相加形成的数为地址的单元中。
其中累加器A作变址寄存器、程序计数器PC或寄存器DPTR 作基址寄存器。
例如:MOVC A, @A+DPTR(6) 相对寻址(Relative Addressing)相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。
例如:JZ 61H(7) 位寻址(Bit Addressing)位寻址,是指对片内RAM中20H~2FH中的128个位地址,以及SFR中的11个可进行位寻址的寄存器中的位地址寻址。
例如:位寻址指令MOV C,20H,此指令是将RAM中位寻址区20H位地址中的内容,送给位累加器C。
字节地址寻址指令:MOV A,20H,此指令是将内部RAM中20H单元中的内容送给累加器A。
2、请给下列指令加注释:MOV A , 50H ;将片内RAM 50H单元中的数传送到累加器A中MOV A , #50H ;将立即数#50H传送到累加A中MOV 50H , #30H ;将立即数#30H传送到片内RAM 50H单元中MOV 52H , 51H ;将片内RAM 51H单元中的数传送到内RAM 51H单元中3、完成下列功能,写出相应指令:(1) 在片内RAM 50H单元中存入立即数#76H;MOV 50H , #76H(2) 将片内RAM 30H单元中的低4位与高4交换;MOV A , 30HSW AP AMOV 30H , A(3) 将累加器A的低4位清0;ANL A , #11110000B(4) 将片内RAM 50H单元中的数取反后存入片外RAM7100H单元中;MOV A , 50HCPL AMOV DPTR , #7100HMOVX @DPTR , A(5) 片内RAM 36H单元中存的小于10的BCD码乘以10以后存与片内RAM 37H中;MOV A , 36HRL ARL ARL ARL AMOV 37H , A(6) 将片内RAM51H最高位置1;ORL 51H , #10000000B(7) 将程序状态字寄存器中的F0位置1;CLR F0(8) 片内RAM 78H单元中的数为#09H则转移,否则顺序执行;MOV A , #09HCLR CSUBB A , 78HJZ NEXT(9) 请将片外RAM 3100H和3101H存的两个数交换。
单片机原理及应用第三章习题答案

单片机原理及应用第三章习题答案第一题:题目:什么是中断?中断是指在程序执行过程中,由于发生了某个特定事件,导致当前的程序需要暂时中断执行,转而去处理其他紧急或优先级更高的事件。
中断可以提高系统的实时性和响应速度。
第二题:题目:请简述中断的分类及其优缺点。
中断可以分为外部中断和内部中断。
外部中断:外部中断是通过外部设备触发的中断,例如按键输入、定时器溢出等。
外部中断的优点是能够及时响应外部事件,缺点是响应时间有一定延迟,并且可能会引起系统的不稳定性。
内部中断:内部中断是通过程序内部指令触发的中断,例如软件中断、硬件错误等。
内部中断的优点是响应时间几乎可以忽略,缺点是需要消耗较多的系统资源。
第三题:题目:简述中断的处理过程。
中断的处理过程一般包括以下几个步骤:1. 中断请求发生:外部设备或程序内部触发中断请求。
2. 中断响应:CPU接收到中断请求后,保存当前程序的执行状态,暂停当前程序的执行,并跳转到中断服务程序。
3. 中断服务程序执行:中断服务程序是为了处理中断事件而编写的程序,它会根据中断类型执行相应的操作,例如处理外部设备的输入、更新系统状态等。
4. 中断处理完成:中断服务程序执行完后,将恢复之前保存的执行状态,继续执行被中断的程序。
第四题:题目:请简述常见的中断优先级判断方式。
常见的中断优先级判断方式有两种:硬件优先级判断和软件优先级判断。
硬件优先级判断:硬件优先级判断是通过硬件电路来实现的,每个中断信号都有一个对应的硬件中断优先级,优先级高的中断信号将打断当前正在执行的中断信号。
软件优先级判断:软件优先级判断是通过编程的方式来实现的,每个中断信号都有一个对应的中断优先级,在中断服务程序中通过程序代码来判断当前是否有更高优先级的中断请求。
第五题:题目:请说明中断向量表的作用。
中断向量表是一个存储中断处理程序入口地址的数据结构,它将每个中断编号与对应的中断服务程序的入口地址进行映射。
当一个中断请求发生时,中断向量表将根据中断编号找到对应的中断服务程序的入口地址,从而实现中断的处理。
单片机原理及应用第三章课后答案

第三章作业答案2. MCS-51有(4)个8位并行I/O口,在作为通用I/O口使用时P0~P3是准双向口,所以由输出转输入时必须先写入(1)。
6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是( 方式2定时)。
或设(TMOD)=0A5H,则定时器T0的状态是( 软件控制的16位计数器),定时器T1的状态是(软硬件控制的可自动重装初值的8位定时器)。
27.请写出1INT为低电平触发的中断系统初始化程序。
解:INT为低电平触发的中断系统初始化程序如下:1ORG 0000HLJMP MAINORG 0013HLJMP INTN1ORG 0100HMAIN:MOV SP,#60HSETB EASETB EX1;开1INT中断CLR PX1 ;令1INT为低优先级CLR IT1 ;令1INT为电平触发SJMP $INTN1:……RETIEND用MOV指令实现:MOV IE,#84HANL IP,#0FBH(或ORL IP,#04H)ANL TCON,#0FBH28.MCS-51单片机响应中断后,写出中断服务子程序的入口地址。
解:36.使用一个定时器,如何通过软硬结合方法实现较长时间的定时?解:设定好定时器的定时时间,采用中断方式用软件进行溢出次数累计,从而得到较长的定时时间,定时时间=定时器的定时时间×软件累计的溢出次数。
37.利用定时器输出周期为2 ms的方波, 设单片机晶振频率为6 MHz。
试编程实现之。
解:选用定时器/计数器T0 作定时器,工作在方式1,输出为P1.0 引脚,2 ms 的方波可由1 ms的高低电平相间隔而成,因而只要每隔1 ms对P1.0 取反一次即可得到这个方波。
初值的计算如下:T0=12/(6×106)= 2×10-6STC=M-T/T0=216-1×10-3/2×10-6=65536-500=65036=FE0CH当定时器/计数器采用方式0时,初值为:TC=M-T/T0=213-1×10-3/2×10-6=8192-500=7692=1E0CH,则真正的16位计数初值为:1E0CH(高8位,低5位)利用定时器/计数器时,必须用文字说明工作方式的设置,计算初值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.指出下列指令中划线操作数的寻址方式和指令的操作功能
MOV A, #78H;立即寻址,将立即数送入累加器A
MOV A, 78H;直接寻址,将内部RAM 78H单元内容送累加器A
MOV A, R6;寄存器寻址,将R6内容送累加器A
INC @R0;寄存器间接寻址,将指针R0指向的内部RAM单元内容加1
PUSH ACC;寄存器寻址,将累加器A的内容入栈
RL A;寄存器寻址,将累加器A的内容左移1位
CPL 30H;位寻址,将位变量30H的内容取反
SJMP $;相对寻址,死循环指令
MOVC A, @A+DPTR;基寄存器加变址寄存器间接寻址,从程序存储器中DPTR+A 对应的地址单元取数到累加器A
2.指出下列指令中哪些是非法的?
DEC DPTR
MOV A, @R2
MOV R1, @R0
MOV P1.1, 30H
MOV #30H, A
MOV OV, 30H
MOV A, @A+DPTR
RRC 30H
RL B
XRL C, 30H
3.如何将1个立即数30H送入内部RAM 90H单元?如何将立即数送特殊功能寄存器P1?
(1)MOV R0, #90H
MOV @R0, #30H
(2)MOV P1, #30H
4.执行下列一段程序后,试分析有关单元内容。
MOV PSW, #0;
MOV R0, #30H;
MOV 30H, #40H
MOV 40H, #50
MOV A, @R0
ADDC A, #0CEH
INC R0
执行结果:(R0)=31H, (30H)=40H, (40H)=50, (A)=0EH, (PSW)=81H
5.试编写一段程序,内部RAM 40H、41H单元内容传送到外部RAM 2000H、2001H单
元中。
MOV DPTR, #2000H
MOV R0, #40H
MOV A, @R0
INC R0
INC DPTR
MOV A, @R0
MOVX @DPTR, A
6.试编写一段程序,根据累加器A的内容,到程序存储器1000H起始的表格中取一双字
节数,送内部RAM 50H、51H单元。
MOV DPTR, #1000H
PUSH ACC
MOVC A, @A+DPTR
MOV 50H, A
POP ACC
INC DPTR
MOVC A, @A+DPTR
MOV 51H, A
7.试编写一段程序,进行两个16位数的相减运算:6483H-56E2H。
结果高8位存在内部
RAM 40H,低8位存41H。
CLR C
MOV A, #83H
SUBB A, #0E2H
MOV 41H, A
MOV A, #64H
SUBB A, #56H
MOV 40H, A
8.试编写一段程序,将30H、31H单元中存放的BCD数,压缩成一个字节(原30H单元
内容为高位),并放入30H单元。
MOV A, 30H
SWAP A
ORL A, 31H
9.试编写一段程序,将30H~32H单元中的压缩BCD拆成6个单字节BCD数,并放入
33H~38H单元。
MOV SP, #60H
MOV A, 30H
MOV R0, #33H
ACALL H2ASC
MOV A, 31H
ACALL H2ASC
MOV A, 32H
ACALL H2ASC
SJMP $
ANL A, #0FH
MOV @R0, A
INC R0
MOV A, B
SWAP A
ANL A, #0FH
MOV @R0, A
INC R0
RET
10.
11.设晶振频率为6MHz,试编写一个延时1ms的子程序,并利用该子程序,编写一段主程
序,在P1.0引脚上输出高电平宽2ms、低电平宽1ms的方波信号。
MOV SP, #60H
LOOP: SETB P1.0
ACALL DELAY
ACALL DELAY
CLR P1.0
ACALL DELAY
SJMP LOOP
DELAY: MOV R0, #248; 1T
DJNZ R0, $; 2T
NOP; 1T
RET ; 2T
延时计算:1T+248*2T+1T+2T=500T=1ms。