第一章 概述
什么是单片机:
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
本图中是单片机和微处理器的对比。
- 单片机是一个单片的计算机而不是一个单片的CPU。
- 单片机强调控制性
诺依曼和哈佛系统结构对比图。
在诺依曼中程序指令和数据都存储在一起。然而在哈佛结构中,程序指令存储在ROM中,数据存储在RAM中。由于ROM的只可读性,这样正好满足单片机功能单一的特点。
AT89C51的内部逻辑结构图:
本图为单片机的内部结构图。
需注意左侧红圈中是指向RAM的RAM地址寄存器。右侧红圈中是指向FLash的程序地址寄存器。
在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
第二章 微控制器的原理及应用
- 2.1 逻辑结构和引脚
- 2.2 内部存储
- 2.3 平行输入与输出端口
2.1逻辑结构和引脚
2.1.1 8051核的特点s
8051核的特点(其是MCS-51设备系列的最初成员)
值得注意的有:
- 8位CPU
- 拓展的位处理器
- 控制方向的优化
- 4K字节的单芯片程序存储
- 128字节的单行片数据RAM
- 两个十六位的 计时器/计时器
- 振荡器(oscillator)是一种能量转换装置——将直流电能转换为具有一定频率的交流电能,其构成的电路叫振荡电路。
- 显而易见,无论是程序指令存储还是数据存储的地址空间都是64K,即
。所以在引脚上反映就是有16个地址引脚
和
. 而由于CPU是8位CPU,所以一次只能处理8位数据,即
8051核的模块简图
注意:OSC,晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的倍频或分频后就成了电脑中各种不同的总线频率。
这是8051核的内部结构,所以这里的P都对应实在存在的引脚。
2.1.2 AT89S51的内部引脚
引脚功能解释:
- VCC电源引脚
- EA/VPP:外部程序存储器选择信号,低电平有效。在复位期间CPU检测并锁存EA/VPP引脚电平状态,当该引脚为高电平时,从片内程序存储器读取指令,只有当程序计数器PC超出片内程序存储器地址编码范围时,才转到外部程序存储器中读取指令;当该引脚为低电平时,一律从外部程序存储器中读取指令。
其第二功能Vpp为对EPROM的编程电源输入 - ALE/PROG地址锁存控制/片内EPROM编程脉冲输入信号.
- ALE(Address Lock Enable)功能是在访问外部存储器时,P0口做为地址/数据复用口,ALE信号用于锁存低8位地址。当ALE信号为高电平时,P0口上的信息为低8位地址,在ALE信号的下降沿时将P0口上的低8位地址送到地址锁存器锁存起来。在ALE为低电平期间P0口上的信息为指令或数据信息。在ALE为低电平期间P0口上的信息为指令或数据信息,以实现低位地址与数据的分离。
- PSEN(非) 外部程序存储器读选通信号:在读外部ROM时【PSEN非】(即PSEN上添加上划线)低电平有效,以实现外部ROM单元的读操作,全拼为Program Store Enable。
- RST引脚是复位端
- XTAL1 和 XTAL2 单片机外部晶振引脚。
- GEN端接地
- P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。
P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。
P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。
P3.0~P3.7 P3口8位双向口线(在引脚的10~17号端子)。
P0口有三个功能
1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)
2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)
3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口
只做I/O口使用:其内部有上拉电阻。
P2口有两个功能
1、扩展外部存储器时,当作地址总线使用
2、做一般I/O口使用,其内部有上拉电阻;
P3口有两个功能
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。
有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,
即:编程脉冲:30脚(ALE/PROG)
编程电压(25V):31脚(EA/Vpp)
接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。
2.2 内部存储
2.2.1 内部数据存储
AT89C51的内部数据存储由128个字节的片上RAM一系列SFR组成。
(1) 片内RAM的下128字节空间
(2) 片内RAM的上128字节空间
2.2.2 程序存储