单片机引脚与端口操作
单片机读引脚及读锁存器

51单片机I/O引脚IO口工作原理一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。
再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。
下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。
下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。
D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。
大家看上图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。
对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q 及反向输出端Q非的。
如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。
数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。
如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。
51单片机引脚功能

51单片机引脚功能51单片机是一种基于MCS-51架构的8位单片机。
它有40个引脚,其中包括I/O引脚、电源引脚和时钟引脚等。
每个引脚都具有不同的功能和用途,下面是一些常见的51单片机引脚功能介绍:1. VCC:为51单片机供电的正电源引脚,一般连接到3.3V或5V电源。
2. GND:为51单片机供电的地引脚,负电源引脚。
3. RESET:复位引脚,当复位引脚电平为低电平时,可以重启或者复位51单片机。
4. EA/VPP:外部访问使能/编程电压引脚。
当电平为低电平时,可以通过外部器件对单片机进行编程,当电平为高电平时,用于外部扩展存储器的使能。
5. P0.0~P0.7:第0口每个引脚的功能可以根据需要进行定义,可以作为输入或输出引脚使用。
6. P1.0~P1.7:第1口I/O引脚,与第0口相似,具有输入和输出功能。
7. P2.0~P2.7:第2口I/O引脚,与第0口和第1口相似,具有输入和输出功能。
8. P3.0~P3.7:第3口I/O引脚,与第0口、第1口和第2口相似,具有输入和输出功能。
9. RST/AP:复位端口/辅助功能端口。
这个引脚可以用作复位单片机的辅助功能,也可以用于电源监控。
10. XTAL1:外部晶振输入引脚,一般通过晶振提供单片机的时钟信号。
11. XTAL2:外部晶振输出引脚。
12. PSEN:程序存储器使能引脚,用于选择程序存储器或外部存储器之间的切换。
13. ALE/PROG:地址锁存器使能/编程引脚。
当电平为高电平时,用作地址锁存器使能引脚;当电平为低电平时,用作一个外部编程信号。
14. RXD:串口接收数据引脚,用于串行通信。
15. TXD:串口发送数据引脚,用于串行通信。
16. INT0:外部中断0引脚,可以通过设置中断使能来检测外部的中断事件。
17. INT1:外部中断1引脚,与INT0引脚类似,用于检测外部的中断事件。
18. T0:定时器0的计数引脚,可以通过程序来对其进行读写操作。
单片机引脚的定义与功能详解

单片机引脚的定义与功能详解1 产品简介还有我发现一个很特别的地方,这是以前我玩32/51都没有的,那就是上拉电阻阻值大小是可以选择的,可编程选择,芯圣的产品又一次让我惊讶GPIO_Init(GPIOT0,GPIO_PIN_2,GPIO_MODE_IN_PU); //将P02端口设置为上拉电阻模式GPIO_P02ExternalPullConfig(R100K); //将P02端口上拉电阻设置为100Kwhile(1);}就可以将P02端口上拉电阻设置为100K然后介绍一下HC89f003的重映射功能:Datasheet介绍:让我们看看怎么重映射吧,我尽量简单明了讲一下。
什么是重映射:一般的单片机上有很多I/O口,也有很多的内置外设如I2C、ADC、ISP、USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。
很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的。
读到这里相信大家都应该了解了端口重映射的一些概念了。
原理上的东西不细说了。
大家可以看手册或者网上查,这方面的资料还是很多的。
从芯圣的datasheet我们可以知道,基本上所有的io口,都是可以实现重映射的,那我们看看pwm输出能映射到哪个io口呢,PWM3_OUTPin_P00 = (u8)0x00, //PWM3输出端口为P00PWM3_OUTPin_P01 = (u8)0x01, //PWM3输出端口为P01PWM3_OUTPin_P02 = (u8)0x02, //PWM3输出端口为P02PWM3_OUTPin_P03 = (u8)0x03, //PWM3输出端口为P03PWM3_OUTPin_P04 = (u8)0x04, //PWM3输出端口为P04。
51单片机各引脚及端口详解

51单片机各引脚及端口详解51单片机引脚功能:MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。
l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。
l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。
l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。
这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。
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中的信息不会丢失。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
mcs-51单片机的引脚和输入输出端口

MCS-51单片机的引脚和输入输出端口MCS-51有4组8位I/O口,共占用32个引脚:P0、P1、P2和P3口,P1、P2和P3为准双向口,P0口则为双向三态输入输出口。
●P0口(P0.0~P0.7)占用32~39脚;●P1口(P1.0~P1.7)占用1~8脚;●P2口(P2.0~P2.7)占用21~28脚;●P3口(P3.0~P3.7)占用10~17脚;这四个口的主要功能如下:(1) P0 口是一个8位不带内部上拉电阻的漏极开路型准双向I/O口,因此该口输出时需外接上拉电阻,而P1 、P2 和P3口都是带内部上拉电阻的8位双向I/O口。
(2) 在访问片外ROM时,P0口分时兼作数据总线和低8位地址线;P2口作高位地址线。
(3) 内部带程序存储器的芯片,在EPROM编程和程序验证时,P1输入低8位地址,P2输入高8位地址,P0输入指令代码。
(注:P1、P2作输入口时,必须要使每位先置“1”,才能读入外部数据。
)(4) P3口除作双向I/0口外还兼有专用功能。
P0口和P2口:图1为P0口和P2口其中一位的电路图,由图可见,电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,另外还有一个数据输出的驱动和控制电路。
这两组口线用来作为CPU与外部数据存储器、外部程序存储器和I/O扩展口,而不能像P1、P3直接用作输出口。
它们一起可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线。
P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7。
外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写信号选通,因为216=64k,所以8051最大可外接64kB的程序存储器和数据存储器P1口:图2为P1口其中一位的电路图,P1口为8位准双向口,每一位均可单独定义为输入或输出口,当作为输入口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至1,此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0。
单片机各个引脚功能概述

单片机各个引脚功能概述单片机是一种集成电路,其中具有多个引脚,每个引脚都具有不同的功能。
下面是单片机各个引脚的功能概述:1.VCC:VCC引脚为单片机的电源引脚,通常连到电池或电源电压上。
它为单片机提供正向电源,电压通常为3.3V或5V。
2.GND:GND引脚为单片机的接地引脚,通常使用地线连接到电路板的地方。
该引脚为单片机提供回路的参考点。
3.XTAL1和XTAL2:XTAL1和XTAL2引脚是单片机的振荡器引脚,通常连接到晶体振荡器或陶瓷谐振器中的引脚。
这些引脚提供时钟脉冲,以控制单片机的时序和计时。
4.RESET:RESET引脚是单片机的复位引脚,通常使用它来将单片机恢复到初始状态。
当RESET引脚被拉低时,单片机将重新启动。
5.P0.0-P0.7:P0.0-P0.7是单片机的I/O端口0引脚,用于连接外部设备。
这些引脚可以被配置为输入或输出端口,以与外部设备通信。
6.P1.0-P1.7:P1.0-P1.7是单片机的I/O端口1引脚,用于连接外部设备。
这些引脚也可以被配置为输入或输出端口,以与外部设备通信。
7.P2.0-P2.7:P2.0-P2.7是单片机的I/O端口2引脚,用于连接外部设备。
这些引脚可以被配置为输入或输出端口,以与外部设备通信。
8.P3.0-P3.7:P3.0-P3.7是单片机的I/O端口3引脚,用于连接外部设备。
这些引脚也可以被配置为输入或输出端口,以与外部设备通信。
9.INT0和INT1:INT0和INT1引脚是单片机的外部中断引脚,用于检测外部中断事件。
这些引脚通常用于响应外部事件,例如按下按钮或检测外部信号。
10.TXD和RXD:TXD引脚是单片机的串行传输引脚,用于发送串行数据。
RXD引脚是单片机的串行接收引脚,用于接收串行数据。
这些引脚通常用于单片机与其他设备(例如计算机或传感器)之间的通信。
11.ADC0-ADC7:ADC0-ADC7引脚是单片机的模拟输入引脚,用于连接模拟传感器或外部设备。
单片机的引脚原理图及说明完整版

单片机的引脚原理图及说明HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。
再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。
下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D 锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。
下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。
D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。
大家看上图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。
对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。
如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。
数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。
单片机基础与实践第4讲AT89S51单片机引脚及其功能 - 副本

(2) P0口作为通用I/O口输入使用时,在输入数据前,应先向P0口写 “1”, 此时锁存器的Q端为“0”, 使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入。
2020/3/16
15
② ������������������������ :第二功能,对片内 Flash编程的编程脉冲输入。
4.3 AT89S51单片机的控制引脚(4个)
4、 ������������������������ (Program Strobe ENable,29脚)
片外程序存储器读选通信号 低电平有效。
2、AT89S51单片机的P1口
P1口:8位 准双向I/O口,具有内部上拉电阻。
注意: P1口的几只引脚:P1.5/MOSI、 P1.6/MISO和P1.7/SCK,可用作片内 Flash存储器的串行编程和校验,分别 是串行数据输入、输出和移位脉冲引脚。 P1口可驱动4个LS型TTL负载。
23 2020/3/16
(1)电源及时钟引脚 VCC、VSS;XTAL1、XTAL2。 (2)控制引脚 PSEN*、ALE/PROG*、 EA*/VPP、RST(RESET)。 (3)I/O口引脚 P0、P1、P2、P3,4个8位I/O口。
11
4.2 AT89S51单片机的电源及时钟引脚
2020/3/16
1、电源引脚 (1)VCC(40脚):+5V电源。 (2)VSS(20脚):数字地。 2、时钟引脚 (1)XTAL1(19脚):输入端。 使用片内振荡器,应接外部石英晶 体和微调电容。
26 2020/3/16
P2口位电路结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机引脚与端口操作
首先对于单片机IO口一般有第二功能,因为P0口比较特别以P0口为例说明。
1.P0口置1是怎么回事,什么时候置1?
单片机P0口作为输入时需要先给锁存器置1,以关闭V2场效应管,不置1的话当锁存器的值为0时,V2导通接地使引脚的值为低,不能输入高电平。
至于怎么给P0口置1,就是给P0寄存器置1.
2.P0口怎么要接上拉电阻?有什么用?
见P0口结构图可知,P0口作为通用IO口,即输入输出口时,需要把V1场效应管关闭,多功能开关连接到锁存器,高电平信号通过锁存器Q'端输出时为低电平,V2管截止,V1,V2都截止,输出既不是高电平又不是低电平,这就是漏
极开路输出。
为了能够输出高电平需要外接上拉电阻。
3.读引脚和读端口有什么不一样?
读引脚是读P0口引脚上的电平信号,读端口是读锁存器中的值,即就是读P0
口寄存器的值。
作为输出时引脚和端口的值是一样的,但是作为输入时因为外设可以影响引脚的值,所以端口和引脚的值作为输入时可以不一样。
4.什么时候读端口?什么时候读引脚?各自的指令是什么?
一般的教科书上都会强调:读端口的指令为端口内容取反这样的“读-修改-写”指令。
而读引脚之前,先置1,然后用Mov A,Px之类的指令即可。
以下是从相关网站上搜集的资料:
“资料称:这样的指令才有Read-Modify-Write功效
ANL(logical AND, e.G.,ANL P1,A)
ORL(logical OR, e.g.,ORL P2,A)
XRL(logical EX-OR, e.g.,XRL P3,A)
JBC(jump if bit=1and clear bit, e.g.,JBC P1.1,LABEL) CPL(complement bit, e.g.,CPL P3.0)
INC(increment, e.g.,INC P2)
DEC(decrement, e.g.,DEC P2)
DJNZ(decrement and jump if not zero,e.g.,DJNZ P3,LABEL)
MOV PX.Y,C(move carry bit to bit Y of PORT X)
CLR PX.Y(clear bit Y of PORT X)
SETB PX.Y(set bit Y of PORT X)
”
有没有读端口的指令(而不修改端口)?
可以说,没有直接的读端口的指令。
无论之前是否置1,以下指令
MOV A,P1
MOV20H,P1
MOV R0,P1
MOV@R0,P1
读的都是引脚,尽管不一定读准确。
5.端口的内容什么时候发生改变?当Px口作为输入,若外部引脚信号不断变化,读取引脚值之后,端口内容是否变化?
某网友的看法与我不谋而合:“由于复位后各引脚寄存器的值是明确的,而以后各引脚的寄存器的值的改变不会因为芯片外面而,影响到引脚寄存嚣的值,引脚的寄存器的值只可能由程序来改变,所以就没有必要只读寄存器的值而不改变寄存器的内容了。
”
参考引脚内部结构图可知,端口就是一个锁存器,纵使锁存器D口数据在变(内
部数据线),只要时钟触发端clk没有触发信号,锁存器中的内容永远都不会改
变,也就是说,不管外部引脚信号如何变,也不管执行过多少次读引脚操作,端口锁存器中的内容是不会发生变化的。
那么,端口内容何时变化?答曰:只要执行过一次输出,端口内容必为输出值,因为端口就是输出的数据锁存器。
6.端口上的内容亦即反映到引脚上来吗?
Px口如果作为输出口,由引脚内部结构可知,端口内容是直接反映到引脚上去的。
这对于P1口更为直接。
而其他口,由于有第二功能,是否作为I/O口受内部控制信号的控制。