第一章单片机硬件基础.docx
- 文档编号:8410234
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:23
- 大小:221.29KB
第一章单片机硬件基础.docx
《第一章单片机硬件基础.docx》由会员分享,可在线阅读,更多相关《第一章单片机硬件基础.docx(23页珍藏版)》请在冰豆网上搜索。
第一章单片机硬件基础
第一章单片机系统硬件基础
单片机硬件基础是学习单片机系统设计和软件开发的基础知识。
本章内容包括单片机基本概念、单片机内部各个部件作用、单片机最小系统的组成、以及单片机的工作模式。
1.1单片机基本原理
本小节以理论叙述为主,通过叙述、举例介绍单片机的基本概念、单片机系统基本原理以及常用单片机的内部资源。
学习任务:
1.了解单片机的基本感念和应用;2.掌握单片机DIP40封装引脚和应用。
1.1.1单片机基本概念
一、单片机的定义
日常生活中使用PC机是一种微型的计算机系统,内部结构主要由CPU、内存、内部功能单元和I/O接口电路等部分组成,每一部分至少需要一片集成电路,各个部件通过主板连接才能组成计算机的主机,如图1-1-1所示。
图1-1-1微型计算机系统组成示意图
单片机是单片微型计算机(MonolithicMicrocomputer或SingleChipMicrocomputer)的简称,是一种集成在一个芯片上的微型计算机系统。
它是微型计算机的一个分支,它与计算机系统的主要区别在于其结构、组成以及应用领域不同。
首先它把组成微型计算机的各种功能部件,包括CPU、随机存取存储器RAM、只读存储器ROM、基本输入/输出(Input/Output)接口电路、定时/计数器、中断控制、系统时钟及系统总线等部件都集成在一块芯片上,构成一个完整的微型计算机硬件。
单片机内部结构示意图如图1-1-2所示。
单片机在早期的自动化生产控制领域中应用得十分广泛,因此单片机也称为微控制器(MicrocontrollerUnit),简称MCU。
图1-1-2单片机内部结构示意图
二、单片机系列
出现较早也是最成熟的单片机为Intel公司的MCS-51系列,如Intel8031、Intel8051、Intel8751等型号,该单片机的字长为8位,具有完善的结构和优越的性能,以及较高的性价比和要求较低的开发环境,因此,后来很多厂商或公司沿用或参考了Intel公司的MCS-51内核,相继开发出了自己的单片机产品,如PHILIPS、Dallas、ATMEL等公司,并增加和扩展了单片机的很多功能。
单片机型号很多,但采用MCS-51内核的单片机常简称为51单片机。
目前市场流行的8位单片机多为ATMEL公司的AT89系列、国内品牌STC系列等。
STC单片机为增强51系列,支持串口在线下载(ISP)、内部看门狗和内部E2PROM在应用编程(IAP),个别型号内部设计有A/D转换器,由于STC单片机功能强且价格低,市场容易购置,实验和研发成本较低,因此本书案例多以STC单片机介绍。
三、单片机应用
单片机的运行与计算机一样,也需要必要的硬件和软件。
程序是单片机系统的软件,通过程序下载到单片机内部ROM中,既可以让单片机运行,从而实现微型计算机的基本功能。
虽然单片机不能加载复杂的操作系统,但单片机是一种程序简单芯片化的计算机,各功能部件在芯片中的布局和结构达到最优化,抗干扰能力加强,工作亦相对稳定。
在实际应用中,通常很难将单片机直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件以及软件,才能构成一个单片机应用系统。
图1-1-3是一个由单片机设计的校园自动打铃定时器系统原理。
图1-1-3校园自动打铃定时器
单片机是一种芯片级计算机系统,具有数据运算和处理的能力,它可以嵌入到很多电子设备的电路系统中,实现智能化检测和控制。
单片机应用领域非常广泛,主要集中在以下几个方面:
(1)自动控制
工业自动化控制是最早采用单片机控制的领域之一。
单片机结合不同类型的传感器,可实现电信号、湿度、温度、流量、压力、速度和位移等物理量的测量。
在测控系统、工业生产机器人的过程控制、医疗、机电一体化设备和仪器仪表中有着广泛的应用。
(2)家用电器
单片机系统具有体积小、功耗低、扩展灵活、微型化和使用方便等优点,在家用电器方面也有着广泛应用。
单片机系统能够完成电子系统的输入和自动操作,非常适合于对家用电器的智能控制。
嵌入单片机的家用电器实现了智能化,是传统型家用电器的更新换代,现已广泛应用于全自动洗衣机、空调、电视机、微波炉、电冰箱以及各种视听设备中。
(3)其它领域
智能化的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统和运行监视各种仪表等装置中都离不开单片机。
单片机在机器人、汽车、航空航天、军事等领域也有广泛的应用。
1.1.2单片机的外部引脚
一、单片机外部引脚和逻辑符号
常用的AT89C51/52、STC89C51单片机都采用DIPO40封装。
图1-3-1(a)为DIP40单片机封装外形引脚的分布,图1-4-1(b)脚单片机的电路符号。
40个引脚按功能分为4个部分,即电源引脚(Vcc和Vss)、时钟引脚(XTAL1和XTAL2)、控制信号引脚(RST、
、
和ALE)以及I/O口引脚(P0—P3)。
(a)单片机40引脚分布(b)40引脚单片机电路符号
(c)实物外形
图1-1-451系列单片机的引脚分布图
二、电源引脚
40脚Vcc为单片机电源正极引脚,20脚Vss为单片机的接地引脚。
在正常工作情况下,Vcc接+5V电源,为了保证单片机运行的可靠性和稳定性,电源电压误差不超过0.5V。
在移动的单片机系统中,可以用4节镍镉电池或镍氢电池直接供电,实验情况下也可以用三节普通电池或计算机的USB总线接口电源供电,在嵌入式的单片机系统中,采用集成稳压器7805提供电源。
图1-4-2为简单的的单片机集成稳压电源,为了提高电路的抗干扰能力,电源正极与地之间接有0.1μF独立电容。
图1-1-5单片机集成稳压电源
三、控制信号引脚
9脚RST/VPD为复位/备用电源引脚。
此引脚上外加两个机器周期的高电平就使单片机复位(Reset)。
单片机正常工作时,此引脚应为低电平。
在单片机掉电期间,此引脚可接备用电源(+5V)。
在系统工作的过程中,如果Vcc低于规定的电压值,VPD就向片内RAM提供电源,以保持RAM内的信息不丢失。
30脚
为锁存信号输出/编程引脚,在扩展了外部存储器的单片机系统中,单片机访问外部存储器时,ALE用于锁存低8位的地址信号。
如果系统没有扩展外部存储器,ALE端输出周期性的脉冲信号,频率为时钟振荡频率的1/6,可用于对外输出的时钟。
对于EPROM型单片机,此引脚用于输入编程脉冲。
29脚
脚为输出访问片外程序存储器的读选通信号引脚。
在CPU从外部程序存储器取指令期间,该信号每个机器周期两次有效。
在访问片外数据存储器期间,这两次
信号将不出现。
31脚
用于区分片内外低4KB范围存储器空间。
该引脚接高电平时,CPU访问片内程序存储器4KB的地址范围。
若PC值超过4KB的地址范围,CPU将自动转向访问片外程序存储器;当此引脚接低电平时,则只访问片外程序存储器,忽略片内程序存储器。
8031单片机没有片内程序存储器,此引脚必须接地。
对于EPROM型单片机,在编程期间,此引脚用于加较高的编程电压Vpp,一般为+12V。
1.3.4单片机的I/O端口引脚
单片机的I/O口是用来输入和控制输出的端口,DIP40封装的51单片机共有P0、P1、P2、P3四组端口,分别与单片机内部P0、P1、P2、P3四个寄存器对应,每组端口有8位,因此DIP40封装的51单片机共有32个I/O端口。
P0口分别占用32~39脚,依次命名为P0.0~P0.7。
P0口是漏极开路型双向I/O口。
在访问片外存储器时,P0口分时作为低8位地址线和8位双向数据总线用,此时不需外接上拉电阻。
如果将P0口作为通用的I/O口使用,则要求外接上拉电阻或排阻,每位以吸收电流的方式驱动8个LSTTL门电路或其他负载。
P0口中任意一位电路原理如图1-4-3所示。
图1-1-6P0口中一位的结构
P1口占用1~8脚,分别是P1.0~P1.7,P1口是一个带内部上拉电阻的8位双向I/O口,每位能驱动4个LSTTL门负载。
这种接口没有高阻状态,输入不能锁存,因而不是真正的双向I/O口。
P2口的8个引脚占用21~28脚,分别是P2.0~P2.7。
P2口也是一个带内部上拉电阻的8位双向I/O口。
在访问外部存储器时,P2口输出高8位地址,每位也可以驱动4个LSTTL负载。
P3口的8个引脚占用10~17脚,分别是P3.0~P3.7。
P3是双功能端口,作为普通I/O口使用时,同P1、P2口一样,作为第二功能使用时,引脚定义见表1-4-1。
P3口引脚具有的第二功能,能使硬件资源得到充分利用。
表1-1-1P3口的第二功能表
I/O口线
第二功能定义
功能说明
P3.0
RXD
串行输入口
P3.1
TXD
串行输出口
P3.2
外部中断0输入端
P3.3
INT1
外部中断1输入端
P3.4
T0
T0外部计数脉冲输入端
P3.5
T1
T1外部计数脉冲输入端
P3.6
WR
外部RAM写选通脉冲输出端
P3.7
RD
外部RAM读选通脉冲输出端
四、时钟引脚
单片机有两个时钟引脚,分别是19脚XTAL1和18脚XTAL2,用于提供单片机的工作时钟信号。
单片机是一个复杂的数字系统,内部CPU以及时序逻辑电路都需要时钟脉冲,所以单片机需要有精确的时钟信号。
单片机内部含有振荡电路,19脚和18脚用来外接石英晶体和微调电容。
在使用外部时钟时,XTAL2则用来输入时钟脉冲。
见图1-4-4所示,其中图1-4-4(a)为晶体振荡电路,(b)为外部时钟输入电路。
利用外部时钟输入时,要根据单片机型号XTAL1接地或悬空,并考虑时钟电平的兼容性。
(a)晶体振荡电路(b)外部时钟输入电路
图1-1-7单片机时钟电路
掌握单片机系统的结构组成是设计单片机应用系统的基础,只有对单片机的硬件组成有一个全面的了解,才能更好地去应用单片机系统所提供的硬件资源,设计出性价比较高的实际应用系统。
1.2单片机内部主要部件
单片机内部电路比较复杂,MCS-51系列的8051型号单片机的内部电路根据功能可以分为CPU、RAM、ROM/EPROM、并行口、串行口、定时/计数器、中断系统及特殊功能寄存器(SFR)等8个主要部件,如图1-2-1所示。
这些部件通过片内的单一总线相连,采用CPU加外围芯片的结构模式,各个功能单元都采用特殊功能寄存器集中控制的方式。
其他公司的51系列单片机与8051结构类似,只是根据用户需要增加了特殊的部件,如A/D转换器等。
在设计程序过程中,寄存器的使用非常频繁。
本节内容在了解单片机内部的组成机构基础上,重点介绍单片机内部常用的寄存器的作用。
图1-2-1MCS-51架构
1.2.1中央处理器(CPU)
中央处理器是单片机的核心,主要功能是产生各种控制信号,根据程序中每一条指令的具体功能,控制寄存器和输入/输出端口的数据传送,进行数据的算术运算、逻辑运算以及位操作等处理。
MCS-51系列单片机的CPU字长是8位,能处理8位二进制数或代码,也可处理一位二进制数据。
单片机的CPU从功能上一般可以分为运算器和控制器两部分。
一、控制器
控制器由程序计数器PC、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等组成。
其功能是对来自存储器中的指令进行译码,通过定时电路,在规定的时刻发出各种操作所需的全部内部和外部的控制信号,使各部分协调工作,完成指令所规定的功能。
各部分功能部件简述如下。
(1)程序计数器PC(ProgramCounter)
程序计数器是一个16位的专用寄存器,用来存放下一条指令的地址,具有自动加1的功能。
当CPU要取指令时,PC的内容送地址总线上,从存储器中去取出一个指令码后,PC内容自动加1,指向下一个指令码,以保证程序按顺序执行。
PC是用来指示程序的执行位置,在顺序执行程序时,单片机每执行一条指令,PC就自动加1,以指示出下一条要取的指令的存储单元的16位地址。
也就是说,CPU总是把PC的内容作为地址,根据该地址从存储器中取出指令码或包含在指令中的操作数。
因此,每当取完一个字节后,PC的内容自动加1,为取下一个字节做好准备。
由于51系列单片机的寻址范围为64K,所以,PC中数据的编码范围为0000H~FFFFH,共64K。
单片机上电或复位时,PC自动清0,即装入地址0000H,这就保证了单片机上电或复位后,程序从0000H地址开始执行。
(2)指令寄存器IR(InstructionRegister)
指令寄存器是一个8位寄存器用于暂存待执行的指令,等待译码。
(3)暂存器TMP
用于暂存进入运算器之前的数据。
(4)指令译码器ID(InstructionDecoder)
指令译码器是对指令寄存器中的指令进行译码,将指令变为执行此指令所需要的电信号。
根据译码器的输出信号,再经定时电路定时产生执行该指令所需要的各种控制信号。
(5)数据指针DPTR(DataPointer)
数据指针是一个16位的专用地址指针寄存器,主要用来存放16位地址,作间址寄存器,访问片外64K字节的数据存储器和I/O端口及程序存储器。
由两个独立的特殊功能寄存器组成,分别为DPH(高8位)和DPL(低8位),占据83H和82H两个地址。
DPTR与PC不同,DPTR有自己的地址,可以进行读写操作,而PC没有地址,不能对它进行读写操作,但可以通过转移、调用、返回编程操作改变其内容,从而实现程序的转移。
二、运算器
运算器主要进行算术和逻辑运算。
运算器由算术逻辑单元ALU、累加器ACC、程序状态字PSW、BCD码运算电路、通用寄存器B和一些专用寄存器及位处理逻辑电路等组成。
(1)算术逻辑单元ALU(ArithmeticLogicUnit)
ALU由加法器和其他逻辑电路等组成,完成数据的算术逻辑运算、循环移位、位操作等,参加运算的两个操作数,一个由A通过暂存器2提供,另外一个由暂存器1提供,运算结果送回A,状态送PSW。
(2)累加器ACC(Accumulator)
累加器是一个8位特殊功能寄存器,简称A,通过暂存器与ALU传送信息,用来存放一个操作数或中间结果。
(3)程序状态字PSW(ProgramStatusWord)
PSW也是一个8位的特殊功能寄存器,用于存储程序运行过程中的各种状态信息。
(4)其他部件
暂存器用来存放中间结果,B寄存器用于乘法和除法时,提供一个操作数,对于其他指令,只用作暂存器。
(5)位处理器
单片机能处理布尔操作数,能对位地址空间中的位直接寻址,进行清零、取反等操作,这种功能提供了把逻辑式(随机组合逻辑)直接变为软件的简单明了的方法,不需要过多的数据传送、字节屏蔽和测试分支,就能实现复杂的组合逻辑功能。
位处理器是单片机的一个特殊组成部分,具有相应的指令系统,可提供17条位操作指令。
硬件上有自己的“累加器”和自己的位寻址RAM、I/O口空间,是一个独立的位处理器,位处理器和8位处理器形成完美的组合。
1.2.2存储器
单片机内部包含随机存取存储器RAM和程序存储器ROM,RAM用于保存单片机运行的中间数据;单片机的ROM不只是用来装载程序,增强51系列也可以在单片机运行过程中利用程序把数据存贮在ROM的部分空间内。
51系列单片机在系统结构上采用哈佛结构(Harvardarchitecture),即程序存储器和数据存储器的寻址空间是分开管理的。
它共有4个物理上独立的存储器空间,即内部和外部程序存储器及内部和外部数据存储器。
从用户的角度看,单片机的存储器逻辑上分为三个存储空间,见图1-2-2所示,即统一编址的64KB的程序存储器地址空间(包括片内ROM和外部扩展ROM),地址从0000H—FFFFH;256B的片内数据存储地址空间(包括128B的片内RAM和特殊功能寄存器的地址空间);64KB的外部扩展的数据存储器地址空间。
图中
是单片机的程序扩展控制引脚。
一、单片机的RAM
51单片机芯片中共有256个字节的RAM单元,但其中128个字节被专用寄存器占用,能作为存储单元供用户使用的只是前128B,用于存放可读写的数据。
因此通常所说的内部数据存储器就是指前128B,简称片内RAM。
在程序比较复杂,且运算变量较多而导致51内部RAM不够用时,可根据实际需要在片外扩展,最多可扩展64KB,但在实际应用中如需要大容量RAM时,往往会利用增强型的51单片机而不再扩展片外RAM。
增强型的51系列单片机如52和58子系列分别有256B和512B的RAM。
图1-2-251单片机的存储器空间分布
51单片机片内128BRAM根据功能又划分为工作寄存器区(地址00H—1FH),位寻址区(地址20H—2FH),一般RAM区(地址30H—7FH)和堆栈区(地址2FH以后),其中位寻址区共16字节128个单元。
51单片机共有21个特殊功能寄存器(SpecialFunctionRegister,SFR),它是片内RAM的一部分。
特殊功能寄存器用于对片内各功能模块进行监控和管理,是一些控制寄存器和状态寄存器,与片内RAM单元统一编址。
二、内部程序存储器(内部ROM)
51单片机共有4KB的ROM,单片机的生产商不同,内部程序存储器可以是EEPROM或FlashROM。
可根据实际需要在片外扩展,最多可扩展64KB。
增强型的51单片机内部ROM空间可以达到64KB,在使用时不须再扩展片外ROM。
数据存储器、程序存储器以及位地址空间的地址有一部分是重叠的,但在具体寻址时,可由不同的指令格式和相应的控制信号来区分不同的地址空间,因此不会造成冲突。
1.2.3单片机的其它部件
51单片机还有定时器/计数器,并行I/O口,串行口,中断系统,时钟电路等部件。
51单片机有两个16位的定时/计数器,具有4种工作方式,以实现定时或计数功能,并以其定时或计数结果对系统进行控制;51单片机共有4个8位的I/O口(P0、P1、P2、P3口),表现在单片机外部共有32条引脚,内部与寄存器连接,以实现数据的并行输入/输出。
51单片机有一个全双工的串行口,具有4种工作方式,以实现单片机和其它设备之间的串行数据传送。
该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
为满足控制应用的需要,51单片机的中断功能较强。
51单片机共有5个中断源,即外部中断两个,定时/计数中断两个,串行口中断一个。
全部中断分为高级和低级两个优先级别。
时钟电路为单片机产生时钟脉冲序列。
51单片机芯片的内部有时钟电路,但石英晶体和微调电容需外接,系统常用的晶振频率一般为6MHz或12MHz。
从上面的介绍可以看出,51系列单片机虽然只是一个芯片,但作为计算机应该具有的基本部件它都包含,实际上单片机就是一个基本的微型计算机系统。
增强型51系列与51系列单片机完全兼容,但内部资源在51基础上有所增加,如52子系列片内ROM从4KB增加到8KB,片内RAM从128B增加到256B,定时/计数器从2个增加到3个,中断源从5个增加到6个,功能的增强大大拓展了8位单片机的应用空间。
STC8951RC系列为增强51系列单片机,表1-2-1给出了STC89系列常用的几种单片机内部资源,由于此类型单片机支持串口在线下载,并且有低功耗、速度快、稳定可靠性、价格低等优点,因此本书实例将重点以STC8951为例说明。
表1-2-1STC89系列单片机内部资源
STC89系列型号
Flash
SRAM
E2PROM
定时器
替换型号
STC89C51RC
4K
512
2K
3
STC10F04XE
STC89C52RC
8K
512
2K
3
STC10F08XE
STC89C58RD
32K
1280
16K
3
STC11F32XE
1.2特殊功能寄存器
特殊功能寄存器(SpecialFunctionRegister)是通过专门规定而且具有特定用途的RAM部分,它是单片机内部很重要的部件。
51系列单片机内部堆栈指针SP、累加器A、程序状态字PSW以及I/O锁存器、定时器、计数器以及控制寄存器和状态寄存器等都是特殊功能寄存器,和片内RAM统一编址,分散占用80~FFH单元,共有21个,增强型的52系列单片机则有26个。
特殊功能寄存器是单片机程序设计的硬件基础。
表1-2-1列出了单片机的特殊功能寄存器名称、标识符和对应的字节地址,其中含有52系列的寄存器T2,T2CON等。
在单片机C语言编程应用中,单片机的特殊功能寄存器标识符经常用到。
控制寄存器会在单片机内部资源编程应用中详细介绍。
表12-1特殊功能寄存器
特殊功能寄存器
标识符
字节地址
并口0
堆栈指针
数据指针(低8位)
数据指针(高8位)
电源控制寄存器
定时/计数器控制
定时/计数器方式控制
定时/计数器0(低8位)
定时/计数器1(高8位)
定时/计数器0(低8位)
定时/计数器1(高8位)
并口1
串行口控制寄存器
串行数据缓冲器
并口2
中断允许控制寄存器
并口3
中断优先控制寄存器
定时/计数器2控制
定时/计数器2自动重装载(低8位)
定时/计数器2自动重装载(高8位)
定时/计数器2(低8位)
定时/计数器2(高8位)
程序状态字
累加器
寄存器B
P0
SP
DPL
DPH
PCON
TCON
TMOD
TL0
TL1
TH0
TH1
P1
SCON
SBUF
P2
IE
P3
IP
T2CON(52)
RCAP2L(52)
RCAP2H(52)
TL2(52)
TH2(52)
PSW
ACC
B
80H
81H
82H
83H
87H
88H
89H
8AH
8BH
8CH
8DH
90H
98H
99H
A0H
A8H
B0H
B8H
C8H
CAH
CBH
CCH
CDH
D0H
E0H
F0H
1.2.1单片机内部参与运算的特殊功能寄存器
一、累加器ACC/A(Accumulator)
累加器A为8位寄存器,是最常用的专用寄存器,功能较多,使用最为频繁。
它既可用于存放操作数,也可用来存放运算的中间结果。
51系列单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。
累加器有自己的地址,因而可以进行地址操作。
在C语言编程中,如果想让累加器中的内容为十进制56,简单的语句为
A=56;
在汇编语言中则要用的数据传输指令,命令格式为
MOVA,#56;
二、B寄存器
B寄存器是一个8位寄存器,主要用于乘除运算。
乘法运算时,B提供乘数。
乘法操作后,乘积的高8位存于B中。
除法运算时,B提供除数。
除法操作后,余数存于B中。
此外,B寄存器也可作为一般数据寄存器使用。
如:
在C语言中B=56;或abc=B;abc为用户自定义变量。
三、程序状态字PSW(ProgramStatusWord)
程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。
其中有些位的状态是由程序执行结果决定,硬件自动设置的,而有些位的状态则使用软件方法设定。
PSW的位状态可以用专门指令进行测试,也可以用程序读出。
一些条件转移程序可以根据PSW特定位的状态,进行程序转移。
PSW各位标示符定义格式为
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW.1
PSW.0
CY
AC
F0
RS1
RS0
OV
F1
P
PSW.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 单片机 硬件 基础