单片机原理及接口技术第三版课后答案.docx
《单片机原理及接口技术第三版课后答案.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术第三版课后答案.docx(21页珍藏版)》请在冰豆网上搜索。
单片机原理及接口技术第三版课后答案
单片机原理及接口技术第三版课后答案
【篇一:
《单片机原理及接口技术》第三版梅丽凤王艳秋编著的习题解答课后答案
(1)】
理及接口技术》第三版梅丽凤王艳秋编著的习题解答课后答案第1章绪论
1-1解答:
第一台计算机的研制目的是为了计算复杂的数学难题。
它的特点是:
计算机字长为12位,运算速
度为5000次/s,使用18800个电子管,1500个继电器,占地面积为150m2,重达30t,其造价为
100多万美元。
它的诞生,标志着人类文明进入了一个新的历史阶段。
1-2解答:
单片微型计算机简称单片机。
一个完整的单片机芯片至少有中央处理器(cpu)、随机存储器(ram)、
只读存储器(rom)、定时/计数器及i/o接口等部件。
1-3解答:
单片机的发展大致经历了四个阶段:
第一阶段(1970—1974年),为4位单片机阶段;
第二阶段(1974—1978年),为低中档8位单片机阶段;
第三阶段(1978—1983年),为高档8位单片机阶段;
第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。
1-4解答:
intel公司的mcs-48系列、mcs-51系列、mcs-96系列产品;
motorola公司的6801、6802、6803、6805、68hc11系列产品;
zilog公司的z8、super8系列产品;
atmel公司的at89系列产品;
fairchild公司的f8和3870系列产品;
ti公司的tms7000系列产品;
ns公司的ns8070系列产品;
national公司的mn6800系列产品;
hitachi公司的hd6301、hd63l05、hd6305。
1-5解答:
(1)8031/8051/8751三种型号,称为8051子系列。
8031片内没有rom,使用时需在片外接eprom。
8051片内含有4kb的掩模rom,其中的程序是生产厂家制作芯片时烧制的。
8751片内含有4kb的eprom,
用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。
(2)8032a/8052a/8752a是8031/8051/8751的增强型,称为8052子系列。
其中片内rom和ram
的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一个中断源。
(3)80c31/80c51/87c51bh是8051子系列的chmos工艺芯片,80c32/80c52/87c52是8052子系列
的chmos工艺芯片,两者芯片内的配置和功能兼容。
1-6解答:
8052子系列片内rom和ram的容量比8051子系列各增加一倍,另外,增加了一个定时/计数器和一
个中断源。
1-7解答:
at89系列单片机是美国atmel公司的8位flash单片机产品。
它的最大特点是在片内含有flash
存储器,在系统的开发过程中可以十分容易地进行程序的修改,使开发调试更为方便。
at89系列单片机
以8031为内核,是与8051系列单片机兼容的系列。
1-8解答:
高档型单片机有at89s51、at89s52、at89s53和at89s8252等型号,其中at89s51有4kb可下载flash
存储器,at89s52、at89s8252有8kb可下载flash存储器,at89s53有12kb可下载flash存储器。
第2章mcs-51系列单片机的结构及原理
2-1解答:
mcs-51单片机由8个部件组成:
中央处理器(cpu),片内数据存储器(ram),片内程序存储器
(rom/eprom),输入/输出接口(i/o口,分为p0口、p1口、p2口和p3口),可编程串行口,定时/计
数器,中断系统及特殊功能寄存器(sfr)。
中央处理器(cpu):
单片机的核心部分,它的作用是读入和分析每条指令,根据每条指令的功能要
求,控制各个部件执行相应的操作。
片内数据存储器(ram):
存放各项操作的临时数据。
片内程序存储器(rom/eprom):
存放单片机运行所需的程序。
输入/输出接口(i/o口):
单片机与外设相互沟通的桥梁。
可编程串行口:
可以实现与其它单片机或pc机之间的数据传送。
定时/计数器:
具有可编程功能,可以完成对外部事件的计数,也可以完成定时功能。
中断系统:
可以实现分时操作、实时处理、故障处理等功能。
特殊功能寄存器(sfr):
反映单片机的运行状态,包含了单片机在运行中的各种状态字和控制字,
以及各种初始值。
2-2解答:
ea引脚是片内外程序存储器的选择信号。
当ea端保持高电平时,访问内部程序
存储器,但在pc
(程序计数器)值超过0fffh(对于8051/8751/80c51)或1fffh(对于8052)时,将自动转向访问外
部程序存储器。
当ea端保持低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。
由于8031片内没有程序存储器,所以在使用8031时,ea引脚必须接低电平。
2-3解答:
在mcs-51单片机中,除p3口具有第二功能外,还有3条控制线具有第二功能。
p3口的第二功能:
p3.0—rxd:
串行数据接收端
p3.1—txd:
串行数据发送端
p3.2—0
int:
外部中断0申请输入端
p3.3—1
int:
外部中断1申请输入端
p3.4—t0:
定时器0计数输入端
p3.5—t1:
定时器1计数输入端
p3.6—wr:
外部ram写选通
p3.7—rd:
外部ram读选通
3条控制线的第二功能:
ale—
prog
:
片内eprom编程脉冲。
片内具有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。
reset—vpd:
备用电源。
vcc掉电期间,此引脚可接备用电源,以保持内部ram数据不丢失。
ea
—vpp:
片内eprom编程电源。
在对片内具有eprom的芯片进行编程时,此引脚用于施加21v
编程电源。
2-4解答:
mc
103f
s-51单片机的内部存储空间分为数据存储器和程序存储器。
内部数据存储器:
共256字节单元,包括低128个单元和高128个单元。
低128字节又分成3个区
域:
工作寄存器区(00h~1fh),位寻址区(20h~2fh)和用户ram区(30h~7fh)。
高128字节是供给特
殊功能寄存器使用的,因此称之为特殊功能寄存器区。
内部程序存储器:
在8031片内无程序存储器,8051片内具有4kb掩模rom,8751片内具有4kbeprom。
2-5解答:
mcs-51单片机提供了4组工作寄存器,对于当前工作寄存器组的选择,是通过psw中的rs1和rs0
来进行选择。
具体关系如下表:
rs1rs0当前寄存器组
00第0组工作寄存器
01第1组工作寄存器
10第2组工作寄存器
11第3组工作寄存器
【篇二:
单片机原理及接口技术(第三版)李朝青编课后答案详解】
略(前两章过于简单)
第三章
1、指令:
cpu根据人的意图来执行某种操作的命令
指令系统:
一台计算机所能执行的全部指令集合
机器语言:
用二进制编码表示,计算机能直接识别和执行的语言
汇编语言:
用助记符、符号和数字来表示指令的程序语言
高级语言:
独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言
2、见第1题
3、操作码[目的操作数][,源操作数]
4、
寻址方式寻址空间
立即数寻址程序存储器rom
直接寻址片内ram低128b、特殊功能寄存器
寄存器寻址工作寄存器r0-r7、a、b、c、dptr
寄存器间接寻址片内ram低128b、片外ram
变址寻址程序存储器(@a+pc,@a+dptr)
相对寻址程序存储器256b范围(pc+偏移量)
位寻址片内ram的20h-2fh字节地址、部分sfr
5、sfr:
直接寻址,位寻址,寄存器寻址;片外ram:
寄存器间接寻址
6、mova,40h;直接寻址(40h)→a
movr0,a;寄存器寻址(a)→r0
movp1,#0f0h;立即数寻址0f0→p1
mov@r0,30h;直接寻址(30h)→(r0)
movdptr,#3848h;立即数寻址3848h→dptr
mov40h,38h;直接寻址(38h)→40h
movr0,30h;直接寻址(30h)→r0
movp0,r0;寄存器寻址(r0)→p0
mov18h,#30h;立即数寻址30h→18h
mova,@r0;寄存器间接寻址((r0))→a
movp2,p1;直接寻址(p1)→p2
最后结果:
(r0)=38h,(a)=40h,(p0)=38h,(p1)=(p2)=0f0h,(dptr)=3848h,(18h)=30h,(30h)=38h,(38h)=40h,(40h)=40h,(48h)=38h
注意:
→左边是内容,右边是单元
7、用直接寻址,位寻址,寄存器寻址
8、
mova,data;直接寻址2字节1周期
mova,#data;立即数寻址2字节1周期
movdata1,data2;直接寻址3字节2周期
mov74h,#78h;立即数寻址3字节2周期
如果想查某一指令的机器码,字节数或周期数可查阅书本后面的附录a
9、
mova,@r0;((r0))=80h→a
mov@r0,40h;(40h)=08h→(r0)
mov40h,a;(a)=80→40h
movr0,#35h;35h→r0
最后结果:
(r0)=35h(a)=80h,(32h)=08h,(40h)=80h
10、用直接寻址,位寻址,寄存器寻址
11、只能采用寄存器间接寻址(用movx指令)
12、低128字节:
直接寻址,位寻址,寄存器间接寻址,寄存器寻址(r0~r7)高128字节:
直接寻址,位寻址,寄存器寻址
13、采用变址寻址(用movc指令)
14、压缩bcd码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果不正确。
用daa指令调整(加06h,60h,66h)
15、用来进行位操作
16、anla,#17h;83h∧17h=03h→a
orl17h,a;34h∨03h=37h→17h
xrla,@r0;03h⊕37h=34h
cpla;34h求反等于cbh
所以(a)=cbh
17、
(1)setbacc.0或setbe0h;e0h是累加器的地址
(2)clracc.7
clracc.6
clracc.5
clracc.4
(3)clracc.6
clracc.5
clracc.4
clracc.3
18、mov27h,r7
mov26h,r6
mov25h,r5
mov24h,r4
mov23h,r3
mov22h,r2
mov21h,r1
mov20h,r0
19、mov2fh,20
mov2eh,21
mov2dh,22
20、clrc
mova,#5dh;被减数的低8位→a
movr2,#b4h;减数低8位→r2
subba,r2;被减数减去减数,差→a
mov30h,a;低8位结果→30h
mova,#6fh;被减数的高8位→a
movr2,#13h;减数高8位→r2
subba,r2;被减数减去减数,差→a
mov31h,a;高8位结果→30h
注意:
如果在你的程序中用到了进位位,在程序开始的时候要记得清0进位位
21、
(1)a≥10
cjnea,#0ah,l1;(a)与10比较,不等转l1
ljmplabel;相等转label
l1:
jnclabel;(a)大于10,转label
或者:
clrc
subba,#0ah
jnclabel
(2)a>10
cjnea,#0ah,l1;(a)与10比较,不等转l1
ret;相等结束
l1:
jnclabel;(a)大于10,转label
ret;(a)小于10,结束
或者:
clrc
subba,#0ah
jncl1
ret
l1:
jnzlabel
ret
(3)a≤10
cjnea,#0ah,l1;(a)与10比较,不等转l1
l2:
ljmplabel;相等转label
l1:
jcl2;(a)小于10,转l2
ret
或者:
clrc
subba,#0ah
jclabel
jzlabel
ret
22、(sp)=23h,(pc)=3412h
参看书上80页
23、(sp)=27h,(26h)=48h,(27h)=23h,(pc)=3456h
参看书上79页
24、不能。
acall是短转指令,可调用的地址范围是2kb。
在看这个题的时候同时看一下ajmp指令。
同时考虑调用指令acall和lcall指令和ret
指令的关系。
25、movr2,#31h;数据块长度→r2
movr0,#20h;数据块首地址→r0
loop:
mova,@r0;待查找的数据→a
clrc;清进位位
subba,#0aah;待查找的数据是0aah吗
jzl1;是,转l1
incr0;不是,地址增1,指向下一个待查数据
djnzr2,loop;数据块长度减1,不等于0,继续查找
mov51h,#00h;等于0,未找到,00h→51h
ret
l1:
mov51h,#01h;找到,01h→51h
ret
26、movr2,#31h;数据块长度→r2
movr0,#20h;数据块首地址→r0
loop:
mova,@r0;待查找的数据→a
jnzl1;不为0,转l1
inc51h;为0,00h个数增1
l1:
incr0;地址增1,指向下一个待查数据
djnzr2,loop;数据块长度减1,不等于0,继续查找
ret
27、movdptr,#source;源首地址→dptr
movr0,#dist;目的首地址→r0
loop:
movxa,@dptr;传送一个字符
mov@r0,a
incdptr;指向下一个字符
incr0
cjnea,#24h,loop;传送的是“$”字符吗?
不是,传送下一个字符ret
28、mova,r3;取该数高8位→a
anla,#80h;取出该数符号判断
jzl1;是正数,转l1
mova,r4;是负数,将该数低8位→a
cpla;低8位取反
adda,#01h;加1
movr4,a;低8位取反加1后→r4
mova,r3;将该数高8位→a
cpla;高8位取反
addca,#00h;加上低8位加1时可能产生的进位
movr3,a;高8位取反加1后→r3
l1:
ret
29、clrc;清进位位c
mova,31h;取该数低8位→a
rlca;带进位位左移1位
mov31h,a;结果存回31h
mova,30h;取该数高8位→a
rlca;带进位位左移1位
mov30h,a;结果存回30h
30、movr2,#04h;字节长度→r2
movr0,#30h;一个加数首地址→r0
movr1,#40h;另一个加数首地址→r1
clrc;清进位位
loop:
mova,@r0;取一个加数
addca,@r1;两个加数带进位位相加
daa;十进制调整
mov@r0,a;存放结果
incr0;指向下一个字节
incr1;
djnzr2,loop;数据块长度减1,不等于0,继续查找
ret
31、movr2,#08h;数据块长度→r2
movr0,#30h;数据块目的地址→r0
movdptr,#2000h;数据块源地址→dptr
loop:
movxa,@dptr;传送一个数据
mov@r0,a
incdptr;指向下一个数据
incr0;
djnzr2,loop;数据块长度减1,没传送完,继续传送
ret
32、
(1)movr0,0fh;2字节,2周期4字节4周期(差)
movb,r0;2字节,2周期
(2)movr0,#0fh;2字节,1周期4字节3周期(中)
movb,@r0;2字节,2周期
(3)movb,#0fh;3字节,2周期3字节2周期(好)
33、
(1)功能是将片内ram中50h~51h单元清0。
(2)7a0a(大家可以看一下书上,对于立即数寻址的话,后面一个字节存放的是立即数)7850(第一个字节的后三位是寄存器,前一个条指令是010也就是指的r2,在这里是r0,所以应该是78,后一个字节存放的是立即数)dafc(这里涉及到偏移量的计算,可以参考书上56页)
34、inc@r0;(7eh)=00h
incr0;(r0)=7fh
inc@r0;(7fh)=39h
incdptr;(dptr)=10ffh
incdptr;(dptr)=1100h
incdptr;(dptr)=1101h
35、解:
(1000h)=53h(1001h)=54h(1002h)=41h
(1003h)=52h(1004h)=54h(1005h)=12h
(1006h)=34h(1007h)=30h(1008h)=00h
【篇三:
单片机原理及接口技术课后答案李朝青(第三版)】
lass=txt>第一章
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(地址锁存允许)(addresslatchenable)输出是fosc的6分频用示波器观察ale是否有脉冲输出(判断8051芯片的好坏?
)
观察psen(判断8051能够到eprom或rom中读取指令码?
)
因为/psen接外部eprom(rom)的/oe端子
oe=outputenable(输出允许)
7.89c51如何确定和改变当前工作寄存器组?
答:
psw(程序状态字)(programstatusword)中的rs1和rs0
可以给出4中组合
用来从4组工作寄存器组中进行选择
psw属于sfr(specialfunctionregister)(特殊功能寄存器)
8.89c51p0口用作通用I/O口输入时,若通过ttl“oc”门输入数据,应注意什么?
为什么?
答:
9.读端口锁存器和“读引脚”有何不同?
各使用哪种指令?
答:
读锁存器(anlp0,a)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如mova,p1这条指令就是读引脚的,意思就是把端口p1输入数据送给a)传送类mov,判位转移jb、jnb、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换xch、xchd算术及逻辑运算
orl、cpl、anl、add、addc、subb、inc、dec控制转移cjne、djnz都属于读锁存器。
10.89c51p0~p3口结构有何不同?
用作通用I/O口输入数据时,应注意什么?
答:
p0口内部没有上拉电阻,可以用做16位地址的低8位;
p3有第二功能;
p2口可以用做16位地址的高8位;
需要上拉电阻。
oc门电路无法输出高低电平,只有靠上