单片机与接口技术课后习题答案_第1页
单片机与接口技术课后习题答案_第2页
单片机与接口技术课后习题答案_第3页
单片机与接口技术课后习题答案_第4页
单片机与接口技术课后习题答案_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机与接口技术课后习题答案习题答案第二章:硬件结构

一、填空

1.0;低电平

2.32;4;8;R0-R7

3.上电自动复位;手动按键复位;0;00H-07H;RS1=1,RS0=0

4.内部数据存储器;外部数据存储器;内部程序存储器;外部程序存储器;3

5.00H-FFH;0000H-FFFFH

6.0B;4KB

7.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.7

4.操作数;A;B;DPTR

5.操作数;地址;R0;R1;DPTR

6.直接

7.DPTR;PC;A;程序存储器

8.DPTR;SP;MOVX

9.直接;立即

10.80H习题答案第三章:指令系统

一、填空

11.68H

12.68H

13.62H;68H;36H

14.41H;39H;88H

15.BFH;0;0;0

16.2EH;1;1;0

17.26H;1

18.90H;06H;0;1

19.16H;05H;0;0

20.06H;09H

21.00H;96H

二、选择

1.④2.③3.④4.②①②③④习题答案三、编程与问答题

9:试编写程序,采用“与”运算,判断内RAM20H单元的8位二进制数是整数还是负数。

ORG 0000H

MOV 20H,#10 ;赋初值

MOV A,#80H ;(ACC.7)=1

ANL A,20H

JZ POS ;正数?(POSITIVENUMBER)

NEG: CLR F0 ;负数(NEGATIVENUMBER)

SJMP OUT ;END

POS: SETB F0 ;正数,置标志位F0

OUT: NOP

END ;结束①②③④习题答案11:试编写程序,将内RAM从20H开始存放的16个数传送到从18H开始的单元中。

ORG 0000H

MOV R0,#20H ;存放数据原始起始地址

MOV R1,#1 ;第一个数据为1

INIT: MOV A,R1 ;循环送数(初始化)

MOV @R0,A ;

INC R0 ;

INC R1 ;

CJNE R1,#11H,INIT ;是否送完16个数?

SETB F0 ;置初始化完成标志位

MOV R0,#20H ;存放数据原始起始地址

MOV R1,#18H ;存放数据目标起始地址

MOV R2,#10H ;计数:共16个数据

LOOP: MOV A,@R0 ;送数

MOV @R1,A

INC R0

INC R1

DJNZ R2,LOOP ;是否传送结束?

SETB P1.0 ;置传送结束标志位

END ;结束①②③④习题答案13:试编写程序,将片外RAM从2000H开始存放的16个数传送到片外RAM从30H开始的单元中。

ORG 0000H

MOV DPTR,#2000H ;存放数据原始起始地址

MOV A,#0 ;第一个数据为1

INIT: MOVX @DPTR,A ;循环送数(初始化)

INC DPTR ;

INC A ;

CJNE A,#10H,INIT ;是否送完16个数?

SETB F0 ;置初始化完成标志位

MOV DPTR,#2000H ;存放数据原始起始地址

MOV R0,#30H ;存放数据目标起始地址

MOV R1,#10H ;计数:共16个数据

LOOP: MOVX A,@DPTR ;循环送数(转储)

MOVX @R0,A

INC DPTR

INC R0

DJNZ R1,LOOP ;是否传送结束?

SETB P1.0 ;置传送结束标志位

END ;结束①②③④习题答案第四章:程序设计

一、填空

1.保护;恢复

2.机器语言

3.0500H;0505H;01H;0507H

二、编程

①②③④【习题P85-5】找最大数《单片机与接口技术》开始第一个数送入BIG取数送入A(BIG)≥(A)?结束交换两数NY初始化还有数吗?NY《单片机与接口技术》LIST EQU 20H

NUM EQU 30

BIG EQU 40H

ORG 1000H

MOV R0,#LIST ;设置地址指针,指向存放数据的起始单元

MOV R7,#NUM ;数据个数

MOV BIG,@R0 ;将第一个数当做当前最大数

DEC R7 ;修改剩余的数据个数

NEXT: INC R0 ;指向下一个数据单元

MOV A,@R0 ;取数据

CJNE A,BIG,COMP ;比较当前数与当前最大数

SJMP CONT ;两数相等,不用处理

COMP: JC CONT ;两数不等,比较大小

MOV BIG,A ;A中数大,送入BIG中

CONT: DJNZ R7,NEXT ;判断数据是否比较完毕

RET【习题P85-5】源程序习题答案第五章:中断系统

一、填空

1.共享

2.外部

3.PC;PC;外部中断0矢量地址

4.外部中断0

5.电平;边沿

二、选择

1.②2.③3.④4.①5.③6.④7.②8.②

三、编程①②③④【习题P99-3】试编写一段对中断系统初始化程序,要求允许外部中断0(电平触发)、T0中断、串行口中断,且使T0为高优先级中断。《单片机与接口技术》《单片机与接口技术》 ORG 0000H

AJMP MAIN

ORG 0003H ;外部中断0中断矢量地址

AJMP IT_0

ORG 000BH ;定时器0中断矢量地址

AJMP IT_T0

ORG 0023H ;串口中断矢量地址

AJMP IT_S

ORG 0100H ;主程序起始地址

MAIN: … ;主程序其他初始化工作

SETB EXO ;开外部中断0

CLR ITO ;置外部中断0电平触发方式

SETB ET0 ;开定时器0中断

SETB ES ;开串口中断

SETB EA ;开CPU总中断

SETB PT0 ;置定时器0为高优先级中断

… ;主程序主体内容

IT_0: … ;外部中断0中断处理子程序

IT_T0: … ;定时器0中断处理子程序

IT_S: … ;串口中断处理子程序

END ;主程序结束【习题P99-3】初始化程序中断初始化习题答案第六章:定时器

一、填空

1.16;4;3

2.中断标志位;查询标志位

3.32768us

二、选择

1.③2.④

本章相关习题题目及答案详见后面内容。①②③④《单片机与接口技术》一、填空题

1.8051单片机内部有2个()位的加1定时/计数器,其中T0有()种工作模式;T1有()种工作模式。

2.当计数器产生溢出中断时,把定时器控制寄存器的TF0(或TF1)位置位。对计数器溢出的处理,中断方式时,该位作为()位使用;在查询方式时,该位作为()位使用。

3.在定时器工作模式0下,计数器的宽度为13位,如果系统晶振频率为3MHz,则最大定时时间为()。1.16;4;32.中断标志位;查询标志位3.答案:《单片机与接口技术》二、选择题

1.在下列寄存器中,与定时/计数器无关的是()

①TCON

②TMOD

③SCON

④IE

2.若以查询方式进行定时应用,则应用程序中的初始化内容应包括()

①系统复位、设置工作方式、设置计数器初值

②设置计数器初值、设置中断方式、启动定时器

③设置工作方式、设置计数器初值、开中断

④设置工作方式、设置计数器初值、关中断③④《单片机与接口技术》三、问答题

1.定时/计数器用作定时器时,其定时时间与哪些因素有关?用作计数器时,对外部计数脉冲有何要求?

2.当定时器0工作在模式3时,由于TR1被T0占用,那么应如何控制定时器1的开启和关闭?fosc(晶振频率)、工作模式(0、1、2、3)、计数初值的设置等因素有关;fmax≦fosc/242.开启:送入设置定时器T1为模式0、1、2的控制字,如:

MOVTMOD,#23H ;或13H,03H

关闭:送入设置定时器T1为模式3的控制字,如:

MOVTMOD,#33H答案:《单片机与接口技术》时钟频率为12MHz时,其定时/计数器在计数状态下允许输入的最高计数脉冲的频率是多少?1.具有8位自动重装入计数初值功能,定时精确,但计数值有限,为0~255。适用于对定时精度要求高,如用作精确的脉冲信号发生器,或用作串行口波特率发生器等。2.fmax=fosc/24=24MHz/24=1MHz答案:《单片机与接口技术》四、计算与编程

7.在定时器0的工作模式0、1、2中,如果要求对T0端输入4个脉冲时,计数器就产生中断溢出,则3种工作模式下的计数初值分别应该设置成多少?TMOD寄存器应该如何设置?答案:模式TMOD初值(TH0)、(TL0)004HX=213-4=8192-4=8188D=1FFCH(TH0)=0FFH,(TL0)=1CH105HX=216-4=65536-4=65532D=0FFFCH(TH0)=0FFH,(TL0)=0FCH206HX=28-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在各种工作模式下的最大定时时间:模式0tmax=213×12/fosc=8192×12/(6×106))=16.384ms模式1tmax=216×12/fosc=65536×12/(6×106))=131.072ms模式2tmax=28×12/fosc=256×12/(6×106))=512us根据以上计算结果可知,使用模式0或1都可以直接实现10ms的定时,而要使用模式2则还需设置软计数器,下面就按模式0和模式1两种方案分别进行计算和编程。P1.010ms10ms20ms《单片机与接口技术》方案一:T0工作于模式01.计算计数初值:

x=213-t/(12/fosc)=8192-(10×10-3)/(6/(12×106))=3192D将3192转换为二进制数:x=0110001111000B:(TMOD)=00HGATEM1M0GATEM1M0C/TC/T0 0 0 0 0 0 0 0则(TH0)=01100011B=63H,(TL0)=00011000B=18H《单片机与接口技术》方案一源程序(中断方式);P113-9.asm(fosc=6MHz,T0中断方式,由P1.0输出50Hz方波)

ORG 0000H

AJMP START ;跳转主程序

ORG 000BH ;定时器T0中断矢量地址

LJMP PITO ;跳转中断服务程序

ORG 0100H

START: MOV SP,#60H ;堆栈初始化

MOV TMOD,#00H ;定时器T0工作方式0(13位计数器)

MOV TH0,#63H ;置计数初值

MOV TL0,#18H

CLR P1.0 ;设置方波的起始状态

SETB EA ;开中断

SETB ET0

SETB TR0 ;启动定时器

SJMP $ ;等待中断

PITO: MOV TL0,#18H ;重送计数初值,保证定时时间始终为10ms

MOV TH0,#63H

CPL P1.0 ;输出方波

RETI ;中断返回

END《单片机与接口技术》方案一源程序(查询方式);P113-9.asm(fosc=6MHz,T0查询方式,由P1.0输出50Hz方波)

ORG 0000H

START: MOV IE,#00H ;关中断,考虑通用性

MOV TMOD,#00H ;定时器T0工作方式0(13位计数器)

MOV TL0,#18H ;置计数初值

MOV TH0,#63H

CLR P1.0 ;设置方波的起始状态

SETB TR0 ;启动定时器

LOOP: JNB TF0,$ ;等待10ms定时时间到

MOV TL0,#18H ;重送计数初值,保证定时时间始终为10ms

MOV TH0,#63H

CLR TF0 ;清溢出标志,以便下次判断

CPL P1.0 ;输出方波

SJMP LOOP ;产生连续方波

END《单片机与接口技术》方案二:T0工作于模式11.计算计数初值:

x=216-t/(12/fosc)=65536-(10×10-3)/(6/(12×106))=60536D:(TMOD)=01HGATEM1M0GATEM1M0C/TC/T0 0 0 0 0 0 0 1将60536转换为二进制数:x=1110110001111000B则(TH0)=11101100B=0ECH,(TL0)=01111000B=78H《单片机与接口技术》方案二源程序(中断方式);P113-9.asm(fosc=6MHz,T0中断方式,由P1.0输出50Hz方波)

ORG 0000H

AJMP START ;跳转主程序

ORG 000BH ;定时器T0中断矢量地址

LJMP PITO ;跳转中断服务程序

ORG 0100H

START: MOV SP,#60H ;堆栈初始化

MOV TMOD,#01H ;定时器T0工作方式1(16位计数器)

MOV TH0,#0ECH ;置计数初值

MOV TL0,#78H

CLR P1.0 ;设置方波的起始状态

SETB EA ;开中断

SETB ET0

SETB TR0 ;启动定时器

SJMP $ ;等待中断

PITO: MOV TL0,#78H ;重送计数初值,保证定时时间始终为10ms

MOV TH0,#0ECH

CPL P1.0 ;输出方波

RETI ;中断返回

END《单片机与接口技术》方案二源程序(查询方式);P113-9.asm(fosc=6MHz,T0查询方式,由P1.0输出50Hz方波)

ORG 0000H

START: MOV IE,#00H ;关中断,考虑通用性

MOV TMOD,#01H ;定时器T0工作方式1(16位计数器)

MOV TL0,#78H ;置计数初值

MOV TH0,#0ECH

CLR P1.0 ;设置方波的起始状态

SETB TR0 ;启动定时器

LOOP: JNB TF0,$ ;等待10ms定时时间到

MOV TL0,#78H ;重送计数初值,保证定时时间始终为10ms

MOV TH0,#0ECH

CLR TF0 ;清溢出标志,以便下次判断

CPL P1.0 ;输出方波

SJMP LOOP ;产生连续方波

END习题答案第七章:系统扩展

一、填空

1.分时复用的数据总线和低8位地址总线;高8位地址总线;写控制线;读控制线

2.64KB;64KB

3.高

4.统一;统一

5.锁存;三态缓冲

6.选通控制

二、选择

1.②2.①3.③4.④5.③6.②7.③①②③④习题答案三、扩展

2.用2片Intel2716给8051单片机扩展一个4KB的外部程序存储器,要求地址空间与8051的内部ROM相衔接,画出逻辑连接图。805174LS373D0~D7Q0~Q7O0~O7CEOEOEA0~A7A8~A102716(A)O0~O7CEOEA0~A7A8~A102716(B)8ALEP0.0~P0.7PSEN3P2.3P2.4P2.5P2.6P2.7P2.0~P2.274LS138Y3Y2CBA8G扩展补充练习

1.根据8031单片机的片外扩展电路,完成如下几个问题。(1)外扩程序存储器的容量是

,外扩数据存储器的容量是

。(2)两片存储器芯片的地址范围分别是多少?(地址线未用到的位填1) 2764范围:

。 1#6264范围:

。 2#6264范围:

。答案:(1)8K,16K。

(2) 2764范围:C000H~DFFFH

1#范围:A000H~BFFFH 2#范围:6000H~7FFFH扩展补充练习

2.根据四片8K×8位存储器芯片的连接图,请确定每片存储器芯片的地址范围。扩展补充练习3.如下图所示,请使用74LS373作为地址锁存器,74LS139作为地址译码器,使用4片16KB的E2PROM芯片27128扩展MCS-51单片机的程序存储器至64KB,请完成电路连接,并确定各E2PROM芯片地址范围。电路连接:地址范围:芯片地址范围10000H~3FFFH24000H~7FFFH38000H~BFFFH4C000H~FFFFH习题答案第八章:键盘与显示器接口

一、填空

1.段选;位选

2.4;1

二、问答

1.静态显示电路与动态扫描显示电路的特点:参见课件。

5.消除键盘抖动的方法有硬件消抖和软件消抖,其中软件消抖一般是采用延时子程序实现的。

6.(下页)①②③④习题答案+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.13210476511109815141312电路连接如图

程序在后两页键盘扫描子程序SERCH:MOV R2,#0EFH ;扫描字初值(第0列低电平) MOV R3,#00H ;R3放列号LINE0: MOV A,R2 ; MOV P1,A ; MOV A,P1 ;取键盘状态 JB ACC.3,LINE1 ;第0行没有按键,再判断第1行 MOV A,#00H ;第0行有按键,行首号送A AJMP TRYK ;LINE1: JB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论