单片机基础知识分析.ppt
单片机应用基础,一、单片机概述与结构,6.1 单片机的用武之地,单片机体积小、功耗低、价格低廉,速度快、用途广、灵活性强。且具有逻辑判断、定时计数、程序控制等多种功能。,特点:,6.1 单片机的用武之地,单片机被广泛应用于仪器仪表、家用电器、医用设备、航天航空、工农业生产、服务行业,专业设备的智能化管理及过程控制等领域。,应用:,6.2 单片机的基本概念,上个世纪70年代,一些半导体公司开始推出一种集成电路,它包含了计算机的三大组成部分:CPU、存储器和I/O接口等部件。由于它是在一个芯片上,形成芯片级的微型计算机,称为单片微型计算机(Single Chip Microcomputer),简称单片机。,6.2 单片机的基本概念,单片机系统结构均采用冯诺依曼提出的“存储程序”思想,即程序和数据都被存放在内存中的工作方式,用二进制代替十进制进行运算和存储程序。,人们将计算机要处理的数据和运算方法、步骤,事先按计算机要执行的操作命令和有关原始数据编制成程序(二进制代码),存放在计算机内部的存储器中,计算机在运行时能够自动地、连续地从存储器中取出并执行,不需人工加以干预。,6.2 单片机的基本概念,最基本的单片机组成,6.2 单片机的基本概念,图1-2 典型的单片机组成框图,中央处理器,存储器,6.2 单片机的基本概念,6.3 单片机的发展,单片机能够一次处理的数据的宽度。有1位机、4位机、8位机、16位机、32位机。,位数:,Intel 8位单片机的发展 第一代:以1976年推出的MCS-48系列为代表。第二代:以MCS-51的8051为代表的单片机,第三代:以51系列、AVR、PIC等为代表。,6.3 单片机的发展,MCS-51系列单片机中,有两个子系列:51子系列、52子系列。,51子系列:,8051、8751和8031三个型号,后来经过改进产生了80C51、87C51和80C31三个型号;,52子系列:,8052、8752和8032三个型号,改进后的型号是80C52、87C52和80C32。,6.3 单片机的发展,Intel P8051AH 实物照片,6.3 单片机的发展,51兼容单片机,6.3 单片机的发展,51兼容单片机,运算器:实现算术运算或逻辑运算包括:算术逻辑单元ALU、累加器A、暂存寄存器TR、标志寄存器F或 PSW、通用寄存器GR,中央处理器 CPU 运算器和控制器集成在一个芯片上,控制器:中枢部件,控制计算机中的各个部件工作包括:指令寄存器 IR、指令译码器ID、程序计数器PC、定时与控制电路,6.4 单片机组成,存储器:记忆,由存储单元组成。包括:ROM、RAM,总线BUS:在微型计算机各个芯片之间或芯片内部之间传输信息的一组公共通信线。包括:数据总线DB:双向,宽度决定了微机的位数。地址总线AB:单向,决定CPU的寻址范围。控制总线CB:单向,I/O接口:数据输入输出。包括:输入接口、输出接口,6.4 单片机组成,字长:CPU能并行处理二进制的数据位数 8位机、16位机、32位机和64位机。,内存容量:存储单元能容纳的二进制数的位数 容量单位:1K=210=1024,1M=220=1KK 8K、64K、16M、64M。,运算速度:CPU处理速度时钟频率、主频、每秒运算次数 6MHz、12MHz、24MHz、100MHz、300MHz。,内存存取时间:内存读写速度 50nS、70nS、200nS。,6.5 单片机主要技术指标,6.6 MCS-51系列单片机,MCS-51系列单片八大机组成部分,图1-4 MCS-51系列单片机内部结构简化框,内部结构由运算部件和控制部件组成。是单片机 的核心部件。,CPU,算术逻辑运算单元ALU、累加器ACC、程序状态字寄存器PSW、堆栈指针SP、寄存器B、程序计数器PC、指令寄存器IR、暂存器等部件。,包括:,8位中央处理机(CPU):,6.6 MCS-51系列单片机,图1-4 MCS-51系列单片机内部结构简化框,随机存储器,用于存放数据和运算结果。RAM的内容是易失性,掉电后会丢失。,128个字节,片内数据存储器RAM:,6.6 MCS-51系列单片机,图1-4 MCS-51系列单片机内部结构简化框,用以存放程序、原数据和表格。,4KB,片内程序存储器EPROM或ROM:,EPROM:存储器编程后,其内容可用紫外线擦除,用户可反复使用,用于开发过程,但价格高。,6.6 MCS-51系列单片机,图1-4 MCS-51系列单片机内部结构简化框,控制寄存器、状态寄存器、数据输入/输出寄存器。,18个,特殊功能寄存器:,6.6 MCS-51系列单片机,图1-4 MCS-51系列单片机内部结构简化框,P0口、P1口、P2口、P3口(共32线),用于并行输入/输出寄存器。I/O口是单片机的重要资源,是衡量单片机功能的重要指标之一。,8位,并行输入/输出接口:,6.6 MCS-51系列单片机,图1-4 MCS-51系列单片机内部结构简化框,16位,T0、T1(52子系列:T0、T1、T2)用于单片机内部精确定时或外部事件进行计算。,T0、T1,串行输入/输出接口(I/O):,定时器/计数器(T/C):,实行串行通信。,6.6 MCS-51系列单片机,图1-4 MCS-51系列单片机内部结构简化框,中断源:,中断源,2个可编程优先级的中断源。,可接收外部中断申请、定时器/计数器中断申请和串行口中断申请。,6.6 MCS-51系列单片机,6.9 复位电路,复位是单片机的初始操作。复位的做用是使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。,复位后,程序计数器PC=0000H,程序执行必须从地址0000H开始。,80C51复位电路,6.9 复位电路,单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效。,80C51复位电路,复位分为上电复位和按钮复位方式,上电复位电路如图(a)所示;按键复位有电平方式和脉冲发生,电路如图(b)、图(c)所示。,二、单片机的结构和原理,1 单片机的硬件结构,1.1 中央处理器CPU,CPU,运算器,控制器,8位的算术逻辑运算单元ALU,8位累加器ACC(A),8位程序状态字寄存器PSW,8位寄存器B,布尔处理器,程序计数器PC(16位),指令寄存器IR及指令译码器ID,振荡器和定时电路,1.1.1 运算器,8位的ALU,8位累加器ACC(A),可对4位、8位、16位数据进行操作。,它经常作为一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又送回ACC。,1.1.1 运算器,8位程序状态字寄存器,8位寄存器B,指示指令执行后的状态信息供程序查询和判别用。,在乘除运算时,用来存放一个操作数也用来存放运算后的一部分结果;如不能做乘除运算时,作为通用寄存器。,1.1.1 运算器,布尔处理器,2个8位暂存器,专门用于处理位操作的,以PSW中的C为其累加器。,ALU的两个入口处。,1.1.2 控制器,程序计数器PC(16位),由两个8位计数器PCH、PCL组成。PC是程序的字节地址计数器,PC内容为将要执行的指令地址。改变PC内容,改变执行的流向。PC可对64KB的ROM直接寻址,也可对8051片内RAM寻址。,1.1.2 控制器,指令寄存器IR及指令译码器ID,由PC中的内容指定ROM地址取出来的指令经IR送至ID由ID对指令译码产生一定序列的控制信号,以执行指令所规定的操作。,1.1.2 控制器,振荡器和定时电路,8051单片机片内有振荡电路,只需外接石英晶体和频率微调电容(2个30pF左右),其频率范围为1.2MHz12MHz。该信号作为8051工作的基本节拍即时间的最小单位。,1.2 存储器,存储器,程序存储器(ROM),数据存储器(RAM),8051及8751的片内ROM(Read Only Memory)容量为4KB。地址从0000H开始。用于存放程序和表格常数。,1.2.1 程序存储器(ROM),1.2.2 数据存储器(RAM),8051/8751/8031RAM(Random Access Memory)均为128B,地址为00H7FH。用于存放运算的中间结果、数据暂存以及缓冲等。128B的RAM中有32个字节单元可指定为工作寄存器。片内还有21个特殊功能寄存器(Special Function Register,SFR),它们同128字节RAM统一编址,地址为80HFFH。,1.3 存储器,I/O接口,P0,8051有四个8位并行I/O接口P0P3。它们都是双向端口,每个端口各有8条I/O线。P0-P3口四个锁存器同RAM统一编址,可作为SFR来寻址。,P1,P3,P2,2 单片机引脚及其功能,MCS-51系列如8051.8751和8031均采用40引脚双列直插封装(Dual In-line Package,DIP)方式。因受到引脚数目的限制,有不少引脚具有第二功能。,MCS-51单片机引脚如图所示,ALE、RST、XTAL1、XTAL2,2 单片机引脚及其功能,MCS-51单片机 40引脚配置图,MCS-51单片机 40引脚,可分为端口线、电源线和控制线三类。,1.端口线(48=32条),P0.0P0.7、P1.0P1.7、P2.0P2.7、P3.0P3.7,2.电源线(2条),VCC为+5V电源线,VSS接地,3.控制线(6条),作通用I/O口使用,传送CPU的输入/输出数据。,MCS-51单片机 40引脚配置图,1.端口线(48=32条),P0.0P0.7,功能:,共有8个引脚,为P0口专用。P0.0最低位,P0.7最高位。,访问片外存储器时,先传送低8位地址,然后传送CPU对片外存储器的读/写数据。,第一功能(不带片外存储器):,第二功能(带片外存储器):,2 单片机引脚及其功能,第一功能:与P0口的第一功能相同,也用于传送用户的输入/输出数据。,MCS-51单片机 40引脚配置图,1.端口线(48=32条),P1.0P1.7,功能:,8个引脚与P0口类似。P1.0最低位,P1.7最高位。,第二功能:对52子系列而言,第二功能为定时器2输入。,2 单片机引脚及其功能,第一功能:与P0口的第一功能相同,作通用I/O口。,MCS-51单片机 40引脚配置图,1.端口线(48=32条),P2.0P2.7,功能:,带内部上拉的双向I/O口,第二功能:与P0口的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元。,2 单片机引脚及其功能,第一功能:与P0口的第一功能相同,作通用I/O口。,MCS-51单片机 40引脚配置图,1.端口线(48=32条),P3.0P3.7,功能:,带内部上拉的双向I/O口,第二功能:为控制功能,每个引脚并不完全相同。,2 单片机引脚及其功能,MCS-51单片机 40引脚配置图,1.端口线(48=32条),P3.0P3.7,P3口的第二功能,2 单片机引脚及其功能,功能:,2.电源线(2条),3.控制线(6条),VCC为+5V电源线,VSS接地,:地址锁存允许信号,1.与P0口引脚的第二功能配合使用,P0口作为地址/数据复用口,用ALE来判别P0口的信息。,2 单片机引脚及其功能,MCS-51单片机 40引脚配置图,当ALE为高电平期间,P0口出现的是地址信息,ALE下降沿到来时,P0口上的地址信息被锁存。,当ALE为低电平期间,P0口上出现指令和数据信息。,2.对片内带有4KB EPROM的8751编写固化程序时,PROG作为编程脉冲输入端。,1.与P0口配合使用,2 单片机引脚及其功能,MCS-51单片机 40引脚配置图,功能:,:内部和外部程序存储器选择信号,先访问片内EPROM/ROM,执行内部程序存储器中的指令。但在程序计数器计数超过0FFFH时(即地址大于4KB时),执行片外程序存储器内的程序。,只访问外部程序存储器,而不管片内是否有程序存储器。,引脚接高电平时:,引脚接低电平(接地)时:,2 单片机引脚及其功能,MCS-51单片机 40引脚配置图,功能:,:片外程序存储器读选通信号,当执行外部程序存储器代码时,每个机器周期被激活两次。,访问外部数据存储器时无效,访问内部程序存储器时无效。,执行:,访问:,2 单片机引脚及其功能,MCS-51单片机 40引脚配置图,功能:,:复位信号,是单片机复位/备用电源引脚。RST是复位信号输入端,高电平有效。,时钟电路工作后,在此引脚上连续出现两个机器周期的高电平(24个时钟振荡周期),就可以完成复位操作。,2 单片机引脚及其功能,MCS-51单片机 40引脚配置图,功能:,:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接8051片内的定时反馈回路。,2 单片机引脚及其功能,3 存储器的配置,3.18051存储器分类3.2程序存储器地址空间3.3数据存储器地址空间,3.18051存储器分类,1.物理结构(哈佛结构),8051存储器,程序存储器ROM,数据存储器RAM,片内程序存储器,片外程序存储器,片内数据存储器,片外数据存储器,3.18051存储器分类,1.物理结构(哈佛结构),3.18051存储器分类,2.用户角度,1.片内、外统一编址的64K程序存储器地址空间。CPU访问片内、片外ROM指令用MOVC。2.64K的片外数据存储器地址空间。访问片外RAM指令用MOVX。3.256字节的片内数据存储器地址空间。访问片内RAM指令用MOV。,上述三个存储空间地址是重叠的,8051的指令系统采用不同的数据传送指令符号。,3.2 程序存储器地址空间(ROM),1.用途,用于存放编好的程序和表格常数。,8051/8751片内ROM/EPROM的容量为4KB。地址为0000H0FFFH。片外最多可扩至64KB ROM/EPROM,地址为1000HFFFFH。片内外统一编址。,2.编址,3.2 程序存储器地址空间(ROM),3.寻址方式,当 EA=“1”时 8051的PC在00000FFFH范围内执行片内ROM中的程序,当指令地址超过0FFFH 后就自动转向片外ROM中取指令。,当 EA=”0”时 8051片内ROM不起作用,CPU只能从片外ROM/EPROM中取指令。可以从 0000H 开始寻址。由于8031片内不带ROM,所以使用时必须 EA=”0”。,8051从片内ROM和片外ROM取指的速度相同。,3.2 程序存储器地址空间(ROM),3.寻址方式,程序存储器的保留存储单元,(1)0000H0002H三个单元 用作8051上电复位后引导程序的存放单元。因为复位后PC的内容为0000H,CPU总是从0000H开始执行程序。将转移指令存放到这三个单元,程序就被引导到指定的程序存储器空间去执行。,3.2 程序存储器地址空间(ROM),3.寻址方式,(2)0003H002AH单元 均分为五段,用作五个中断服务程序的入口。,中断入口地址外中断0(INT0):0003H定时器0(T0):000BH外中断1(INT1):0013H定时器1(T1):001BH串行口(RI/TI):0023H,3.2 程序存储器地址空间(ROM),3.寻址方式,3.2 数据存储器地址空间(RAM),1.用途,用于存放运算的中间结果、数据暂存和缓冲、标志位等。,2.片外RAM,3.片内RAM,地址 0000HFFFFH 寻址 用MOVX指令,片内RAM地址空间低128字节RAM(00H7FH)高128字节RAM(80HFFH)特殊功能寄存器SFR区,3.2 数据存储器地址空间(RAM),3.片内RAM,3.2 数据存储器地址空间(RAM),3.片内RAM,片内RAM地址空间,寻址 用指令MOV最大可寻址256个单元。,低128B(00H-7FH)真正RAM区,高128B(80H-FFH)特殊功能寄存器(SFR)区,地址 00H-FFH,3.2 数据存储器地址空间(RAM),3.片内RAM,低128字节RAM(00H7FH),1.工作寄存器区(00H1FH)2.位寻址区(20H2FH)3.用户RAM区(30H7FH),3.2 数据存储器地址空间(RAM),工作寄存器区(00H1FH),由四组(32个)工作寄存器组成,每组8个寄存器(R0-R7),共占32个单元。,2.通过程序状态寄存器 PSW中RS1.RS0两位设定来选择CPU的当前工作寄存器组。复位时,第0组为当前的工作寄存器。3.若不需要四组,则其余可作为一般RAM单元。,工作寄存器与内部RAM单元关系,3.2 数据存储器地址空间(RAM),工作寄存器区(00H1FH),3.2 数据存储器地址空间(RAM),位寻址区(20H2FH),位寻址区有16个单元,每个单元8位,共128位。位地址为00H-7FH。可用位寻址方式访问其各位。这些可寻址位,通过执行指令可直接对某一位操作,如置1.清0、判断转移等。位寻址是8051的一个重要特点。,位寻址区与位地址,3.2 数据存储器地址空间(RAM),位寻址区(20H2FH),用户RAM区(30H7FH),用于堆栈和数据缓冲。,3.2 数据存储器地址空间(RAM),3.片内RAM,高128字节RAM(80HFFH),有21个特殊功能功能寄存器。地址分布在80HFFH的RAM空间。只能用直接寻址方式。有11个具有位寻址能力。11个SFR的字节地址正好能被8整除。,3.2 数据存储器地址空间(RAM),MCS-51系列单片机的特殊功能寄存器表,高128字节RAM(80HFFH),部分特殊功能寄存器介绍,PSW 程序状态寄存器(D0H)PSW包含了程序执行后的状态信息,供程序查询或判断用。,PSW的格式:,P,OV,AC,CY,RS0,RS1,F0,PSW(D0H),D7 D6 D5 D4 D3 D2 D1 D0,3.2 数据存储器地址空间(RAM),堆栈指针SP(Stack Pointer)(81H)堆栈 在片内RAM中,开辟的一个按“先进后出”的结构方式处理数据的区域。SP的内容可指向片内RAM00H7FH的任何单元。系统复位时,SP初始化为07H。,部分特殊功能寄存器介绍,3.2 数据存储器地址空间(RAM),部分特殊功能寄存器介绍,数据指针DPTR(Data Pointer)(83H,82H)DPTR是一个16位的特殊功能寄存器。由DPH(83H),DPL(82H)组成。DPH,DPL可以单独使用。,3.2 数据存储器地址空间(RAM),部分特殊功能寄存器介绍,I/O端口P0、P1.P2.P3(80H、90H、A0H、A0H)分别为四个并行端口的锁存器,每一个口锁存器还有位地址,所以每一条I/O线可独立输入或输出。输出时,可以锁存;输入时,可以缓冲。,3.2 数据存储器地址空间(RAM),4 CPU时序,4.1 机器周期和指令周期,4.2 CPU取指、执行周期时序,(1)振荡周期:(2)状态周期:,即 CPU 从一个状态转换到另一状态所需的时间。在80C51中,一个状态周期由两个时钟周期组成。2个振荡周期为1个状态周期,用S表示。,为单片机提供时钟信号的振荡源的周期(晶振周期或外加振荡源周期)。振荡脉冲的周期也称为节拍,用P表示。,4.1 机器周期和指令周期,是计算机完成一次完整的、基本的操作所需要的时间。80C51机器周期由六个状态周期组成,用S1、S2、S6表示,共12个振荡周期。,(3)机器周期:,1个机器周期=6个状态周期=12个振荡周期。,4.1 机器周期和指令周期,执行一条指令所需的时间,指令周期往往由一个或一个以上的机器周期组成。,1个机器周期=6个状态周期=12个振荡周期。,指令周期的长短,与指令所执行的操作有关。51系列单片机的指令周期通常为14个机器周期。,(4)指令周期:,4.1 机器周期和指令周期,4.1 CPU取指、执行周期时序,每条指令的执行都可以包括取指和执指两个阶段。在取指阶段,CPU从内部或外部ROM中取出指令操作码 及操作数,然后再执行这条指令。3.单字节和双字节的指令都可能是单机器周期或双周期,而三字节指令都是双周期的,只有乘、除指令占四周 期。,