单片机第3章作业
- 格式:ppt
- 大小:151.00 KB
- 文档页数:7
第三章作业参考答案3-10. 己知(A)=7AH,(R0)=34H,(34H)=A5H,请写出分别执行下面各条指令后累加器A的内容。
(1) MOV A,R0 ;(A)=34H(2) MOV A,@R0 ;(A)=A5H(3) MOV A,34H ;(A)=A5H(4) MOV A,#34H ;(A)=34H3-12. 1设(R0)=32H,(A)=48H,片内RAM中(32H)=60H,(40H)=61H。
请指出在执行下列程序段后上述各单元内容的变化。
MOV A,@R0 ; (A)=(32H)=60HMOV @R0,40H ; (32H)=61HMOV 40H,A ; (40H)=(A)=60HMOV R0,#40H ; (R0)=40H即:执行完程序段后,(R0)=40H, (A)=60H, 片内RAM中,(32H)=61H, (40H)=60H3-13 已知(A)=83H,(R0)=47H,(47H)=34H。
请写出执行完下列程序段后A的内容。
ANL A,47H ;(A)=83H∧34H=00HORL 47H,A ;(47H)=34H∨00H=34H00H?34H=34H;(A)= XRL A,@R0SWAP A ;(A)=43H答:执行完程序段后,(A)=43H3-14 14. 说明下段程序执行过程中,SP的内容及堆栈中内容的改变过程。
MOV SP,#30H ;(SP)=30HMOV 30H,#55HMOV 40H,#66HPUSH 30H ;(SP)=31H, 堆栈区中(31H)=55HPUSH 40H ;(SP)=32H, 堆栈区中(32H)=66HPOP 30H ;先将堆栈区中32H单元的内容送入30H单元,使(30H)=66H, 再使;SP值减1,即: (SP)=31HPOP 40H ;先将堆栈区中31H单元的内容送入40H单元,使(40H)=55H, 再使;SP值减1,即: (SP)=30H最终,(SP)=30H, 内部RAM中,(30H)=66H, (40H)=55H.3-15 编程实现两个16位二进制数的减法。
3.4 思考题与习题5.要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?答:访问特殊功能寄存器可采用寄存器寻址、直接寻址、寄存器间接寻址、部分的还可采用位寻址。
访问片外数据存储器只能采用寄存器间接寻址。
6.在89C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H, (48H)=90H。
请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。
MOV A,40H ;A=48H,直接寻址MOV R0,A ;R0=48H,寄存器寻址MOV P1,#0F0H ;P1=F0H,立即寻址MOV @R0,30H ;(48H)=38H,直接寻址MOV DPTR,#3848H ;DPTR=3848H,立即寻址MOV 40H,38H ;(40H)=40H,直接寻址MOV R0,30H ;R0=38H,直接寻址MOV P0,R0 ;P0=38H,寄存器寻址MOV 18H,#30H ;(18H)=30H,立即寻址MOV A,@R0 ;A=40H,寄存器间接寻址MOV P2,P1 ;P2=F0H,寄存器寻址9.设R0的内容为32H,A的内容为48H,片内RAM的32H单元内容为80H,40H单元内容为08H。
请指出在执行下列程序段后上述各单元内容的变化。
MOV A,@R0 ;A=80HMOV @R0,40H ;(32H)=08HMOV 40H,A ;(40H)=80HMOV R0,#35H ;R0=35H答:R0=35H,A=80H,(32H)=08H,(40H)=80H。
16.已知(A)=83H,,(R0)=17H,,(17H)=34H。
请写出执行完下列程序段后A的内容。
ANL A,#17H ;A=03HORL 17H,A ;(17H)=34H∨03H=37HXRL A,@R0 ;A=03H⊕37H=34HCPL A ;A=CBH答:A=CBH17.使用位操作指令实现下列逻辑操作。
第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章作业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存的两个数交换。
第3章思考题及习题31.C51在标准C的基础上,扩展了哪几种数据类型?答:扩展了4种数据类型(见教材表3-1中最后4行)。
它们分别是:bit、sfr、sfr16和sbit。
2.C51有哪几种数据存储类型?其中数据类型“idata,code,xdata,pdata”各对应AT89S8051单片机的哪些存储空间答:C51有6种数据存储类型data、bdata、idata、xdata、pdata和code。
数据存储类型idata对应片内RAM的256字节。
数据存储类型code对应程序存储区。
数据存储类型xdata对应片外64KB的RAM空间。
数据存储类型pdata对应片外RAM的256字节。
3.bit与 sbit定义的位变量有什么区别?答:bit是用来定义普通的位变量,它的值只能是二进制的0或1。
而sbit定义的是特殊功能寄存器的可寻址位,它的值是可以进行位寻址的特殊功能寄存器的某位的绝对地址,例如PSW寄存器OV位的绝对地址0xd2。
4.说明3种数据存储模式(1)SMALL模式(2)COMPACT模式(3)LARGE模式之间的差别。
答:3种数据存储模式之间的差别如下:(1)SMALL模式。
在该模式下,所有变量都默认位于8051单片机内部的数据存储器,这与使用data指定存储器类型的方式一样。
在此模式下,变量访问的效率高,但是所有数据对象和堆栈必须使用内部RAM。
(2)COMPACT模式。
本模式下的所有变量都默认在外部数据存储器的1页(256字节)内,这与使用pdata指定存储器类型是一样的。
该存储器类型适用于变量不超过256字节的情况,此限制是由寻址方式决定的,相当于使用数据指针@Ri进行寻址。
与SMALL模式相比,该存储模式的效率比较低,对变量访问的速度也慢一些,但比LARGE模式快。
(3)LARGE模式。
在LARGE模式下,所有变量都默认位于外部数据存储器,相当于使用数据指针@DPTR进行寻址。
1.设变量x以补码形式存放在片内RAM 30H单元中,变量y与x的关系是:X, X>0Y= 20H, X=0X+5, X<0编程根据x的值求y值并放回原单元。
答:START:MOV A,30HJZ NEXTANL A,#80HJZ EDMOV A,#05HADD A,30HMOV 30H,ASJMP EDNEXT:MOV 30H,#20HED:SJMP $2.MCS-51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何?答:立即寻址对应程序存储器直接寻址对应内部数据存储器和SFR寄存器寻址对应工作寄存器R0~R7,A,B,DPTR寄存器间接寻址对应片内RAM:@R0,@R1,SP,片外RAM:@R0,@R1,@DPTR变址寻址对应程序存储器:@A+PC,@A+DPTR相对寻址对应程序存储器256字节范围内:PC+偏移量位寻址对应片内RAM的位寻址区(20H~2FH字节地址),某些可位寻址的SFR 3.访问特殊功能寄存器SFR可以采用哪些寻址方式?答:直接寻址方式和位寻址方式4.访问片内RAM单元可以采用哪些寻址方式?答:直接和间接寻址方式5.访问外部RAM单元可以采用哪些寻址方式?答:间接寻址方式6.访问外部ROM可以采用哪些寻址方式?答:立即、变址和相对寻址方式7.为什么说布尔处理功能是8051单片机的重要特点?答:因为8051具有位寻址功能8.对于AT89S52单片机内部RAM还存在高128字节,应采用何种方式访问?答:采用间接寻址方式9.完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令。
(1)将R0的内容传送到R1;(2)内部RAM单元50H的内容传送到寄存器R4;(3)外部RAM单元2000H的内容传送到内部RAM单元70H;(4)外部RAM单元0800H的内容传送到寄存器R5;(5)外部RAM单元2000H的内容传送到外部RAM单元2100H。
第三章作业答案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. 编写中断服务程序:根据中断源的不同,编写相应的中断服务程序。
中断服务程序一般包括中断处理前的准备工作、中断处理代码和中断处理后的清理工作。
4. 注册中断服务程序:将编写好的中断服务程序的入口地址注册到中断向量表中,以便单片机在中断发生时能够正确地跳转到对应的中断服务程序。
5. 启用中断:根据需要,使能相应的中断源,使其能够触发中断。
第四题:题目:请简述单片机中断的优缺点。
答案:单片机中断的优点主要体现在两个方面:一是提高了系统的响应速度,当有紧急事件发生时,可以立即中断当前任务去处理该事件,避免了因等待而造成的时间浪费;二是提高了系统的可靠性,中断机制可以保证在紧急事件发生时,能够及时进行处理,避免了数据的丢失或系统的崩溃。
精心整理第二章作业( P40)2-4MCS-51单片机中履行程序的地点放在哪?由几个位构成?最大寻址范围是多少?答:放在程序计数器 PC中, 16 位, 64KB。
2-5 在程序储存器中, 0000H、 0003H、000BH、0013H、 001BH、0023H 这 6 个单元有什么特定的含义?答: 0000H复位后, PC=0000H,开始履行程序的地点0003H外面中止 0(INT0)进口地点000BH准时器 0 中止( TF0)进口地点0013H外面中止 1(INT1)进口地点001BH准时器 1 中止( TF1)进口地点0023H串行口中止 TI/RI进口地点2-10 开机复位此后,CPU使用哪一组工作存放器?它们的地点是什么?怎样改变目前工作存放器?答:使用第 0 组工作存放器, 00H-07H,经过改正 PSW中的 RS1和 RS0两位来改变目前的工作存放器。
第三章作业( P75)3-7 指出指令中的50H或 66H个代表什么?解:①MOVA,#50H立刻数MOVA,50H直接地点MOV50H,#20H直接地点MOVC,50H位地点MOV50H,20H直接地点②MOV@R0,#66H立刻数MOVR6,#66H立刻数MOV66H,#45H直接地点MOV66H,C位地点MOV66H,R1直接地点3-9 写出能达成以下数据传递的指令:解:①R1 中内容传递到 R0;MOVA,R1MOVR0, A②内部 RAM20H单元中的内容送到30H单元;MOV30H,20H③外面 RAM20H单元中的内容送到内部RAM20H单元;MOVR0, #20HMOVXA,@R0MOV20H,A④外面 RAM2000H单元中的内容送到内部RAM20H单元;MOVDPTR,#2000HMOVXA,@DPTRMOV20H,A精心整理⑤外面ROM2000H单元中的内容送到内部RAM20H单元;MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOV20H,A⑥外面 2000H单元中的内容送到外面RAM3000H单元;MOVDPTR,#2000HMOVXA,@DPTRMOVDPTR,#3000HMOVX@DPTR,A3-11 已知:( 20H)=X;(21H) =Y;( 22H)=Z,请用图示说明以下程序履行后货仓的内容是多少?①MOVSP,#70H②MOVSP,#60HPUSH20HPUSH22HPUSH21HPUSH21HPUSH22HPUSH20H解: (73H)=Z;(72H)=Y;(71H)=X;(63H)=X;(62H)=Y;(61H)=Z ;3-20 试编出能达成以下操作的程序:解:①使 20H单元中数的高两位变“ 0”,其他位不变;ANL20H,#3FH②使 20H单元中数的高两位变“1”,其他位不变;0RL20H,#0C0H③使 20H单元中数的高两位变反,其他位不变;XRL20H,#0C0H④使 20H单元中数的高四位变“1”,低四位变“ 0”;MOV20H,#0F0H⑤使 20H单元中数的全部位变反。