第 1 章 单片机基础知识
description
Transcript of 第 1 章 单片机基础知识
1.1 单片机的基本概念
单片机的概念 将微处理器 , 一定容量的 ROM 和 RAM 以及I/O 口 , 定时器等电路集成在一块芯片上 , 构成单片机微型 计算机 , 简称单片机1.1.1 单片机的发展状况 1.8051 类单片机的发展状况 最早有 lntel 公司生产,后来主要由 Phlips 、三星、华邦 公司生产 2. 单片机技术发展特点 ① 单片机寿命长; ② 单片机速度越来越快; ③ 低噪声和高可靠性技术 3. 单片机的发展趋势
1.1.3 单片机的系列产品介绍1 . ATMEL 类单片机 2 . Intel 单片机 3 . Motorola 单片机 4 . Microchip 单片机 5 .东芝单片机 6 . Zilog 单片机
1.2 MCS-51 内核单片机单片机的基本组成 表 MCS-51 系列单片机技术参数表
型号 片内存储器( B ) 定时器 并行线
程序存储器 数据存储器
8031 无 128 2 个 16 位 4х8
80c31 无 128 2 个 16 位 4х8
8051 4KROM 128 2 个 16 位 4х8
80c51 4KROM 128 2 个 16 位 4х8
8751 4KEPROM 128 2 个 16 位 4х8
87c51 4KEPROM 128 2 个 16 位 4х8
8032 无 256 3 个 16 位 4х8
8052 8KROM 256 3 个 16 位 4х8
8752 8KEPROM 256 3 个 16 位 4х8
8051单片机内部结构图
RAM 地址寄存器
寄存器
RAM 128B
RAM
程序地址 寄存器
P0驱动器
P2锁存器
P2驱动器
P1锁存器
暂存器 2 B寄存器
4KB ROM
暂存器 1 ACC SP
P0锁存器
PC
PC增 1
缓冲器
P3锁存器
OSC
中断、串行口及定时器 PSW
ALU
DPTR
P1驱动器 P3驱动器
XTAL1 XTAL2
P0.0~P0.7 P2.0~P2.7
P3.0~P3.7 P1.0~P1.7
RST
ALE
VCC
VSS
定时控制
指令译码器
指令寄存器
PSEN
EA
8051 内部 CPU 由运算器和控制器两部分组成
1. 运算器 由 ALU 、暂存器 1 、暂存器 2 、累加器( ACC ) 、寄存器 B 、程序状态字( PSW )、 和布尔处理机共同组成。主要任务是完成算术运算、逻辑运算、位运算和数据传送等操作。
2. 控制器 包括程序计数器 (PC) 、 PC 增 1 寄存器、指令寄存
器 (IR) 、指令译码器 (ID) 、数据指针 (DPTR) 、堆栈指针(SP) 、缓冲器及定时控制电路等。控制器电路完成指挥控制工作,协调单片机各部分正常工作。
1.2.2 80511.2.2 8051 单片机的内部结构单片机的内部结构
8051 的 40 个引脚可分为:1. 电源引脚 (2 根 ) VCC(40 脚 ) :电源端,接 +5V 电源。 VSS(20 脚 ) :接地端。2. 时钟引脚 (2 根 ) XTAL1(19 脚 ) :接外部晶振和微调电容的一端。采
用外部时钟电路时,此引脚应接地。 XTAL2(18 脚 ) :接外部晶振和微调电容的另一端。
使用外部时钟时,此引脚应接外部时钟的输入端; 8051 单片机正常工作时,该引脚应该有脉冲信号输出。
3. 控制引脚 (4 根 ) (30 脚 ) :地址锁存允许信号输出 / 编程脉
冲输入引脚。当 CPU访问片外存储器时, ALE 输出信号控制锁存 P0 口输出的低 8 位地址,从而实现 P0 口数据与低位地址的分时复用。
(29 脚 ) :片外 ROM 读选通信号端。
PROGALE/
PSENPSEN
PSEN
(31 脚 ) :外部程序存储器地址允许输入端 当 EA 接高电平时, CPU执行片内 ROM 指令,但
当 PC 值超过 0FFFH 时,将自动转去执行片外 ROM指令;当 EA 接低电平时, CPU只执行片外 ROM 指令。
RST/VPD(9 脚 ) :复位信号 / 备用电源输入引脚。 当 RST 引脚保持两个机器周期的高电平后,就可以
使 8051 完成复位操作。
pp/VEA
4. I/O 引脚 (1)P0.0 ~ P0.7(39 ~ 32 脚 ) : P0 口的 8 位双向 I/O 口线。 P0 口可作为通用双向 I/O 口。在外接数据、程序存储器时,
可作为低 8 位地址 / 数据总线复用引脚。 (2)P1.0 ~ P1.7(1 ~ 8 脚 ) : P1 口的 8 位准双向 I/O 口线。 P1 口作为通用的 I/O 口使用。 (3)P2.0 ~ P2.7(21 ~ 28 脚 ) : P2 口的 8 位准双向 I/O 口线。 P2 口即可作为通用的 I/O 口使用,也可作为片外存储器的高
8 位地址总线,与 P0 口配合,组成 16 位片外存储器单元地址。 (4)P3.0 ~ P3.7(10 ~ 17 脚 ) : P3 口的 8 位准双向 I/O 口线。 P3 口除了作为通用的 I/O 口使用之外,每个引脚还具有第二功
能。
1.2.4 1.2.4 单片机的存储器单片机的存储器 MCS-51 单片机程序存储器和数据存储器相互独立,在物
理结构上有四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。单片机的外部数据存储器和 I/0 接口采用统一编址的方式。
0000H
7FH
00H
80H
FFH
0FFFH 0FFFH
0000H 0000H
EA 0
FFFFH
SFR
RAM
EA 1
ROM 4KB
FFFFH
64KB
ROM RAM
64KB
(I/O)RAM
片内存储器
1000H
片外扩展存储器
图 1.3 存储器空间分布图
1 、数据存储器 内部数据存储器和外部数据存储器在 00H~7F 范围内地址
出现了重叠的现象,单片机通过不同的指令格式加以区分。 例如: MOV A , @R0
MOV @R1 , A
片外 RAM 采用 MOVX 指令,若外部存储单元的地址为 8 位,可选择 R0 或 R1 作为间接寻址寄存器。
例如 MOVX A , @R0
MOVX @R1 , A
若地址为 16 位,必须选 DPTR 寄存器地作为间接寻址寄存器。
例如: MOVX A , @DPTR
MOVX @DPTR , A
2. 内部 RAM
内部 RAM 共 128 个单元,可分为工作寄存器区、位寻址区和数据缓冲区。
( 1 ) 工作寄存器区( 00H-1FH ) 该区的 32 个单元被均匀地分为四组,每组包含八个 8 位
寄存器,均以 R0—R7 来命名,称为通用寄存器。 CPU当前所使用的工作寄存器区是由程序状态字 PSW 中的 D3( RS0 )和 D4(RS1) 位来选择的。通过修改 PSW 中的RS0 和 RS 这两位,就可选择任一组工作寄存器,这有利于提高 CPU 的效率和响应中断的速度
(2) 位寻址区( 20H-2FH ) 片内 RAM 的 20H—2FH 单元为位寻址区,它们既可作为
一般单元用字节寻址,也可以对其中的某位进行寻址。
( 3) 堆栈和数据缓冲区( 30H-7FH ) 该区用于存放用户的数据,对这部分区域的使用不作任何规定和限制,堆栈一般开辟在这个区域。
3 、特殊功能寄存器 MCS-51 单片机把 CPU 中的专用寄存器、 I/O 锁存器、
中断、串行口与定时 / 计数器内的各种控制寄存器和状态寄存器都作为特殊功能寄存器,它们离散地分布在地址 80H-OFFH 的范围内,该范围称为特殊功能寄存器区。 MCS-51 单片机有 21 个特殊功能寄存器,它们只能通过直接寻址的方式进行访问。
符号 名称 地址*ACC
*PSW*B
SPDPTR
*P1*P0
*P3
*P2
*IE*IP
*TCONTMOD
TL0TH0
TH1TL1
SBUF*SCON
PCON
累加器B 寄存器程序状态字栈指针数据指针(包括指针高 8 位 DPH 和低 8 位 DPL )
P0 口锁存寄存器P1 口锁存寄存器P2 口锁存寄存器P3 口锁存寄存器中断优先级控制寄存器中断允许控制寄存器定时器 / 计数器工作方式寄存器定时器 / 计数器控制寄存器定时器 / 计数器 0 (高字节)定时器 / 计数器 0 (低字节)定时器 / 计数器 1 (高字节)定时器 / 计数器 1 (低字节)串行口控制寄存器串行数据缓冲器电源控制及波特率选择寄存器
80H90HA0HB0H
87H
B8HA8H89H88H8CH8AH8DH8BH98H99H
寄存器符号
地址 寄存器名称 寄存器符号 地址 寄存器名称
·ACC E0H 累加器 ·P3 B0H I/O口 3
·B F0H B寄存器 PCON 87H 电源控制及波特率选择寄存器
·PSW D0H 程序状态字 ·SCON 98H 串行口控制寄存器
SP 81H 堆栈指示器 SBUF 99H 串行口数据缓冲寄存器
DPL 82H 数据指针低八位 ·TCON 88H 定时器控制寄存器
DPH 83H 数据指针高八位 TMOD 89H 定时器方式选择寄存器
·IE A8H 中断允许控制寄存器 TL0 8AH 定时器 0低 8位
·IP B8H 中断优先控制寄存器 TL1 8BH 定时器 1低 8位
·P0 80H I/O口 0 TH0 8CH 定时器 0高 8位·P1 90H I/O口 1 TH1 8DH 定时器 1高 8位·P2 A0H I/O口 2
表 1-4 特殊寄存器表
部分特殊功能寄存器 累加器( ACC ) 8 位寄存器,也是 CPU 中使用最频繁
的寄存器。 寄存器 B 是一个是专门为乘除指令而设计的 8 位的寄存
器。在进行乘法运算时,寄存器 B 用来存放一个乘数,并且存放积的高 8 位;在除法运算时,寄存器 B 用
程序状态字( PSW )是一个 8 位的寄存器,用来存放程序运行中的各种状态信息。
位地址 D7H D6H D5H D4H D3H D2H D1H D0H
位标志 Cy AC F0 RS1 RS0 OV — P
表 1-5 PSW 中各位的定义
第 1 章 微机基础知识
Cy 进位标志位,同时也是布尔处理机的位累加器 C 。 AC 辅助进位标志位,又叫半进位标志位。该位常用于调整 BCD 码的运算结果。 F0 用户标识位,用于控制程序的转向。 RS1 、 RS0 工作寄存器组的选择位。 OV 溢出标志位。
RS1 RS0 寄存器组 片内 RAM 的地址
0 0 0 00H—07H
0 1 1 08H—0FH
1 0 2 10H—17H
1 1 3 18H—1FH
表 1-5 PSW 中各位的定义
PSW.1 位 系统保留位。 P 奇偶标志位。 程序计数器 PC 是一个 16 位的计数器,是程序存储器
的字节地址计数器,它里面存放着将要执行的下一条指令的地址,寻址范围为 64K 字节。
数据指针寄存器 DPTR 是 16 位地址指针,在访问外部存储器时,用来存放外部存储器的地址。
堆栈指针寄存器 SP 8 位的指针寄存器,当系统复位后,SP 的内容为 07H, 用户可根据自己的需要重新设置 SP的值。
P0-P3 四个 8 位特殊功能寄存器,分别是四个并行 I/O端口的锁存器。
4. 程序存储器 程序存储器用于存放表格常数和程序, 8051 单片
机内部有 4K 字节 ROM, 片外可扩展 64K 字节的 ROM ,二者统一编址。
脚决定片内外 ROM 的读取方式 片外 ROM 和片外 RAM 的地址出现了重叠,可使
用相应的指令进行区分。 程序存储器中某些单元保留给系统使用,用来存放
引导程序和各个中断源的入口地址。
EA
1.2.4 单片机的时钟电路和时序
1. 时钟电路MCS-51 单片机的时钟有两种方式,内部振荡方式 : 利用单片机内部的振荡电路 ,
产生时钟信号,这种方式单片机的时钟引脚上接石英晶体和振荡电容;
外部时钟方式 : 外部已有的时钟信号引入单片机。
2. CPU 的时序 ① 节拍、状态 一个时钟周期定义为一个节拍(用 P 表示),
二个节拍定义为一个状态周期(用 S 表示),这两个节拍中的前一拍称为 P1 ,后一拍为 P2 。
② 时钟周期 也称为振荡周期,定义为时钟脉冲的倒数,它
是计算机中最基本的、最小的时间单位。时钟周期就是单片机外接晶振的倒数,例如 12M 的晶振,它的时间周期就是 1/12 us 。
③ 机器周期 CPU 访问存储器一次所需的时间。 例如,取指令、读存储器、写存储器等等。 51 系列单片机的一个机器周期同 6 个状态周期组成,也就是说一个机器周期等于 6 个状态周期,即 12 个时钟周期。
④ 指令周期 执行一条指令所需要的时间,一般由若干个机
器周期组成。指令不同,所需的机器周期数也不同,有单周期指令、双周期指令和四周期指令。
1.3 存储器扩展 51 单片机一块芯片就是一个完整的最小微机系统,但片内存储器的容量、并行 I/O 端口、定时器等内部资源都还是有限的。可以根据实际需要,对其进行功能扩展,它包括数据存储器和程序存储器等的扩展。
系统的扩展是通过总线把单片机和扩展部分连接起来。根据总线传送的信息可分为数据总线( DB )、地址总线 (AB) 和控制总线 (CB) 。
单片机扩展总线的构造 1. 数据总线 D0 ~ D7
数据总线的宽度为 8 位,由 P0 口提供。 2. 地址总线 A0 ~ A15
8051 单片机的地址总线宽度为 16 位, P0 提供低 8 位地址, P2 提供高 8 位地址。可寻址范围 64KB, 。由于 P0即作低 8 位地址线,又作数据线,所以它是分时复用的引脚,使用时需要加一个 8 位锁存器,如 74LS373 。
3. 控制总线 P3 提供的读信号、写信号 , 加上控制线、 ALE 和等信号组
成控制总线,其中读和写作为扩展数据存储器读、写选通信号; 信号作为片内、外 ROM 的选择控制信号; ALE信号作为地址锁存器的选通信号,以实现对低 8 位地址的锁存; 号作为扩展程序存储器 ROM 的读选通信号。
EA
PSEN
89S51 单片机内部有 4KB Flash ROM ,当程序大于 4KB 时,就需要扩展程序存储器。
1. 常用程序存储器芯片 程序存储器有有许多种,比如 ROM( 只读存储器 ) 、
PROM( 可编程 ROM) 、 EPROM( 可擦除可编程ROM) 、 EEPROM( 电可擦除可编程 ) 和 Flash ROM( 闪存存储器 ) 。最常见的芯片是紫外线可擦除的 EPROM ,主要是 Intel 公司生产的 27XXX 系列, 如 2716 ( 2K×8 )、 2732 ( 4K×8 )、2764 ( 8K×8 )、 27128 ( 16K×8 )、 27256( 32K×8 )、 27512 ( 64K×8 )等。
EPROM 各引脚功能如下 ① A0 ~ A15: 地址输入线,引脚的数目随芯片的容量有
所不同。 ② D0 ~ D7: 双向三态数据总线,读或编程校验时为数据
输出线,编程时为数据输入线。其余时间呈高阻状态。 ③: 片选信号,低电平表示该芯片被选中。 ④: 读出选通线,低电平输出缓冲器打开,数据输出。 ⑤: 编程脉冲输入线。正常工作时接 +5V 电源,编程时
输入编程脉冲。 ⑥ VPP: 编程电源输入线,正常工作时接 +5V 电源,编
程加编程电压。 ⑦ VCC: 电源线,接 +5V 电源。 ⑧ NC :空。 ⑨ GND :接地。
扩展数据存储器由 P2 口提供高 8 位地址, P0 口分时用作低 8 位地址和 8 位数据总线。片外数据存储器 RAM 的读和写由 (P3.7) 和 (P3.6) 信号控制。
一、常用的 RAM 芯片介绍 ① A0 ~ A15 :地址输入线,引脚的数目随芯片的容量有所不同。
② D0 ~ D7 ( I/O0 ~ I/O7 ):双向三态数据总线。 ③ : 片选线,低电平有效。 6264 的 26 脚( CS )必须为
高电平,并且为低电平时才选中该芯片。 ④ : 读选通线,低电平有效。 ⑤ : 写选通线,低电平有效。 ⑥ VCC :电源线,接 +5V 电源。 ⑦ NC :空。 ⑧ GND :接地。
CE
OE
WE
1.5.2 单片机应用系统的设计过程 单片机应用系统是以单片机为核心,配上一定的外围电路和软件,实现某种功能的系统。虽然单片机的硬件选型不尽相同,软件编写也千差万别,但系统的研制步骤和方法是基本一致的,一般都分为总体设计、硬件电路的构思设计、软件的编制和仿真调试几个阶段。单片机应用系统的研制流程如图 2-25 所示
2 、硬件设计 硬件设计是以芯片和元件为基础的完整
的单片机系统的设计,根据总体设计要求,确定能实现该项目的所有功能的电路原理图。
① 存储器的扩展 ② 系统的扩展与外围电路的水平,应充分 满足系统功能的要求并留有余地。
④ 以软件功能代替硬件电路。
3 、软件设计 一旦单片机系统产品研发完成,软件就固化
在硬件环境中,单片机软件是针对相应的单片机硬件系统开发的,是专用的。根据总体方案的要求和硬件电路的设计,编写应用程序完成软件功能,编写时可将其分成多个功能模块,便于调试、修改、连接和移植。
4 、单片机应用系统抗干扰的设计① 滤波技术② 隔离技术
1.5.3 单片机应用系统的仿真与调试
图 1.18 仿真器开发环境
1. 单片机应用系统的开发工具 典型的单片机开发环境如图所示,它包括 PC 机、仿真器和编程器。 单片机开发系统具备对用户程序进行输入、编辑、汇编和调试的功能;此外,还具备在线仿真功能、辅助设计功能等。