文章目录
- 89C51单片机引脚信息
- 单片机IO端口内部结构
- 单片机IO引脚输出应用
- 单片机IO引脚输入应用
- 总结
89C51单片机引脚信息
我们在学习使用任何芯片到时候,可能第一个要注意的就是芯片的引脚信息了,因为我们必须弄懂每个引脚的功能才能更好的设计出对应的电路。本文就来说下89C51单片机的引脚IO端口及应用,学习单片机的IO口的应用也是入门单片机的第一步。
![b7809b3b5187ad5f6c7948590b5f8ba4.png](https://i-blog.csdnimg.cn/blog_migrate/5dc3a5e6757c9738c45b4a801cb57498.jpeg)
上图是89C51单片机的封装引脚图,89C51单片机有4个IO端口为P0~P3,每个端口有8个引脚,分别对应8个位0~7,每个端口的引脚都可以作为输入输出使用。
单片机IO端口内部结构
![353b356963e395d02e9bdb25b0aefacb.png](https://i-blog.csdnimg.cn/blog_migrate/81302e99c36eef747481a2ee08aa4bb2.jpeg)
其中P3端口有复用功能,比如串口和外部中断功能等,从上两张图中引脚信息也可以看出。
![38930a11a8bffa259d7e02c7e830cd93.png](https://i-blog.csdnimg.cn/blog_migrate/d766760b09201dc82af81ba4f5d01e5e.jpeg)
![ca300a8732bcd8d752efbaa0ef4549a7.png](https://i-blog.csdnimg.cn/blog_migrate/7c2cc9f52ea2eb7e5e5e3d8827b6bc32.jpeg)
在有使用外部存储器时,P2用作访问外部总线的高8位地址,P0端口用作分时访问外部总线低8位地址和8位数据。
![0241cfb341a24d44bf023ef729f62e02.png](https://i-blog.csdnimg.cn/blog_migrate/fb79cb8c791d489892101ed963c4a2ee.jpeg)
另外P0口没有内部上拉电阻,是一个真正的双向口,引脚内的是一个开漏结构。
![29d79747fafc7d49ecd07c34e4a03f12.png](https://i-blog.csdnimg.cn/blog_migrate/1069b1f97d464601ef72f351f40c7cab.jpeg)
P1、P2、P3口的位结构都有一个上拉电阻,因而被称为"准双向口"。正是由于此上拉电阻的存在,所以有些时候P1、P2、P3端口的引脚的外部上拉电阻可以省略,P0端口的引脚某些时候需要考虑使用上拉电阻。下面就以P1端口为例,介绍下单片机引脚输入输出功能的应用。
单片机IO引脚输出应用
单片机IO引脚作为输出时,其实就是控制其引脚内部开关管的通断,从而使引脚输出对应的高低电平。下面给出一张控制led灯的电路图,并讲解IO输出高低电平的控制过程。
![0220d1ff4ddb04be6b379245d8e76d44.png](https://i-blog.csdnimg.cn/blog_migrate/31d1e99675902b3333fe615500be6147.jpeg)
上图中使用P1端口的一个引脚控制一个Led灯,红色剪头已经指出了Led亮时电流的流向,主要就是控制引脚内部的开关管的通断来控制Led灯亮灭。
![19a91b8fce366b4549ee083326b7bbf5.png](https://i-blog.csdnimg.cn/blog_migrate/9f99de7445b8ec7c39c2cd8244871e7c.jpeg)
如上图所示,输出数据0时,IO引脚内部开关管导通,从而使IO引脚低电平接地,所以Led灯亮。
![9fd01d17ebb02b30223bc71192cfac5d.png](https://i-blog.csdnimg.cn/blog_migrate/ce942862c2be2b3a54aa4e2ad3547397.jpeg)
当内部总线输出数据为1时,IO引脚内部开关管截止,IO引脚与地断开,通过内部上拉电阻连接到Vcc,所以Led灭。
单片机IO引脚输入应用
单片机IO引脚作为输入时,主要通过外部不同的高低电平输入,从而读出对应的数据1和0的过程,下面就以一张按键输入电路为例讲解按键的识别过程。
![b2c0146536a764081b0496a610ae1dc6.png](https://i-blog.csdnimg.cn/blog_migrate/31e6ca161a6278f6424b4224ba261feb.jpeg)
从上图中可以很直观的知道,在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的知识,请关注我头条号:单片机嵌入式爱好者。会有更多干货文章分享,帮您加速解决实际工程中遇到的问题。