单片机原理与接口技术习题答案

更新时间:2023-10-30 04:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机原理与接口技术

习 题 集 答 案

第1部分答案

1-1 简述冯·诺依曼型计算机的主要特征。

1、采用二进制代替十进制运算 2、存储程序工作方法 3、计算机硬件系统的构成

1-2 计算机硬件系统由哪些部件组成?

计算机硬件系统由运算器、控制器、存储器、输入设备和输出设备五个部分。

1-3 填空:

(1)100D=01100100=64H (2)03CH=00111100B=60D

1-4 写出下列各数的原码、反码和补码(用二进制数表示)。

21 -21 59 -59 127 -127 1 -1 21 原码:00010101 反码: 00010101 补码: 00010101 -21 原码:10010101

反码:11101010 补码:11111011 59原码: 00111011 反码: 00111011 补码: 00111011 -59原码:10111011 反码: 11000100 补码: 11000101 127原码: 01111111 反码: 01111111 补码: 01111111 -127 原码:11111111

反码:10000000 补码:10000001 1原码:00000001

反码:00000001 补码:00000001 -1原码:1000001 反码:11111110 补码:11111111

1-5 用十进制数写出下列补码的真值: 1FH 69H 89H FCH 97H CDH B3H 10H

1FH的真值: 31D 69H的真值: 105D 89H的真值: -119D FCH的真值: -4D 97H的真值: -105D CDH的真值: -51D B3H的真值: -77D 10H的真值: 16D 1-6 已知X和Y,求(X+Y)补。

(1) X=31D,Y=55D (X+Y)补= 01010000B (2) X=46D,Y=-81D (X+Y)补=11010001B (3) X=-54D,Y=93D (X+Y)补=00100111B (4) X=-23D,Y=-67D (X+Y)补=10100110B (5) X=75D,Y=89D (X+Y)补=10100100B

1-7 写出下列各数的8421BCD码。

1234 5678

1234的BCD码:0001001000110100 5678的BCD码:0101011001111000 1-8 简述单片机的主要特点。

1、具有优异的性能价格比

2、集成度高、体积小、可靠性高 3、控制功能强 4、低电压、低功耗

第2部分答案

1、 MCS-51单片机内部包含哪些主要部件?

①8位CPU

②4KB的程序存储器(掩膜ROM) ③128B的数据存储器

④片外程序存储器最大寻址能力64KB ⑤片外数据存储器最大寻址能力64KB ⑥32根输入/输出线

⑦1个全双工异步串行接口 ⑧2个16位定时/计数器

⑨5个中断源,2个中断优先级

2、 在功能上、工艺上、程序存储器的配置上,MCS-51单片机有哪些种类?

工艺:HMOS工艺和CHMOS工艺。

类型:基本型和增强型。

配置:片内无程序存储器、掩膜程序存储器ROM、EPROM。

3、简要说明MCS-51与AT89C51的主要区别是什么?

AT89C51单片机内部有FLASH存储器

4、MCS-51单片机的P0~P3口在结构上有何不同?

P0:数据总线和低8位地址总线 P1:通用I/O接口 P2:高8位地址线

P3:多功能I/O接口

5、单片机的片内、片外存储器如何选择?

当 为低电平时,CPU直接访问外部程序存储器

当 为高电平时,CPU要先对内部0~4K程序存储器访问,然后自动延至外部超过4K的程序存储器。

6、片机的晶振频率为12MHz,则单片机的机器周期为多少?

1T机器=12T振=12/fOSC=12/12×10=1us

-6

7、状态字寄存器各位的含义如何?

PSW的各位定义为:

CY:进行标志位(D7位)。在进行加、减运算时,如果操作结果使累加器A中最高位D7向前有进位或借位,则CY=1,否则CY=0。在位操作中,CY作位累加器C使用。

AC:辅助进行位(D6位)。在加减运算中,当A中的D3位向D4位有进位或借位时,AC=l,否则AC=0。通常在二-十进制调整时使用。

F0、F1:用户标志位(D6、D1位)。这两个是供用户定义的标志位,用户可根据需要对F0、F1赋予一定的含义,由用户用软件方法对其置位或复位,用以控制用户程序的转向。

RS1、RS0:工作寄存器区选择控制位(D4、D3位)。用于设定哪一组工作寄存器为当前正在工作的工作寄存器组,即对相同名称的R0~R7改变其物理地址,由用户通过软件方式加以选择。RS1、RS0的取值与选用工作寄存器的关系如表2-7示。单片机在开机或复位后,RS1和RS0总是为零状态,也说是说,选择0区为当前工作寄存器组,故单片机复位后的工作寄存器R0~R7的物理地址为00H~07H。

表2-7 工作寄存器组选择 RS1 RS0 0 0 0 1 1 0 1 1 工作寄存器组 0 1 2 3 地址 00H~07H 08H~0FH 10H~17H 18H~1FH 寄存器 R0~R7 R0~R7 R0~R7 R0~R7 OV:溢出标志位。用于指示累加器A在算术运算过程中是否发生的溢出。当运算结果超出了8位数能表示的范围,即-128~+127,则OV自动置1,否则OV=0。

在加法运算中,OV=l表示运算结果是错误的,OV=0表示运算正确;在乘法运算中,OV=l表示乘积超过255,即乘积分别在B与A中,OV=0表示乘积只在A中;在除法运算中,OV=l表示除数为0,除法不能进行,OV=0表示除数不为0,除法可以正常进行。

P:奇偶标志位。每条指令执行完毕后,由硬件根据A中1的数目对P位自动置位。若A中1的数目为奇数,则P=1,若A中1的数目为偶数,则P=0。

8、MCS-51单片机的控制信号有哪些?作用如何?

① (29脚):外部程序存储器读选通信号。

②ALE/ (30脚):地址锁存允许/编程信号。8051单片机可寻

③ /VPP(31脚):外部程序存储器访问允许/编程电压输入端。 ④RST/VPD(9脚):复位信号/备用电源输入端。

9、单片机内部数据存储器是怎样划分的?作用如何? 10、AT89C51单片机有多少特殊功能寄存器?

21

11.什么叫堆栈?堆栈指示器SP的作用是什么?单片机初始化后SP中内容是什么?

在程序设计时,为什么要对SP重新赋值?

堆栈就是设置在片内RAM中的一段存储区域,它遵循先入后出的原则。

SP就是一个用来指示栈顶位置的8位寄存器,它指示出堆栈顶部在内部RAM块中的位置。

SP初始化07H,使得堆栈事实上由08H单元开始。

考虑到08H~1FH分属于工作寄存器区1~3,若程序设计要用到这些区,则最好把SP值改到通用RAM区,即2FH或更大值。但是,如果堆栈指针初始化时设置在这个区域,就要留出足够的字节单元作为堆栈区,以防止在数据存储时,破坏了堆栈的内容。

12、数据指针DPTR和程序计数器PC都是16位寄存器,它们有什么不同之处?

①数据指针DPTR 数据指针DPTR是一个16位的寄存器,由2个8位特殊功能寄存器DPH和DPL拼装而成。DPH作DPTR的高8位,DPL作DPTR的低8位。因此,DPTR既可作为一个16位寄存器来使用,也可以作为二个独立的8位寄存器DPH和DPL使用。DPTR用作地址指针用来存放片内、片外ROM和片外RAM的地址,可寻址范围为64K地址空间寻址。

②程序计数器PC 程序计数器PC是一个16位加1计数器,用来存放将要执行的指令地址,编码范围为0000H~FFFFH共64K。

13、8031单片机在应用中,P2和P0口能否直接作为输入输出口连接开关、指示灯

之类的外围设备?为什么?

不能,8031单片机芯片内无程序存储器, P0口需用作数据总线和低8位地址总线来扩展外部程序

存储器。

14、AT89系列单片机的复位方式有几种?复位后单片机的状态如何?

有两种复位方式:手动按钮复位和上电复位

在SFR中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余寄存器全部清零,端口琐存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。内部RAM的状态不受复位影响,在系统启动时,RAM的内容是不定的。

15、AT89系列单片机有哪几种省电方式? 有两种省电方式:空闲方式和掉电方式

第3部分答案

1、简述下列基本概念:指令、指令系统、程序、汇编语言指令

指令:指示计算机执行某种操作的命令。

指令系统:指一台计算机所具有的全部指令的集合。 程序:各种指令的有序组合。

汇编语言指令:用助记符形式书写的指令,汇编语言指令由操作码和操作数两部分组成。

2、MCS-51单片机有那几种寻址方式?这几种寻址方式是如何寻址

有七种寻址方式: ① 立即寻址 ② 直接寻址 ③ 寄存器寻址

④ 寄存器间接寻址 ⑤ 变址寻址 ⑥ 相对寻址 ⑦ 位寻址

3、DA A指令有什么作用?怎样使用?

DA A ;这条指令是进行BCD码运算时,跟在ADD或ADDC指令之后,将相加后存放在累加器中的结果进行修正。

修正的条件和方法为:

若(A0~3)>9或(AC)=1,则(A0~3)+06H→(A0~3); 若(A4~7)>9或(CY)=1,则(A4~7)+06H→(A4~7)。

若以上二条同时发生,或高4位虽等于9 ,但低4位修正后有进位,则应加66H修正。

4、已知A=C9H,B=8DH,CY=1。执行指令“ADDC A,B”结果如何?执行指令“SUBB

A,B”结果又如果? A=56H, B=8DH, CY=0; A=3CH, B=8DH, CY=1.

5、若需访问特殊功能寄存器和片外数据存储器,就采用那些寻址方式? 寄存器间接寻址.

6、在片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48)H=90H,

试分析下段程序中各条指令的作用,说出按顺序执行完指令后的结果: MOV A,40H ;把40单元的内容送往累加器A MOV R1,A ;把累加器A的内容送往R1 MOV P1,#0F0H ;把立即数F0送往P1口

MOV @R1,30H ;把30单元的内容送往以R1的内容为地址的单元 MOV DPTR,#1234H ;把立即数1234送往DPTR MOV 40H,38H ;把38单元的内容送往40单元 MOV R1,30H ;把30单元的内容送往R1 MOV 90H,R1 ;把R1的内容送往90单元 MOV 48H,#30H ;把立即数30送往48单元

MOV A,@R1 ;把以R1的内容作为地址送往累加器A MOV P2,P1 ;把P1口的内容送往P2口

7、试说明下段程序中每条指令的作用,当指令执行完后,R0中的内容是什么?

MOV R0, #0AFH XCH A, R0 SWAP A XCH A, R0 (R0)=0FAH

8、把累加器A中的低4位送到外部RAM的2000H单元中,试编程序。

ANL A,#OFH

MOV DPTR,#2000H MOVX @DPTR,A

9、利用乘法指令编写15H×33H的程序,将乘积的高8 位存入31H单元,低8位存

入30H单元 MOV A,#15H MOV B,#33H MUL A,B MOV 31H,B MOV 30H,A

10、编程将片内35H~55H单元中的内容送入到以3000H为首的存储区中。 M: MOV R0,#35H MOV R1,#21H

本文来源:https://www.bwwdw.com/article/vej2.html

Top