文章目录
- 89C51单片机引脚信息
- 单片机IO端口内部结构
- 单片机IO引脚输出应用
- 单片机IO引脚输入应用
- 总结
89C51单片机引脚信息
我们在学习使用任何芯片到时候,可能第一个要注意的就是芯片的引脚信息了,因为我们必须弄懂每个引脚的功能才能更好的设计出对应的电路。本文就来说下89C51单片机的引脚IO端口及应用,学习单片机的IO口的应用也是入门单片机的第一步。
上图是89C51单片机的封装引脚图,89C51单片机有4个IO端口为P0~P3,每个端口有8个引脚,分别对应8个位0~7,每个端口的引脚都可以作为输入输出使用。
单片机IO端口内部结构
其中P3端口有复用功能,比如串口和外部中断功能等,从上两张图中引脚信息也可以看出。
在有使用外部存储器时,P2用作访问外部总线的高8位地址,P0端口用作分时访问外部总线低8位地址和8位数据。
另外P0口没有内部上拉电阻,是一个真正的双向口,引脚内的是一个开漏结构。
P1、P2、P3口的位结构都有一个上拉电阻,因而被称为"准双向口"。正是由于此上拉电阻的存在,所以有些时候P1、P2、P3端口的引脚的外部上拉电阻可以省略,P0端口的引脚某些时候需要考虑使用上拉电阻。下面就以P1端口为例,介绍下单片机引脚输入输出功能的应用。
单片机IO引脚输出应用
单片机IO引脚作为输出时,其实就是控制其引脚内部开关管的通断,从而使引脚输出对应的高低电平。下面给出一张控制led灯的电路图,并讲解IO输出高低电平的控制过程。
上图中使用P1端口的一个引脚控制一个Led灯,红色剪头已经指出了Led亮时电流的流向,主要就是控制引脚内部的开关管的通断来控制Led灯亮灭。
如上图所示,输出数据0时,IO引脚内部开关管导通,从而使IO引脚低电平接地,所以Led灯亮。
当内部总线输出数据为1时,IO引脚内部开关管截止,IO引脚与地断开,通过内部上拉电阻连接到Vcc,所以Led灭。
单片机IO引脚输入应用
单片机IO引脚作为输入时,主要通过外部不同的高低电平输入,从而读出对应的数据1和0的过程,下面就以一张按键输入电路为例讲解按键的识别过程。
从上图中可以很直观的知道,在IO引脚作为输入时,需要先控制其内部开关管断开,不然开关管导通会使IO引脚一直接地,从而读到的会一直是0。在配置开关管断开后,我们就可以读IO引脚数据了,如果读到1,说明按键没有按下,引脚通过上拉电阻接到电源Vcc,如果读到0,说明按键按下,引脚通过按键连接到地。这样我们就可以判断按键按下了。
总结:
1.单片机每一个I/O口都可以独立地作输入或输出口使用,但P0和P2在访问外部存储器时作地址/数据总线,此时它们将不能再作为I/O口使用。
2.当I/O口作为输入时,必须通过程序输出1使内部开关管截止,这样从"管脚Px.x"输入的信号才能在"读管脚"信号的帮助下被正确读走。
3.P1、P2、P3因为内部上拉电阻而被称为"准双向口"。在作输入时,上拉电阻将"管脚Px.x"拉高并在外设输入低电平时向外输出电流。
4.P0口没有内部上拉电阻,是一个真正的双向口。作输入时因开漏结构而浮地。
欢迎大家点赞、评论、转发、收藏!有什么不对、不详细的地方也请大家指出补充。分享是种美德,如果觉得此文讲的不错的话,欢迎给个转发分享给更多的朋友。有什么问题也欢迎评论一起交流。更多有关电子电路、单片机、嵌入式、C语言编程、RTOS的知识,请关注我头条号:单片机嵌入式爱好者。会有更多干货文章分享,帮您加速解决实际工程中遇到的问题。