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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

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

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

4.下列说法正确的是。

答:d
a. 各中断源发出的中断请求信号,都会标记在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
答:d
7. at89s51单片机响应中断后,产生长调用指令lcall,执行该指
令的过程包括:首先把
的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送,使程序执
行转向中的中断地址区。

答:pc、pc、程序存储器
8.编写外部中断1为跳沿触发的中断初始化程序段。

答: 参考程序段如下:
setb
setb setb
9.在at89s51的中断请求源中,需要外加电路实现中断撤销的是。

答:a
a. 电平方式的外部中断请求
b. 跳沿方式的外部中断请求
c. 外部串行中断
d. 定时中断
10.中断响应需要满足哪些条件?
答:一个中断源的中断请求被响应,必须满足以下条件:
(1)总中断允许开关接通,即ie寄存器中的中断总允许位ea=1。

(2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。

(3)该中断源的中断允许位=1,即该中断被允许。

(4)无同级或更高级中断正在被服务。

11.下列说法正确的是。

答:a、c、d
a. 同一级别的中断请求按时间的先后顺序响应
b. 同一时间同一级别的多中断请求,将形成阻塞,系统无法响应 it1 ex1 ea
c. 低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优
先级中断请求
d. 同级中断不能嵌套
12.某系统有三个外部中断源1、2、3,当某一中断源发出的中断请求使int1引脚变为低电
平时(见图4-10),便要求单片机进行处理,它们的优先处理次序由高到低为3、2、1,中断处理程序的入口地址分别为1000h,1100h,1200h。

试编写主程序及中断服务子程序(转至相应的中断处理程序的入口即可)。

答:参见电路如图4-10,参考程序如下:
org ljmp org ljmp org
clr
setb
setb 0000h main 0013h int_ex1 0030h it0 ex1 ea ;采用电平触发,低电平有效中断;允许外部中断1 main:
;插入一段用户程序
wait:ajmp wait;单片机等待中断
;以下为外部中断1服务子程序
int_ex1: jb
ljmp
jb p1.2,next1 int_ir3 ;判断是不是ir3中断;跳转到ir3中断处理程序;判断是不是ir2中断
;跳转到ir2中断处理程序
;跳转到ir1中断处理程序 next1: p1.1,next2 int_ir2 int_ir1
1000hljmp ljmp org next2:
int_ir3: 相应中断处理程序
reti;中断返回 org 1100h
int_ir2: 相应中断处理程序
reti;中断返回 org 1200h
int_ir1: 相应中断处理程序
reti;中断返回
【篇二:单片机原理及接口技术课后答案】
>第一章
1.单片机具有哪些特点
(1)片内存储容量越来越大。

(2抗干扰性好,可靠性高。

(3)芯片引线齐全,容易扩展。

(4)运行速度高,控制功能强。

(5)单片机内部的数据信息保存时间很长,有的芯片可以达到100
年以上。

2. 89c51单片机内包含哪些主要逻辑功能部件?
答:80c51系列单片机在片内集成了以下主要逻辑功能部件:
(l)cpu(中央处理器):8位
(2)片内ram:128b
(3)特殊功能寄存器:21个
(4)程序存储器:4kb
(5)并行i/o口:8位,4个
(6)串行接口:全双工,1个
(7)定时器/计数器:16位,2个
(8)片内时钟电路:1个
3.什么是微处理器(cpu)、微机和单片机?
答:微处理器本身不是计算机,但它是小型计算机或微机的控制和
处理部分。

微机则是具有完整运算及控制功能的计算机,除了微处理器外还包
括存储器、接口适配器以及输入输出设备等。

单片机是将微处理器、一定容量的ram、rom以及i/o口、定时器等电路集成在一块芯片上,构成的单片微型计算机。

4. 微型计算机怎样执行一个程序?
答:通过cpu指令,提到内存当中,再逐一执行。

5.什么是嵌入式系统?他有哪些类型?为什么说单片机是典型的嵌
入式系统?
答; 嵌入式系统是将先进的计算机技术、半导体技术和电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个
技术密集、资金密集、高度分散、不断创新的知识集成系统。

它有嵌入式微处理器、嵌入式微控制器、嵌入式dsp处理器、嵌入
式片上系统等。

嵌入式系统的出现最初是基于单片机的。

它从体系结构到指令系统
都是按照嵌入式应用特点专门设计的,能最好的满足面对控制对象,应运系统的嵌入、现场的可靠运行以及非凡的控制品质要求。

因此,她是典型的嵌入式系统。

第二章
1.89c51单片机内包含哪些主要逻辑功能部件?
答:80c51系列单片机在片内集成了以下主要逻辑功能部件:
(l)cpu(中央处理器):8位
(2)片内ram:128b
(3)特殊功能寄存器:21个
(4)程序存储器:4kb
(5)并行i/o口:8位,4个
(6)串行接口:全双工,1个
(7)定时器/计数器:16位,2个
(8)片内时钟电路:1个
2.89c51的ea端有何用途?
3. 89c51的存储器分哪几个空间?如何区别不同空间的寻址?
答:rom(片内rom和片外rom统一编址)(使用movc)(数据
传送指令)(16bits地址)(64kb)片外ram(movx)(16bits
地址)(64kb)
片内ram(mov)(8bits地址)(256b)
4. 简述89c51片内ram的空间分配。

答:片内ram有256b
低128b是真正的ram区
高128b是sfr(特殊功能寄存器)区
5. 简述布尔处理存储器的空间分配,片内ram中包含哪些可位寻址
单元。

答:片内ram区从00h~ffh(256b)
其中20h~2fh(字节地址)是位寻址区
对应的位地址是00h~7fh
6. 如何简捷地判断89c51正在工作?
答:用示波器观察8051的xtal2端是否有脉冲信号输出(判断震荡
电路工作是否正常?)
ale(地址锁存允许)(address latch enable)输出是fosc的6
分频
用示波器观察ale是否有脉冲输出(判断 8051芯片的好坏?)
观察psen(判断8051能够到eprom 或rom中读取指令码?)
因为/psen接外部eprom(rom)的/oe端子
oe=output enable(输出允许)
7. 89c51如何确定和改变当前工作寄存器组?
答:psw(程序状态字)(program status word)中的rs1和rs0可以给出4中组合
用来从4组工作寄存器组中进行选择
psw属于sfr(special function register)(特殊功能寄存器)
8. 89c51 p0口用作通用I/O口输入时,若通过ttl“oc”门输入数据,应注意什么?为什么?
答:
9. 读端口锁存器和“读引脚”有何不同?各使用哪种指令?
答:读锁存器(anl p0,a)就是相当于从存储器中拿数据,而读引
脚是从外部拿数据(如mov a,p1 这条指令就是读引脚的,意思就是把端口p1输入数据送给a)
传送类mov,判位转移jb、jnb、这些都属于读引脚,平时实验时
经常用这些指令于外部通信,判断外部键盘等;字节交换xch、
xchd算术及逻辑运算 orl、cpl、anl、add、addc、subb、inc、
dec控制转移cjne、djnz都属于读锁存器。

10. 89c51 p0~p3口结构有何不同?用作通用I/O口输入数据时,
应注意什么?
答:p0口内部没有上拉电阻,可以用做16位地址的低8位;
p3有第二功能;
p2口可以用做16位地址的高8位;
需要上拉电阻。

oc门电路无法输出高低电平,只有靠上拉电阻才能
实现
11. 89c51单片机的EA信号有何功能?在使用8031时,EA信号
引脚应如何处理?
答:(1)80c51单片机的ea信号的功能
ea为片外程序存储器访问允许信号,低电平有效;在编程时,其上施加21v的编程电压
ea引脚接高电平时,程序从片内程序存储器开始执行,即访问片内
存储器;ea引脚接低电平时,迫使系统全部执行片外程序存储器程序。

(2)在使用80c31时,ea信号引脚的处理方法
因为80c31没有片内的程序存储器,所以在使用它时必定要有外部的程序存储器,ea 信号引脚应接低电平。

12. 89c51单片机有哪些信号需要芯片引脚以第2功能的方式提供?答:第一功能第二功能
串行口:
p3.0 rxd(串行输入口)
p3.1 txd(串行输出口)
中断:
p3.2 int0外部中断0
p3.3 int1外部中断1
定时器/计数器(t0、t1):
p3.4 t0(定时器/计数器0的外部输入)
p3.5 t1(定时器/计数器1的外部输入)
数据存储器选通:
p3.6 wr(外部存储器写选通,低电平有效,输出)
p3.7 rd(外部存储器读选通,低电平有效,输出)
定时器/计数器(t2):
p1.0 t2(定时器t2的计数端)
p1.1 t2ex(定时器t2的外部输入端)
13. 内部ram低128字节单元划分为哪3个主要部分?各部分主要功能是什么?
答:片内ram低128单元的划分及主要功能:
(l)工作寄存器组(00h~lfh)
这是一个用寄存器直接寻址的区域,内部数据ram区的
0~31(00h~lfh),共32个单
元。

它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为r0~r7。

(2)位寻址区(20h~2fh)
从内部数据ram区的32~47(20h~2fh)的16个字节单元,共包含128位,是可位寻
址的ram区。

这16个字节单元,既可进行字节寻址,又可实现位寻址。

(3)字节寻址区(30h~7fh)
从内部数据ram区的48~127(30h~7fh),共80个字节单元,可以采用间接字节寻址
的方法访问。

14. 使单片机复位有几种方法?复位后机器的初始状态如何?
答:(1)单片机复位方法
单片机复位方法有:上电自动复位、按键电平复位和外部脉冲三种方式,如题图2-1所示。

题图2-1
(2)复位后的初始状态
复位后机器的初始状态,即各寄存器的状态:pc之外,复位操作还对其
他一些特殊功能寄存器有影响,它们的复位状态如题表2-1所例
15. 开机复位后,cpu使用的是哪组工作寄存器?它们的地址是什
么?cpu如何确定和改变当前工作寄存器组? 答:一般开机复位后都
是选择第一组通用工作寄存器作为工作寄存器的,一共有4组,分
别为0.1.2.3连续位于00h到1fh地址,
然后在机器中有个程序状态字psw,它的第四和第三位rs1,rs0是用来选择工作寄存器组的,可能不同机器地址稍有不同。

他们俩的
值和寄存器组的关系:
rs1/rs0 0/00/11/01/1
使用的工作寄存器 01 2 3
地址 00-07 08-0f 10-17 18-1f
写程序的时候就是通过定义程序状态字来选择使用不同的寄存器组。

也可以直接对rs1和rs0赋值。

(最后一问同题7)
16. 程序状态寄存器psw的作用是什么?常用标志有哪些位?作用是
什么?
答:psw是一个sfr(特殊功能寄存器)
位于片内ram的高128b
具体地址d0h(00h~ffh)(片内ram的编址)(8bits编址方法) psw=program status word(程序状态字)
psw的常用标志位有哪些?
cy=carry(进位标志位)
ac=auxiliary carry(辅助进位标志位)(半进位标志位)
f0用户标志位
rs1,rs0,用来选择当前工作寄存器组(r0~r7)(4选1)
ov=overflow(溢出标志位)
p=parity(奇偶校验位)
17. 位地址7ch与字节地址7ch如何区别?位地址7ch具体在片内ram中的什么位置?
答:用不同的寻址方式来加以区分,即访问128个位地址用位寻址
方式,访问低128字节单元用字节寻址和间接寻址。

具体地址为2f的第五位,即为7c。

18. 89c51单片机的时钟周期与振荡周期之间有什么关系?什么叫机
器周期和指令周期?
答:时钟信号的周期称为机器状态周期,是振荡周期的两倍。

一个
机器周期是指cpu访问存储器一次所需的时间。

指令周期是执行一
条指令所需的时间。

19. 一个机器周期的时序如何划分?
答:一个机器周期=12个震荡周期=6个时钟周期(状态周期)
s1p1,s1p2,s2p1,s2p2,s3p1,s3p2,s4p1,s4p2,s5p1,
s5p2,s6p1,s6p2 其中s=state(状态),p=phase(相位)
20. 什么叫堆栈?堆栈指针sp的作用是什么?89c51单片机堆栈的
容量不能超过多少字节?
答:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈
顶(top))对数据项进行插入和删除。

要点:堆:顺序随意栈:后进先
出(last-in/first-out)
在调用子程序时需要保存调用函数的cpu寄存器pc指针,pc指针是被call指令自动压入sp所指向的片内存储器,cpu寄存器要由用户
用push指令自行保存,因此sp的作用就是一个指针,当进行中断调用,子函数调用时将现场数据压入sp所指向的存储器,sp自动增加1
或2,当中断结束reti,调用返回ret,pop时将sp数据弹出,sp自动减
1或,2
8051最大为128字节的片内存储器,0x20以上理论都可以做堆栈用96字节,8052为256字节224字节可用,但这样便没有其它空间可
用于数据存储现在的单片机的程序一般都能用c51来,不用关心堆栈
大小与sp寄存器
21. 89c51有几种低功耗方式?如何实现?
答:空闲方式和掉电方式
空闲方式和掉电方式是通过对sfr中的pcon(地址87h)相应位置1
而启动的。

当cpu执行完置idl=1(pcon.1)的指令后,系统进入空闲工作方式。

这时,内部时钟不向cpu提供,而只供给中断、串行口、定时器部
分。

cpu的内部状态维持,即包括堆栈指针sp、程序计数器pc、程序状态字psw、累加器acc所有的内容保持不变,端口状态也保持不变。

ale和psen保持逻辑高电平。

当cpu执行一条置pcon.1位(pd)为1的指令后,系统进入掉电工作方式。

在这种工作方式下,内部振荡器停止工作。

由于没有振荡时钟,因此,所有的功能部件都停止工作。

但内部ram区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的sfr 中,ale和psen都为低电平。

22. pc与dptr各有哪些特点?有何异同?
【篇三:李全利版单片机原理及接口技术课后答案(第四
章)】
s=txt>1.80c51单片机汇编语言有何特点?
答:
汇编语言结构紧凑、灵活,汇编成的目标程序效率高,具有占存储空间少、运行速度快、实时性强等优点。

它是面向机器的语言,对于单片机硬件的操作直接、方便,有利于初学者对单片机结构的认知。

但它与高级语言相比移植性不好、编程复杂、对编程人员的基础要求高。

2.利用80c51单片机汇编语言进行程序设计的步骤如何?
答:
一、任务分析
首先,要对单片机应用系统的设计目标进行深入分析,明确系统设计任务:功能要求和技术指标。

然后对系统的运行环境进行调研。

这是应用系统程序设计的基础和条件。

二、算法设计
经过任务分析和环境调研后,已经明确的功能要求和技术指标可以用数学方法(或模型)来描述,进而把一个实际的系统要求转化成由计算机进行处理的算法。

并对各种算法进行分析比较,并进行合理的优化。

三、流程描述
程序的总体构建。

先要确定程序结构和数据形式,资源分配和参数计算等。

然后根据程序运行的过程,规划程序执行的逻辑顺序,用图形符号将程序流程绘制在平面图上。

应用程序的功能通常可以分为若干部分,用流程图将具有一定功能的各部分有机地联系起来。

流程图可以分为总流程图和局部流程图。

总流程图侧重反映程序的
逻辑结构和各程序模块之间的相互关系;局部流程图反映程序模块
的具体实施细节。

3.常用的程序结构有哪几种?特点如何?
答:
顺序程序:无分支、无循环结构的程序,其执行流程是依指令在存
储器中的存放顺序进行的;分支程序:可以改变程序的执行顺序;
循环程序:按某种控制规律重复执行的程序,控制一部分指令重复
执行若干次,以便用简短的程序完成大量的处理任务。

4.子程序调用时,参数的传递方法有哪几种?
答:
利用累加器或寄存器;
利用存储器;
利用堆栈。

5.什么是伪指令?常用的伪指令功能如何?
答:
伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。

常用的伪指令包括:
org,功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址;
end,功能是结束汇编;
db,功能是从标号指定的地址单元开始,在程序存储器中定义字节
数据;
dw,功能是从标号指定的地址单元开始,在程序存储器中定义字数
据空间;
bit,功能是将位地址赋给指定的符号名。

6.设被加数存放在内部ram的20h、21h单元,加数存放在22h、23h单元,若要求和存放在24h、25h中,试编写出16位无符号数
相加的程序(采用大端模式存储)。

答:程序如下:
org0000h
movr0,#21h
movr1,#23h
mova,@r0
adda,@r1
mov25h,a
dec r0
dec r1
mova,@r0
addc a,@r1
mov24h,a
sjmp$
end
7.编写程序,把外部ram中1000h~101fh的内容传送到内部ram 的30h~4fh中。

答:
org 0000h
mov dptr,#1000h
mov r0,#30h
mov r7,#32
loop:movx a,@dptr
mov @r0,a
inc r0
inc dptr
djnz r7,loop
ret
8.编写程序,实现双字节无符号数加法运算,要求(r0r1)+
(r6r7)→(60h61h)。

答:
org 0000h
mova,r1
adda,r7
mov61h,a
mova,r0
addc a,r6
mov60h,a
sjmp $
end
9.若80c51的晶振频率为6mhz,试计算延时子程序的延时时间。

delay:movr7,#0f6h
lp:movr6,#0fah
djnz r6,$
djnz r7,lp
ret
10.在内部ram 的30h~37h单元存有一组单字节无符号数。

要求找出最大数存入big单元。

试编写程序实现。

答:
org0000h
big data 2fh
one data 2ah
two data 2bh
start:movr7,#7 ;比较次数
movr0,#30h
loop:mova,@r0
movone,a
incr0
movtwo,@r0
clrc
subb a,@r0
jc next ;one小,two大继续比下一对数
mov@r0,one ;one大放后面(交换)
decr0
mov@r0,two ;two小放前面
incr0 ;
next:djnz r7,loop
movbig,37h
sjmp $
end
11.编写程序,把累加器a中的二进制数变换成3位bcd码,并将百、十、个位数分别存放在内部ram的50h、51h、52h中。

答:单字节二进制数转换为压缩的bcd码仅需要2个字节;在将压缩的bcd码拆分存于3个单元。

dcdth:movr7,#8
movr0,a;暂存于r0
loop:clrc
mova,r0
rlca
movr0,a
movr1,#51h; org0 mov52h,#0 mov51h,#0 mov50h,#0 mova,#0fdh lcall dcdth sjmp $
mova,@r1 ;
addc a,@r1 ;
mov@r1,a ;
decr1
mova,@r1
addc a,@r1
da a
mov@r1,a
djnz r7,loop
incr1;50h已是结果,r1指向51h,51h单元需拆分 mova,#00h xchd a,@r1 mov52h,a mova,@r1
答: swap a mov@r1,a ret end 12.编写子程序,将r1中的2个十六进制数转换为ascii码后存放在r3和r4中。

org 0
mov r1,#5bh
mov a,r1
anl a,#0f0h
swap a
acallascii
mov r3,a
mov a,r1
anl a, #0fh
acallascii
mov r4, a
sjmp $
ascii:push acc
clr c
subb a, #0ah
pop acc
jcloop
add a, #07h
loop: add a, #30h
ret
end
13.编写程序,求内部ram中50h~59h十个单元内容的平均值,并存放在5ah单元。

答:
org0000h
movr7,#10
movr0,#50h
movb,#10
clra
loop:addc a,@r0 incr0。

相关文档
最新文档