山东交通学院毕业设计(论文)
3.MCS-51系列单片机
3.1 8051单片机的总体结构
MCS-51系列单片机主要包括8031、8051和8751等通用产品。
8051是MCS-51系列单片机中的代表产品,它内部集成了功能强大的中央处理器,包含了硬件乘除法器、21个专用控制寄存器、4kB的程序存储器、128字节的数据存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器。
3.1.1 8051单片机的总体框图及功能
内部总体结构如下: 8位CPU
4kbytes 程序存储器(ROM) 128bytes的数据存储器(RAM) 32条I/O口线
111条指令,大部分为单字节指令 21个专用寄存器 2个可编程定时/计数器 5个中断源,2个优先级 一个全双工串行通信口
外部数据存储器寻址空间为64kB 外部程序存储器寻址空间为64kB 逻辑操作位寻址功能 双列直插40PinDIP封装 单一+5V电源供电
11
李文婷:基于超声波的液位测量系统
图3.1 8051单片机的内部基本结构 Figure 3.1 8051 MCU internal basic structure
图3.1是8051的内部结构框图,从图中可以看出,单片机内部各功能部件都是挂靠在内部总线上的,它们通过内部总线传送地址信息,各功能部件分时使用总线,即所谓的内部但总线结构。 3.1.2 8051的引脚功能
8051单片机采用40脚双列直插式封装,其引脚排列及逻辑符号如图3.2所示。
图3.2 8051单片机引脚图 Figure 3.2 8051 MCU pin map
12
山东交通学院毕业设计(论文)
下面分别说明各引脚的含义和功能[3]。 (1)主电源引脚Vcc和Vss
Vcc──电源端。工作电源和编程校验(+5V)。 Vss──接地端。
(2)时钟振荡电路引脚XTAL1和XTAL2
XTAL1和XTAL2分别用作晶体振荡电路的反相器输入和输出端。在使用内部振荡电路时,这两个端子用来外接石英晶体,振荡频率为晶振频率,振荡信号送至内部时钟电路产生时钟脉冲信号;若采用外部振荡电路,则XTAL2用于输入外部振荡脉冲,该信号直接送至内部时钟电路,而XTAL1必须接地。
(3)控制信号引脚RST/Vpp、ALE/PROG、PSEN和EA/Vpp RST/Vpp ──RST为复位信号输入端。当RST端保持两个机器周期(24个时钟周期)以上的高电平时,使单片机完成复位操作。第二功能Vpp 为内部RAM的备用电源输入端。当主电源Vcc一旦发生断电(称掉电或失电),降到一定低电压值时,可通过Vpp为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使上电后能继续正常运行。
ALE/PROG──ALE为地址锁存允许信号。在访问外部存储器时,ALE用来锁存P0扩展地址低8位的地址信号。在不访问外部存储器时,ALE也以时钟振荡频率的1/6的固定速率输出,因而它又可用作外部定时或其它需要。但是,在遇到访问外部数据存储器时,会丢失一个ALE脉冲。ALE能驱动8个LSTTL门输入。第二功能PROG是对内部ROM编程时的编程脉冲输入端。
PSEN──外部程序存储器ROM的读选通信号。当访问外部ROM时,PSEN产生负脉冲作为外部ROM的选通信号。而在访问外部数据RAM或片内ROM时,不会产生有效的PSEN信号。PSEN可驱动8个LSTTL门输入端。
EA/Vpp──访问外部程序存储器控制信号。对80C51,它们的片内有4KB的程序存储器,当EA为高电平时,CPU访问程序存储器有两种情况:第一种情况是访问的地址空间在0~4K范围内,CPU访问片内程序存储器;第二种情况是访问的地址超出4K时,CPU将自动执行外部程序存储器的程序,即访问外部ROM。当EA接地时,只能访问外部ROM。第二功能Vpp 为编程电源输入。
(4)4个8位I/O端口P0、P1、P2和P3
P0口(P0.0~P0.7)是一个8位漏极开路型的双向I/O口。第二功能是在访问外部存储器时,分时提供低8位地址线和8位双向数据总线。在对片内ROM进行编程和校验时,P0口用于数据的输入和输出。
P1口(P1.0~P1.7)是一个内部带提升电阻的准双向I/O口。在对片内ROM编程和校验时,P1口用于接收低8位地址。
13
李文婷:基于超声波的液位测量系统
P2口(P2.0~P2.7)是一个内部带提升电阻的8位准双向I/O口。第二功能是在访问外部存储器时,输出高8位地址。在对片内ROM进行编程和校验时,P2口用作接收高8位地址和控制信号。
P3口(P2.0~P2.7)是一个内部带提升电阻的8位准双向I/O口。
3.2 8051单片机的定时器/计数器
3.2.1 8051的定时器/计数器功能
(1)计数功能
所谓计数是指时外部脉冲进行计数。外部脉冲通过T0(P3.4)、T1(P3.5)两个信号引脚输入。输入的脉冲在负跳变时有效,进行计数器加1(加法计数)。计数脉冲的频率不能高于晶振频率的1/24。
(2)定时功能
定时功能也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计数器加1。 3.2.2 定时器控制寄存器
表 3.1 定时器控制寄存器(TCON) Table 3.1 timer control register (TCON)
位地址 位符号 8FH TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0
(1)TF0(TF1)计数溢出标志位
当计数器计数溢出(计满)时,该位置“1” 查询方式时,此位作状态位供查询,软件清“0”; 中断方式时,此位作中断标志位,硬件自动清“0”。 (2)TR0(TR1) 定时器运行控制位 TR0(TR1)=0 停止定时器/计数器工作 TR0(TR1)=1 启动定时器/计数器工作 软件方法使其置“1”或清“0”。
14
山东交通学院毕业设计(论文)
3.2.3 工作方式控制寄存器
各位定义如下:
表3.2 工作方式控制器寄存器 TMOD
Table 3.2 controller TMOD
位序 位符号 B7 GATE B6 — B5 M1 B4 M0 B3 GATE B2 — B1 M1 B0 M0 C/T C/T
(1)GATE 门控位
GATE=0以运行控制位TR启动定时器
GATE=1以外中断请求信号(/INT0或/INT1)启动定时器 (2)C/T 定时方式或计数方式选择位 C/T=0定时工作方式 C/T=l计数工作方式
(3)M1、M0 工作方式选择位 M1、M0=00 方式0 M1、M0=01 方式1 M1、M0=10 方式2 M1、M0=11 方式3 3.2.4 中断允许控制寄存器(IE)
(1)EA中断允许总控制位
(2)ET0和ET1定时/计数中断允许控制位 ET0(ET1)=0禁止定时/计数中断 ET0(ET1)=1允许定时/计数中断 3.2.5 定时器/计数器的工作方式
(1)方式0
方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。TH0的高3位弃之不用。
当为定时工作方式时,定时时间的计算公式为:
(213-计数初值)×晶振周期×12 (2)方式1
方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。其电路和工作情况与方式0完全相同。
15