单片机原理及应用技术课后习题答案主编牛月兰.doc

上传人:marr****208 文档编号:137864570 上传时间:2020-07-12 格式:DOC 页数:10 大小:489.29KB
返回 下载 相关 举报
单片机原理及应用技术课后习题答案主编牛月兰.doc_第1页
第1页 / 共10页
单片机原理及应用技术课后习题答案主编牛月兰.doc_第2页
第2页 / 共10页
单片机原理及应用技术课后习题答案主编牛月兰.doc_第3页
第3页 / 共10页
单片机原理及应用技术课后习题答案主编牛月兰.doc_第4页
第4页 / 共10页
单片机原理及应用技术课后习题答案主编牛月兰.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单片机原理及应用技术课后习题答案主编牛月兰.doc》由会员分享,可在线阅读,更多相关《单片机原理及应用技术课后习题答案主编牛月兰.doc(10页珍藏版)》请在金锄头文库上搜索。

1、单片机应用技术习题解答3-4. 假定累加器A中的内容为30H,执行指令1000 H: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)ANL A,#87H;(A)10000111(B)ANL A,#0C3H;(A)11000011(C)ORL A,#0CH;(A)0

2、00011003-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,MOVC A,A+DP

3、TR;(4004H)=30HA,(A)=30HPUSH Acc;(SP)=51H,(51H)=30HMOVA,B; (A)=04H INCA; (A)=05HMOVC A,A+DPTR;(4005H)=50HA,(A)=50HPUSH Acc;(52H)=(A)=50H, (SP)=52HRET;(PCH)=50H, (SP)=51H, (PCL)=30H, (SP)=50HORG4000H DB10H,80H,30H,50H,30H,50H 3-12:如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后:POPDPH POPDP

4、L POPSPDPH=(3CH),DPL=(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中。答:参考程序如下:ORG 0000HMOV A, R1 ADD A, R7MOV 61H, AMOV A, R0 AD

5、DC A, R6 MOV 60H, A SJMP $ END4-16若SP=60H,标号LABEL所在的地址为3456H,LCALL指令的地址为2000H,执行如下指令:2000H LCALLLABEL后,堆栈指针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)

6、 可调用的地址范围是2KB,即2002H27FFH。5-3:编写出外部中断1为跳沿触发的中断初始化程序。答:SETBIT1SETBEX1SETBEA5-5:某系统有3个外部中断源1、2、3,当某一中断源变为低电平时,便要求CPU进行处理,它们的优先处理次序由高到低依次为3、2、1,中断处理程序的入口地址分别为1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。答:若仅在/INT0引脚接3个外部中断源,电路如图510(P115)ORG0000HLJMPMAINORG0003HLJMPINT_EX0ORG0030HMAIN:CLRIT0; 采用低电平

7、有效触发中断SETBEX0;允许外部中断0SETBEA; 插入用户程序WAIT:MOVPCON,#01H;单片机进入休眠方式等待中断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:;插入相应中断处理程序RETI;中断返回ORG1100HINT_IR2:;插入相应中断处理程序RETI;中断返回O

8、RG1200HINT_IR3:;插入相应中断处理程序RETI;中断返回 6-2 AT89S51单片机的定时器/计数器有工作方式,各有什么特点? 答:AT89S51单片机的定时器/计数器有工作方式0、工作方式1、工作方式2和工作方式3四种;在工作方式0时,为13位计数器,在工作方式1时,为16位计数器,在工作方式2时,为具有自动恢复初值的8位计数器,在工作方式3时,增加了一个8位定时器/计数器,使单片机具有3个位定时器/计数器。6-7 特殊寄存器TMOD的C/位的作用是什么?答:特殊寄存器TMOD的C/位的作用用于选择计数器模式还是定时器模式。6-10 AT89S51单片机晶振频率是6MHz,要

9、求用定时器T0定时,每定时1s时间到,就使P1.7引脚外接的发光二极管的状态发生变化,由亮变暗,或反之。试计算初值,并编写程序。解:采用查询方式进行编程,程序如下:(1)计算计数初值X因为(216X)*2106=101,所以X=15536=3CB0H。因此TH0=3CH,TL0=B0H。(2)10次计数的实现对于中断10次的计数,采用B寄存器作为中断次数计数器。(3)程序设计参考程序如下: ORG0000H;程序运行入口 LJMP MAIN ;跳向主程序入口MAIN ORG000BH ;T0的中断入口 LJMPIT0P;转T0中断处理子程序IT0P ORG1000H;主程序入口MAIN:MOV

10、SP,#60H;设堆栈指针 MOVB,#0AH;设循环次数10次 MOVTMOD,#01H;设置T0工作在方式1定时 MOV TL0,#0B0H;给T0设初值 MOV TH0,#3CH SETBET0;允许T0中断 SETBEA ;总中断允许 SETBTR0;启动T0HERE: SJMPHERE;原地循环,等待中断IT0P: MOVTL0,#0B0H ;T0中断子程序,T0重装初值 MOVTH0,#3CH DJNZB,RTURN;B中断次数计数,减1非0则中断返回CPLP1.7 ;1s定时时间到,P1.7取反RTURN: RETI6-12 由P3.4引脚(T0)输入一个低频脉冲信号,要求P3.

11、4每发生一次负跳变时,P1.0输出一个500s的同步负脉冲,同时P1.1输出一个1ms的同步正脉冲。已知晶振频率为6MHz。解: P1.1P1.0P3.4500s1ms参考程序如下:ORG 0000HBEGIN:MOV TMOD, #06H MOV TH0, #0FFH MOV TL0, #0FFHCLR P1.1 SETBP1.0SETB TR0DELL: JBC TF0, RESP1 AJMP DELLRESP1:CLR TR0CPL P1.0 CPL P1.1MOV TMOD,#02H MOV TH0, #06H MOV TL0, #06HSETB TR0 LOOP3: JBC TF0,

12、 LOOP4 SJMP LOOP3 LOOP4:CPL P1.0 LOOP1:JBC TF0, LOOP2 SJMP LOOP1LOOP2:CPLP1.1AJMP BEGIN END7-8.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B”的帧格式。答案1:传输字符“B”的帧格式如下:起始位010000101停止位答案2:字符“B”的ASCII码为“42H”(既0BH+37H),帧格式如下:数字(09)H的ASCII码为(09)+30H,数字(AHFH)的ASCII码为(AF)+37H。请画出传送字符“C”的帧格式?7-9.若晶体振荡器为11.

13、0592MHz,串行口工作于方式1,波特率为4800bit/s,写出用T1作为波特率发生器的方式控制字和计数初值。答:T1的TMOD为20H,查表得计数初值为FAH(在PCON中SMOD=0)MOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHMOVSCON,#40H7-11某AT89S51单片机串行口,传送数据的帧格式为1个起始位(0),7个数据位,1个偶校验位和1个停止位(1)组成。当该串行口每分钟传送1800个字符时,试计算出波特率。答:串口每秒钟传送的字符为:1800/60=30个字符/秒所以波特率为:30个字符/秒10位/个字符=300bit/s。或波特率=1800(1+7+1+1)/60=300bit/s8-5. 假设有n条地址线,容量是N,对应关系是。由于,因此,4KB的容量需要12条地址线。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号