北京交通大单片机第4章参考答案

合集下载

单片机原理及接口技术第四版答案

单片机原理及接口技术第四版答案

单片机原理及接口技术第四版答案【篇一:《单片机原理及接口技术(第2版)张毅刚》第4章习题及答案】第4章 at89s51单片机的中断系统思考题及习题41.外部中断1的中断入口地址为 ,定时器1的中断入口地址为。

答:0013h;001bh2.若(ip)=00010100b,则优先级最高者为,最低者为。

答:外部中断1,定时器t13.中断服务子程序与普通子程序有哪些相同和不同之处?答:reti指令在返回的同时自动清除相应的不可寻址的优先级触发器,以允许下次中断,而ret指令则没有这个操作。

除了这一点两条指令不同外,其它操作都相同。

4.下列说法正确的是。

答:da. 各中断源发出的中断请求信号,都会标记在at89s51的ie寄存器中b. 各中断源发出的中断请求信号,都会标记在at89s51的tmod寄存器中c. 各中断源发出的中断请求信号,都会标记在at89s51的ip寄存器中d. 各中断源发出的中断请求信号,都会标记在at89s51的tcon与scon寄存器中5.at89s51单片机响应外部中断的典型时间是多少?在哪些情况下,cpu将推迟对外部中断请求的响应?答:在一个单一中断的系统里,at89s51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。

在下述三种情况下,at89s51将推迟对外部中断请求的响应:(1)at89s52正在处理同级或更高优先级的中断。

(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。

(3)正在执行的指令是reti或是访问ie或ip的指令。

如果存在上述三种情况之一,at89s52将丢弃中断查询结果,将推迟对外部中断请求的响应。

6.中断查询确认后,在下列各种at89s51单片机运行情况下,能立即进行响应的是。

a. 当前正在进行高优先级中断处理b. 当前正在执行reti指令c. 当前指令是div指令,且正处于取指令的机器周期d. 当前指令是mov a,r3答:d7. at89s51单片机响应中断后,产生长调用指令lcall,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送,使程序执行转向中的中断地址区。

单片机原理及接口技术第四版答案

单片机原理及接口技术第四版答案

单片机原理及接口技术第四版答案【篇一:《单片机原理及接口技术(第2版)张毅刚》第4章习题及答案】第4章 at89s51单片机的中断系统思考题及习题41.外部中断1的中断入口地址为 ,定时器1的中断入口地址为。

答:0013h;001bh2.若(ip)=00010100b,则优先级最高者为,最低者为。

答:外部中断1,定时器t13.中断服务子程序与普通子程序有哪些相同和不同之处?答:reti指令在返回的同时自动清除相应的不可寻址的优先级触发器,以允许下次中断,而ret指令则没有这个操作。

除了这一点两条指令不同外,其它操作都相同。

4.下列说法正确的是。

答:da. 各中断源发出的中断请求信号,都会标记在at89s51的ie寄存器中b. 各中断源发出的中断请求信号,都会标记在at89s51的tmod寄存器中c. 各中断源发出的中断请求信号,都会标记在at89s51的ip寄存器中d. 各中断源发出的中断请求信号,都会标记在at89s51的tcon与scon寄存器中5.at89s51单片机响应外部中断的典型时间是多少?在哪些情况下,cpu将推迟对外部中断请求的响应?答:在一个单一中断的系统里,at89s51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。

在下述三种情况下,at89s51将推迟对外部中断请求的响应:(1)at89s52正在处理同级或更高优先级的中断。

(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。

(3)正在执行的指令是reti或是访问ie或ip的指令。

如果存在上述三种情况之一,at89s52将丢弃中断查询结果,将推迟对外部中断请求的响应。

6.中断查询确认后,在下列各种at89s51单片机运行情况下,能立即进行响应的是。

a. 当前正在进行高优先级中断处理b. 当前正在执行reti指令c. 当前指令是div指令,且正处于取指令的机器周期d. 当前指令是mov a,r3答:d7. at89s51单片机响应中断后,产生长调用指令lcall,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送,使程序执行转向中的中断地址区。

单片机第4章习题答案

单片机第4章习题答案

第4章习题答案一、填空题1.机器语言2.机器汇编、手工汇编3.AREA1=1000H、BUF=1004H、TIME=01H、ACK=1006H4.(A)=4FH、(R0)=4BH、(R1)=E5H、(21H)=D8H、(22H)=4BH、(2FH)=E5H二、简答题1.什么叫伪指令?伪指令与指令有什么区别?答:所谓伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编时,由汇编程序处理的操作,它们可以完成如数据定义、分配存储器、指示程序结束等功能。

2.汇编语言的格式是怎样的?汇编语言语句格式为:标号:操作码操作数;注释3.MCS-51系列单片机有哪些伪指令?它们的用途是什么?(1)编起始地址命令ORG功能:规定此命令之后的程序或数据的存放起始地址。

(2)定义字节伪指令格式:[标号:] DB X1,X2, (X)功能:从指定地址开始,存放若干字节数据。

(3)字定义伪指令格式:[标号:] DW Y1,Y2,…,Yn功能:从指定地址开始,存放若干字数据。

(4)汇编结束伪指令END功能:该伪指令指出结束汇编,即使后面还有指令,汇编程序也不处理。

(5)赋值伪指令格式:标号 EQU 表达式功能:将表达式的值(数据或地址)赋给标号。

(6)位定义伪指令格式:[标号] BIT 位地址功能:将位地址赋给标号。

4.汇编语言程序设计分为哪几个步骤?答:汇编语言程序设计一般要经过以下几个步骤:(1)分析问题,明确任务(2)确定算法(3)画出程序流程图(4)编写源程序(5)汇编和调试5.结构化程序设计有哪几种常用的程序结构?答:顺序结构、分支结构、循环结构和子程序结构6.子程序调用时,参数的传递方法有哪几种?答:常用的参数传递方法有:工作寄存器或累加器、指针寄存器、堆栈和程序段等。

7.分析下列程序的功能。

X DATA 30HY DATA 32HMOV A,XJNB ACC.7,TRUECPL AADD A,#01HTRUE:MOV Y,A答:该段程序的功能是:当30H单元的最高位不为0时,则把30H单元的内容送32H 单元,当30H单元的最高位为0时,则把30H单元的内容求反加1后送32单元。

北京交通大学单片机第4章参考答案

北京交通大学单片机第4章参考答案

3-5 指出下列指令中45H代表什么。

MOV A,#45HMOV A,45HMOV 45H,46HMOV C,45HMOV A,#45H中的45H代表立即数45H,该立即数为16进制。

MOV A,45H 中的45H代表直接地址45H单元。

MOV 45H,46H中的45H代表目的操作数所指定的单元为45H。

MOV C,45H中的45H代表45H位。

3-6 分析下列程序执行的结果。

(1)MOV A,#60HMOV R0,#40HMOV @R0, AMOV 41H, R0XCH A, R0执行结果为:(A)=40H(R0)=60H(40H)=60H(41H)=40H (2)MOV DPTR,#2003HMOV A,#18HMOV 20H,#38HMOV R0,#20HXCH A,@R0执行结果为:(DPH)=20H(DPL)=03H(A)=38H(20H)=18H(R0)=20H(3)MOV 20H,#01HMOV A,20HINC ACPL AMOV DPTR,#2000HMOVX @DPTR, A执行结果为:(20H)=01H(A)=FDH(DPTR)=2000H(2000H)=FDH3-8 按要求写出相应的指令。

(1)把寄存器R6的内容送到累加器A中。

(2)把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。

(3)清除内部RAM 3FH 单元的高4位。

(4)使累加器A的最低位置1。

(5)清除进位位。

(6)使ACC.4和ACC.5置1。

(7)把外部ROM 2000H单元中的内容送到内部RAM的20H单元中。

(8)把外部ROM 2000H单元中的内容送到外部RAM的3000H单元中。

(1)MOV A,R6(2)MOV DPTR,#1000HMOVX A,@DPTRMOV R0,#30HMOV @R0,A(3)ANL 3FH,#0FH(4)ORL A,#01H(5)CLR C(6)ORL A,#30H(7)CLR AMOV DPTR,#2000HMOVC A,@A+DPTRMOV 20H,A(8)CLR AMOV DPTR,#2000HMOVC A,@A+DPTRMOV DPTR,#3000HMOVX @DPTR,A3-10 编写程序段完成如下要求。

单片机第四章习题答案

单片机第四章习题答案

第 4 章 单片机内部功能模块习题解答1. 什么是中断?中断有何优点?中断是指计算机在执行程序的过程中,由于计算机系统外界或内部发生某一紧急事件,要求CPU 暂时中止当前的工作转去处理所发生的紧急事件,待处理完后再回到原来被中止的地方,继续原来的工作的过程。

在计算机中引入中断技术具有以下优点:(1)可以提高CPU 的工作效率;(2)便于实时处理;(3)便于故障处理,提高系统的稳定性。

2. MCS-51单片机的中断系统有哪些功能部件组成?分别作什么用?MCS-51单片机的中断系统有4个与中断有关的特殊功能寄存器(TCON 、SCON ),中断允许控制寄存器IE ,中断优先级寄存器IP 和中断顺序查询逻辑等组成。

其功能分别为:TCON 用于寄存定时器T0、T1的溢出中断和外部0INT 、1INT 的中断请求及设置外部中断的触发方式;SVON 的低2位用于作串行发送和接收中断标志;IE 用于设置各中断源允许和禁止;IP 用于设置各中断源的优先级别;中断查询逻辑用于确定中断响应的次序。

3. MCS-51单片机有几个中断源?各中断标志如何产生,又如何清除?MCS-51有五个中断源,它们是:(1)外部中断0(0INT )中断,低电平有效。

通过P3.2引脚引入。

(2)外部中断1(1INT )中断,低电平有效。

通过P3.3引脚引入。

(3)定时/计数器0(T0)溢出中断。

(4)定时/计数器1(T1)溢出中断。

(5)串行口中断,当串行口完成一帧数据的发送和接收时,便请求中断。

中断标志位产生与复位:(1)外部中断0(0INT )中断标志:当外部中断0引脚0INT 上的电平由1变为0时,IE0由硬件置“1”,外部中断0请求中断。

在CPU 响应该中断时由硬件清0。

(2)外部中断1(1INT )中断标志:当外部中断1引脚1INT 上的电平由1变为0时,IE1由硬件置“1”,外部中断1请求中断。

在CPU 响应该中断时由硬件清0。

单片机第四章课后答案

单片机第四章课后答案
多机通信介绍:
TXD RXD 8051 TXD RXD 8051 1#从机 TXD RXD 8051 2#从机 TXD RXD 8051 3#从机
主机
多机通信的实现,主要依靠主、从机之间正确地设置与判断 SM2和发送或接收的第9位数据(TB8或RB8)完成的。现 将二者的作用总结如下: 在单片机串行口以方式2或方式3接收时,一方面,若SM2=1, 表示置多机通信功能位,这时有两种情况: ①接收到第9位数据为1,此时数据装入SBUF,并置RI=1,向 CPU发中断请求; ②接收到第9位数据为0,此时不产生中断,信息将丢失,不能 接收。另一方面,若SM2=0,则接收到的第9位信息无论是1还 是0,都产生RI=1的中断标志,接收的数据装入SBUF。根据这 个功能,就可以实现多机通信。
对主机随后发来的信息不理睬,直到发送新的一帧地址信息。
(4)主机发送控制指令和数据信息给被寻址的从机。其中,主机置TB8=0,表 示发送的是数据或控制指令。对于没选中的从机,因为SM2=1,RB8=0,所以
不会产生中断,对主机发送的信息不接收
第四章
MCS-51存储器和I/O扩展
§4-1 §4-2 存储器扩展 并行I/O口扩展
74HC373
8031
6116
G OE
EA
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
I/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7
ALE
(3)连线说明 地址线:A0~A10连接单片机地址总线的A0~A10,即P0.0~P0.7、 P2.0、P2.1、P2.2共11根 数据线:D0~D7连接单片机的数据线,即P0.0~P0.7 控制线:片选端CE连接单片机的P2.7,即单片机地址总线的最高位 A15;读允许线OE连接单片机的读数据存储器控制线RD;写允许线 WE连接单片机的写数据存储器控制线WR

第4章思考题及习题4参考答案

第4章思考题及习题4参考答案

第4章思考题及习题4参考答案一、填空1.外部中断1的中断入口地址为。

定时器T1的中断入口地址为。

答:0013H;001BH2.若(IP)=00010100B,则优先级最高者为,最低者为。

答:外部中断1,定时器T13.AT89S52单片机响应中断后,产生长调用指令LCALL,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送入,使程序执行转向中的中断地址区。

答:PC、PC、程序存储器4.AT89S52单片机复位后,中断优先级最高的中断源是。

答:外部中断05.当AT89S52单片机响应中断后,必须用软件清除的中断请求标志是。

答:串行中断、定时器/计数器T2中断二、单选1.下列说法错误的是()。

A. 同一级别的中断请求按时间的先后顺序响应B. 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应C. 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求D. 同级中断不能嵌套答:B2.在AT89S52的中断请求源中,需要外加电路实现中断撤销的是()。

A. 电平方式的外部中断请求B.跳沿方式的外部中断请求C.外部串行中断D.定时中断答:A3.中断查询确认后,在下列各种AT89S52单片机运行情况下,能立即进行响应的是()。

A.当前正在进行高优先级中断处理B.当前正在执行RETI指令C.当前指令是MOV A,R3D.当前指令是DIV指令,且正处于取指令的机器周期答:C4.下列说法正确的是()。

A. 各中断源发出的中断请求信号,都会标记在AT89S52的IE寄存器中B. 各中断源发出的中断请求信号,都会标记在AT89S52的TMOD寄存器中C. 各中断源发出的中断请求信号,都会标记在AT89S52的IP寄存器中D. 各中断源发出的中断请求信号,都会标记在AT89S52的TCON、SCON以及T2CON寄存器中答:D三、判断对错1.定时器T0中断可以被外部中断0中断。

单片机习题集答案(第四章)

单片机习题集答案(第四章)

第四章习题1、何为“准双向I/O接口”?在MCS-51单片机的四个并口中,哪些是“准双向I/O接口”?准双向I/O接口是能实现输入输出功能,但在使用时只能从输入和输出中选择一个。

MCS-51单片机的四个并口中P1、P2、P3是准双向I/O接口。

2、80C51单片机有几个定时/计数器?它们由哪几个功能寄存器组成?怎样实现定时功能和计数功能?80C51单片机内部有两个16位的可编程定时/计数器,由TH0,TL0,TH1,TL1,TMOD和TCON功能寄存器组成。

通过TMOD中的C/T位选择对机器周期计数实现计数功能,选择对外部脉冲计数实现计数功能。

3、定时/计数器T0有几种工作方式?各自的特点是什么?M1M0工作方式方式说明00013位定时/计数器01116位定时/计数器1028位自动重置定时/计数器113两个8位定时/计数器(只有T0有)4、定时/计数器的四种工作方式各自的计数范围是多少?如果要计10个单位,不同的方式的初值应是多少?有四种方式。

方式0计数范围:1~8192;方式1计数范围:1~65536;方式2计数范围:1~256;方式3计数范围:1~256。

如果计10个单位,方式0初值为:8192-10=8182;方式1初值为:65536-10=65526;方式2初值为:256-10=246;方式2初值为:256-10=246。

5、设振荡频率为12MHz,如果要用定时器T0产生周期为100ms的方波,可以选择哪几种方式,其初值分别是多少?只能选择方式1,初值为65536-50000=155366、何为同步通信?何为异步通信?各自的特点是什么?异步通信方式的特点是数据在线路上传送时是以一个字符(字节)为单位,未传送时线路处于空闲状态,空闲线路约定为高电平“1”。

特点是对发送时钟和接收时钟的要求相对不高,线路简单,但传送速度较慢。

同步通信方式的特点是数据在线路上传送时以字符块为单位,一次传送多个字符,传送时须在前面加上一个或两个同步字符,后面加上校验字符。

单片机第四章课后答案.

单片机第四章课后答案.

00000000000
0800H~0FFFH 00001
②数据线 2716的8位数据线直接与单片机的P0口相连。因此P0 口是一个分时复用的地址/数据线
③控制线 CPU执行2716中存放的程序指令时,取指阶段就是对 2716进行读操作。
注意:CPU对EPROM只能进行读操作, 不能进行写操作。
CPU对2716的读操作控制都是通过控制线实现的,2716控制线的 连接有以下几条: CE 直接接地,若同时扩展多片,需通过译码器来完成片选工作 OE 接8031的读选通信号 PSEN 端。在访问片外程序存储器时, 只要 PSEN 端出现负脉冲,即可从2716中读出程序。
如:MOV SCON,#0F0H;设串口为方式3,SM2=1,允许接收 (3)各从机接收到地址信息,因为RB8=1,则置中断标志RI,中断后,首先判断主 机送过来的地址信息与自己的地址是否相符,对于地址相符的从机,置SM2=0, 以接收主机随后发来的所有信息;对于地址不相符的从机,保持SM2=1的状态, 对主机随后发来的信息不理睬,直到发送新的一帧地址信息。 (4)主机发送控制指令和数据信息给被寻址的从机。其中,主机置TB8=0,表 示发送的是数据或控制指令。对于没选中的从机,因为SM2=1,RB8=0,所以 不会产生中断,对主机发送的信息不接收
(5)连线说明: ①地址线 单片机扩展片外存储器时,地址是由P0和P2口提供的。 2716的11条地址线(A0~A10)中,低8位A0 ~A7通过锁存器 74LS373与P0口连接,高3位A8~A10直接与P2口的P2.0~P2.2连接 由于P2口只用作地址总线,所以高三位地址信息的传送不必加用地 址锁存器。锁存器的锁存使能端G必须和单片机的ALE管脚相连。 但必须注意:P2口既已用于传送片外程序存储器的地址 ,余下的引脚也不能再作为一般的I/O引脚

单片机部分习题答案(何桥)

单片机部分习题答案(何桥)

第二章作业参考答案1. MCS-51单片机共有4个工作寄存器组。

当前寄存器组由程序状态寄存器PSW中RS1、RS0位的状态组合来决定。

2. MCS-51的EA信号功能是:控制访问外部程序存储器。

当EA为低电平时,对ROM的读操作限定在外部程序存储器;当EA为高电平时,对ROM的读操作是从内部程序存储器开始的(PC值小于4K时),当PC值大于4K时,CPU自动转向外部程序存储器。

在使用8031时EA信号引脚应该接地,以便从外部扩展EPROM中取指令。

3. 以下信号需要芯片引脚以第二功能的方式提供:(1)P3端口线的第二功能:RxD,串行数据接收;TxD0申请;INT1,外部中断1申请;T0,定时器/计数器0计数输入;T1,定时器/计数器1计数输入;WR,外部RAM写选通;RD,外部RAM读选通。

(2)EPROM存储器程序固化所需要的信号:PROG,编程脉冲信号;V PP,编程电压信号;(3)备用电压:V PD 。

4. 作用:程序状态字PSW是一个8特殊功能寄存器,它的各位包含了程序运行的状态信息,以供程序查询和判断。

常用的状态位及作用:Cy,进位标志位。

Ac,辅助进位标志位。

F0&F1,用户标志位。

RS1&RS0,工作寄存器组选择位。

OV,溢出标志位。

P,奇偶标志位。

5.开机复位后,PSW为“00H”,则RS0和RS1两位均为0,对应第0组工作寄存器,所以此时CPU使用的是第0组工作寄存器,它们的地址是00H—07H。

6. SP表示堆栈指针,有8位,作用是指示栈顶地址,复位后SP的内容是07H。

7. RAM低128单元划分为工作寄存器区、位寻址区和用户RAM区3个区域,各个区域作用分别为:(1)工作寄存器区,常用于存放操作数及中间结果等。

(2)位寻址区,其中每一个单元既可以作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作。

(3)用户RAM区,一般用于存放用户数据及做堆栈区使用。

单片机第4章习题参考答案.docx

单片机第4章习题参考答案.docx

第4章部分习题答案作业:7、8、9、10、11、15、17、19、204.7设内部RAM 20H单元有两个非零的BCD数, 编写求两个BCD数的积并把积送入21H单元的程序。

ORG 1000HMOV A, 20HMOV B, A ; 保存SWAP AANL A, #0FH ;取高4位ANL B, #0FH ;取低4位MUL ABMOV B, #0AHDIV AB ;转换成BCD码的形式SWAP AORL A, BMOV 21H, ASJMP $END4.8已知从内部RAM BLOCK单元开始存放有一组带符号数,数的个数存放在LEN单元。

编写可以统计正数和负数个数并分别存入NUM和NUM+1单元的程序。

num org lOOOh data 30hlen data 20hblock data 40hmov rO, #blockmov num, #00h ;保存正数个数mov b, #00h ;保存负数个数loop: mov a, @r0inc rOjb acc.7, neginc numsjmp nextneg: inc bnext: djnz len, loopmov num+1, bsjmp $end 4.9设X为一无符号数,存放在内部RAM的VAX 单元,Y存放在FUNC单元。

编写满足如下关系的程序:X X>50Y =(5X 50> X > 202X X<20org 2000hvax data 20hfunc data 30hmov a, vaxcjne a, # 32h, complcompl: jc nextlmov func, asjmp donenextl: cjne a, #14h、comp2comp2: jc next2mov b, #05hmul abmov func, asjmp donenext2: clr crlc amov func, adone: sjmp $end4.10在例4.6的128分支程序中,若用LJMP指令代替AJMP指令,以便分支程序可以放在64KB地址范围的任何位置。

单片机课后习题答案(4~9章)

单片机课后习题答案(4~9章)

《单片机原理与接口技术》习题解答第4章习题解答4-1.简述下列基本概念。

答指令:CPU根据人的意图来执行某种操作的命令。

指令系统:一台计算机所能执行的全部指令集合。

机器语言:用二进制编码表示,计算机能直接识别和执行的语言。

汇编语言:用助记符、符号和数字来表示指令的程序语言。

高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言。

4-2.什么是计算机的指令和指令系统?答见1题。

4-3.简述80C51汇编指令格式。

答操作码[目的操纵数][,源操作数]4-4.简述80C51的寻址方式和所能涉及的寻址空间。

答立即数寻址:程序存储器ROM。

直接寻址:片内RAM低128B和特殊功能寄存器。

寄存器寻址:R0~R7,A,B,C,DPTR。

寄存器间接寻址:片内RAM低128B,片外RAM。

变址寻址:程序存储器64KB。

相对寻址:程序存储器256B范围。

位寻址:片内RAM的20H~2FH字节地址,部分特殊功能寄存器。

4-5.要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?答 SFR:直接寻址,位寻址;片外RAM:寄存器间接寻址。

4-6.在80C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。

请分析下面各是什么指令,说明源操作数的寻址方式及按顺序执行后的结果。

答 MOV A,40H 直接寻址MOV R0,A 寄存器寻址MOV P1,#0F0H 立即数寻址MOV @R0,30H 直接寻址MOV DPTR,#3848H 立即数寻址MOV 40H,38H 直接寻址MOV R0,30H 直接寻址MOV P0,R0 寄存器寻址MOV 18H,#30H 立即数寻址MOV A,@R0 寄存器间接寻址MOV P2,P1 直接寻址均为数据传送指令,结果(参见下图)为30H38H40H48H(18H)=30H,(30H)=38H,(38H)=40H (40H)=40H,(48H)=90HR0=38H,A=40H,P0=38H,P1=FOH,P2=FOH,DPTR=3848H 4-7.对80C51片内RAM高128B的地址空间寻址要注意什么?答用直接寻址,寄存器寻址,位寻址。

单片机第四章答案

单片机第四章答案

单片机第四章习题答案选择题1-5 BACAA, 6-10 BAADA, 11-14 CCAD问答题1.MCS-51系列单片机定时计数器的定时功能和计数功能有什么不同?分别应用在什么场合?答:当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。

定时器的定时时间与系统的振荡频率紧密相关,如果单片机系统采用12M晶振,则计数周期为:,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。

当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数,检测一个由1到0的负跳变需要两个机器周期,所以,最高检测频率为振荡频率的1/24。

计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。

当需要准确计算时间时往往采用定时器的定时方式,而当要对一些外部事件计数时则采用定时器的计数方式。

2.软件定时与硬件定时的原理有何异同?答:软件定时是通过编写一段延时程序来实现定时,这段延时程序不完成任何操作,只是通过一些空操作浪费掉一段时间。

这样的软件定时往往浪费CPU的工作效率,并且定时不够准确,前面三章的各个任务中均采用了这种方法。

硬件定时是通过单片机的定时器来实现时间的计算,用户只需要对定时器的工作方式、初始值赋予合适的数值,启动定时器后,定时器将自动按照机器周期定时。

这种由定时器实现的定时方式,定时时间准确、CPU的工作效率高。

3.MCS-51单片机的定时计数器是增1计数器还是减1计数器?增1和减1计数器在计数和计算计数初值时有什么不同?答:MCS-51系列单片机的定时/计数器是增1计数器。

对于增1计数器,计数初值应等于最大计数值减去所需要的计数值。

而减1计数器,计数初值就等于所需要的计数值。

例如:假设需要计数50000次。

对于增1计数器的单片机,若采用方式1的定时器,最大计数值为65536,则初值应为:65536-50000=15536。

单片机原理及应用第四章课后题答案

单片机原理及应用第四章课后题答案

第四章作业答案16.MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?解:数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为MOVC,数据存储器访问指令为MOVX。

程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于二者访问指令不同,控制信号不同,所以两者虽然共处于同一地址空间,不会发生总线冲突。

18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。

解:硬件连接电路图如图4.18所示。

各芯片的地址范围为:2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH图4.18 4.18题硬件连接电路图21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。

解:程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR,#7F03HMOV A,#10010100BMOVX @DPTR,ASJMP $END25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。

解:使用8255A,电路连接图如图4.25所示。

图4.25 4.25题硬件连接电路图其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。

设MCS-51单片机主频为12MHz。

程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR, #7FFFH ; 数据指针指向8255A控制口MOV A, #80HMOVX @DPTR, A ; 工作方式字送8255A控制口MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口MOV A, #0FH ; 置红色发光二极管亮LP1:MOVX @DPTR, A ; 置红色发光二极管亮LCALL DELAY ; 调用1S延时子程序CPL A ; 置发光二极管亮反色SJMP LP1 ; 循环执行DELAY:MOV R7,#10 ; 1s延时子程序D1:MOV R6,#200D2:MOV R5,#248D3:NOPDJNZ R5,D3DJNZ R6,D2DJNZ R7,D1RETEND采用定时器T0方式1中断实现1s定时。

单片机第4章参考答案

单片机第4章参考答案

第4章 AT89S51汇编语言程序的设计与调试参考答案1.答:伪指令是程序员发给汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在汇编过程中的用来控制汇编过程的命令。

所谓“伪”是体现在汇编后,伪指令没有相应的机器代码产生。

常用伪指令及其功能如下:ORG(ORiGin)汇编起始地址命令;END(END of assembly)汇编终止命令;EQU(EQUate)标号赋值命令;DB(Define Byte)定义数据字节命令;DW(Define Word)定义数据字命令;DS(Define Storage)定义存储区命令;BIT 位定义命令2.答:手工汇编:通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码,再进行调试和运行。

这种人工查表“翻译”指令的方法称为“手工汇编”。

机器汇编:借助于微型计算机上的软件(汇编程序)来代替手工汇编。

通过在微机上运行汇编程序,把汇编语言源程序翻译成机器代码。

反汇编:将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。

3.答:从1000H开始的各有关存储单元的内容(16进制)如下:4D 41 49 4E 12 34 30 0000 70 78 7F E4 F6 D8 FD75 81 07 024.在编写子程序时应注意以下问题:(1)子程序的第一条指令前必须有标号。

(2)主程序调用子程序,有如下两条子程序调用指令:①绝对调用指令ACALL addr11。

被调用的子程序的首地址与绝对调用指令的下一条指令的高5位地址相同,即只能在同一个2KB区内。

②长调用指令LCALL addr16。

addr16为直接调用的目的地址,被调用的子程序可放置在64KB程序存储器区的任意位置。

(3)子程序结构中必须用到堆栈,用来保护断点和现场保护。

(4)子程序返回时,必须以RET指令结束。

(5)子程序可以嵌套,但要注意堆栈的冲突。

5.答:参考程序如下:MOV A,45HANL A,#0FHORL A,#0FHMOV 45H,A6.答:A=80H ,SP=40H,(41H)=50H,(42H)=80H ,PC=8050H 7.答:参考程序如下:START:MOV R0,#30HMOV R2,#20HLOOP: MOV A,@R0CJNE A,#0AAH,NEXTMOV 51H,#01HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#00HEXIT: RET8.答:参考程序如下:START:MOV 41H,#0MOV R0,#20HMOV R2,#20HLOOP:MOV A,@R0JNZ NEXTINC 41HNEXT:INC R0DJNZ R2,LOOPRET9.答:参考程序如下:ORG 0100HMOV R2, #20H 要比较的数据字节数MOV A , #21HMOV R1 , ADEC R2MOV A , @R1LOOP: MOV R3,ADEC R1CLR CSUBB A,@R1JNC LOOP1MOV A,@R1SJMP LOOP2LOOP1: MOV A,R3LOOP2: DJNZ R2, LOOPMOV @R0,ARET10.答:(1)SP=SP+1=61H (61H)=PC的低字节=03HSP=SP+1=62H (62H)=PC的高字节=20H(2)PC=3456H(3)可以(4)2KB=2048 Byte11.答:可对程序做如下修改:ORG 0100HDEL: MOV R7, #200DEL1: MOV R6, #123 ;将原来的立即数125改为123DEL2: DJNZ R6, DEL2NOP ;增加的指令DJNZ R7, DEL1RET程序修改后的延时时间为:1+(1+123*2+1+2)*200+2=50003us=50.003ms。

单片机4 7章参考答案

单片机4  7章参考答案

单片机4 7章参考答案单片机4--7章参考答案“单片机原理及应用”课程习题与解答第4章4-4:外部中断1所对应的中断入口地址为()h。

请问:0013h4-5:下列说法错误的是:a、各中断收到的中断请求信号,都会标记在mcs-51系统的ie寄存器中。

b、各中断收到的中断请求信号,都会标记在mcs-51系统的tmod寄存器中。

c、各中断收到的中断请求信号,都会标记在mcs-51系统的ip寄存器中。

d、各中断收到的中断请求信号,都会标记在mcs-51系统的tcon与scon寄存器中。

答:abc4-7:中断查阅证实后,在以下各种8031单片机运转情况中,能够立即展开积极响应的就是:a、当前正在执行高优先级中断处理b、当前正在执行reti指令c、当前指令是div指令,且正处于取指令的机器周期d、当前指令是mova,r3答:d4-8:8031单片机积极响应中断后,产生短调用指令lcall,继续执行该指令的过程包含:首先把()的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送(),使程序执行转向()中的中断地址区。

答:pc、pc、程序存储器4-9:编写成外部中断1为冲沿引爆的中断初始化程序。

请问:setbit1setbex1setbea4-10:在mcs-51中,需要外加电路实现中断撤除的是:a、定时中断b、脉冲方式的外部中断c、外部串行中断d、电平方式的外部中断答:d4-12:以下观点恰当的就是:a、同一级别的中断请求按时间的先后顺序响应。

b、同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。

c、低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。

d、同级中断不能嵌套。

答:acd4-13:中断服务子程序回到指令reti和普通子程序回到指令ret存有什么区别?答:reti指令在返回的同时清除相应的优先级触发器,以允许下次中断第5章mcs-51的定时/计数器1.如果采用晶振的频率为3mhz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?解答:因为机器周期tcy?1212??4(?s)6fosc3?10,所以定时器/计数器工作方式0下,其最大定时时间为tmax?213?tc?213?4?10?6?8.192(ms);同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1.024ms。

(完整word版)第4章单片机原理课后答案

(完整word版)第4章单片机原理课后答案
DB 38H,391H,41H,42H,43H,44H,45H,46H
12.设8051的P1中各位接发光二极管,分别用汇编语言和C语言编程实现逐个轮流点亮二极管,并循环显示。
参考程序:
ORG 0000H
LJMPMAIN
ORG 0100H;主程序
MAIN:MOV A,#01H
LOOP:MOV P1,A
(5)C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容
(6)C51编译器从绝对地址8m+3处产生一个中断向量
(7)中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明
6.按给定的存储类型和数据类型,写出下列变量的说明形式。
(1)在data区定义字符变量val1。
char data varl;
DW 5567H,87H
(2000H)=01H;(2001H)=34H;(2002H)=61H;(2003H)=43H;
(2004H)=55H;(2005H)=67H;(2006H)=00H;(2007H)=87H;
8.编程实现将片外RAM的20H~30H单元的内容,全部移到片内RAM的20H单元的开始位置,并将原位置清零。
MOVDPTR,#1000H
MOVR2,#50
MOVR7,#00
MOVR6,#00
LOOP:MOVXA,@DPTR
ADDA,R6
MOVR6,A
Mபைடு நூலகம்VA,R7
ADDCA,#0
MOVR7,A
INCDPTR
DJNZR2,LOOP
SJMP$
10.编程实现R4R3R2,结果存放于R7R6R5中。
程序:
ORG0100H
0——外部中断0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3-5 指出下列指令中45H代表什么。

MOV A,#45HMOV A,45HMOV 45H,46HMOV C,45HMOV A,#45H中的45H代表立即数45H,该立即数为16进制。

MOV A,45H 中的45H代表直接地址45H单元。

MOV 45H,46H中的45H代表目的操作数所指定的单元为45H。

MOV C,45H中的45H代表45H位。

3-6 分析下列程序执行的结果。

(1)MOV A,#60HMOV R0,#40HMOV @R0, AMOV 41H, R0XCH A, R0执行结果为:(A)=40H(R0)=60H(40H)=60H(41H)=40H (2)MOV DPTR,#2003HMOV A,#18HMOV 20H,#38HMOV R0,#20HXCH A,@R0执行结果为:(DPH)=20H(DPL)=03H(A)=38H(20H)=18H(R0)=20H(3)MOV 20H,#01HMOV A,20HINC ACPL AMOV DPTR,#2000HMOVX @DPTR, A执行结果为:(20H)=01H(A)=FDH(DPTR)=2000H(2000H)=FDH3-8 按要求写出相应的指令。

(1)把寄存器R6的内容送到累加器A中。

(2)把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。

(3)清除内部RAM 3FH 单元的高4位。

(4)使累加器A的最低位置1。

(5)清除进位位。

(6)使ACC.4和ACC.5置1。

(7)把外部ROM 2000H单元中的内容送到内部RAM的20H单元中。

(8)把外部ROM 2000H单元中的内容送到外部RAM的3000H单元中。

(1)MOV A,R6(2)MOV DPTR,#1000HMOVX A,@DPTRMOV R0,#30HMOV @R0,A(3)ANL 3FH,#0FH(4)ORL A,#01H(5)CLR C(6)ORL A,#30H(7)CLR AMOV DPTR,#2000HMOVC A,@A+DPTRMOV 20H,A(8)CLR AMOV DPTR,#2000HMOVC A,@A+DPTRMOV DPTR,#3000HMOVX @DPTR,A3-10 编写程序段完成如下要求。

(1)将寄存器R0中的内容乘以10(积小于256)。

(2)将片内RAM 30H单元开始的15个字节的数据传送到片外RAM 3000H开始的单元中。

(3)将片外RAM 2000H开始的5个字节的数据传送到片内RAM 20H开始的单元中。

(4)有10个字节的二进制数存放在片内RAM以40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。

(5)将片外RAM空间2000H~200AH中的数据的高4位变零,低4位不变,原址存放。

(6)将外部RAM 2040H单元的内容与3040H单元的内容互换。

(1)MOV B,#0AHMOV A,R0MUL ABMOV R0,A(2) ORG 0000HMOV R0,#30HMOV DPTR,#3000HMOV R7,#0FHLOOP: MOV A,@R0MOVX @DPRT,AINC R0INC DPTRDJNZ R7,LOOPSJMP $END(3) MOV DPTR,#2000HMOV R0,#20HMOV R7,#05HLOOP: MOVX A,@DPTRMOV @R0,AINC R0INC DPTRDJNZ R7,LOOPSJMP $END(4) ORG 0000HMOV 50H,40H ; 50H放最大值,且初始化最大值(默认第一个数)MOV R3,#09H;比较次数MOV R0,#41HSTART: MOV A,@R0CJNE A,50H,LOOPLOOP: JC LOOP1;如果A比50H的值小,则跳转到LOOP1MOV 50H,@R0;如果比50H的值大,则更新50H(最大值)的值LOOP1: INC R0DJNZ R3,STARTSJMP $END(5) MOV DPTR,#2000HMOV R1,#0BHLOOP: MOVX A,@DPTRANL A,#0FHMOVX @DPTR,AINC DPTRDJNZ R1,LOOPSJMP $(6) MOV DPTR,#2040HMOVX A,@DPTRMOV R0,#20HMOV @R0,AMOV DPTR,#3040HMOVX A,@DPTRXCH A ,@R0MOVX @DPTR AMOV A,@R0MOV DPTR,#2040HMOVX @DPTR,A3-15 设有一带符号的十六位数以补码形式存放在R2、R3寄存器中,试编制求其原码的程序。

ORG 0000HSTART: MOV A,R3JB ACC.7,NEXT;判读符号位,如果是正数则原码与补码一样,如果为负,求原码的方法是符号位不变,其余位取反加1MOV R3,AHERE: SJMP $NEXT: XRL A, #7FH;高八位,符号位不变,其余取反MOV R3, A;放回R3MOV A, R2;低八位XRL A, #0FFH;取反ADD A, #01H;加1MOV R2, A;放回R2MOV A,R3;看低八位是否有向高八位进位ADDC A,#00HMOV R3,ASJMP $END3-16 设有一不带符号的十六进制数组,存放在8031单片机片内RAM以BUFFER为首址的连续单元中,其长度为30个字节,要求统计小于10,等于10及大于10的数的个数,并把它们分别存放到片内RAM的LESS、EQUAL、BIG单元中,试编制实现上述要求的程序并画出相应的流程图。

ORG 0000HBUFFER DA TA 10HLESS DA TA 30HEQUAL DA TA 31HBIG DA TA 32HMOV R0,#BUFFERMOV R7,#1EHMOV LESS,#00HMOV EQUAL,#00HMOV BIG,#00HNEXT: CJNE @R0,#0AH, LOOP1;循环次数INC EQUALAJMP LOOP3LOOP1: JC LOOP2INC BIGAJMP LOOP3LOOP2: INC LESSLOOP3: INC R0DJNZ R7, NEXTSJMP $END3-17 在外部RAM 1000H单元开始的存储区域存放着10个用ASCII码表示的0~9之间的数字,请编程将它们转换成BCD码,然后存放在2000H~2004H单元(以压缩BCD码存放)。

方法一:ORG 0000HMOV R2,#05HMOV DPTR,#1000HMOV R0,#20HLOOP: MOVX A,@DPTRANL A,#0FHMOV R4,AINC DPTRMOVX A,@DPTRANL A,#0FHSWAP AADD A,R4MOV @R0,AINC R0INC DPTRDJNZ R2,LOOPMOV R5,#05HMOV R0,#20HMOV DPTR,#2000HLOOP1: MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R5,LOOP1SJMP $END方法二:ORG 0000HMOV R2, #05HMOV DPTR, #1000HMOV R1,#20HLOOP: MOVX A,@DPTRANL A, #0FHMOV R4, AINC DPTRMOVX A,@DPTRANL A, #0FHSWAP AADD A , R4MOV P2,#20HMOVX @R1,AINC DPTRINC R1DJNZ R2, LOOPSJMP $END3-18 设有50个无符号8位二进制数,存放在8031单片机内部RAM以BOFER为首址的连续单元中,试编制将其中最小数存放到内部RAM 的MIN单元的程序并画出相应的流程图。

BOFER DA TA 20HMIN DA TA 60HORG 0000HMOV R2,#31H;循环49次MOV R1,# BOFER+1MOV MIN,BOFER;把最小值放MIN,且初始化时把第一个数放入MINLOOP: MOV A, @R1CJNE A, MIN, LOOP1LOOP1: JNC LOOP2;@R1>MINMOV MIN,@R1 ;MIN >@R1,MIN要更新LOOP2: INC R1DJNZ R2, LOOPSJMP $END3-19 设有一字符串存放在8031单片机内部RAM以20H为首址的连续单元中,字符串以回车结束。

要求统计该字符串中字符B(‘B’=42H)的个数,并将其存入外部RAM的40H单元中。

试编写实现上述要求的程序并画出相应的流程图。

ORG 0000HMOV R0,#20HMOV R1,#00H;‘B’的个数初始化LOOP: MOV A, @R0CJNE A, #0DH,LOOP1;判断是否结束(回车键)MOV DPTR,#0040H;把结果放外部RAM中MOV A,R1MOVX @DPTR,ASJMP $LOOP1: CJNE A,#42H,NEXT;不为B则跳转INC R1;为B则使计数器加1NEXT: INC R0AJMP LOOPEND3-23 已知MDA和MDB单元内分别存有两个小于10的整数a和b,试用查表子程序实现c=a2+2ab+b2,并把和存于MDC和MDC+1单元中(MDC单元中放低字节,MDC+1单元中放高字节)。

ORG 0000HMDA DA TA 20HMDB DA TA 21HMDC DA TA 22HMOV A,MDAACALL SQRMOV R2,AMOV A,MDBACALL SQRADD A,R2MOV R2,A;a2+b2结果暂时放入R2MOV B,MDA;下面算2*a*bMOV A,MDBMUL ABRL AADD A,R2MOV MDC,ACLR AADDC A,#00HMOV MDC+1,ASJMP $SQR: ADD A,#01HMOVC A,@A+PCRETSQRTAB:DB 0 1 4 9 16 25 36 49 64 81 100END3-25 设有一长度为20H的字符串,存放在8031单片机片内RAM以10H为首地址的连续单元中,试编制将其中数字与字母分开并将它们分别送到以30H和50H为首地址的连续单元中的程序。

gORG 0000HMOV R2,#20H ;循环次数MOV R1,#10HMOV 60H,#30H ;数字存储首地址MOV 61H,#50H ;字母存储首地址LOOP: MOV A,@R1CJNE A,#40H,NEXTNEXT: JNC NEXT1 ;如果是字母则跳转到NEXT1MOV R0,60H ;是数字,把数字的存储地址给R0MOV @R0,AINC 60HSJMP LOOP1NEXT1: MOV R0,61HMOV @R0,A ;是字母,把字母的存储地址给R0INC 61HLOOP1: INC R1DJNZ R2,LOOPSJMP $END4-3 外端口有哪两种编址方法?各有什么特点?答:微型计算机对I/O端口进行编址的方式有两种:单独编址和统一编址。

相关文档
最新文档