单片机实用技术课后答案

  • 格式:doc
  • 大小:54.50 KB
  • 文档页数:5

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。

答:(1)MOV A,R0MOV R1,A(2)MOV R4,50H(3)MOV DPTR,#2000HMOVX A,@DPTRMOV 70H, A(4)MOV DPTR,#0800HMOVX A,@DPTRMOV R5,A(5)MOV DPTR,#2000HMOVX A,@DPTRMOV DPTR,#2100HMOVX @DPTR,A10.若(R0)=30H,(A)=40H,(30H)=60H,(40H)=08H。

试分析执行下列程序段后上述各单元内容的变化。

答:MOV A,@R0 ;(A)=60HMOV @R0,40H ;(30H)=08HMOV 40H,A ;(40H)=60HMOV R0,#7FH ;(R0)=7FH11.若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H,41H,42H单元中的内容各为多少?答:MOV A,50H ;(A)=40HMOV R0,A ;(R0)=40HMOV A,#00H ;(A)=00HMOV @R0,A ;(40H)=00HMOV A,# 3BH ;(A)=3BHMOV 41H,A ;(41H)=3BHMOV 42H,41H ;(42H)=3BH12.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容。

若该指令影响标志位,试指出CY,AC 和OV的值。

(1)MOV A,@R0 ;(A)=2CH(2)ANL 40H,#0FH ;(40H)=0CH(3)ADD A,R4 ;(A)=22H, C=1,AC=1 ,OV=0(4)SWAP A ;(A)=8EH(5)DEC @R1 ;(20H)=0EH(6)XCHD A,@R1 ;(A)=EFH ,(20H)=08H13.试用位操作指令实现下列逻辑操作。

要求不得改变未涉及的位的内容。

(1)使ACC.2置位;(2)清除累加器低4位;(3)清除ACC.0,ACC.3,ACC.5,ACC.7。

答:(1)SETB ACC.2(2) CLR ACC.3CLR ACC.2CLR ACC.1CLR ACC.0(3)CLR ACC.0CLR ACC.3CLR ACC.5CLR ACC.714.试编写程序,将内部RAM的21H,22H,23H三个连续单元的内容依次存入30H,31H 和32H单元。

答:MOV 30H,21HMOV 31H,22HMOV 32H,23H15.试编写程序,完成两个16位数的减法:7E56H-2B4EH。

其结果存入内部RAM的30H 和31H单元,31H单元存差的高8位,30H单元存差的低8位。

答:CLR CMOV A,#56HSUBB A,#4EHMOV 30H, AMOV A, #7EHSUBB A, #2BHMOV 31H,A16.试编写程序,将R0中的低4位数与R3中的高4位数合并成一个8位数,并将其存放在R0中。

答:MOV A, R0ANL A, #0FHMOV 30H, AMOV A, R3ANL A, #0F0HORL A, 30HMOV R0, A17.试编写程序,将内部RAM的20H,21H单元的两个无符号数相乘,结果存放在R2,R3中,R2中存放高8位,R3中存放低8位。

答:MOV A, 20HMOV B, 21HMUL ABMOV R2, BMOV R3, A18.若单片机的主频为12MHz,试用循环转移指令编写延时20ms的延时子程序,并说明这种软件延时方式的优缺点。

答:因为主频是12MHZ,所以机器周期为1us。

DEL: MOV R7, #80 ;1T机DEL1: MOV R6, #123 ;1 T机NOP ;1 T机DJNZ R6, $ ;2 T机DJNZ R7,DEL1 ;2 T机RET ;2 T机延时时间:T =1+80[(1+1+2*123)+2]+2≈20000us=50ms优点:节省内部硬件资源。

缺点:是执行程序要占用CPU的时间。

19.简述利用8051单片机汇编语言进行程序设计的步骤。

答:(1)任务分析(硬件、软件系统分析)。

(2)确定算法和工作步骤。

(3)程序总体设计和流程图绘制。

(4)分配内存,确定程序与数据区存放地址。

(5)编写源程序。

(6)调试、修改,最终确定程序。

20.常用的程序结构有哪几种?特点是什么?答:顺序结构程序特点是:(1)程序中无分支、循环和调用等指令;(2)程序执行时按编写顺序,程序流程不变。

分支结构程序特点是:(1)根据要求利用转移指令,改变程序流向;(2)设计难点是如何正确使用供条件转移指令使用的条件。

循环结构程序特点是:大大缩短程序,减少占用程序空间;程序结构优化,清晰易读;可以实现多重循环控制,但循环不能交叉,不能从外循环跳入内循环;循环程序主要由循环常数、循环体和循环控制三部分组成。

21.子程序调用时,参数的传递方法有哪几种?答:(1)利用累加器或寄存器(2)利用存储器(3)利用堆栈22.什么是伪指令?常用的伪指令功能是什么?答:伪指令:控制汇编用的特殊指令,这些指令不属于指令系统,不产生机器代码。

(1)ORG:定位目的程序的起始地址。

(2)END:汇编语言程序结束伪指令。

(3)EQU:赋值伪指令。

(4)DB:从指定单元开始定义(存储)若干个字节的数据或ASCII字符,常用于定义数据常数表。

(5)DW:从指定单元开始定义(存储)若干个字的数据或ASCII字符。

23.设被加数存放在内部RAM的24H,25H单元,加数存放在22H,23H单元,若要求和存放在26H,27H中,试编写出16位数相加的程序。

答:MOV A, 24HADD A, 22HMOV 26H, AMOV A, 25HADDC A, 23HMOV 27H, AMOV 00H, C24.编写一段程序,把外部RAM中1000H~1030H的内容传送到内部RAM的30H~60H中。

答:MOV DPTR,#1000HMOV R0, #30HMOV R7, #31HL1: MOV A, @DPTRMOV @R0, AINC R0INC DPTRDJNZ R7, L125.编写程序,实现双字节无符号数加法运算,要求(R1R0)+(R7R6)→(61H60H)。

答:MOV A,R0ADD A, R6MOV 60H, AMOV A, R1ADDC A, R7MOV 61H, A26.若8051的晶振频率为6MHz,试计算延时子程序的延时时间。

DELAY: MOV R7,#0F6HLP: MOV R6,#0FAHDJNZ R6,$DJNZ R7,LPRET答:(150*2+1)*2*146*2+146*2+2。