资源描述:
《单片机原理及应用技术课后习题答案主编牛月兰》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、单片机应用技术习题解答3-4.假定累加器A中的内容为30H,执行指令1000H:MOVCA,@A+PC后,把程序存储器()单元的内容送入累加器A中。答:1031H。3-7.下列程序段的功能是什么?PUSHAccPUSHBPOPAccPOPB答:A的内容与B的内容互换。3-9.写出完成如下要求的指令,但是不能改变未涉及位的内容。(A)把Acc.3,Acc.4,Acc.5和Acc.6清零。(B)把累加器A的中间4位清零。(C)把Acc.2和Acc.3置1。答:(A)ANLA,#87H;(A)∧10000111(B)ANLA,#0C3H;(A)∧11000011(C)ORLA,#0CH;(A)∨00
2、0011003-10.已知程序执行前有(A)=02H,(SP)=52H,(51H)=FFH,(52H)=FFH,下述程序执行后,(A)=(50H),(SP)=(52H),(51H)=(30H),(52H)=(50H),(PC)=(5030H)。POPDPH;(SP)=52H,(52H)=FFH,(DPH)=FFH,(SP)=51HPOPDPL;(SP)=51H,(51H)=FFH,(DPL)=FFH,(SP)=50HMOVDPTR,#4000H;(DPTR)=4000HRLA;原来(A)=02H,左移一位后(A)=04HMOVB,A;(B)=04H,MOVCA,@A+DPTR;(4004H)=
3、30H→A,(A)=30HPUSHAcc;(SP)=51H,(51H)=30HMOVA,B;(A)=04HINCA;(A)=05HMOVCA,@A+DPTR;(4005H)=50H→A,(A)=50HPUSHAcc;(52H)=(A)=50H,(SP)=52HRET;(PCH)=50H,(SP)=51H,(PCL)=30H,(SP)=50HORG4000HDB10H,80H,30H,50H,30H,50H3-12:如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:POPDPHPOPDPLPOPSPDPH=(3CH),DPL=(
4、5FH),SP=(4FH)3-13.假定(SP)=60H,(A)=30H,(B)=70H,则执行下列指令后,(SP)=(),(61H)=(),(62H)=()。PUSHAcc;(61H)=30H,(SP)=61HPUSHB;(62H)=70H,(SP)=62H答:(SP)=62H,(61H)=30H,(62H)=70H。4-13.编写程序,实现双字节无符号数加法运算,要求(R0R1)+(R6R7)→60H和61H中。答:参考程序如下:ORG0000HMOVA,R1ADDA,R7MOV61H,AMOVA,R0ADDCA,R6MOV60H,ASJMP$END4-16.若SP=60H,标号LABEL
5、所在的地址为3456H,LCALL指令的地址为2000H,执行如下指令:2000HLCALLLABEL后,堆栈指针SP和堆栈内容发生了什么变化?PC的值等于什么?如果将指令LCALL直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么?答:(1)堆栈指针SP和堆栈内容变化为:SP=SP+1=61H(61H)=PC的低字节=03HSP=SP+1=62H(62H)=PC的高字节=20H(2)PC的值:PC=3456H。(3)不可以将指令LCALL直接换成ACALL。(4)可调用的地址范围是2KB,即2002H~27FFH。5-3:编写出外部中断1为跳沿触发的中断初始化程序。答
6、:SETBIT1SETBEX1SETBEA5-5:某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。答:若仅在/INT0引脚接3个外部中断源,电路如图5-10(P115)ORG0000HLJMPMAINORG0003HLJMPINT_EX0ORG0030HMAIN:CLRIT0;采用低电平有效触发中断SETBEX0;允许外部中断0SETBEA;插入用户程序WAIT:MOVPCON,#01H;单
7、片机进入休眠方式等待中断NOPLJMPWAIT;以下为外部中断0服务子程序INT_EX0:JNBP1.0,NEXT1;判断是不是1号中断LJMPINT_IR1;跳转到1号中断处理程序NEXT1:JNBP1.1,NEXT2;判断是不是2号中断LJMPINT_IR2;跳转到2号中断处理程序NEXT2:LJMPINT_IR3;跳转到3号中断处理程序ORG1000HINT_IR1:;插入相应中断处理程序R