MCS-51单片机的基本结构及工作原理.ppt_第1页
MCS-51单片机的基本结构及工作原理.ppt_第2页
MCS-51单片机的基本结构及工作原理.ppt_第3页
MCS-51单片机的基本结构及工作原理.ppt_第4页
MCS-51单片机的基本结构及工作原理.ppt_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内容 2-1 MCS51单片机的基本结构 2-2 MCS51的存储器结构 2-3 专用功能寄存器的SFR 2-4 单片机的工作方式与最小应用系统,第二章 MCS-51单片机的基本结构及工作原理,了解单片机内部基本结构 掌握单片机存储器分布和使用 掌握常用的特殊功能寄存器SFR的使用 了解单片机的工作方式 掌握单片机的引脚及引脚功能,教学目的,学习重点和难点,单片机的存储器结构 单片机的引脚及引脚功能,第一节 MCS-51单片机的基本结构,教学内容: 一、MCS-51单片机内部结构 二、CPU 三、输入输出端口结构 四、端口负载能力和接口要求 五、MCS-5l引脚及功能,MCS-51系列单片机配

2、置一览表,一、MCS-51内部结构,图2-1 8051的功能部件图,外部中断,二 、 CPU,主要功能:产生各种控制信号,去控制存储器、输入输出端口的数据传送、数据的算术运算、逻辑运算以及位操作处理等。,(一)运算器 组成:运算器由算术逻运算部件ALU、累加器Acc、暂存器、程序状态字寄存器PSW、BCD码运算调整电路等组成 。 对数据完成算术运算,逻辑运算、循环移位、位处理。,(二)控制器 组成:由程序计数器PC、指令寄存器、指令译码器、定时控制与条件转移逻辑电路等组成。 功能:对来自存储器中的指令进行译码,通过定时控制电路,在规定的时刻发出各种操作所需的全部内部和外部控制信号,协调各功能元

3、件的工作,完成指令所规定的功能。,特点: 它是16位的按机器周期自动增1计数器,一切分支/跳转/调用/中断/复位 等操作的本质就是:改变 PC 值,总指向下一条指令所在首地址(当前PC值),1程序计数器PC(Program Counter) 一个16位的专用寄存器,用来存放下一条(当前)指令的地址。它具有自动加1的功能。,CPU执行程序的简要过程: 1) PC给出当前指令的存储地址。,2) CPU到存储器取指令, PC自动加1,3) 指令译码器对指令译码, CPU执行指令。,4)CPU到存储器取指令,PC=PC+1。,5)CPU执行下一条指令,,PC=,PC=,PC=,2指令寄存器 一个8位的

4、寄存器,用于暂存待执行的指令,等待译码。 3指令译码器 对指令寄存器中的指令进行译码,分析它的功能,并根据功能产生相应的电信号。 4数据指针DPTR 是一个16位的专用地址指针寄存器。它主要用来存放16位地址。DPTR也可以拆成两个独立8位寄存器,即DPH(高8位字节)和DPL(低8位字节),分别占据83H和82H两个地址。,数据指针可以用来访问外部数据存储器中的任一单元,作间址寄存器使用,也可以作为通用寄存器来用,是 8051单片机中唯一一个用户可使用的16位寄存器。,5.定时控制部件与时序,功能:在规定的时刻发出各种操作所需的全部内部和外部的控制信号,协调各功能元件工作,完成指令所规定的功

5、能。 主要任务:产生一个工作时序,其工作需要时钟电路提供一个工作频率。,图2.2 MCS-51单片机内部结构,(1)时钟电路设计,XTAL1, XTAL2: 接外部晶振的两个引脚。,MCS-51内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上外接时钟源即可构成时钟电路。,(1)时钟电路设计,XTAL1, XTAL2: 接外部晶振的两个引脚。,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。 有内部和外部两种时钟产生方式。 单片机的生产工艺不同,接法也不

6、同。,在XTALl和XTAL2两端接晶体或陶瓷谐振器,与内部反向器构成稳定的自激振荡器。 参数选取:C1、C2起稳定振荡频率,快速起振的作用。,外接晶振时:Cl和C2选择1030pF 外接陶瓷谐振器时: Cl和C2的典型值约为4010pF。 振荡频率范围一般是1.2MHz12MHz,有的可达40MHz。,内部时钟方式,设计印刷电路板时,晶体和电容应尽可能安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定和可靠工作。,时序:CPU在执行指令时所需控制信号的时间顺序称为时序。 时序是用定时单位来描述的,MCS-51的时序单位有四个,分别是时钟周期(节拍)、状态、机器周期和指令周期。,(2)CPU

7、的时序,CPU总是按照一定的时钟节拍与时序工作:,1. 时钟周期:又称为振荡周期、节拍(用P表示),定义为单片机提供时钟信号的振荡源(OSC)的周期。晶振频率fosc(或外加频率)的倒数. 2. 状态(用S表示):振荡脉冲经过二分频后得到整个单片机工作系统的状态。一个状态有两个节拍,前半周期对应的节拍定义为P1,后半周期对应的节拍定义为P2。 3. 机器周期:完成一个基本操作所需的时间。一个机器周期含有6个状态,分别表示为S1S6。每个状态周期有两拍,分别为S1P1、S1P2、S2P1、S2P2,S6P1、S6P2,时序,4. 指令周期:执行一条指令所需要的时间称为指令周期。它 是时序中的最大

8、单位。以机器周期为单位,指令可分为单周 期、双周期和四周期指令。,80C51的片内振荡器及时钟发生器,振荡信号经一个二分频触发器向芯片提供了一个2节拍的状态信号。 状态周期是振荡周期(时钟周期)的2倍。 每个状态周期有两个节拍P1和P2。在每个状态的前半周期,节拍P1有效,在每个状态的后半周期,节拍P2有效。 CPU就以两相时钟P1和P2为基本节拍指挥51单片机各个部件协调地工作。,牢记: 振荡周期(时钟周期) = 晶振频率fosc的倒数;,1个机器周期=6个状态周期 = 12个振荡周期;,1个指令周期 = 1、2、4个机器周期,时序,思考题:设应用单片机晶振频率为12MHz,问机器周期为多少

9、?若晶振为6MHz,分别又为多少?,通常,每个机器周期中,ALE两次有效,第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。,CPU取指、执行时序,每条指令的执行都可以包括取指令和执行两个阶段。 在取指阶段,根据程序计数器PC的内容, CPU从内部或外部ROM中取出指令操作码及操作数,然后再执行这条指令。 按指令执行时间分类: 单周期、双周期、四周期 按指令所占字节数分类: 单字节、双字节、三字节,各指令的微操作在时间上有严格的次序,这种微操作的时间次序我们称作时序。,单字节指令 如:INC A,(1)单周期指令时序,双字节指令 如:ADD A, #data,单字节单周期

10、指令,指令特点:在程序存储器ROM中仅占一个存储单元。 在ALE第一次有效(S2P1)时,从ROM中读取指令的操作码,送入指令寄存器IR中, PC加一,并译码执行,在ALE第二次有效时,封锁PC加一,并丢弃第二次读的操作码。,单片机的工作过程,取指过程,例: MOV A,#09H 74H 09H ;把09H送到累加器A中,执行过程,PC=,0000H,0 1 1 1 0 1 0 0,0 0 0 0 1 0 0 1,(PC),(PC),0001H,0002H,0000H,外部控制总线CB,取指过程,(PC),执行过程,你知道PC的作用吗?,五、MCS-51单片机的引脚及其功能,AT89S52 D

11、IP 40 封装,认识单片机的引脚,MCS-51单片机40脚 Vcc, GND 2 XTAL1, XTAL2 2 RESET 1 EA/Vpp 1 ALE/PROG 1 PSEN 1,P0.0P0.7 8 P1.0P1.7 8 P2.0P2.7 8 P3.0P3.7 8,单片机的引脚(电源端),Vcc (引脚40): 正电源端(+5V/3.3V/2.7V) 不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同。 GND (引脚20): 接地端,单片机的引脚(晶振端),Vcc, GND:正电源端与接地端 XTAL1, XTAL2: 片内振荡电路输入、输出端,时钟电路设计,1.内部时

12、钟方式,外接一个晶振两个电容(1030pF),单片机的引脚(晶振端),Vcc, GND:正电源端与接地端 XTAL1, XTAL2: 片内振荡电路输入、输出端,时钟电路设计,2.外部时钟方式:外部振荡器输入时钟信号。,对AT89S51/S52单片机,通常外接一个晶振两个20或30pf电容,一个12M或11.0592MHz的晶振,RST/VPD:复位(正脉冲有效)/备用电源引脚 复位使单片机进入某种确定的初始状态 退出处于节电工作方式的停顿状态、退出一切程序进程、退出程序的死循环,从头开始。 Vcc掉电期间,此引脚可接备用电源,能保护片内RAM中的内容不丢失。,单片机的引脚(复位端),Vcc,

13、GND: 电源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片内振荡电路输入、输出端,PC与SFR复位状态表,无论是HMOS型还是CHMOS型的单片机,在振荡器正在运行的情况下,复位是靠在RST引脚上施加持续2个机器周期的高电平来实现的。 MCS-51单片机通常采用的简单复位电路有:上电自动复位、外部脉冲复位、上电+按钮电平复位、程序运行监视复位等方式。,简单复位电路,+5V,10uF,10k,Vcc,RST,GND,上电复位,10uF,10k,Vcc,RST,GND,上电+按钮复位,1k,+5V,程序运行监视复位 程序运行监视复位通常是由各种类型的程序监视定时器WDT(Wa

14、tchdog Timer)俗称为“看门狗”实现。WDT可保证程序非正常运行(如程序“飞逸”、“死机”)时,能及时进入复位状态,恢复程序正常运行。,“看门狗”工作原理: 在规定时间内必须至少“喂狗”一次,即复位“看门狗”。否则“看门狗”电路将复位单片机。 实现: 可在软件的合适地方加一条“喂狗”指令,使看门狗的定时时间永远达不到预置。,WDT通常有几种实现方法供用户选择: 1)单片机内部带有的WDT功能单元(如:S51) 2 )选择P (microprocessor)监视控制器件,这些器件中大多有WDT电路,如Max705芯片等。,P 监视控制器件,MAX705/706、 DS1232等 DS1

15、232(看门狗)是DALLAS 公司生产的一种微机监控电路芯片。 主要功能:产生上电复位和手动复位,监视电源电平,监视软件运行状态,当程序运行出现飞车时,产生复位信号。,看门狗定时器定时时间设置,Tol:电源检测选择端 Tol接地,电源电压跌至4.75V以下产生复位信号 Tol接VCC,电源电压跌至4.5V以下产生复位信号,注意:保证看门狗定时器计数溢出前复位看门狗定时器,89S51看门狗功能的使用方法,在ATMEL的89S51系列的89S51与89C51功能相同,指令兼容。 89S51比89C51增加了一个看门狗功能。,要激活AT89S51/52的看门狗功能,只需依次向WDTRST寄存器(S

16、FR地址为0A6H )单元送入#01EH和#0E1H即可,使看门狗定时计数器工作。,AJMP MAIN ;启动看门狗 MAIN: MOV 0A6H, #01EH ; 先送1E MOV0A6H, #0E1H ; 后送E1 ;主程序 START: . ACALL WDT ; 调用复位看门狗子程序 . AJMP START ; 主程序* ;复位看门狗子程序 WDT: MOV 0A6H, #01EH ; 先送1E MOV 0A6H, #0E1H ; 后送E1RET END,注意事项:,1 89S51的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工作。 2 看门

17、狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。 3 89S51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒需喂狗一次。,单片机的引脚(EA端),EA/Vpp(31脚): 寻址外部ROM控制端 / 编程电源输入端。 低电平有效,片内无ROM时必须接地; 片内有ROM时可以接高电平 , 也可以接低电平; 接低电平时,只访问片外ROM,接高电平时,访问片内ROM,超范围时,访问片外ROM 对S51/S52单片机,若不扩展ROM,/EA要接+5V 对片内ROM编程时编程正电源加到此端。 (指并行编程模式),单片机的引脚

18、(ALE端),Vcc, GND: 电源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片内振荡电路输入、输出端 RESET: 复位端 (正脉冲有效) EA/Vpp: 寻址外部ROM控制端/编程电源输入端。 ALE/PROG(30脚) : 地址锁存允许/编程脉冲输入端。 P0口寻址外部低8位地址时接外部锁存器74ls373的G端; ALE端平时会输出周期正脉冲:f fosc/6 ; 对片内ROM编程时编程脉冲由此端加入。(指并行编程模式),单片机的引脚(PSEN端),PSEN (29脚) : 片外ROM选通线。 在执行访问片外ROM的指令MOVC时,8051自动在该引脚产生一个负

19、脉冲,用于对片外ROM的选通。其他情况下,该引脚均为高电平封锁状态。,Vcc, GND: 电源端 (+5V/3.3V/2.7V) XTAL1, XTAL2: 片内振荡电路输入、输出端 RESET: 复位端 (正脉冲有效) EA/Vpp: 寻址外部ROM控制端/编程电源输入端。 ALE/PROG: 地址锁存允许/编程脉冲输入端。,单片机的引脚(PSEN端),PSEN:寻址外部程序存储器时选通外部EPROM的 读控制端(OE)低有效。,小结,1、时钟电路设计 2、CPU的时序 振荡周期、机器周期、指令周期 按指令编码长短:单字节、双字节、三字节 3、单片机的引脚 电源引脚:Vcc(40)、 GND

20、(20) XTAL1(19)、 XTAL2(18) 控制引脚: RST/VPD(9)、ALE/PROG (30) 、 EA/Vpp (31) 、PSEN (29) 输入输出引脚:P0、P1、P2、P3 4、常用的复位电路、控制引脚的功能,单片机的I/O引脚结构,众多功能各异的I/O引脚源于它结构的不同,并行口I/O结构与操作,51系列单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0P3。,并行口I/O结构与操作,在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准

21、双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。,“准双向”:当I/O口作为输入时,应先向此口锁存器写入“1”, 此时该口引脚浮空,可作高阻抗输入。,(一)功能,P0口:可作为一般IO口用,但当应用系统采用外部总线结构时,它分时作低8位地址线和8位双向数据总线用。 P1口:每1位均可独立作为IO口。 P2口:可作一般IO口用,当应用系统采用外部总线结构时,它仅能作为高8位地址线。 P3口:双功能口。第一功能使用时同P1口,每1位均可独立作为IO口。每1位均具有第二功能,两个功能不能同时使用。,单片机的引脚(P1口),P1.

22、0P1.7: 准双向I/O口(内置了上拉电阻) 输出时一切照常,仅在作输入口用时要先对其写“1”。,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,输出数据 = 1 时,1,1,0,截止,=1,单片机的引脚(P1口),2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,输出数据 = 0 时,0,0,1,导通,=0,单片机的引脚(P1口),作输入口时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。,CPU在执行“读修改写”类输入指

23、令时(如:ANL P1,A),内部产生的“读锁存器”操作信号,使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算之后,结果又送回P0的口锁存器并出现在引脚。,读口锁存器可以避免因外部电路原因使原端口引脚的状态发生变化造成的误读。,CPU在执行“MOV”类输入指令时(如:MOV A,P1),内部产生的操作信号是“读引脚”。 注意:在执行该类输入指令前要先把锁存器写入“1”,使场效应管T2截止,使引脚处于悬浮状态,可作为高阻抗输入。否则,在作为输入方式之前曾向锁存器输出过“0”,则T2导通会使引脚箝位在“0”电平,使输入高电平“1”无法读入。 所以,P1口在作为通用I/O口时,属于准双向口

24、,2,1,D,Q,CK,/Q,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,输入数据时,要先对其写“1”,1,1,0,截止,单片机的引脚(P1口),读引脚 =1,2,1,D,Q,CK,/Q,读锁存器,写锁存器,内部总线,Vcc,引脚P1.X,内部上拉电阻,假如需要读引脚状态,而未对其先写入“1”, 如果之前输出过“0”,则不能正常读取管脚状态。,0,0,1,导通,单片机的引脚(P1口),读引脚 =1,低电平“0”,简单测控实例原理图,P1.3作输入端口,光路通畅,R亮2K 光路阻断,R暗 400K ,R亮 250K ,JOB3: CLR P1.1 ;亮绿灯 REDO: SE

25、TB P1.3 ;P1.3作输入口必先置1 CHECK:JNB P1.3,CHECK ;检测通道是否被阻断? LOOP: ;有入侵者,报警! AJMP REDO ;再跳回去检测,任务三:红外防盗报警,P1.3口用于输入状态检测的语句:,红外线光路通畅时,P1.3端低电平 红外线光路阻断时,P1.3端高电平,单片机的引脚(P0口),P0.0-P0.7: 准双向I/O (内置场效应管上拉)寻址外部存储器时分时作双向8位数据口和低8位地址复用口,工作状态由CPU发出的控制信号决定;不接存储器时可作为8位准双向I/O口使用。,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址/数据

26、,控制=0,引脚P0.X,3,4,作通用I/O端口使用时,控制=0 。,0,0,1,0,0,截止,截止,Vcc,=1,此脚作输入口,“读引脚”时,事先必须对它写“1”。,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址/数据,控制=0,引脚P0.X,3,4,当“输出1”时,输出级为漏级开路电路,引脚上必须接上拉电阻,才能输出高电平。,0,0,1,0,0,截止,截止,Vcc,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址/数据=0,控制=1,引脚P0.X,3,4,P0口作地址/数据复用口时,控制=1: (1)当输出地址/数据 =0 时,1,0,1,截

27、止,导通,Vcc,=0,1,=0,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址/数据=1,控制=1,引脚P0.X,3,4,P0口作地址/数据复用口时,控制=1: (2)当输出地址/数据 =1时,1,1,0,导通,截止,Vcc,=0,0,=1,2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,地址/数据,控制=0,引脚P0.X,3,4,P0口作地址/数据复用口输入时,仅从外存读入信息,控制=0,CPU自动向P0口输出FFH,使下拉场效应管截止。输入指令将使引脚与内部总线直通,Vcc,=1,截止,截止,1、 P0作为地址数据总线时,VT1和VT2是一起工作

28、的,构成推挽结构。高电平时, VT1打开, VT2截止;低电平时, VT1截止, VT2打开。这种情况下不用外接上拉电阻。 而且,输出高电平的时候,当VT1打开, VT2截止,因为内部电源直接通过T1输出到P0口线上,因此驱动能力(电流)可以很大,这就是为什么教科书上说可以“驱动8个TTL负载”的原因。,P0口特点小结(1),2. 做通用数据I/O端口时,输出级上端的FET处于截止状态,为漏级开路电路,若要驱动拉电流负载时,必须接“上拉电阻”,否则不能正确的输出高电平; 其他端口P1、P2、P3在内部直接将VT1换成了上拉电阻,所以不用外接,但内部上拉电阻太大,电流太小,有时因为电流不够,也会

29、再并一个上拉电阻。 3.做通用数据I/O端口时,在输入操作前,为了保证输入正确,必须先向端口“写1”;,P0口特点小结(1),4. “读锁存器” 为引脚改写操作。凡是“读修改写” 的操作,CPU读的都是端口锁存器中的数据。 5. 在总线方式时,P0口不能再做通用的I/O端口。它分时输出地址、数据总线的信息(此时引脚不用外接上拉电阻),此时为双向口,P0口特点小结(2),6、在某个时刻,P0口上输出的是作为总线的地址数据信号还是作为普通I/O口的电平信号,是依靠多路开关MUX来切换的。而MUX的切换,又是根据单片机指令来区分的。 当指令为外部存储器/IO口读/写时,比如 MOVX A,DPTR

30、;MUX是切换到地址/数据总线上; 而当普通MOV传送指令操作p0口时,MUX是切换到内部总线上的。,ADC0809 与单片机的连接,MOV DPTR,#0FEF0H ;ADC0口地址 MOVX DPTR,A ;启动A/D转换 LCALL DELAY ;等待转换结束 MOVX A,DPTR ;取转换结果,ADC0809延时方式数据采集,MOV A, 3FH MOV P0, A,单片机的引脚(P2口),P2.0P2.7: 准双向I/O (内置了上拉电阻) 寻址外部存储器时输出高8位地址;不接外部存储器时可作为8位准双向I/O口使用。,2,1,D,Q,CK,/Q,读引脚 =0,读锁存器,写锁存器,

31、内部总线,地址 高8位,控制,引脚 P2.X,P2作通用输出口时,控制=0。,1,1,0,截止,3,内部上拉电阻,1,1,Vcc,=1,=0,输出=1时,,2,1,D,Q,CK,/Q,读引脚 =0,读锁存器,写锁存器,内部总线,地址 高8位,控制,引脚 P2.X,0,0,1,导通,3,内部上拉电阻,0,0,Vcc,=0,=0,P2作通用输出口时,控制=0。,输出=0时,,2,1,D,Q,CK,/Q,读引脚 =0,读锁存器,写锁存器,内部总线,地址 高8位,控制,引脚 P2.X,P2作高8位地址A8-A15输出口时,控制=1 。,1,0,截止,3,内部上拉电阻,1,Vcc,=1,=1,=1,当输

32、出 =1时,2,1,D,Q,CK,/Q,读引脚 =0,读锁存器,写锁存器,内部总线,地址 高8位=0,控制,引脚 P2.X,0,1,导通,3,内部上拉电阻,0,Vcc,=0,=1,P2作高8位地址A8-A15输出口时,控制=1 。,当输出 =0时,P2口在系统使用外部存储器时,做高八位的地址总线。 P2口使用时注意: a) 当应用系统扩展有大于256B而小于64kB的外部存储器,且P2口用于输出高8位地址时,P2口不能再作通用IO口使用。使用如: MOVX A,DPTR ;访问外部数据存储器 MOVC A,A+DPTR ; 访问外部程序存储器 这里使用了16位的寄存器DPTR,P2口特点小结(

33、1),b) 在不接外部存储器或片外存储器容量小于256字节的系统中,可以使用“MOVX A,Ri”类指令访问片外存储器,仅由P0口输出低8位地址,此时P2口可作通用IO口用。,P2口特点小结(2),单片机的引脚(P3口),P3.0P3.7: 双功能口(内置了上拉电阻) 它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。,P3口第二功能表(P.27 表21),2,1,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线D,第二功能输出 (WR,RD,TxD),引脚 P3.X,3,内部上拉电阻,Vcc,4,第二功能输出时,内部自动 D=1,=1,1,1,与非门,2,1

34、,D,Q,CK,/Q,读引脚,读锁存器,写锁存器,内部总线,第二输出功能1,引脚 P3.X,3,内部上拉电阻,Vcc,4,第二功能输入时,信号经缓冲器4 直接进入内总线,1,1,与非门,1,0,截 止,第二功能输入 (RxD,T0,T1,INT0,INT1),并行端口在使用时应注意的几个问题,“拉电流”还是“灌电流” 1、 “灌电流”输出“低电平”来 驱动负载 使用灌电流的方式与电流较大的负载直接连接时, 端口可以吸收约20mA。,Px.y,Vdd,Vdd,灌电流方式,输出”0”, 点亮LED,2、“拉电流方式”输出高电平驱动负载。 采用拉电流方式连接负载时,AT89S51所能提供“拉电流”仅

35、仅为80A,如果我们采用右下图的方式,不足以点亮LED(或很暗)。 当然,不是所有的单片机都是这样,PIC单片机就可以提供30mA的拉电流和灌电流。单对于大多数IC电路,最好还是使用“灌电流”去驱动负载。,Px.y,Vdd,拉电流方式 输出高电平 点亮LED,拉电流方式驱动负载,要接上拉电阻。 输出高电平,LED亮,电流从电源正上拉电阻LED地。 输出低电平,LED灭,电流从电源正上拉电阻P口。 缺点:功耗大。,Px.y,Vdd,拉电流方式 输出高电平 点亮LED,Vdd,单片机与继电器等大电流负载的接口,我们知道:AT89S51的端口可以吸收约20mA的电流。对于继电器等大于20mA的负载,

36、单片机可以采用右图的接法,用一个三极管来承担负载所需的大电流。 对P0口要接上拉电阻,Px.y,负载,Vcc,单片机与继电器等大电流负载的接口,若于负载电流易造成干扰单片机的环境,应采用右下图“光电隔离”的方式。其中: A 、 B两处没有 任何电的联系。,四、端口负载能力和接口要求,1、P0口的每一位输出可驱动8个LSTTL负载。 当把它作通用IO口输出时,输出级是开漏电路,当它驱动NMOS或其它拉电流负载时,需要外接上拉电阻才有高电平输出。 当作地址数据总线(总线方式)时,(即MOVX ,MOVC之类的指令),这时P0口是推挽式输出,所以这个时候不论输1(高电平)还是输0(低电平),驱动都比

37、较强(内阻小,输出电流大),无需外接上拉电阻,你们没人见过51访问外RAM的硬件中P0口接上拉电阻的吧! 此时不能作通用IO口使用。,2P1P3口的输出级均接有上拉电阻,他们的每一位的输出均可以驱动4个LSTTL负载。当作为输出驱动一般的晶体管的基极时,应在口与晶体管的基极之间串接限流电阻。,3P0P3口都是准双向IO口。由输出转为输入状态时,必须先向相应端口的锁存器写入“1”,使下拉场效应管截止。 P0口作为地址/数据复用口(总线方式)时,相当于一个真正双向口,用于和外部存储器的连接,输出低八位地址和输出/输入8位数据; 当系统复位时,P0P3端口锁存器全为“1”。,51单片机的8个特殊引脚

38、,Vcc, GND: 电源端 XTAL1, XTAL2: 片内振荡电路输入、输出端 RESET: 复位端 正脉冲有效(宽度8 mS) EA/Vpp: 寻址外部ROM控制端。低有效 片内有ROM时应当接高电平。 ALE/PROG: 地址锁存允许控制端。 PSEN:选通外部ROM的读(OE)控制端。 低有效,小结,51单片机的4个8位的I/O口,P0.0P0.7:8位数据口和输出低8位地址复用口 (复用时是双向口;不复用时也是准双向口) P1.0P1.7: 通用I/O口(准双向口),P2.0P2.7: 输出高8位地址 (用于寻址时是输出口;不寻址时是准双向口) P3.0P3.7: 具有特定的第二功

39、能(准双向口),注意:在不外扩ROM/RAM时,P0P3均可作通用I/O口使用,而且都是准双向I/O口!,小结,P3口第二功能表 (P.27 表21),小结,存储器,数据存储器RAM(Random Access Memory) 程序存储器ROM(Read Only Memory) 闪速存储器Flash Memory EPROMErazible Programmable ROM EEPROM/E2PROMElectrical Erasable Programmable ROM 按字节寻址:每个字节(8个位)占一个地址 按位寻址:有的存储器每一个位就有一个地址,单片机的存储器几个有关的概念:,MC

40、S-51单片机的存储器结构,MCS-51单片机的存储器空间分布,特点: 在MCS-51单片机的内部集成了4K的程序存储器和256B的数据存储器,同时还可以使用片外的程序存储器和数据存储器,其扩展能力都是64K。 从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:即片内ROM,RAM和片外ROM、RAM。 从逻辑上讲(即用户编程的角度讲)51单片机的存储系统又可分为三个存储空间。即片内RAM,片外RAM和片内、外的程序存储器ROM。,FFFFH,0000H,可寻址片外ROM,64K字节,0FFFH,0000H,片内 ROM,4K 字节,程序存储器,MCS-51单片机的内存结构,物理上

41、分为:4个空间,即片内ROM、片外ROM 片内RAM、片外RAM 逻辑上分为: 3个空间, 即程序内存(片内、外)统一编址 MOVC 数据存储器(片内) MOV 数据存储器(片外) MOVX,MCS-51单片机的内存结构,寻址范围:0000H FFFFH 64KB (16位).,,寻址内部ROM;,,寻址外部ROM。,当PC值超过片内ROM容量时会自动转向 外部存储器空间。,8031单片机,接低电平。,作用: 存放程序及程序运行时所需的常数。,低段4KB: 0000H0FFFH 80C51和87C51在片内,80C31在片外。,高段60KB:1000HFFFFH。在片外。,存储器配置(ROM)

42、,0000H 系统复位,PC指向此处 0003H 外部中断0入口 000BH T0溢出中断入口 0013H 外中断1入口 001BH T1溢出中断入口 0023H 串口中断入口 002BH T2溢出中断入口,注意: 7个单元被保留用于特定的程序入口地址(中断服务程序入口地址)。编程者是不能随便使用的。,存储器配置(ROM),由于系统复位后的PC内容为0000H,故系统从0000H单元开始取指令,执行程序。它是系统的启动地址。从0000H到0003H只有3B,根本不可能安排一个完整的系统程序,一般在该单元设置转移指令,使之转向用户主程序处。因此,0000H0002H单元被保留用于初始化。,存储器

43、配置(ROM),org0000h jmpmain;跳过中断入口地址区 org0100h main: movp1,#55h mov r0,#3fh ,地址范围:0000HFFFFH 共64KB。,读写外RAM用MOVX指令, 控制信号是P3口中的RD和WR。,一般情况下,只有在内RAM不能满足应用要求时,才外接RAM。,51单片机存储器配置(片外RAM),51单片机存储器配置(片内RAM),片内RAM 128字节(00H7FH); 片内RAM前32个单元是工作寄存器区(00H1FH) 片内RAM有128个可按位寻址的位,占16个单元。 位地址编号为:00H7FH,分布在20H2FH单元 片内21

44、个特殊功能寄存器(SFR)中:地址号能被8整除的 SFR中的各位也可按位寻址(P.29-30),存储器配置(片内RAM),片内RAM 128字节(00H7FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH 其中92个位可位寻址,80H,FFH,所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器,片内RAM前32个单元是工作寄存器区 (00H1FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,存储器配置(片内RAM)

45、,有专用于工作寄存器操作的指令,读写速度比一般内RAM要快,指令字节比一般直接寻址指令要短,还具有间址功能,能给编程和应用带来方便。,作用:,00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器区3,工作寄存器区2,工作寄存器区1,工作寄存器区0,0FH,10H,17H,18H,片内RAM前32个单元是工作寄存器区 (00H1FH),存储器配置(片内RAM),工作寄存器区分为4个区:0区、1区、2区、3区。每

46、区有8个寄存器:R0R7,寄存器名称相同。但是,当前工作的寄存器区只能有一个,由PSW中的D4、D3位决定。,00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,片内RAM中有128个可按位寻址的位。 位地址:00H7FH 分布在:20H2FH单元,存储器配置(片内RAM),用于存放各种标志位信息和位数据。每一位均有一个位地址,可位寻址、位操作。即按位地址对该位进行置1、清0、求反或判转.,注意事项: 位地址与字节地址编址相同,容易混淆。 区分方法:位操作指令中的地址是位地址; 字节操作指令中的地址是字节地址。,00H,20H,2FH,7FH,

47、1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,27H,22H,21H,20H,26H,24H,25H,23H,28H,2FH,单元地址,07 06 05 04 03 02 01 00,0F 0E 0D 0C 0B 0A 09 08,17 16 15 14 13 12 11 10,1F 1E 1D 1C 1B 1A 19 18,27 26 25 24 23 22 21 20,2F 2E 2D 2C 2B 2A 29 28,37 36 35 34 33 32 31 30,3F 3E 3D 3C 3B 3A 39 38,47 46 45 44 43 42 41 40,7F 7

48、E 7D 7C 7B 7A 79 78,位地址,总共128个可按位寻址的位,片内RAM中有128个可按位寻址的位。 位地址:00H7FH 分布在:20H2FH单元,存储器配置(片内RAM),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,数据缓冲区:30H7FH单元,存储器配置(片内RAM),用于用于存放各种数据和中间结果,起到数据缓冲的作用。,特殊功能寄存器(SFR),特殊功能寄存器SFR(专用寄存器) 特殊用途寄存器的集合。专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。,不同的SFR管理不同的硬件模块

49、,负责不同的功能各司其职 换言之:要让单片机实现预订的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。,特殊功能寄存器不能作为普通的RAM存储单元来使用。只有在编程中根据需要,进行一些特定功能的设定,或者是从中查寻相关部件的状态时,才能进行读、写操作。如中断方式的设定、定时器工作模式的设定,查询串行口发送或接收是否结束等等。,有21个SFR 已知的P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表。,堆栈指针寄存器 SP(Stack Pointer): 总是指向栈顶,压栈时先 (SP)+1 然后数据进栈;弹栈时数据先出栈 然

50、后(SP)-1。,累加器 ACC:一个用得最频繁的特殊功能寄存器(如:运算、数据传输)。,副累加器 B:一个经常与 ACC 配合在一起使用的特殊功能寄存器(如:乘法、除法),此外,它也经常当作普通寄存器使用。,特殊功能寄存器(P0P3,SP,A,B),堆栈: 在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。,功用: 1)子程序调用和中断服务 2)保护现场/恢复现场 3)数据传输,堆栈操作分自动方式和指令方式。自动方式是在调用子程序或发生中断时CPU自动将断口地址存人或者取出;指令方式是使用进出栈指令进行操作

51、。,00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,SP栈顶,下一个进栈的数据将存在此,数据进栈,已经进栈的数据存放在此,初始 SP,复位后 SP=07H,数据进栈时:首先SP+1指向08H单元,第一个放进堆栈的数据将放进08H单元,然后SP再自动增 1,仍指着栈顶,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,SFR,从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶,00H,

52、20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM区,普通RAM区,位寻址区,工作寄存器区,SP栈顶,当前要出栈的数据,数据出栈,SP-1指向下一个将要出栈的数据,初始 SP,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM区,普通RAM区,位寻址区,工作寄存器区,S

53、P-1 指向新的栈顶,也就是下一个将要出栈的数据,数据出栈,初始 SP,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,push a push b push PSW . pop a pop b pop PSW 这样的指令顺序对不对?,程序状态字寄存器 PSW:也称为标志寄存器,存放各有关标志。,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,CY(PSW.7)进位/借位标志位。若在加减运算过程中如果操作结果最高位有进位或借位,则CY=1;否则=0。它也是布尔处理器的位

54、累加器,可用于布尔操作。,AC(PSW.6)半进位/借位标志位。若在加减运算过程中,D3位向D4位发生了进位或借位,则AC=1,否则=0。机器在执行“DA A”指令时自动要判断这一位,我们可以暂时不关心它。,PSW.6,PSW.5,特殊功能寄存器(PSW),F0 (PSW.5)可由用户定义的标志位。,程序状态字寄存器 PSW(续):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。,PSW.4 PSW.3,RS1、RS0 = 00 0区(00H07H) RS1、RS0 = 01 1区(08H0FH) RS1、RS

55、0 = 10 2区(10H17H) RS1、RS0 = 11 3区(18H1FH),片内RAM前32个单元(00H1FH)是工作寄存器区 (由PSW中的RS1,RS0决定),00H,20H,2FH,7FH,1FH,30H,80H,FFH,普通RAM区,位寻址区,工作寄存器区,R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,08H,1FH,工作寄存器区3,工作寄存器区2,工作寄存器区1,工作寄存器区0,程序状态字寄存器 PSW(续):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,OV (PSW.2)溢出标志位。 OV(PSW.2) 溢出标志位: 判断符号数加减法运算时是否有溢出. OV的结果可以用一个算法来表示: OV=C6异或C7 其中: C7为D7的进借位, C6 为D6的进借位,OV=1表明有溢出。,PSW.1 未定义。,PSW.2,PSW.1,程序状态字寄存器 PSW(续):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,P (PSW.0)奇偶标志位。 P=1表示累加器中“1”的个数为奇数 P=0表示累加器中“1”的个数为偶数 CPU随时监视着ACC中的“1”的个数,并反映在PSW中,PSW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论