《单片机与接口技术》课后习题答案

上传人:一*** 文档编号:242983125 上传时间:2024-09-13 格式:PPT 页数:40 大小:649KB
返回 下载 相关 举报
《单片机与接口技术》课后习题答案_第1页
第1页 / 共40页
《单片机与接口技术》课后习题答案_第2页
第2页 / 共40页
《单片机与接口技术》课后习题答案_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机与接口技术,课后习题答案,习题答案,第二章:硬件结构,一、填空,1. 0,;低电平,2. 32,;,4,;,8,;,R0-R73.,上电自动复位;手动按键复位;,0,;,00H-07H,;,RS1=1,,,RS0=04.,内部数据存储器;外部数据存储器;内部程序存储器;外部程序存储器;,35. 00H-FFH,;,0000H-FFFFH6. 0B,;,4KB7. 1.2MHz,;,12MHz,;,1us,二、选择,1. 2. 3. 4. 5. 6. 7. 8. 9. ,三、判断,1. 2. 3. 4. 5. 6. 7. 8. 9. ,习题答案,第三章:指令系统,一、填空,1.,指令,2. 111,;单;双;三,3. 74.,操作数;,A,;,B,;,DPTR5.,操作数;地址;,R0,;,R1,;,DPTR6.,直接,7. DPTR,;,PC,;,A,;程序存储器,8. DPTR,;,SP,;,MOVX9.,直接;立即,10. 80H,习题答案,第三章:指令系统,一、填空,11. 68H12. 68H13. 62H,;,68H,;,36H14. 41H,;,39H,;,88H15. BFH,;,0,;,0,;,016. 2EH,;,1,;,1,;,017. 26H,;,118. 90H,;,06H,;,0,;,1,19. 16H,;,05H,;,0,;,0,20. 06H,;,09H21. 00H,;,96H,二、选择,1. 2. 3. 4. ,习题答案,三、编程与问答题,9,:试编写程序,采用“与”运算,判断内,RAM 20H,单元的,8,位二进制数是整数还是负数。,ORG0000HMOV20H,#10;,赋初值,MOVA,#80H;(ACC.7)=1ANLA,20HJZ,POS,;,正数?,(POSITIVE NUMBER)NEG:CLRF0;,负数,(NEGATIVE NUMBER)SJMPOUT;END,POS,:SETBF0;,正数,置标志位,F0OUT:NOPEND;,结束,习题答案,11,:试编写程序,将内,RAM,从,20H,开始存放的,16,个数传送到从,18H,开始的单元中。,ORG0000HMOVR0,#20H;,存放数据原始起始地址,MOVR1,#1;,第一个数据为,1INIT:MOVA,R1;,循环送数(初始化 ),MOVR0,A;INCR0;INCR1;CJNER1,#11H,INIT;,是否送完,16,个数?,SETBF0;,置初始化完成标志位,MOVR0,#20H;,存放数据原始起始地址,MOVR1,#18H;,存放数据目标起始地址,MOVR2,#10H,;,计数:共,16,个数据,LOOP:MOVA,R0;,送数,MOVR1,AINCR0INCR1DJNZR2,LOOP;,是否传送结束?,SETBP1.0;,置传送结束标志位,END;,结束,习题答案,13,:试编写程序,将片外,RAM,从,2000H,开始存放的,16,个数传送到片外,RAM,从,30H,开始的单元中。,ORG0000HMOVDPTR,#2000H;,存放数据原始起始地址,MOVA,#0;,第一个数据为,1INIT:MOVXDPTR,A;,循环送数(初始化),INCDPTR;INCA;CJNEA,#10H,INIT;,是否送完,16,个数?,SETBF0;,置初始化完成标志位,MOVDPTR,#2000H;,存放数据原始起始地址,MOVR0,#30H;,存放数据目标起始地址,MOVR1,#10H;,计数:共,16,个数据,LOOP:MOVXA,DPTR;,循环送数(转储),MOVXR0,AINCDPTRINCR0DJNZR1,LOOP;,是否传送结束?,SETBP1.0;,置传送结束标志位,END;,结束,习题答案,第四章:程序设计,一、填空,1.,保护;恢复,2.,机器语言,3. 0500H;0505H;01H;0507H,二、编程,5.,答案见下两页,PPT,【,习题,P85-5】,找最大数,单片机与接口技术,开始,第一个数送入,BIG,取数送入,A,(BIG),(A)?,结束,交换两数,N,Y,初始化,还有数吗,?,N,Y,单片机与接口技术,LISTEQU20HNUMEQU30BIGEQU40H,ORG1000HMOVR0,#LIST;,设置地址指针,指向存放数据的起始单元,MOVR7,#NUM;,数据个数,MOVBIG,R0;,将第一个数当做当前最大数,DECR7;,修改剩余的数据个数,NEXT:INCR0;,指向下一个数据单元,MOVA,R0;,取数据,CJNEA,BIG,COMP;,比较当前数与当前最大数,SJMPCONT;,两数相等,不用处理,COMP:JCCONT;,两数不等,比较大小,MOVBIG,A;A,中数大,送入,BIG,中,CONT:DJNZR7,NEXT;,判断数据是否比较完毕,RET,【,习题,P85-5】,源程序,习题答案,第五章:中断系统,一、填空,1.,共享,2.,外部,3. PC,;,PC,;外部中断,0,矢量地址,4.,外部中断,05.,电平;边沿,二、选择,1. 2. 3. 4. 5. 6. 7. 8. ,三、编程,3.,题目及程序见下两页,PPT,【,习题,P99-3】,试编写一段对中断系统初始化程序,要求允许外部中断,0,(电平触发)、,T0,中断、串行口中断,且使,T0,为高优先级中断。,单片机与接口技术,单片机与接口技术,ORG0000HAJMPMAIN,ORG0003H;,外部中断,0,中断矢量地址,AJMPIT_0,ORG000BH;,定时器,0,中断矢量地址,AJMPIT_T0,ORG0023H;,串口中断矢量地址,AJMPIT_S,ORG0100H;,主程序起始地址,MAIN:;,主程序其他初始化工作,SETBEXO;,开外部中断,0CLRITO;,置外部中断,0,电平触发方式,SETBET0;,开定时器,0,中断,SETBES;,开串口中断,SETBEA;,开,CPU,总中断,SETBPT0;,置定时器,0,为高优先级中断,;,主程序主体内容,IT_0:;,外部中断,0,中断处理子程序,IT_T0:;,定时器,0,中断处理子程序,IT_S:;,串口中断处理子程序,END;,主程序结束,【,习题,P99-3】,初始化程序,中断初始化,习题答案,第六章:定时器,一、填空,1. 16,;,4,;,32.,中断标志位;查询标志位,3. 32768us,二、选择,1. 2. ,本章相关习题题目及答案详见后面内容。,单片机与接口技术,一、填空题,1.8051,单片机内部有,2,个( )位的加,1,定时,/,计数器,其中,T0,有( )种工作模式;,T1,有( )种工作模式。,2.,当计数器产生溢出中断时,把定时器控制寄存器的,TF0,(或,TF1,)位置位。对计数器溢出的处理,中断方式时,该位作为( )位使用;在查询方式时,该位作为( )位使用。,3.,在定时器工作模式,0,下,计数器的宽度为,13,位,如果系统晶振频率为,3MHz,,则最大定时时间为( )。,1.,16,;,4,;,3,2.,中断标志位;查询标志位,3.,8192X4=32768us=32.768ms,答案:,单片机与接口技术,二、选择题,1.,在下列寄存器中,与定时,/,计数器无关的是( ),TCON TMOD SCON, IE,2.,若以查询方式进行定时应用,则应用程序中的初始化内容应包括( ), 系统复位、设置工作方式、设置计数器初值,设置计数器初值、设置中断方式、启动定时器,设置工作方式、设置计数器初值、开中断,设置工作方式、设置计数器初值、关中断,单片机与接口技术,三、问答题,1.,定时,/,计数器用作定时器时,其定时时间与哪些因素有关?用作计数器时,对外部计数脉冲有何要求?,2.,当定时器,0,工作在模式,3,时,由于,TR1,被,T0,占用,那么应如何控制定时器,1,的开启和关闭?,1.,与,fosc,(晶振频率)、工作模式(,0,、,1,、,2,、,3,)、计数初值的设置等因素有关;,fmaxfosc/24,2.,开启:送入设置定时器,T1,为模式,0,、,1,、,2,的控制字,如:,MOV TMOD,#23H;,或,13H,03H,关闭:送入设置定时器,T1,为模式,3,的控制字,如:,MOV TMOD,#33H,答案:,单片机与接口技术,三、问答题,3.,定时器的工作模式,2,有什么特点?适用于什么场合?,6.,试说明当,8031,单片机的,时钟频率,为,12MHz,时,其定时,/,计数器在计数状态下允许输入的最高计数脉冲的频率是多少?,1.,具有,8,位自动重装入计数初值功能,定时精确,但计数值有限,为,0,255,。适用于对定时精度要求高,如用作精确的脉冲信号发生器,或用作串行口波特率发生器等。,2.,fmax=fosc/24=24MHz/24=1MHz,答案:,单片机与接口技术,四、计算与编程,7.,在定时器,0,的工作模式,0,、,1,、,2,中,如果要求对,T0,端输入,4,个脉冲时,计数器就产生中断溢出,则,3,种工作模式下的计数初值分别应该设置成多少?,TMOD,寄存器应该如何设置?,答案:,模式,TMOD,初值,(TH0),、,(TL0),0,04H,X=2,13,-4=8192-4=8188D=1FFCH,(TH0)=0FFH,(TL0)=1CH,1,05H,X=2,16,-4=65536-4=65532D=0FFFCH,(TH0)=0FFH,(TL0)=0FCH,2,06H,X=2,8,-4=256-4=252D=0FCH,(TH0)=0FCH,(TL0)=0FCH,共性问题:需置初值,TH0,,,TL0,,高四位若为,A-F,,前面应加,0,单片机与接口技术,9.,设单片机的晶振频率为,6MHz,,编程用定时器,T0,,在,P1.0,口产生一个,50Hz,的方波。(,要求用中断完成,),分析:,欲产生,50Hz,的连续方波,其周期为,1/50=0.02s=20ms,,则只需在,P1.0,口以,10ms,周期交替输出高低电平即可,因此定时时间应为,10ms,。(如右图示),确定定时器的工作模式:,根据,单片机,fosc=6MHz,,可先计算确定,T0,在各种工作模式下的最大定时时间:,模式,0,t,max,=2,13,12/fosc=819212/(610,6,)=16.384ms,模式,1,t,max,=2,16,12/fosc=6553612/(610,6,)=131.072ms,模式,2,t,max,=2,8,12/fosc=25612/(610,6,)=512us,根据以上计算结果可知,使用模式,0,或,1,都可以直接实现,10ms,的定时,而要使用模式,2,则还需设置软计数器,下面就按模式,0,和模式,1,两种方案分别进行计算和编程。,P1.0,10ms,10ms,20ms,单片机与接口技术,方案一:,T0,工作于模式,0,1.,计算计数初值:,x=2,13,-t/(12/fosc)=8192-(10,10,-3,)/(6/(12,10,6,)=3192D,将,3192,转换为二进制数:,x=0110001111000B,2.TMOD,初始化,:,(TMOD)=00H,GATE,M1,M0,GATE,M1,M0,C/T,C/T,00000000,则,(TH0)=0110 0011B=63H,,,(TL0)=0001 1000B=18H,单片机与接口技术,方案一源程序(中断方式),;P113-9.asm,(,fosc=6MHz,,,T0,中断方式,由,P1.0,输出,50Hz,方波),ORG 0000H,AJMPSTART;,跳转主程序,ORG000BH;,定时器,T0,中断矢量地址,LJMPPITO;,跳转中断服务程序,ORG0100HSTART:MOVSP,#60H;,堆栈初始化,MOVTMOD,#00H;,定时器,T0,工作方式,0,(,13,位计数器),MOVTH0,#63H;,置计数初值,MOVTL0,#18H,CLRP1.0;,设置方波的起始状态,SETBEA;,开中断,SETBET0SETBTR0;,启动定时器,SJMP$;,等待中断,PITO:,MOVTL0,#18H;,重送计数初值,保证定时时间始终为,10msMOVTH0,#63HCPLP1.0;,输出方波,RETI;,中断返回,END,单片机与接口技术,方案一源程序(查询方式),;P113-9.asm,(,fosc=6MHz,,,T0,查询方式,由,P1.0,输出,50Hz,方波),ORG 0000H,START:MOVIE,#00H;,关中断,考虑通用性,MOVTMOD,#00H;,定时器,T0,工作方式,0,(,13,位计数器),MOVTL0,#18H;,置计数初值,MOVTH0,#63H,CLRP1.0;,设置方波的起始状态,SETBTR0;,启动定时器,LOOP:JNBTF0,$;,等待,10ms,定时时间到,MOVTL0,#18H;,重送计数初值,保证定时时间始终为,10msMOVTH0,#63HCLRTF0;,清溢出标志,以便下次判断,CPLP1.0;,输出方波,SJMPLOOP;,产生连续方波,END,单片机与接口技术,方案二:,T0,工作于模式,1,1.,计算计数初值:,x=2,16,-t/(12/fosc)=65536-(10,10,-3,)/(6/(12,10,6,)=60536D,2.TMOD,初始化,:,(TMOD)=01H,GATE,M1,M0,GATE,M1,M0,C/T,C/T,00000001,将,60536,转换为二进制数:,x=1110 1100 0111 1000B,则,(TH0)=1110 1100B=0ECH,,,(TL0)=0111 1000B=78H,单片机与接口技术,方案二源程序(中断方式),;P113-9.asm,(,fosc=6MHz,,,T0,中断方式,由,P1.0,输出,50Hz,方波),ORG 0000H,AJMPSTART;,跳转主程序,ORG000BH;,定时器,T0,中断矢量地址,LJMPPITO;,跳转中断服务程序,ORG0100HSTART:MOVSP,#60H;,堆栈初始化,MOVTMOD,#01H;,定时器,T0,工作方式,1,(,16,位计数器),MOVTH0,#0ECH;,置计数初值,MOVTL0,#78H,CLRP1.0;,设置方波的起始状态,SETBEA;,开中断,SETBET0SETBTR0;,启动定时器,SJMP$;,等待中断,PITO:,MOVTL0,#78H;,重送计数初值,保证定时时间始终为,10msMOVTH0,#0ECHCPLP1.0;,输出方波,RETI;,中断返回,END,单片机与接口技术,方案二源程序(查询方式),;P113-9.asm,(,fosc=6MHz,,,T0,查询方式,由,P1.0,输出,50Hz,方波),ORG 0000H,START:MOVIE,#00H;,关中断,考虑通用性,MOVTMOD,#01H;,定时器,T0,工作方式,1,(,16,位计数器),MOVTL0,#78H;,置计数初值,MOVTH0,#0ECH,CLRP1.0;,设置方波的起始状态,SETBTR0;,启动定时器,LOOP:JNBTF0,$;,等待,10ms,定时时间到,MOVTL0,#78H;,重送计数初值,保证定时时间始终为,10msMOVTH0,#0ECHCLRTF0;,清溢出标志,以便下次判断,CPLP1.0;,输出方波,SJMPLOOP;,产生连续方波,END,习题答案,第七章:系统扩展,一、填空,1.,分时复用的数据总线和低,8,位地址总线;高,8,位地址总线;写控制线;读控制线,2. 64KB,;,64KB3.,高,4.,统一;统一,5.,锁存;三态缓冲,6.,选通控制,二、选择,1. 2. 3. 4. 5. 6. 7. ,习题答案,三、扩展,2.,用,2,片,Intel2716,给,8051,单片机扩展一个,4KB,的外部程序存储器,要求地址空间与,8051,的内部,ROM,相衔接,画出逻辑连接图。,8051,7,4,L,S,3,7,3,D,0,D,7,Q,0,Q,7,O,0,O,7,CE,OE,OE,A,0,A,7,A,8,A,10,2716,(,A,),O,0,O,7,CE,OE,A,0,A,7,A,8,A,10,2716,(,B,),8,ALE,P,0,.,0,P,0,.,7,PSEN,3,P,2,.,3,P,2,.,4,P,2,.,5,P,2,.,6,P,2,.,7,P,2,.,0,P,2,.,2,7,4,L,S,1,3,8,Y,3,Y,2,C,B,A,8,G,扩展补充练习,1.,根据,8031,单片机的片外扩展电路,完成如下几个问题。,(,1,)外扩程序存储器的容量是,,外扩数据存储器的容量是,。,(,2,)两片存储器芯片的地址范围分别是多少?,(,地址线未用到的位填,1),2764,范围:,。,1#6264,范围:,。,2#6264,范围,:,。,答案:,(,1,),8K,,,16K,。,(,2,),2764,范围:,C000H,DFFFH,1#,范 围:,A000H,BFFFH,2#,范 围:,6000H,7FFFH,扩展补充练习,2.,根据四片,8K8,位存储器芯片的连接图,请确定每片存储器芯片的地址范围。,扩展补充练习,3.,如下图所示,请使用,74LS373,作为地址锁存器,,74LS139,作为地址译码器,使用,4,片,16KB,的,E,2,PROM,芯片,27128,扩展,MCS-51,单片机的程序存储器至,64KB,,请完成电路连接,并确定各,E,2,PROM,芯片地址范围。,电路连接:,地址范围:,芯片,地址范围,1,0000H,3FFFH,2,4000H,7FFFH,3,8000H,BFFFH,4,C000H,FFFFH,习题答案,第八章:键盘与显示器接口,一、填空,1.,段选;位选,2. 4,;,1,二、问答,1.,静态显示电路与动态扫描显示电路的特点:参见课件。,5.,消除键盘抖动的方法有硬件消抖和软件消抖,其中软件消抖一般是采用,延时,子程序实现的。,6.,(下页),习题答案,+5V,P1.4,P1.3,P1.0,MCS-51,P1.7,P1.6,P1.5,P1.2,P1.1,3,2,1,0,4,7,6,5,11,10,9,8,15,14,13,12,电路连接如图程序在后两页,键盘扫描子程序,SERCH:MOVR2,#0EFH;,扫描字初值,(,第,0,列低电平,),MOVR3,#00H;R3,放列号,LINE0:MOVA,R2;,MOVP1,A;,MOVA,P1;,取键盘状态,JBACC.3,LINE1;,第,0,行没有按键,再判断第,1,行,MOVA,#00H;,第,0,行有按键,行首号送,A,AJMPTRYK;,LINE1:JBACC.2,LINE2;,第,1,行没有按键,再判断第,2,行,MOVA,#04H;,第,1,行有按键,行首号送,A,AJMPTRYK ;,LINE2:JBACC.1,LINE3;,第,2,行没有按键,再判断第,3,行,MOVA,#08H;,第,2,行有按键,行首号送,A,AJMPTRYK;,LINE3:JBACC.3,COLUM;,第,3,行没有按键,转下一列判断,MOVA,#0CH;,第,3,行有按键,行首号送,A,AJMPTRYK,键盘扫描子程序(续),COLUM:INCR3;,列号加,1MOVA,R2;,扫描字初值,RLA;,本列无按键,换下一列,再查,JNBACC.0,BACK;,所有列是否都扫描完成,?,MOVR2,AAJMPLINE0;,继续查下一列,4,行,TRYK:ADDA,R3;,计算键号,=,行首号,+,列号,BACK:RET,补充习题:,分析如图所示单片机的键盘电路,编写键盘扫描子程序。,电路连接如图程序在下一页,键盘扫描子程序,ORG0000H,KEY_0:MOVP1,#0FFH;,置输入方式,MOVA,P1;,读键盘,CPLA,JZKEY_0;,若无键闭合,再查,ACALLDEL12ms;,延时,12ms,消除抖动,MOVA,P1;,再读键盘,CPLA,JZKEY_0;,若为干扰,再查,JNBACC.0,KEY_1,AJMPProgram0;,跳转,K0,功能程序,KEY_1:JNBACC.1,KEY_2,AJMPProgram1;,跳转,K1,功能程序,KEY_2:JNBACC.2,KEY_3,AJMPProgram2;,跳转,K2,功能程序,AJMPProgram7;,跳转,K7,功能程序,Program0:,AJMPKEY_0;K0,功能程序,Program1:,AJMPKEY_0;K1,功能程序,Program2:,AJMPKEY_0;K2,功能程序,Program7:,RET;,假设,K7,的功能为键扫描子程序返回,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!