2.3 80C51单片机的并行端口结构
- 格式:docx
- 大小:96.71 KB
- 文档页数:6
80C51单片机引脚图及引脚功能介绍首先我们来介绍一下单片机的引脚图及引脚功能(如下图所示),引脚的具体功能将在下面详细介绍单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。
⒈ 电源:⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
⒊ 控制线:控制线共有4根,⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM 编程期间,此引脚输入编程脉冲。
⑵ PSEN:外ROM读选通信号。
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋ I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
拿到一块单片机,想要使用它,首先必须要知道怎样去连线,我们用的一块89C51的芯片为例,我们就看一下如何给它连线。
1、电源:这当然是必不可少的了。
单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。
2、振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。
只要买来晶体震荡器,电容,连上就能了,按图1接上即可。
3、复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。
4、 EA管脚:EA管脚接到正电源端。
至此,一个单片机就接好,通上电,单片机就开始工作了。
我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的5个管脚,还有35个,我们将这个LED和1脚相连。
80C51的I/O端口结构及应用特性一,I/O端口的结构1,锁存器加引脚的典型结构80C51的I/O端口都有内部总线实现操作控制。
P0-P3四个I/O 口都可以做普通I/O口,因此,要求具有输出锁存功能。
内部总线有事分时操作,因此每个I/O端口都有相应的锁存器。
然而I/O端口又是外部的输入/输出通道,必须有相应的引脚,故形成了I/O端口的锁存器加引脚的典型结构。
2,I/O口的复用功能(1)I/O口的总线复用。
80C51在使用并行总线扩展时,P0口可作为数据总线口和低8位地址总线口,这是,P0为三态双向口。
P0口输出总线的地址数据信号,P2口输出高8位地址信号。
(2)I/O口的功能复用。
I/O口的P3为功能复用的I/O端口。
端口有复用输出的控制端;引脚也有复用输入的控制端。
3,准双向结构P0,P1,P2,P3口做普通I/O口使用时,都是准双向口结构。
准双向口的典型结构见P1口位结构图。
准双向口的输入操作和输出操作本质不同,输入操作时读引脚状态;输出操作时对口锁存器的写入操作。
有口锁存器和引脚电路可知:当有内部总线对只1或只0时,锁存器的0、1状态立即反应到引脚上。
但是输入操作(读引脚)时,如果口锁存器的状态为0,引脚被嵌位在0状态,导致无法读出引脚的高电平输入。
二,I/O端口的应用特性1,引脚的自动识别。
无论P0,P2口的总线复用,还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。
2,口锁存器的读、该、写操作。
许多涉及到I/O端口的操作,只是涉及口锁存器的读出、修改、写入的操作。
这些指令都是一些逻辑运算指令、置位/清除指令、条件转移指令以及将I/O口作为目的地址的操作指令。
3,读引脚的操作指令。
如果某个I/O口被指定为源操作数,则为读引脚的操作指令。
例如,执行MOV A,P1时,P1口的引脚状态传送到累加器中,执行MOV P1,A是,指令则将累加器的内容传送到P1口锁存器中。
4,准双向口的使用。
80C51串口结构2014年2月18日(一)80C51串行口的结构■两个物理上独立的接收、发送缓冲器SBUF(逻辑同名、物理分开),可同时收、发数据。
■两个缓冲器共用一个特殊功能寄存器字节地址:99H。
■定时器T1作为串行通信的波特率发生器。
■数据传送过程(异步串行)发送操作:累加器A→SBUF→由发送控制器TI控制与门开→在发送时钟的控制下,将该并行数据逐位移位输出→置位TI,标志数据传送完毕。
通过软件查询或中断,CPU继续发送第二个数据。
接收操作:移位寄存器一位位接收数据并转换为并行格式→SBUF接收到数据,置RI,标志接收到数据。
通过软件查询或中断方式,通知CPU接收数据,移位寄存器继续接收第二个数据。
(二)80C51串行口的控制寄存器(SCON、PCON)●串行口控制寄存器SCON作用:(1■SM0■SM2当串行口以方式2或方式3接收时(1)SM2=1时,接收机处于地址帧筛选状态。
可利用接收到的第9位(即RB8)筛选地址帧;若RB8=1,该地址帧信息可进入SBUF,并使RI为1,进而在中断服务中再进行地址号比较;若RB8=0,该帧不是地址帧,应丢掉,且保持RI=0。
(2)SM2=0时,接收机处于地址帧筛选被禁止状态。
不论收到的RB8为0或1,均可以使收到的信息进入SBUF,并使RI=1。
此时的RB8通常为校验位。
方式1时,如果SM2=1,则只有收到停止位时才会置位RI。
方式0时,SM2必须为0。
■REN:串行接收使能位,由软件置“1”或清“0”REN=1,允许串行口接收数据REN=0,禁止串行口接收数据■TB8:发送的第9位数据方式2和3时,TB8是要发送的第9位数据,可作为奇偶校验位使用,也可作为多机通信中表示主机发送的是地址帧或数据帧的标志。
=1为地址帧, =0为数据帧■RB8:接收的第9位数据方式2和3时,RB8存放接收到的第9位数据。
在方式1,置SM2=0,进入RB8的是停止位。
80C51的基本结构80C51的引脚封装时钟电路总线控制CPUROM/EPROM/FLASH4K 字节RAM 128字节 SFR 21个定时/计数器2个中断系统5中断源、2优先级串行口 全双工 2个并行口 4个RST EAALE PSENXTAL2XTAL1P0 P1 P2 P3V CCV SS一、80C51的内部结构:1.80C51的微处理器(CPU)(1)运算器:累加器ACC ;寄存器B ;程序状态字寄存器PSW 。
(2)控制器:程序计数器PC ;指令寄存器IR ;定时与控制逻辑2.80C51的片内存储器在物理上设计成程序存储器和数据存储器两个独立的空间:(1)内部ROM容量4K字节,范围是:000H~0FFFH(2)内部RAM容量128字节,范围是:00H~7FH3.80C51的I/O口及功能单元(1)四个8位的并行口,即P0~P3。
它们均为双向口,既可作为输入,又可作为输出。
每个口各有8条I/O线。
(2)有一个全双工的串行口(利用P3口的两个引脚P3.0和P3.1);(3)有2个16位的定时/计数器;(4)有1套完善的中断系统。
4.80C51的特殊功能寄存器(SFR)内部有SP,DPTR(可分成DPH、DPL两个8位寄存器),PCON,…,IE,IP等21个特殊功能寄存器单元,它们同内部RAM的128个字节统一编址,地址范围是80H~FFH。
增强型单片机的SFR有26个字节单元,所增加的5个单元均与定时/计数器2相关。
二、80C51的时钟与时序1.80C51的时钟产生方式可分为内部时钟和外部时钟2.80C51的时钟信号一个机器周期包含12个晶荡周期或6个时钟周期,指令的执行时间称作指令周期(单、双周期)。
各指令的微操作在时间上有严格的次序,这种微操作的时间次序我们称作时序。
三、80C51单片机的复位复位目的是使单片机或系统中的其它部件处于某种确定的初始状态。
复位有上电复位和上电复位和按键均有效的复位。
80C51单片机的并行端口结构80C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。
被归入专用寄存器。
I/O端口有串行和并行之分,串行I/O端口一次只能传送一位二进制信息,并行I/O端口一次能传送一组二进制信息。
(1)并行I/O口的功能①PO口:电路中包括一个数据输出锁存器和两个三态数据输入缓存器,另外还有一个数据输出的驱动和控制电路。
这两组端口用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口的总线接口,而不像P1、P3直接用做输出口。
P0.0~P0.7,P0口是8位双向I/O口,P0.i引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。
该8位都是漏极开路(漏极开路即高阻状态,适用于输入/输出,其可独立输入/输出低电平和高阻状态)输出,每个引脚可以驱动8个LS型TTL负载且内部没有上拉电阻,执行输出功能时外部必须接上拉电阻(10K 即可)。
若要执行输入功能,必须先输出高电平方能读取该端口所连接的外部数据;若在访问外部存储器(RAM、ROM)和扩展的I/O口时,P0可作为地址总线(A0~A7)和数据总线(D0~D7),分时进行工作。
在指令的前半周期,P0口作为地址总线的低8位,在指令的后半周期为8位的数据总线。
P1口的各个单元:输入缓冲器:在P0口中,有两个三态的缓冲器,三态门有三个状态,即在其输出端可以是高电平、低电平和高阻状态(或称为禁止状态)。
上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为…读锁存器‟端)有效。
要读取P0.i引脚上的数据,也要使标号为…读引脚‟的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。
D锁存器:存储器中可以存放电荷,加一个小的存储器的单元,并在它的面前加一个开关,要让这一位输出时,就把开关打开,信号就进入存储器的单元,然后马上关闭开关,这一位的状态就被保存下来,直到下一次命令让它把开关再打开为止,这就是锁存器。
图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q是反向输出端。
构成一个锁存器,通常要用一个时序电路(包含有存储元件的系统,),一个触发器(触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发)可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。
对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CL没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q的。
如果时序控制端CL的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q端。
数据传送过来后,当CL时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。
如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。
多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为地址/数据总线使用。
那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为数据/地址总线使用的选择开关了。
当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为地址/数据总线使用的。
输出驱动部份:P0口的输出是由两个MOS管(MOS管是金属(metal)—氧化物(oxid)—半导体(semiconductor)场效应晶体管)组成的推拉式结构,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。
与门、与非门:起开关作用的集成电路。
又称“与电路”。
执行“与”运算的基本门电路。
有几个输入端,只有一个输出端。
作为I/O端口使用时的工作原理:P0口作为I/O端口使用时,多路开关的控制信号为0(低电平),多路开关的控制信号同时与与门的一个输入端是相接的,与门的逻辑特点是“全1出1,有0出0”,这时与门输出的也是一个0(低电平),与门的输出是0,V1管就截止。
在多路控制开关的控制信号是0(低电平)时,多路开关是与锁存器的Q端相接的(即P0口作为I/O口线使用)。
P0口用作I/O口线,其由数据总线向引脚输出(即输出状态Output)的工作过程:当写锁存器信号CL有效时,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q端→多路开关→V2管的栅极→V2的漏极到输出端P0.i,当多路开关的控制信号为低电平0时,与门输出为低电平,V1管是截止的,所以作为输出口时,P0是漏极开路输出,当驱动上接电流负载时,需要外接上拉电阻。
P0口用作I/O口线,其由引脚向内部数据总线输入(即输入状态Input)的工作过程:数据输入时(读P0口)有两种情况:①读引脚读引脚数时,读引脚缓冲器打开(即三态缓冲器的控制端要有效),通过内部数据总线输入。
②读锁存器过打开读锁存器三态缓冲器读取锁存器输出端Q的状态。
作为地址/数据复用口使用时的工作原理:这时多路开关控制信号为1,与门解锁,与门输出信号电平由地址/数据线信号决定;多路开关与反相器的输出端相连,地址信号经地址/数据线→反相器→V2场效应管栅极→V2漏极输出。
例如:控制信号为1,地址信号为0时,与门输出低电平,V1管截止;反相器输出高电平,V2管导通,输出引脚的地址信号为低电平。
反之,控制信号为“1”、地址信号为“1”,“与门”输出为高电平,V1管导通;反相器输出低电平,V2管截止,输出引脚的地址信号为高电平。
可见,在输出“地址/数据”信息时,V1、V2管是交替导通的,负载能力很强,可以直接与外设存储器相连,无须增加总线驱动器。
②P1口:P1.0~P1.7,P1口是一个带有上拉电阻的8位双向I/O口。
P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,并且输出的信息仅来自内部总线。
由内部总线输出的数据经锁存器反相(反相器是可以将输入信号的相位反转180度)和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。
要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。
为此,在作引脚读入前,必须先对该端口写入l。
具有这种操作特点的输入/输出端口,称为准双向I/O口。
单片机复位后,各个端口已自动地被写入了1,此时,可直接作输入操作。
如果在应用端口的过程中,已向P1一P3端口线输出过0,则再要输入时,必须先写1后再读引脚,才能得到正确的信息。
③P2口:P2.0~P2.7,P2口是一个带有上拉电阻的8位双向I/O口。
在访问外部存储器(ROM和RAM)和扩展的I/O口时,送出的地址总线的高8位。
每个引脚可以驱动4个LS型TTL负载;若要执行输入功能,必须先输出高电平方能读取该端口所连接的外部数据;若系统连接外部存储器的地址线超过8条时,则P2口可作为地址总线(A15~A8)引脚。
P2端口的主要特点包括:i. 不能输出静态的数据;ii. 自身输出外部程序存储器的高8位地址;iii. 执行MOVX指令时,还输出外部RAM的高位地址,故称P2端口为动态地址端口。
作为I/O端口使用时的工作过程不需要高8位地址时(在这种情况下,不能通过数据地址寄存器DPTR读写外部数据存储器),P2口可以当做I/O口使用。
这时,控制信号为0,多路开关转向锁存器同相输出端Q,输出信号经内部总线→锁存器同相输出端Q→反相器→V2管栅极→V2管漏极输出。
由于V2漏极带有上拉电阻,可以提供一定的上拉电流,负载能力约为8个TTL与非门;当作为输出口时,同样需要向锁存器写入“1”,使反相器输出低电平,V2管截止,即引脚悬空时为高电平,防止引脚被钳位在低电平。
读引脚有效后,输入信息经读引脚三态门电路到内部数据总线。
作为地址总线使用时的工作过程P2口作为地址总线时,控制信号为1,多路开关接向地址线(即向上接通),地址信息经反相器→V2管栅极→漏极输出。
由于P2口输出高8位地址,与P0口不同,无须分时使用,因此P2口上的地址信息(程序存储器上的A15~A8)功数据地址寄存器高8位DPH保存时间长,无须锁存。
④P3口:P3.0~P3.7,P3口是一个带有上拉电阻的8位双向I/O口。
在80C51单片机中,第一个功能是作为通用的I/O口,第二个功能是作为特殊信号线使用。
P3端口和Pl端口的结构相似,区别仅在于P3端口的各端口线有两种功能选择。
当处于第一功能时,第二输出功能线为1,此时,内部总线信号经锁存器和场效应管输入/输出,其作用与P1端口作用相同,也是静态准双向I/O端口。
当处于第二功能时,锁存器输出1,通过第二输出功能线输出特定的内含信号,在输入方面,即可以通过缓冲器读入引脚信号,还可以通过替代输入功能读入片内的特定第二功能信号。
由于输出信号锁存并且有双重功能,故P3端口为静态双功能端口。
P3各口线的第二功能:P3.0 RxD (串行输入口)P3.1 TxD (串行输出口)P3.2 O INT (外部中断0)P3.31INT (外部中断1) P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6 WR (外部数据存储器写脉冲)P3.7 RD (外部数据存储器读脉冲)(2)并行I/O 口的结构分析① 输出结构场效应管(属于电压控制型半导体器件,把输入电压的变化转化为输出电流的变化)的导通和截止代表了引脚输出的高和低,若场效应管导通,则引脚输出就是低电平;若场效应管截止,则输出高电平。
② 输入结构在80C51单片机中输入有两种方式,分别称为“读引脚”和“读锁存器”。
第一种方式是将引脚作为输入,那是真正的从外部引脚读进输入的值;第二种方式是该引脚处于输出状态时,有时需要改变这一位的状态,并不需要真正地读引脚状态,而是读入锁存器的状态,然后做某种变换后在输出。
若将这一根引线作为输入口使用,接在外部的开关如果打开,则应当输入1;而如果闭合开关,则输入0;但是如果单片机内部的开关是闭合的,不管外部的开关是闭合还是打开,单片机接受到的数据都是0.要让这一端口作为输入使用,先让内部的开关断开,也就是让端口输出“1”才行。