单片机原理及应用(姜志海第3版)习题参考答案

更新时间:2024-01-17 16:15:02 阅读量: 教育文库 文档下载

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

《单片机原理及应用(第3版)》习题参考答案

姜志海 黄玉清 刘连鑫 编著

电子工业出版社

目录

第1章 概述 ................................................ 2 第2章 MCS?51系列单片机硬件结构 ........................... 4 第3章 MCS?51系列单片机指令系统 ........................... 8 第4章 MCS?51系列单片机汇编语言程序设计 ................... 11 第5章 MCS?51系列单片机硬件资源的应用 .................... 16 第6章 MCS?51系列单片机并行扩展接口技术 .................. 20 第7章 MCS?51系列单片机串行总线扩展技术 .................. 25 第8章 单片机应用系统设计 ................................. 27

第 1 页 共 29 页 m

第1章 概述

1.简述微型计算机的结构及各部分的作用

微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。 运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。

通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设)。由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。

2.微处理器、微型计算机、微型计算机系统有什么联系与区别?

微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。它具有解释指令、执行指令和与外界交换数据的能力。其内部包括三部分:运算器、控制器、内部寄存器阵列(工作寄存器组)。

微型计算机由CPU、存储器、输入/输出(I/O)接口电路构成,各部分芯片之间通过总线(Bus)连接。

以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。

3.简述在微型计算机中的地址总线、数据总线和控制总线的作用。

所谓总线,就是在微型计算机各芯片之间或芯片内部各部件之间传输信息的一组公共通信线。计算机元件级总线包括地址总线AB(Address Bus)、数据总线DB(Data Bus)、控制总线CB(Control Bus)三种。

(1)地址总线:地址总线是CPU用来向存储器或I/O接口传送地址信息的,是三态单向总线。地址总线的宽度决定了CPU可直接寻址的内存容量。通过地址总线确定要操作的存储单元或I/O接口的地址。

(2)数据总线:数据总线是CPU与存储器及外设交换数据的通路,是三态双向总线。 (3)控制总线:控制总线是用来传输控制信号的,传送方向依据具体控制信号而定,如CPU向存储器或I/O接口电路输出读信号、写信号、地址有效信号,而I/O接口部件向CPU输入复位信号、中断请求信号等。

4.微型计算机是以CPU为核心,配上(存储器)、(输入/输出接口)和系统总线组成的计算机。 5.在计算机内部,一切信息的存取、处理和传递的形式是(C )。 A.ASCII码 B.BCD码 C.二进制 D.十六进制 6.0~9的ASCII码是(C )。

A.0~9 B.30~39 C.30H~39H D.40H~49H

第 2 页 共 29 页 m

7.假设某CPU含有16根地址线,8根数据线,则该CPU的最大寻址能力是多少KB? 64KB

8.简述单片机的定义、特点、应用领域和发展方向。 定义:

它采用一定的工艺手段将CPU、存储器和I/O口集成在一个芯片上。 特点:

① 单片机CPU的抗干扰性强,工作温度范围宽,而通用微机CPU一般要求在室温下工作,抗干扰能力较弱。

② 单片机CPU可靠性强,在工业控制中,任何差错都有可能造成极其严重的后果。

③ 单片机CPU控制功能往往很强,数值计算能力较差,而通用微机CPU具有很强的数值运算能力,但控制能力相对较弱,将通用微机用于工业控制时,一般需要增加一些专用的接口电路。

④ 单片机CPU指令系统比通用微机系统简单。 ⑤ 单片机CPU更新换代速度比通用微机处理器慢得多。 应用领域:

①单片机在智能仪表中的应用 ②单片机在机电一体化中的应用 ③单片机在实时控制中的应用 ④在军工领域的应用

⑤单片机在分布式多机系统中的应用 ⑥在民用电子产品中的应用 发展趋势: ② CPU的改进 ②存储器的发展 ③片内I/O口的改进

一般单片机都有较多的并行口,以满足外围设备、芯片扩展的需要,并配以串行口,以满足对多机通信功能的要求。

① 提高并行口的驱动能力。这样可减少外围驱动芯片。有的单片机直接输出大电流和高电压,以便能直接驱动LED和VFD(荧光显示器)等。

② 增加I/O口的逻辑控制功能。中、高档单片机的位处理系统能够对I/O口线进行位寻址及位操作,这加强了I/O口线控制的灵活性。

③ 特殊的串行接口功能。为单片机构成网络系统提供更便利的条件。 ④外围电路内装化

⑤低功耗与工作电压范围加宽 ⑥低噪声与高可靠性技术 ⑦ISP及IAP

第 3 页 共 29 页 m

第2章 MCS?51系列单片机硬件结构

1.MCS?51系列单片机内部有哪些主要的逻辑部件?

MCS?51单片机是在一块芯片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O功能部件,具有了一台微型计算机的基本结构,主要包括下列部件:

一个8位的CPU、一个布尔处理机、一个片内振荡器、128B的片内数据存储器、4KB的片内程序存储器(8031无)、外部数据存储器和程序存储器的寻址范围为64KB、21个字节的专用寄存器、4个8位并行I/O接口、一个全双工的串行口、2个16位的定时器/计数器、5个中断源、2个中断优先级、111?条指令、片内采用单总线结构。

2.MCS?51单片机设有4个8位并行端口,实际应用中8位数据信息由哪个端口传送?16位地址线怎样形成?P3口有何功能?

8位数据信息由P0口传送。

P2口形成地址大高8位,P0口结果锁存器形成地址的低8位。 P3口除具有一般的输入/输出功能,还具有第2功能:

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD 串行口输入端 TXD 串行口输出端 INT0 外部中断0请求输入端,低电平有效 INT1 外部中断1请求输入端,低电平有效 T0 定时器/计数器0计数脉冲输入端 T1 定时器/计数器1计数脉冲输入端 WR 外部数据存储器及I/O接口写选通信号输出端,低电平有效 RD 外部数据存储器及I/O接口读选通信号输出端,低电平有效

3.MCS?51单片机内部RAM区的功能结构如何分配?4组工作寄存器使用时如何选择?位寻址区域的字节范围是多少?

MCS?51单片机片内RAM共有128B,字节范围为00H~7FH,可分为工作寄存器区、位寻址区、数据缓冲区共3个区域。 (1)工作寄存器区

00H~1FH单元为工作寄存器区。工作寄存器也称通用寄存器,用于临时寄存8位信息。工作寄存器分成4组,每组都是8个寄存器,用R0~R7来表示。程序中每次只用一组,其余各组不工作。使用哪一组寄存器工作,由程序状态字PSW中的PSW.3(RS0)和PSW.4(RS1)两位来选择,其对应关系如表所示。

工作寄存器组的选择表

PSW.4(RS1) 0 0 1 1 PSW.3(RS0) 0 1 0 1 当前使用的工作寄存器组 R0~R7 0组(00H~07H) 1组(08H~0FH) 2组(10H~17H) 3组(18H~1FH) 该区域当不被用做工

第 4 页 共 29 页 m

作寄存器时,可以作为一般的RAM区使用。 (2)位寻址区

20H~2FH单元是位寻址区。这16个单元(共计16 × 8 = 128位)的每一位都赋予了一个位地址,位地址范围为00H~7FH。位地址区的每一位都可当做软件触发器,由程序直接进行位处理。通常可以把各种程序状态标志、位控制变量存入位寻址区内。

00H…07H 08H…0FH 10H…17H 18H…1FH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 2BH 2CH 2DH 2EH 2FH 30H…7FH 0组 1组 2组 3组 07 0F 17 1F 27 2F 37 3F 47 4F 57 5F 67 6F 77 7F 06 0E 16 1E 26 2E 36 3E 46 4E 56 5E 66 6E 76 7E 05 0D 15 1D 25 2D 35 3D 45 4D 55 5D 65 6D 75 7D 04 0C 14 1C 24 2C 34 3C 44 4C 54 5C 64 6C 74 7C 03 0B 13 1B 23 2B 33 3B 43 4B 53 5B 63 6B 73 7B 02 0A 12 1A 22 2A 32 3A 42 4A 52 5A 62 6A 72 7A 01 09 11 19 21 29 31 39 41 49 51 59 61 69 71 79 00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 工作寄存器区 位 寻 址 区 数据缓冲区 该区域当不被用做位寻址区时,可以作为一般的RAM区使用。 (3)数据缓冲区

30H~7FH是数据缓冲区,即用户RAM,共80个单元。

由于工作寄存器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三个区的单元既有自己独特的功能,又可统一调度使用。因此,前两个区未使用的单元也可作为用户RAM单元使用,使容量较小的片内RAM得以充分利用。

4.简述程序状态字PSW中各位的含义。

程序状态字PSW是一个8位寄存器,它保存指令执行结果的特征信息,为下一条指令或以后的指令的执行提供状态条件。PSW中的各位一般是在指令执行过程中形成的,但也可以根据需要采用传送指令加以改变。其各位定义如图所示。

PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 P C AC F0 RS1 RS0 OV —— ① 进位标志C(PSW.7)

在执行某些算术运算类、逻辑运算类指令时,可被硬件或软件置位或清零。它表示运算结果是否有进位或借位。如果在最高位有进位(加法时)或借位(减法时),则C = 1,否则C = 0。

② 辅助进位(或称半进位)标志位AC(PSW.6)

它表示两个8位数运算,低4位有无进(借)位的状况。当低4位相加(或相减)时,若D3位

第 5 页 共 29 页 m

向D4位有进位(或借位),则AC = 1,否则AC = 0。在BCD码运算的十进制调整中要用到该标志。

③ 用户自定义标志位F0(PSW.5)

用户可根据自己的需要为F0赋予一定的含义,通过软件置位或清零,并根据F0 = 1或0来决定程序的执行方式,或系统某一种工作状态。

④ 工作寄存器组选择位RS1、RS0(PSW.4、PSW.3)

可用软件置位或清零,用于选定当前使用的4个工作寄存器组中的某一组。 ⑤ 溢出标志位OV(PSW.2)

做加法或减法时由硬件置位或清零,以指示运算结果是否溢出。在带符号数加减运算中,OV = 1表示加减运算超出了累加器所能表示的数值范围(–128~+127),即产生了溢出,因此运算结果是错误的。OV = 0表示运算正确,即无溢出产生。

执行乘法指令MUL AB也会影响OV标志,当积大于255时,OV = 1,否则OV = 0;执行除法指令DIV AB也会影响OV标志,如B中所存放的除数为0,则OV = 1,否则0V = 0。

⑥ 奇偶标志位P(PSW.0)

在执行指令后,单片机根据累加器A中1的个数的奇偶自动将该标志置位或清零。若A中1的个数为奇数,则P = 1,否则P = 0。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。

5.简述MCS?51单片机程序存储器的几个特殊入口地址的含义。 0000H:程序入口地址

0003H:外部中断0中断服务程序入口地址

000BH:定时器/计数器0溢出中断服务程序入口地址 0013H:外部中断1中断服务程序入口地址

001BH:定时器/计数器1溢出中断服务程序入口地址 0023H:串行口发送/接收中断服务程序入口地址

6.位地址7FH与字节地址7FH有何区别?位地址7FH具体在内存中的什么位置?

二者存储的数据位数不一样。位地址7FH存放一位二进制数,字节地址7FH存放8为二进制数。 位地址7FH具体在内存中字节地址为20H的最高位上。

7.试分别说明程序计数器PC和堆栈指针SP的作用。复位后PC和SP各为何值?

程序计数器PC是一个16位专用寄存器,其内容表示下一条要执行的指令的地址。复位后为0000H。

MCS?51单片机的堆栈是在片内RAM中开辟的一个专用区。堆栈指针SP是一个8位专用寄存器,用来存放栈顶的地址。进栈时,SP自动加1,将数据压入SP所指定的地址单元;出栈时,将SP所指示的地址单元中的数据弹出,然后SP自动减1。因此SP总是指向栈顶。复位后为07H。

8.MCS?51单片机设置4组工作寄存器,开机复位后,CPU使用的是哪组寄存器?它们的地址如何?CPU如何改变当前工作寄存器组?

第0组。字节地址为00H~07H。

第 6 页 共 29 页 m

通过PSW的RS1、RS0来改变。

工作寄存器组的选择表

PSW.4(RS1) 0 0 1 1 PSW.3(RS0) 0 1 0 1 当前使用的工作寄存器组 R0~R7 0组(00H~07H) 1组(08H~0FH) 2组(10H~17H) 3组(18H~1FH)

9.什么是时钟周期、机器周期和指令周期?当外部的振荡频率是8MHz时,8051单片机的机器周期为多少?

MCS?51单片机的时序由下面4种周期构成。 (1)振荡周期

振荡周期是指为单片机提供定时信号的振荡源的周期。 (2)状态周期(时钟周期)

两个振荡周期为一个状态周期,用S表示。两个振荡周期作为两个节拍分别称为节拍P1和节拍P2。在状态周期的前半周期P1有效时,通常完成算术逻辑运算;在后半周期P2有效时,一般进行内部寄存器之间的传输。 (3)机器周期

CPU执行一条指令的过程可以划分为若干阶段,每一阶段完成某一项基本操作,如取指令、存储器读/写等。通常把完成一个基本操作所需要的时间称为机器周期。 (4)指令周期

指令周期是指执行一条指令所占用的全部时间,它以机器周期为单位。MCS?51系列单片机除乘法、除法指令是4机器周期指令外,其余都是单周期指令和双周期指令。若用12MHz晶体振荡器(晶振),则单周期指令和双周期指令的指令周期时间分别是1μs和2μs,乘法和除法指令为4μs。

通过上面的分析,我们可以看出,外部晶振的二分频是MCS?51单片机的内部时钟周期,6个时钟周期构成了单片机的机器周期。

如果单片机的外部晶振是8MHz,则其内部的机器周期是1.5μs。

12.已知PSW = 10H,则工作寄存器R0的地址是 10H ,R4的地址是 14H 。

第 7 页 共 29 页 m

第3章 MCS?51系列单片机指令系统

1.访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。 访问外部数据存储器: MOVXA,@DPTR MOVX@DPTR,A MOVXA,@Ri MOVX@Ri,A

访问程序存储器:

MOVCA,@A+DPTR MOVCA,@A+PC

2.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H、62H、30H、31H、DPTR及SP的内容将有何变化?

PUSH 30H PUSH31H POP DPL POP DPH

MOV 30H,#00H MOV 31H,#0FFH

(61H)=24H (62H)=10H (30H)=00H (31H)=0FFH (DPTR)=2410H (SP)=60H

3.设(A) = 40H,(R1) = 23H,(40H) = 05H。执行下列两条指令后,累加器A和R1以及内部RAM中40H单元的内容各为何值?

XCH A,R1 XCHDA,@R1

(A)=25H (R1)=40H (40H)=03H

4.设(A) = 01010101B,(R5) = 10101010B,分别写出执行ANL A,R5; ORL A,R5;XRL A,R5指令后的结果。

00000000B 11111111B 11111111B

5.简述转移指令AJMP addr11,SJMP rel,LJMP addr16及JMP @A + DPTR的应用。 AJMP addr11:2K范围内的转移;SJMP rel:256字节复位内的转移;

LJMP addr16:64K范围内的转移;JMP @A + DPTR:在某一地址开始的256字节范围内的转移。 6.试用三种方法实现累加器A和寄存器B的内容交换。 (1) (2) (3)

MOV MOV MOV PUSH PUSH POP POP MOV XCH

R0,A A,B B,R0 A B A B R0,B A,R0

第 8 页 共 29 页 m

MOV B,R0

7.写出实现下列要求的指令或程序片段。

(1)将内部RAM20H单元内容与累加器A内容相加,结果存放在20H单元中。

(2)将内部RAM30H单元内容与内部RAM31H单元内容相加,结果存放到内部RAM31H单元中。 (3)将内部RAM20H单元内容传送到外部RAM2000H单元中。 (4)使内部RAM20H单元的D7和D3位清零,其他位保持不变。

(5)使内部RAM20H单元的D7和D3位置1,D5位清零,其他位保持不变。 (6)使内部RAM20H单元的D7和D3位置1,D5位取反,其他位保持不变。 (1) ADD A,20H MOV 20H,A (2) MOV A,30H ADD A,31H MOV 31H,A (3) MOV A,20H

MOV DPTR,#2000H MOVX @DPTR,A (4) CLR 03H CLR 07H 或:

ANL 20H,#01110111B (5) SETB 03H SETB 07H CLR

05H

或:

ORL 20H,#10001000B ANL 20H,#11011111B (6) SETB 03H SETB 07H CPL 05H 或:

ORL 20H,#10001000B XRL 20H,#00100000B

8.试分析下列程序段执行后,(A) =?,(30H) =? MOV 30H,#0A4H MOV A,#0D6H MOV R0,#30H MOV R2,#5EH ANL A,R2 ORL A,@R0 SWAP A CPL A

XRL A,#0FEH ORL 30H,A

(A)=6EH (30H)=0EFH

9.设片内RAM(30H) = 0EH,执行下面的程序后,(A)=?,指出该程序完成的功能。MOV

R0,#30H

第 9 页 共 29 页 m

操作,结果在累加器A中。

第 10 页 共 29 页 m

MOV RL MOV RL RL ADD

=8CH

A,@R0 A B,A A A A,B

功能:将30H中的内容*10

第4章 MCS?51系列单片机汇编语言程序设计

1.编程将片内RAM 30H~39H单元中的内容送到以3000H为首的存储区中。

MOV R0,#30H MOV DPTR,#3000H MOV R7,#10

L1: MOV A,@R0

MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,L1 RET

2.片内RAM 60H开始存放20个数据,试统计正数、负数及为零的数据个数,并将结果分别存在50H、51H、52H单元中。

MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOV R7,#20 MOV R0,#60H MOV A,@R0 JZ L1

JB ACC.7,L2 INC 50H SJMP LEND INC 51H SJMP LEND INC 52H INC R0 DJNZ R7,L3 RET

3.设10次采样值依次放在片内RAM 50H~59H的连续单元中,试编程去掉一个最大值、去掉

L3: L2: L1: LEND:

一个最小值,求其余8个数的平均值,结果存放在60H中。

L1: L2:

MOV MOV MOV INC CLR MOV SUBB MOV JNC XCH INC DJNZ MOV MOV MOV INC

R0,#50H A,@R0 R7,#9 R0 C B,A A,@R0 A,B L2 A,@R0 R0 R7,L1 R0,#51H A,@R0 R7,#8 R0

;最大值

;最小值

第 11 页 共 29 页 m

L1: CLR C MOV B,A SUBB A,@R0 MOV A,B JN L4 XCH A,@R0 L4: INC R0 DJNZ R7,L3

MOV R3,#0 ; 求和 MOV R4,#0 MOV R7,#8 MOV R0,#52H L5: MOV A,R4 ADD A,@R0 MOV R4,A MOV A,R3 ADDC A,#0 MOV R3,A INC R0 DJNZ R7,L5

MOV A,R4 ;平均值 SWAP A RL A MOV B,A MOV A,R3 RR A RR A RR A

ANL A,#00011111B ORL A,B MOV 60H,A RET 4.编写程序将R4、R5、R6中的3个字节数据对半分解成6个字节,存入显示缓冲区(DISMEM0~DISMEM5)。

CL:

MOV LCALL MOV MOV MOV LCALL MOV MOV MOV LCALL MOV MOV RET MOV ANL MOV MOV ANL

A,R6 CL

DISMEM0,R0 DISMEM1,R1 A,R5 CL

DISMEM2,R0 DISMEM3,R1 A,R4 CL

DISMEM4,R0 DISMEM5,R1 B,A A,#0FH R0,A A,B A,#0F0H

第 12 页 共 29 页 m

SWAP A MOV R1,A RET

5.试编程把以2000H为首地址的连续10个单元的内容按升序排列,存放到以3000H为首地址的存储区中。

MOV DPTR,#2000H ;读到片内30H开始的单元 MOV R0,#30H MOV R7,#10 L1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R7,L1

START: CLR 00H ;排序 CLR C

MOV R7,#9 MOV R0,#30H MOV A,@R0 L3: INC R0 MOV R2,A SUBB A,@R0 MOV A,R2 JC NEXT SETB 00H XCH A,@R0 DEC R0 MOV @R0,A INC R0 NEXT: MOV A,@R0 DJNZ R7,L3 JB 00H,START

MOV DPTR,#3000H ;送到片外3000H开始的单元 MOV R0,#20H MOV R7,#10 L2: MOV A,@R0 MOVX @DPTR,A INC DPTR INC R0 DJNZ R7,L2 RET

6.设片内30H单元开始,连续存放2个字节二进制数,试分别将其转换为BCD码,并以压缩BCD码格式连续存放在以60H为首地址的存储区中,低位字节存放在低地址单元中。

DBCD:

MOV MOV MOV MOV MOV MOV MOV INC CLR

R0,30H A,R0 R6,A R1,60H A,R1 R7,A R2,#2 R2 A

第 13 页 共 29 页 m

BB0: MOV @R1,A INC R1

DJNZ R2,BB0 MOV R3,#16 BB3: MOV A,R6 MOV R0,A MOV R2,#2 CLR C BB1: MOV A,@R0 RLC A MOV @R0,A INC R0 DJNZ R2,BB1 MOV R2,#2 INC R2

MOV A,R7 MOV R1,A BB2: MOV A,@R1

ADDC A,@R1 DA A MOV @R1,A INC R1

DJNZ R2,BB2 DJNZ R3,BB3 RET

7.设片内RAM中从20H开始的单元,连续存放10个非压缩BCD码,试将其转换为ASCII码,存放到片内50H开始的单元中。

MOV R0,#20H MOV R1,#50H MOV R7,#10 L1: MOV A,@R0 ADD A,#30H MOV @R1,A INC R0 INC R1 DJNZ R7,L1 RET

8.从20H单元开始有一无符号数据块,其长度在20H单元。求出数据块中的最小值,并存入21H单元。

参看第3题。

9.片外RAM从2000H单元开始存有10个单字节无符号数,找出最大值存入片外RAM 3000H单元,试编写程序。

参看第3题。

10.从片外RAM 2000H单元开始存有20个有符号数,要求把它们传送到片外RAM 3000H开始的单元,但负数不传送,试编写程序。

MOV MOV MOV

DPTR,#2000H R0,#20H R7,#20

第 14 页 共 29 页 m

L1: MOVX MOV INC INC DJNZ MOV MOV MOV L2: MOV JB MOVX L3: INC INC DJNZ RET

A,@DPTR @R0,A DPTR R0 R7,L1

DPTR,#3000H R0,#20H R7,#20 A,@R0 ACC.7,L3 @DPTR,A DPTR R0 R7,L2

第 15 页 共 29 页m

5.单总线的操作原理是什么?

单总线系统中配置的各种测控器件,是由Dallas公司提供的专用芯片实现的。每个芯片均有64位ROM,厂家对每一个芯片用激光烧写编码,其中存有16位十进制编码序列号,是器件的地址编号,确保挂在总线上后,可以唯一地确定。除了器件地址编码外,芯片内还含有收发控制和电源存储电路。这些芯片的耗电量都很小,从总线上馈送电量(空闲时为几微瓦,工作时为几毫瓦)到大电容中就可以正常工作,故一般不另附加电源。

6.具有SPI总线的器件,除具有SDO、SDI和SCK外,还有其他控制线吗? 还有/CS控制端。

7.SPI总线上挂有多个SPI器件,如何选中某一个SPI从器件?

SPI串行扩展系统中作为主器件的单片机在启动一次传送时,便产生8个时钟传送给接口芯片,作为同步时钟,控制数据的输入与输出。数据的传送格式是高位(MSB)在前,低位(LSB)在后。数据线上输出数据的变化以及输入数据时的采样,都取决于SCK。但对于不同的外围芯片,有的可能是SCK上升沿起作用,有的可能是SCK的下降沿起作用。

8.IC总线上挂有多个IC器件,如何选中某一个IC器件?

在一般的并行接口扩展系统中,器件地址都是由地址线的连接形式决定的,而在IC总线系统中,地址是由器件类型及其地址引脚电平决定的,对器件的寻址采用软件的方法。

IC总线上所有外围器件都有规范的器件地址。器件地址由7位组成,它与一个方向位共同构成IC总线器件的寻址字节

22

2

2

2

2

第 26 页 共 29 页 m

第8章 单片机应用系统设计

1.单片机应用系统一般由哪几部分组成?

从系统的角度来看,单片机应用系统是由硬件系统和软件系统两部分组成的。硬件系统是指单片机扩展的存储器、外设及其接口电路等,软件系统包括监控程序和各种应用程序。

2.单片机应用系统设计主要有哪些内容?

单片机应用系统的设计包含硬件设计与软件设计两部分,具体涉及的内容主要有单片机系统、通道与接口、系统的抗干扰、应用软件的设计等。

3.单片机应用系统的一般设计方法是什么? (1)确定系统的功能与性能。 (2)确定系统基本结构。

(3)单片机应用系统硬件与软件设计。 (4)资源分配

4.在单片机应用系统设计中,软、硬件分工的原则是什么?对系统结构有何影响? (1)硬件系统设计原则

一个单片机应用系统的硬件电路设计包括如下两部分内容:

① 单片机系统的扩展,即单片机内部的功能单元(如程序存储器、数据存储器、I/O、定时器/计数器、中断系统等)的容量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的扩展电路。

② 系统配置,即按照系统功能要求配置外设,如键盘、显示器、打印机、A/D转换器、D/A转换器等,要设计合适的接口电路。

系统扩展的配置设计应遵循下列原则:

① 尽可能选择典型通用的电路,并符合单片机的常规用法,为硬件系统的标准化、模块化奠定良好的基础。

② 系统的扩展与外设配置的水平应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。

③ 硬件结构应结合应用软件方案一并考虑,硬件结构与软件方案会产生相互影响。

④ 整个系统中相关的器件要尽可能做到性能匹配。例如,选用晶体振荡频率较高时,存储器的存取时间就较短,应选择存取速度较快的芯片;选择COMS芯片单片机构成低功耗系统时,系统中的所有芯片都应选择低功耗产品。如果系统中相关的器件性能差异很大,系统综合性能就会降低,甚至不能正常工作。

⑤ 可靠性及抗干扰设计是硬件设计中不可忽略的一部分,它包括芯片、器件选择、去耦合滤波、印制电路板布线、通道隔离等。如果设计中只注重功能实现,而忽略可靠性及抗干扰设计,到头来只能是事半功倍,甚至会造成系统崩溃,前功尽弃。

⑥ 单片机外接电路较多时,必须考虑其总线驱动能力。驱动能力不足时,系统工作不可靠。解

第 27 页 共 29 页 m

决的办法是增加驱动能力,增加总线驱动器或者减少芯片功耗,降低总线负载。 (2)软件设计的原则

应用系统中的应用软件是根据系统功能设计的,应可靠地实现系统的各种功能。应用系统种类繁多,应用软件各不相同,但优秀的应用软件应具有以下特点:

① 软件结构清晰、简捷、流程合理。

② 各功能程序事先模块化、系统化。这样既便于调试、连接,又便于移植、修改和维护。 ③ 程序存储区、数据存储区规划合理,既能节约存储容量,又能给程序设计与操作带来方便。 ④ 运行状态实现标志化管理。各个功能程序运行状态、运行结果及运行需求都设置状态标志以便查询,程序的转移、运行、控制都可通过状态标志来控制。

⑤ 经过调试修改后的程序应进行规范化,除去修改“痕迹”。规范化的程序便于交流、借鉴,也为今后的软件模块化、标准化打下基础。

⑥ 实现全面软件抗干扰设计。软件抗干扰是计算机应用系统提高可靠性的有力措施。 ⑦ 为提高运行的可靠性,在应用软件中设置自诊断程序,在系统运行前先运行自诊断程序,以检查系统各特征参数是否正常。

整个单片机应用系统是一个整体。在进行应用系统总体设计时,软件设计和硬件设计应统一考虑,相结合进行。当系统的硬件电路设计定型后,软件的任务也就明确了。

5.什么是联调?主要解决哪些问题?

系统联调是指让用户系统的软件在其硬件上运行,进行软、硬件联合调试,从中发现硬件故障错误或软、硬件设计错误。这是对用户系统检验的重要一关。

系统联调主要解决以下问题:

① 系统的软、硬件能否按预定的要求配合工作。 ② 系统运行中是否有潜在的设计时难以预料的错误。

③ 系统的动态性能指标(包括精度、响应速度等)是否满足设计要求。

系统联调时,首先采用单步、断点、连续运行方式调试与硬件相关的各程序段,既可检验这些程序段的正确性,又可在各功能独立的情况下,检验软、硬件的配合情况。然后将软、硬件按系统工作要求进行综合运行,以解决在系统总体运行情况下软、硬件的协调问题,并提高系统的动态性能。在具体操作中,用户系统在开发系统环境下,先借用仿真器的单片机、存储器等资源进行工作。若发现问题,按上述软、硬件调试方法准确定位错误,分析错误原因,找出解决办法。用户系统调试完后,将用户程序固化到用户系统的程序存储器中,再借用仿真器单片机,使用户系统运行。若无问题,则用户系统插上单片机即可正确工作。

6.为什么要进行现场调试?

一般情况下,通过系统联调后,用户系统就可以按照设计目标正常工作了。但在某些情况下,由于用户系统运行的环境较为复杂(如环境干扰较为严重、工作现场有腐蚀性气体等),在实际现场工作之前,环境对系统的影响无法预料,只能通过现场运行调试来发现问题,找出相应的解决方法;或者虽然已经在系统设计时考虑到了抗干扰的对策,但是否行之有效,还必须通过用户系统在实际

第 28 页 共 29 页 m

现场的运行来加以验证。另外,有些用户系统的调试是在模拟设备代替实际监测、控制对象的情况下进行的,这就更有必要进行现场调试,以检验用户系统在实际工作环境中工作的正确性。

总之,现场调试对用户系统的调试来说是最后必需的一个过程,用户系统只有经过现场调试才能保证可靠地工作。现场调试仍需利用开发系统来完成,其调试方法与前述类似。

7.试设计一个采用单片机控制的自动交通信号灯系统。设在一个十字路口的两个路口均有一组交通信号灯(红、黄、绿),控制要求:主干线绿灯亮的时间为30秒,然后转为黄灯亮,2秒后即转为红灯亮。支干线在主干线绿灯和黄灯亮时,其为红灯亮,直到主干线黄灯熄灭时才转为绿灯亮。其绿灯亮的持续时间为20秒,然后黄灯亮2秒后即转为红灯亮,如此反复控制。试绘出系统逻辑图、程序流程图,并编制程序。

第 29 页 共 29 页 m

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

Top