没有合适的资源?快使用搜索试试~ 我知道了~
单片机原理与接口技术课后习题答案.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 137 浏览量
2022-06-01
11:06:10
上传
评论
收藏 353KB DOC 举报
温馨提示
试读
25页
单片机原理与接口技术课后习题答案.doc
资源推荐
资源详情
资源评论
第一章
1.微处理器,RAM,ROM,以及 I/O 口,定时器,构成的微型计算机称为单片机。
2.指令寄存器(IR)保存当前正在执行的一条指令;指令译码器(ID)对操作码进行译码。
3.程序计数器(PC)指示出将要执行的下一条指令地址,由两个 8 位计数器 PCH 及 PCL
组成。
4.80C31 片内没有程序存储器,80C51 内部设有 4KB 的掩膜 ROM 程序存储器,87C51 是
将 80C51 片内的 ROM 换成 EPROM,89C51 则换成 4KB 的闪存 FLASHROM,51 增强型的
程序存储器容量是普通型的 2 倍。
5.89C51 的组成:一个 8 位的 80C51 的微处理器,片内 256 字节数据存储器 RAM/SFR 用
来存放可以读/写的数据,片内 4KB 程序存储器 FLASHROM 用存放程序、数据、表格,4
个 8 位并行 I/O 端口 P0-P3,两个 16 位的定时器/计数器,5 个中断源、两个中断个优先级
的中断控制系统, 一个全双工 UART 的串行口 I/O 口,片内振荡器和时钟产生电路,休闲
方式和掉电方式。
6.89C51 片内程序存储器容量为 4KB,地址从 0000-0FFFH 开始,存放程序和表格常数,
片外最多可扩展 64KBROM 地址 1000-FFFFH,片内外统一编址。单片机的内部存储空间分
为数据存储器和程序存储器。
7.内部数据存储器:共 256 字节单元,包括低 128 个单元和高 128 个单元。低 128 字节又
分成 3 个区域:工作寄存器区( 00H~1FH),位寻址区( 20H~2FH)和用户 RAM 区
(30H~7FH)存放中间结果,数据暂存及数据缓冲。高 128 字节是供给特殊功能寄存器
(SFR)使用的,因此称之为特殊功能寄存器区(80H~FFH),访问它只能用直
接寻址。
内部程序存储器:在 8031 片内无程序存储器,8051 片内具有 4KB 掩模 ROM,8751 片内
具有 4KBEPROM。
8. 引脚是片内外程序存储器的选择信号。当 端保持高电平时,访问内部程序存储器,但
在 PC(程序计数器)值超过 0FFFH(对于 8051/8751/80C51)或 1FFFH(对于 8052)时,
将自动转向访问外部程序存储器。当 端保持低电平时,不管是否有内部程序存储器,则只
访问外部程序存储器。由于 8031 片内没有程序存储器,所以在使用 8031 时, 引脚必须接
低电平。
9.RST 复位信号输入端,高电平有效。保持两个机器周期(24 个时钟振荡周期)的高电
平有效,完成复位,复位后,CPU 和系统都处于一个确定的初始状态,在这种状态下,所
有的专用寄存器都被赋予默认值,除 SP=07H,P0~P3 口为 FFH 外,其余寄存器均为 0。
ALE/ :ALE 输出正脉冲,频率为振荡周期的 1/6,CPU 访问片外存储器时,ALE 输出信号
作为锁存低 8 位地址的控制信号,看芯片好坏可以用示波器看 ALE 端是否有脉冲信号输出。
PSEN 程序存储允许输出信号端,也可以检查芯片好坏,有效即能读出片外ROM的指令,
引脚信号RD/WR有效时可读/写片外RAM或片外I/O接口。
10.P0 作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁
存器写“1”;作为普通 I/O 口使用或低 8 位地址/数据总线使用。
P1 口有上拉电阻,对 FLASHROM 编程和校验是 P1 接收低八位地址;只用作普通 I/O 口使
用。
P2 口比 P1 口多了一个转换控制开关;作为普通 I/O 口使用或高 8 位地址线使用时访问外部
程序存储器和 16 位地址的外部数据存储器。
P3 口比 P1 口增加了与非门和缓冲器;具有准双向 I/O 功能和第二功能。P0,P1,P2,P3
准双向口。上述 4 个端口在作为输入口使用时,应注意必须先向端口写“1”。
11.普林斯顿结构:一个地址对应唯一的存储单元,用同类访问指令。哈佛结构:程序存
储器和数据存储器分开的结构。
CPU 访问片内外 ROM 用 MOVC,访问片外 RAM 用MOVX,访问片内RAM用MOV.
12.
RS1 RS0
当前寄存器组 片 内 RAM
地址
0 0
第 0 组工作寄存器 00H~07H
0 1
第 1 组工作寄存器 08H~0FH
1 0
第 2 组工作寄存器 10H~17H
1 1
第 3 组工作寄存器 18H~1FH
SP 总是初始化到内部 RAM 地址 07H,堆栈的操作;PUSH、POP。DPTR 是数据指针寄存器,
是一个 16 位寄存器,用来存放 16 位存储器的地址,以便对 64 KB片外 RAM 作间接寻址。
DPTR 由高位字节 DPH 和低位字节 DPL 组成。
13.指令周期:执行一条指令所需要的时间。
机器周期:CPU 完成一个基本操作所需要的时间,6个状态周期和12个振荡周期。
当晶振频率为 12MHz 时,一个机器周期为 1μs;当晶振频率为6 MHz 时,一个机器周期为
2 μs,复位时间超过4 μs。
14.复位操作有:电自动,按键手动,看门狗。
15.空闲方式是 CPU 停止工作而 RAM,定时器/计数器,串行口及中断系统都工作。掉电
一切功能都暂停,保存 RAM 中内容。退出空闲方式;硬件将PCON.0清0,硬件复
位。当CPU执行PCON.1为1,系统进入掉电方式。推出掉电只有硬件复位。
16.保留的存储单元
存储单元 保留目的
0000H~0002H 复位后初始化引导程序地址
0003H~000AH 外部中断 0
000BH~0012H 定时器 0 溢出中断
0013H~001AH 外部中断 1
001BH~0022H 定时器 1 溢出中断
0023H~002AH 串行端口中断
002BH
定时器 2 中断
17.单片机的寻址方式:寄存器寻址,直接寻址,立即数寻址,寄存器间接寻址,变址寻
址,相对寻址,位寻址。
18.AJMP 和 SJMP 的区别有:
(1) 跳转范围不同。 AJMP addr1 ;短跳转范围:2KB 。SJMP rel ;相对跳转范围:-
128~+127 (2) 指令长度不同。(3) 指令构成不同。AJMP、LJMP 后跟的是绝对地址,而
SJMP 后跟的是相对地址。 不能用 AJMP 指令代替程序中的 SJMP 指令,因为如果改变的
话,程序跳转到的新 PC 值指向的地址会不同,导致程序出现错误。
19.在 89c51 片内 RAM 中 30H)=38H,38H=40H,40H=48H,48H=90H。情分析下面各是什
么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果?
MOV A,40H ;直接寻址 (40H)→A
MOV R0,A ;寄存器寻址 (A)→R0
MOV P1,#0F0H ;立即数寻址 0F0→P1
MOV @R0,30H ;直接寻址 (30H) →(R0)
MOV DPTR,#3848H ;立即数寻址 3848H→DPTR
MOV 40H,38H ;直接寻址 (38H) →40H
MOV R0,30H ;直接寻址 (30H) →R0
MOV P0,R0 ;寄存器寻址 ( R0 )→P0
MOV 18H,#30H ;立即数寻址 30H→18H
MOV A,@R0 ;寄存器间接寻址 ((R0)) →A
MOV P2,P1 ;直接寻址 (P1)→P2
最 后 结 果 : ( R0 ) =38H , ( A ) =40H , ( P0 ) =38H , ( P1 ) = ( P2 ) =0F0H ,
(DPTR )=3848H ,(18H )=30H,(30H )=38H ,(38H ) =40H,(40H )=40H,
(48H)=38H 注意:→左边是内容,右边是单元
20.已知 R3 和 R4 中存放有一个 16 位的二进制数,高位在 R3 中,地位在 R4 中,请编程
将其求补,并存回原处。 MOV A,R3 ;取该数高 8 位→A
ANL A,#80H ;取出该数符号判断
JZ L1 ;是正数,转 L1
MOV A,R4 ;是负数,将该数低 8 位→A
CPL A ;低 8 位取反
ADD A,#01H ;加 1
MOV R4,A ;低 8 位取反加 1 后→R4
MOV A,R3 ;将该数高 8 位→A
CPL A ;高 8 位取反
ADDC A,#00H ;加上低 8 位加 1 时可能产生的进位
MOV R3,A ;高 8 位取反加 1 后→R3
L1: RET
21.已知 30H 和 31H 中村有一个 16 位的二进制数,高位在前,低位在后,请编程将他们
乘以 2,在存回原单元中。
CLR C ;清进位位 C
MOV A,31H ;取该数低 8 位→A
RLC A ;带进位位左移 1 位
MOV 31H,A ;结果存回 31H
MOV A,30H ;取该数高 8 位→A
RLC A ;带进位位左移 1 位
MOV 30H,A ;结果存回 30H
22.假设允许片内定时器/计数器中断,禁止其他中断。设置 IE 值。
用字节操作指令: MOV IE #8AH 或 MOV A8H,#A8H
用位操作指令:SETB ET0
SETB ET1
SETB EA
23.设 89 C51 的片外中断为高优先级,片内为低优先级,设置 IP 值。
用字节操作指令:MOV IP,#05H 或 MOV 0B8H,#05H
用位操作指令:SETB PX0
SETB PX1
CLR PS
CLR PT0
CLE PT1
24.89C51 单片机内有两个 16 位定时器/计数器,即 T0,T1.
单片机原理及接口技术课后习题答案 李朝青 第三章
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、 MOV A,40H ;直接寻址 (40H)→A
MOV R0,A ;寄存器寻址 (A)→R0
MOV P1,#0F0H ;立即数寻址 0F0→P1
MOV @R0,30H ;直接寻址(30H)→(R0)
MOV DPTR,#3848H ;立即数寻址 3848H→DPTR
MOV 40H,38H ;直接寻址(38H)→40H
MOV R0,30H ;直接寻址(30H)→R0
MOV P0,R0 ;寄存器寻址 (R0)→P0
MOV 18H,#30H ;立即数寻址 30H→18H
MOV A,@R0 ;寄存器间接寻址((R0))→A
MOV P2,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、 MOV A,DATA ;直接寻址 2 字节 1 周期
MOV A,#DATA ;立即数寻址 2 字节 1 周期
MOV DATA1,DATA2 ;直接寻址 3 字节 2 周期
MOV 74H,#78H ;立即数寻址 3 字节 2 周期
9、 MOV A,@R0 ;((R0))=80H→A
MOV @R0,40H ;(40H)=08H→(R0)
MOV 40H,A ;(A)=80→40H
MOV R0,#35H ;35H→R0
最后结果:(R0)=35H (A)=80H,(32H)=08H,(40H)=80H
10、用直接寻址,位寻址,寄存器寻址
11、只能采用寄存器间接寻址(用 MOVX 指令)
12、低 128 字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址(R0~R7)
高 128 字节:直接寻址,位寻址,寄存器寻址
13、采用变址寻址(用 MOVC 指令)
14、压缩 BCD 码在进行加法运算时应逢十进一,而计算机只将其当作十六进制数处理,此时得到的结果
不正确。用 DA A 指令调整(加 06H,60H,66H)
15、用来进行位操作
16、ANL A,#17H ;83H∧17H=03H→A
ORL 17H,A ;34H∨03H=37H→17H
XRL A,@R0 ;03H⊕37H=34H
CPL A ;34H 求反等于 CBH 所以(A)=CBH
17、(1)SETB ACC.0 或 SETB E0H ;E0H 是累加器的地址
(2)CLR ACC.7 CLR ACC.6 CLR ACC.5 CLR ACC.4
(3)CLR ACC.6 CLR ACC.5 CLR ACC.4 CLR ACC.3
18、MOV 27H,R7 MOV 26H,R6 MOV 25H,R5
MOV 24H,R4 MOV 23H,R3 MOV 22H,R2
MOV 21H,R1 MOV 20H,R0
19、MOV 2FH,20 MOV 2EH,21 MOV 2DH,22
20、CLR C
MOV A,#5DH ;被减数的低 8 位→A
MOV R2,#B4H ;减数低 8 位→R2
SUBB A,R2 ;被减数减去减数,差→A
MOV 30H,A ;低 8 位结果→30H
MOV A,#6FH ;被减数的高 8 位→A
MOV R2,#13H ;减数高 8 位→R2
SUBB A,R2 ;被减数减去减数,差→A
MOV 31H,A ;高 8 位结果→30H
注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清 0 进位位
21、(1)A≥10
CJNE A,#0AH,L1 ;(A)与 10 比较,不等转 L1
LJMP LABEL ;相等转 LABEL
L1:JNC LABEL ;(A)大于 10,转 LABEL
或者:CLR C
SUBB A,#0AH
JNC LABEL
(2)A>10
CJNE A,#0AH,L1 ;(A)与 10 比较,不等转 L1
RET ;相等结束
L1:JNC LABEL ;(A)大于 10,转 LABEL
RET ;(A)小于 10,结束
剩余24页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3648
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功