【单片机】2.5 AT89S52的并行I/O端口
- 4个双向的8位并行I/O端口,分别记为P0、P1、P2和P3,其中输出锁存器属于特殊功能寄存器。端口的每一位均由输出锁存器、输出驱动器和输入缓冲器组成,4个端口按字节输入/输出外,也可位寻址。
2.5.1 P0口
- P0口是一个双功能的8位并行端口,字节地址为80H,位地址为80H~87H。端口的各位具有完全相同但又相互独立的电路结构,P0口某一位的位电路结构如图2-10所示。
1.P0口的工作原理
(1)P0口用作系统的地址/数据总线用
- 当AT89S52外部扩展存储器或I/O时,P0口作为单片机系统复用的地址/数据总线使用。此时,图2-10中的“控制”信号为1,硬件自动使转接开关MUX打向上面,接通反相器的输出,同时使与上方场效应管栅极相连的“与门”处于开启状态。
- 当输出的**“地址/数据”信息为1**时,“与门”输出为1,上方的场效应管导通,下方的场效应管截止,P0.x引脚输出为1。
- 当输出的**“地址/数据”信息为0**时,上方的场效应管截止,下方的场效应管导通,P0.x引脚输出为0。可见P0.x引脚的输出
状态随“地址/数据”信号的状态变化而变化。上方的场效应管起到内部上拉电阻的作用。
- 当P0口作为数据总线输入时,仅从外部存储器(或外部I/O)读入信息,对应的“控制”信号为0,MUX接通锁存器的端。由于P0口作为地址/数据复用方式访问外部存储器时,CPU自动向P0口写入FFH,使下方的场效应管截止,由于“控制”信号为0,上方的场效应管也截止,从而保证数据信息的高阻悬浮输入,从外部P0.x引脚输入的数据信息直接通过输入缓冲器BUF2进入内部总线。
- 由以上分析可见,P0口作为总线端口使用时,具有高电平、低电平和高阻悬浮输入3种状态的端口,此时P0口是一真正的双向端口,简称双向口。
(2)P0口用作通用I/O口使用
- 当P0口不作地址/数据总线使用时,也可作为通用的I/O口使用,各引脚需要在片外接上拉电阻,此时端口不存在高阻抗的悬浮状态,对应的“控制”端信号为0,MUX打向下面,接通锁存器的端,“与门”输出为0,上方的场效应管截止。
- P0口用作通用I/O口输出时,来自CPU的“写”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并由引脚P0.x输出。
- 当D锁存器为1时, Q*端为0,下方场效应管截止,输出为漏极开路,此时,引脚P0.x必须外接上拉电阻才能有高电平输出;
- 当D锁存器为0时,下方场效应管导通,P0口输出为低电平。
- P0口作为通用I/O口输入时,有两种读入方式:“读锁存器”和“读引脚”。
- 当CPU发出“读锁存器”类指令时,锁存器的状态由Q端经上方的三态缓冲器BUF1进入内部总线;
- 当CPU发出“读引脚”类指令时,锁存器的输出状态=1(即Q*端为0),从而使下方场效应管截止,引脚的状态经下方的三态缓冲器BUF2进入内部总线。
2.P0口总结
- 综上所述,P0口具有如下特点:
- (1)当P0口用作地址/数据总线口使用时,是一个真正的双向口,用作与外部扩展的存储器或I/O连接,输出低8位地址和输出/输入8位数据。
- (2)当P0口作通用I/O口使用时,各引脚需要在片外接上拉电阻,此时端口不存在高阻抗的悬浮状态,因此是一个准双向口。
- 大多数情况下,单片机片外都要扩展RAM或I/O接口芯片,此时P0口只能作为复用的地址/数据总线使用。如果单片机片外没有扩展外部RAM和I/O接口芯片,不作地址/数据总线口使用时,P0口才能作为通用I/O口使用,P0口的引脚需在片外接一个上拉电阻,
2.5.2 P1口
- P1口为通用I/O端口,字节地址为90H,位地址为90H~97H。位电路结构见图2-11。
1.P1口的工作原理
- P1口只作为通用I/O口使用。
- (1)P1口作为输出口时,
- 若CPU输出1,Q=1,Q*=0,场效应管截止,P1.x引脚的输出为1;
- 若CPU输出0,Q=0, Q*=1,场效应管导通,P1.x引脚的输出为0。
- (2)P1口作为输入口时,分为“读锁存器”和“读引脚”两种方式。
- __“读锁存器”__时,锁存器的输出端Q的状态经输入缓冲器BUF1进入内部总线;
- “读引脚”时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。
2.P1口总结
- P1口由于有内部上拉电阻,没有高阻抗输入状态,故为准双向口。作为输出口时,不需要在片外接上拉电阻。
- P1口 “读引脚”输入时,必须先向P1口的锁存器写入1 。
2.5.3 P2口
- 双功能口,字节地址为A0H,位地址为A0H~A7H。P2口某一位的位电路结构如图2-12所示。
1.P2口的工作原理
(1)P2口用作高8位地址总线口
- 在内部控制信号作用下,MUX与“地址”接通。当“地址”线为0时,场效应管导通,P2.x引脚输出0;当“地址”线为1时,场效应管截止,P2.x引脚输出1。
(2)P2口用作通用I/O口
- 在内部控制信号作用下,MUX与锁存器的Q端接通。
- CPU输出1时,Q=1,场效应管截止,P2.x引脚输出1;
- CPU输出0时,Q=0,场效应管导通,P2.x引脚输出0。
- 输入时,分为“读锁存器”和“读引脚”两种方式。
- “读锁存器”时,Q端信号经输入缓冲器BUF1进入内部总线;
- “读引脚”时,先向锁存器写1,使场效应管截止,P2.x引脚上的电平经输入缓冲器BUF2进入内部总线。
2.P2口总结
- P2口作为高8位地址总线使用时,可输出外部存储器或I/O的高8位地址,与P0口输出并经锁存器的锁存的低8位地址一起构成16位地址,共可寻址64KB的片外地址空间。当P2口作为高8位地址输出口时,输出锁存器的内容保持不变。
- P2口作为通用I/O口使用时,为准双向口,功能与P1口一样。
- 一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/O口。如果不作为地址总线口使用,可作为通用I/O口使用。
- P2口输入时,分 “读锁存器”和“读引脚”两种方式:
- “读锁存器”时,Q端信号经输入缓冲器BUF1进入内部总线
- “读引脚”时,先向锁存器写1,**使场效应管截止,P2.x引脚上的电平经输入缓冲器BUF2进入内部总线。
3.P2口的特点
- 作为地址输出线时,P2口高8位地址,P0口输出的低8位地址寻址64KB地址空间。
- 作为通用I/O口时,P2口为准双向口。功能与P1口一样。
- 一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/O口。
2.5.4 P3口
- 由于引脚数目有限,在P3口增加了第二功能。每1位都可以分别定义为第二输入功能或第二输出功能。P3口字节地址为B0H,位地址B0H~B7H。P3口某一位的位电路结构见图2-13。
1.P3口的工作原理
(1)P3口用作第二输入/输出功能。
- 当选择第二输出功能时,该位的锁存器需要置“1”,使“与非门”为开启状态。
- 当第二输出为1时,场效应管截止,P3.x引脚输出为1;
- 当第二输出为0时,场效应管导通,P3.x引脚输出为0。
- 当选择第二输入功能时,该位的锁存器和第二输出功能端均应置1,保证场效应管截止,P3.x引脚的信息由输入缓冲器BUF3的输出获得。
(2)P3口用作第一功能—通用I/O口。
- 当P3口用作通用I/O的输出时,“第二输出功能”端应保持高电平,“与非门”为开启状态。CPU输出1时,Q=1,场效应管截止,P3.x引脚输出为1;CPU输出0时,Q=0,场效应管导通,P3.x引脚输出为0。
- 当P3口用作通用I/O的输入时,P3.x位的输出锁存器和“第二输出功能”端均应置1,场效应管截止,P3.x引脚信息通过输入BUF3和BUF2进入内部总线,完成“**读引脚”**操作。
- 当P3口用作通用I/O的输入时,也可执行“**读锁存器”**操作,此时Q端信息经过缓冲器BUF1进入内部总线。
2.P3口总结
- P3口内部有上拉电阻,不存在高阻抗输入状态,故为准双向口。
- 由于P3口每一引脚有第一功能与第二功能,究竟是使用哪个功能,完全是由单片机执行的指令控制来自动切换的,用户不需要进行任何设置。
- 引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲器BUF3的输出端,第一功能的输入信号取自缓冲器BUF2的输出端。
【单片机】2.5 AT89S52的并行I/O端口相关推荐
- CC2530并行I/O端口应用
CC2530并行I/O端口应用 CC2530总共具有21个数字I/O引脚,这些引脚可以组成3个8位端口,分别为端口0.端口1和端口2,通常表示为P0.P1和P2.其中,P0和P1是完全的8位端口,而P ...
- 《单片机原理与应用》——并行IO口原理
系列文章目录 文章目录 系列文章目录 一.单片机并行IO口工作原理 二.51单片机工作周期和时序 1.时钟电路 2.复位方式 3.机器周期和指令周期 三.C51新增的变量类型 四.函数的定义 提示:以 ...
- 51单片机8255扩展c语言,51单片机8255A扩展IO口
<51单片机8255A扩展IO口>由会员分享,可在线阅读,更多相关<51单片机8255A扩展IO口(23页珍藏版)>请在人人文库网上搜索. 1.一个芯片可扩展多个并行I/O口 ...
- 单片机C51复习题(课后习题及答案)
第1章 思考题及习题 一.填空题 除了单片机这一名称之外,单片机还可以称为____或____. 单片机与普通微型计算机的不同之处在于其将____.____和____3部分,通过内部____连接在一起, ...
- 单片机的硬件结构(51单片机的组成)
文章目录 51单片机的组成 优点 各部件的功能 引脚的功能 1.电源引脚 (1)**VCC(40脚)**:+5V电源引脚 (2)**VSS(20脚)**:数字接地 2.时钟引脚 (1)XTAL1(19 ...
- 51单片机的基础知识——单片机简介
仅用于学习交流!!! 仅用于学习交流!!! 仅用于学习交流!!! 一.什么是单片机 单片机,即单片微型计算器,简称为单片机.用专业术语来讲单片机就是在一块硅片上集成了微处理器.存储器以及各种输入/输出 ...
- 单片机--矩阵键盘实验
实验目的和任务 目的:利用"模块化单片机教学实验平台",加深对单片机与矩阵键盘的接口电路设计以及程序设计的理解. 任务:1.学习独立式按键的查询识别方法. 2.非编码矩阵键盘的行反 ...
- 单片机应用技术c语言版考试答案,单片机应用技术(C语言)试题
<单片机应用技术(C语言)试题>由会员分享,可在线阅读,更多相关<单片机应用技术(C语言)试题(7页珍藏版)>请在人人文库网上搜索. 1.一.选择题1.单片机8031的/EA引 ...
- 单片机中存储器扩展位地址线怎么算_单片机外部扩展存储器时,分时复用做数据线和低8位地址线的是( )。 (2.0分)_学小易找答案...
[判断题]数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程() [单选题]单片机的P1口的功能是( ). (2.0分) [单选题]当52单片机应用系统需要扩展外部存储器或其他接口芯片时, ...
- 用C语言将16个数存放到40H中,单片机应用技术C语言试题
<单片机应用技术C语言试题>由会员分享,可在线阅读,更多相关<单片机应用技术C语言试题(9页珍藏版)>请在人人文库网上搜索. 1.一.选择题 1.单片机8031的/EA引脚(C ...
最新文章
- div+css内容需注意
- 如何用SAP编制现金流量表
- mysql 不知道这样的主机_求救!!连接本机数据库时出现不知道这样的主机
- c 用mysql导出xls文件怎么打开_mysql——xls表格的导出和导入(重点)
- 【CodeForces - 471B】MUH and Important Things (模拟,细节)
- 计算机科学与技术专业可以转哪些专业,计算机科学与技术学院本科生转专业实施细则...
- java基础篇---网络编程(TCP程序设计)
- Java:项目启动报错java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
- 【第二周】结对编程体会
- uiswitch样式_iOS - UISwitch 、UISegmentedControl
- php中的字典数据类型,python中字典数据类型常用操作
- JLink下载Hex文件
- java坦克大战墙_java实现坦克大战(功能丰富)
- IBM System 服务器做RAID步骤
- 猿创征文 | Python 开发工具进化之旅
- Joey Logano 嘉年华正式开始,和 Joey Logano 一起竞赛吧
- 技术太多学不过来?教你如何越学越带劲
- Java中的四个核心技术思想
- 智慧燃气系统基于GIS技术的搭建
- python_flask_路由
热门文章
- Quartz 定时器 定时任务
- linux取ip地址命令,linux下命令取IP地址的多种方法
- 微信照片打印服务器端,基于微信平台的自助照片打印系统
- python股票收益率协方差_[Python]如何利用TuShare计算各股票间的相关性和协方差
- wav格式怎么转换成flac?
- linux无线网卡模拟ap,在 openSUSE 上使用 create_ap 创建虚拟 WiFi 热点来方便使用 KDE Connect 连接手机...
- OTSU算法/大津法/最大类间方差法 python实现
- 数据降维——因子分析
- 三级等保要求配置文档-《物理环境》《网络通信》《区域边界》《计算环境》《管理中心》《管理制度》《运维管理》《硬件配置清单》
- Android实现App版本检测、下载与安装新版本apk