单片机引脚与端口操作
单片机读引脚及读锁存器
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口位电路结构
51单片机主要引脚功能
51单片机主要引脚功能XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。
RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V 电源的正负端。
P0~P3 为可编程通用I/O 脚,其功能用途由软件定义P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8 个TTL 逻辑门电路,对端口P0 写1 时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对端口P2 写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口。
P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对P3 口写入1 时,它。
单片机读端口与读引脚的区别
单片机读端口与读引脚的区别
把I/O口作为输入口使用时,是“读引脚”,不同于“读端口”。
注意,读端口的“口”
不是P0口、P1口的“口”,而是锁存器的Q端口,也就是读锁存器Q端的输出信号然后送
三态缓冲器输入,经过缓冲器输出到单片机内部总线。
而读引脚则是直接把芯片引脚上
的外部数据,经过三态缓冲器把数据放到内部总线。
例如,用MOV进行读引脚操作:
MOV P1,0FFH ;注意首先把P1引脚置为高电平
MOV A,P1 ;P1作为输入口,读P1口信号到A
编程时须先置I/O口引脚为高电平的原因如下(请查看口电路结构图):
51单片机的P0口是双向口,P1~3口是准双向口,其I/O口引脚都和单片机内部的场效应管
FET漏极连接。
首先我们不妨假设init时引脚为低电平(我不知道单片机reset时
引脚缺省电平是低还是高?还是不定?),即FET漏极为低电平,因为此时FET是导通的,
所以无论外部输入1还是0,都会产生拉电流,拉为低电平,从而无法正确判断外部输入
的是1还是0.严重的话,如果拉电流过大,还可能烧坏FET。
因此,init时只好将引脚设为高电平,例如MOV P1,0FFH,由单片机口电路的结构图可以
看出,这条指令的内部电路逻辑是这样的:
先把0FFH放到内部总线,锁存器输入端(D端)从内部总线取数据,锁存,然
后从Q非端输出到FET栅极,显然此时Q非为0,FET截止,通过漏极上拉电阻输出高电平,
不会影响外部输入电平(相当于和外部输入逻辑与)。
单片机的引脚原理图及说明
单片机的引脚原理图及说明引言:单片机(Microcontroller Unit,MCU)是一种集成了微处理器核心、存储器、输入/输出接口及其他功能模块的微型计算机系统。
在单片机中,引脚(Pin)是与外部电路连接的接口,用于输入和输出信号。
本文将详细介绍单片机引脚的原理图及说明。
一、引脚的分类单片机的引脚根据其功能可以分为输入引脚和输出引脚两类。
1. 输入引脚:输入引脚用于接收外部信号,并将其传递给单片机内部进行处理。
输入引脚通常具有以下特点:- 高电平输入:当外部信号为高电平时,输入引脚将接收到高电平信号。
- 低电平输入:当外部信号为低电平时,输入引脚将接收到低电平信号。
- 输入阻抗:输入引脚通常具有一定的输入阻抗,用于限制外部信号的电流。
2. 输出引脚:输出引脚用于将单片机内部处理后的信号输出到外部电路。
输出引脚通常具有以下特点:- 高电平输出:当单片机内部处理后的信号为高电平时,输出引脚将输出高电平信号。
- 低电平输出:当单片机内部处理后的信号为低电平时,输出引脚将输出低电平信号。
- 输出驱动能力:输出引脚通常具有一定的输出驱动能力,可以驱动外部电路的负载。
二、引脚的原理图及说明单片机的引脚在原理图中通常以引脚编号的形式表示,并配以相应的说明。
以下是常见的单片机引脚原理图及其说明:1. VCC(电源引脚):VCC引脚用于连接单片机的电源正极,通常为+5V或+3.3V电压。
它提供了单片机工作所需的电源。
2. GND(地引脚):GND引脚用于连接单片机的电源地,与VCC引脚相连,提供了单片机工作所需的电源地。
3. XTAL1/XTAL2(晶体振荡引脚):XTAL1和XTAL2引脚用于连接外部晶体振荡器,提供单片机的时钟信号。
通常,一个晶体振荡器连接到XTAL1和XTAL2引脚,以提供单片机的时钟频率。
4. RESET(复位引脚):RESET引脚用于复位单片机。
当RESET引脚被拉低时,单片机将执行复位操作,重新开始执行程序。
单片机80c51引脚
80C51单片机的引脚功能80C51单片机一般采用双列直插DIP封装,共40个引脚,图2-2a为引脚排列图。
图2-2b为逻辑符号图。
40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。
图2-2 80C51引脚图1.电源(1)Vcc——芯片电源,接+5V;(2)Vss——接地端。
2.时钟XTAL1、XTAL2——晶体振荡电路反相输入端和输出端。
使用内部振荡电路时外接石英晶体。
3.控制线控制线共有4根,其中3根是复用线。
所谓复用线是指具有两种功能,正常使用时是一种功能,在某种条件下是另一种功能。
(1)ALE/PROG——地址锁存允许/片内EPROM编程脉冲。
①ALE功能:用来锁存P0口送出的低8位地址。
80C51在并行扩展外存储器(包括并行扩展I/O口)时,P0口用于分时传送低8位地址和数据信号,且均为二进制数。
那么如何区分是低8位地址还是8位数据信号呢?当ALE信号有效时,P0口传送的是低8位地址信号;ALE信号无效时,P0口传送的是8位数据信号。
在ALE信号的下降沿,锁定P0口传送的内容,即低8位地址信号。
需要指出的是,当CPU不执行访问外RAM指令(MOVX)时,ALE以时钟振荡频率1 / 6的固定频率输出,因此ALE信号也可作为外部芯片CLK时钟或其他需要。
但是,当CPU执行MOVX指令时,ALE将跳过一个ALE脉冲。
ALE端可驱动8个LSTTL门电路。
②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
(2)PSEN——外ROM读选通信号。
80C51读外ROM时,没个机器周期内PSEN两次有效输出。
PSEN可作为外ROM芯片输出允许OE的选通信号。
在读内ROM 或读外RAM时,PSEN无效。
PSEN可驱动8个LSTTL门电路。
(3) RST/Vpd——复位/备用电源。
①正常工作时,RST(Reset)端为复位信号输入端,只要在该引脚上连续保持两个机器周期以上高电平,80C51芯片即实现复位操作,复位后一切从头开始,CPU从0000H开始执行指令。
51单片机 寄存器,引脚与指令
51单片机:寄存器,引脚与指令本篇总结了单片机学习过程中常常遇到的一些单片机引脚,寄存器,与指令的缩写符号和助记符及简要介绍,方便大家初学与查看。
欢迎下载!1.51单片机:寄存器符号地址功能介绍B F0H B寄存器ACC E0H累加器PSW D0H程序状态字IP B8H中断优先级控制寄存器P3B0H P3口锁存器IE A8H中断允许控制寄存器P2A0H P2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190H P1口锁存器TH18DH定时器/计数器1(高8位)TH08CH定时器/计数器1(低8位)TL18BH定时器/计数器0(高8位)TL08AH定时器/计数器0(低8位)TMOD89H定时器/计数器方式控制寄存器TCON88H定时器/计数器控制寄存器DPH83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080H P0口锁存器PCON87H电源控制寄存器下面,我们介绍一下几个常用的SFR。
是累加器,通常用A表示。
ACC---是累加器,通常用1、ACC---这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
一个寄存器。
B--一个寄存器。
2、B--在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
程序状态字。
PSW-----程序状态字。
3、PSW-----这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。
它的各位功能请看下表:D7D6D5D4D3D2D1D0CY AC F0RS1RS0OV P下面我们逐一介绍各位的用途进位标志。
有关51单片机读端口、读引脚的问题
有关51单⽚机读端⼝、读引脚的问题
80C51单⽚机有P0-P3四个P⼝,以P0为例说明:
要搞清这个问题,就要明⽩p0⼝的内部结构。
P0⼝是由锁存器经两个驱动场效应管和外部引脚相连的。
读引脚的意思就是直接读P0外部引脚的电位,⽽读端⼝(锁存器)读的是内部与数据总线链接的锁存器的电位。
两者不同。
⼀般来说,读取P0的数据,都是读引脚,⽬的是获取与P0相连的外部电路的状态。
⽽读端⼝是在执⾏下述语句时由CPU⾃⾏完成的:
inc P0;给p0加1
执⾏这个语句时,采⽤“读-改-写”的过程,先读取p0的端⼝数据,再加1,然后送到p0锁存器⾥。
注意这个端⼝数据跟p0的引脚状态不⼀样,⽐如你事先给p0写进69H,p0⾥数据就是69H,⽽引脚上的状态因为你没有执⾏MOV A,p0之类的指令,它是不会进到p0的锁存器⾥去的。
由此可见,所谓的读端⼝,不是读取p0的状态,⽽是在执⾏inc之类的指令时由CPU⾃⾏完成的,
读引脚就是读取p0⼝状态了。
读引脚时要注意:先要给p0写FFH,使它的场效应管T2和地断开。
因为p0⼝的场效应管T2⼀端接地,⼀端与外部引脚相连,由P0的锁存器控制,当给锁存器写1时,它和地断开,写0时和地相连,所以写零时读到的总是低电平。
试想你现在要读P0引脚,按理说P0与外部电路相连,外部电路的是什么状态,就应该读到什么,但如果p0⼝的场效应管T2⼀端接地的话,它会把p0⼝电位拉低,你读到的总是低电平0,所以要先给p0写FFH,把p0的场效应管T2和地断开,再读数时就是真实状态了。
当外部电路断开,再读时读到的就是p0端⼝(锁存器)的真实状态了。
zz()。
51单片机各引脚及端口详解
51单片机各引脚及端口详解51单片机引脚功能:MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:l ~ P0口8位双向口线(在引脚的39~32号端子)。
l ~ P1口8位双向口线(在引脚的1~8号端子)。
l ~ P2口8位双向口线(在引脚的21~28号端子)。
l ~ 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口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
单片机输入输出接口的使用
内部总线 写锁存器
DQ CLK Q
R
P2.n P2口
T
引脚
MUX
读引脚
2020/5/4
2.P2口作为地址总线
在系统扩展片外程序存储器扩展数据存储器且容量超过 256B (用MOVX DPTR指令)时,CPU发出控制电平“1”,使多路 开关MUX倒内部地址线。此时,P2输出高8位地址。
读锁存器
内部总线 写锁存器
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
2020/5/4
② 输入时----分读引脚或读锁存器
读锁存器:有些指令 如:ANL P0,A称为“读-改-写”
指令,需要读锁存器。
上面一个缓冲器用于读端口锁存器数据。
读锁存器
内部总线 写锁存器
地址/数据 VCC 控制
DQ CLK Q
作为扩展系统的地址总线, 输出高8位地址, 与P0 口
一起组成 16 位地址总线。 对于 8031 而言, P2 口
一般只作为地址总线使用, 而不作为I/O线直接与外
部设备相连。
2020/5/4
地址/数据 VCC 控制
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
2020/5/4
2、P0作为地址/数据总线 ----真正的双向口
▪ P0引脚输出地址/输入数据
输入信号是从引脚通过输入缓冲器进入内部总线。
此时,CPU自动使MUX向下,并向P0口写“1”,“读
引脚”控制信号有效,下面的缓冲器打开,外部数据读入
读锁存器
内部总线 写锁存器
第二输出功能 VCC
51单片机的基本端口操作
第一章51单片机的基本端口操作主要对单片机最简系统在实际应用中的使用方法,从简单到复杂地实现单片机最简系统的基本功能。
“点亮最简单的单片机系统”从单片机原理上介绍单片机的基本组成和最简单系统的典型电路,以及有关单片机C51编程方法和例程。
“更加明亮的小灯”从功能上介绍如何使LED发光稳定,从原理上介绍单片机I/O口的电气特性和使用方法。
“定时亮灭的小灯”介绍如何使LED灯定时亮、灭,从单片机原理上介绍定时器的使用和编程方法。
“小灯亮灭的人工控制”从功能上介绍如何通过按键控制LED灯的亮灭,从单片机原理上介绍单片机中断的使用和编程方法。
先复习下Keil 51的操作。
1.1点亮最简单的单片机系统常用MCS-51系列单片机引脚功能说明引脚定义引脚功能功能说明Vcc +5V电源电源电压Vss 地电路接地端P0.0-P0.7 通道0 8位漏极开路的双向I/O通道P1.0-P1.7 通道1 8位拟双向I/O通道P2.0-P2.7 通道2 8位拟双向I/O通道P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 INT0 外部中断0输入口P3.3 INT1 外部中断1输入口P3.4 T0 定时器/计数器0外部时间脉冲输入端P3.5 T1 定时器/计数器1外部时间脉冲输入端P3.6 WR 外部数据存储器写脉冲P3.7 RD 外部数据存储器读脉冲RST/VPD 复位输入信号该引脚上有2个机器周期的高电平可以实现复位操作,在掉电情况下将只给片内RAM供电ALE/PROG 地址锁存有效信号主要作用是提供一个适当的定时信号PSEN 程序选通有效信号低电平时,指令寄存器的内容读到数据总线上EA/Vpp 片选使能当保持TTL高电平时,8051执行内部ROM的指令;当使TTL为低电平时,从外部程序存储器取出所有指令XTAL1 晶振输入端 内部振荡器外接晶振的一个输入端XTAL2 晶振输入端 内部振荡器外接晶振的另一个输入端提问:什么是单片机系统、提问:单片机中晶振有什么作用?回答:单片机访问一次存储器的时间,称之为一个及其周期,是一个时间基准。
51单片机IO端口(P1P2P3端口,漏极开路,推挽,上拉电阻,准双向口)
单片机IO端口工作原理(P1P2P3端口,漏极开路,推挽,上拉电阻,准双向口)2009-09-17 12:58二、P1端口的结构及工作原理P1口的结构最简单,用途也单一,仅作为数据输入/输出端口使用。
输出的信息有锁存,输入有读引脚和读锁存器之分。
P1端口的一位结构见下图:P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管V1,并且输出的信息仅来自内部总线。
由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。
要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。
为此,在作引脚读入前,必须先对该端口写入l。
具有这种操作特点的输入/输出端口,称为准双向I/O口。
8051单片机的P1、P2、P3都是准双向口。
P0端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入l后再作读操作。
单片机复位后,各个端口已自动地被写入了1,此时,可直接作输入操作。
如果在应用端口的过程中,已向P1一P3端口线输出过0,则再要输入时,必须先写1后再读引脚,才能得到正确的信息。
此外,随输入指令的不同,H端口也有读锁存器与读引脚之分。
三、P2端口的结构及工作原理:P2端口的一位结构见下图:P2端口在片内既有上拉电阻,又有切换开关MUX,所以P2端口在功能上兼有P0端口和P1端口的特点。
这主要表现在输出功能上,当切换开关向下接通时,从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;当多路开关向上时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。
对于8031单片机必须外接程序存储器才能构成应用电路(或者我们的应用电路扩展了外部存储器),而P2端口就是用来周期性地输出从外存中取指令的地址(高8位地址),因此,P2端口的多路开关总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。
AVR单片机端口操作要点
AVR单片机端口操作要点1.了解端口的基本概念:AVR单片机通常包含多个I/O端口,每个端口都包含多个引脚,可用于输入和输出。
每个引脚都具有特定的功能,如输入、输出、上拉等,并且可以通过相应的寄存器进行配置。
2.确定引脚的功能:在进行端口操作之前,需要确定引脚是用作输入还是输出。
可以使用DDRx寄存器(其中x是端口的字母,如A、B、C等)将引脚配置为输入或输出模式。
将特定位设置为1表示该引脚将被设置为输入模式,设置为0表示输出模式。
3.设置引脚的电平:在将端口配置为输出模式后,可以设置引脚的电平值。
可以使用PORTx寄存器将引脚设置为高电平(1)或低电平(0)。
例如,通过将PORTA寄存器的特定位设置为1,可以将引脚A设置为高电平。
4.读取引脚的状态:在将端口配置为输入模式后,可以读取引脚的状态。
可以使用PINx寄存器(其中x是端口的字母)在引脚上进行读取操作。
该寄存器将返回引脚的状态,其中每个位对应于引脚的一个状态。
例如,如果引脚C2的状态为高电平,则PINC寄存器的C2位将被设置为15.应用端口操作:端口操作通常用于驱动外设,如LED、按钮、传感器等。
例如,在将端口配置为输出模式后,可以使用PORTx寄存器控制LED的亮灭。
通过将特定位设置为1或0,可以将LED设置为高电平或低电平。
6.使用掩码技术:掩码技术是一种将特定位设置为1或0而不影响其他位的技术。
使用掩码技术可以更有效地进行端口操作。
通过使用位运算符与(&)和或(,)来设置或清除特定位。
7.配置上拉电阻:在将端口配置为输入模式后,可以启用引脚上的上拉电阻。
可以使用PORTx寄存器将引脚的上拉电阻设置为高电平。
这样,当外部设备未连接到引脚时,引脚将保持高电平状态。
8.避免短路:在进行端口操作时,需要注意避免短路风险。
短路可能导致设备损坏或严重损坏。
因此,应确保正确连接外设,并注意引脚的电平状态。
9.确保正确配置寄存器:在进行端口操作时,确保正确配置相关寄存器。
- 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口受内部控制信号的控制。