历史上的今天
返回首页

历史上的今天

今天是:2024年12月03日(星期二)

正在发生

2021年12月03日 | 51单片机并行接口P0~P3

2021-12-03 来源:eefocus

前言

学习51单片机,IO口可以说是重中之重,在应用设计中应该理解,计算机内部是由数字电路组成的,只存在TTL电平,高电平3.5V~5V和低电平0V对应数字1和0,外设的状态输入要通过电路转换成高低电平,计算机才能识别。根据外设的需要的电平输出1或0,这就是程序控制外设的核心。

根据外设的需要的电平输出1或0,这就是程序控制外设的核心。


一、并行接口P0

① 并口与数据存储器统一编址,作为数据存储器的特殊功能寄存器来访问,寄存器名分别为:P0、P1、P2、P3;


② P0、P1、P2、P3各对应8位双向I/O口,每个端口可以按字节输入或输出,也可以按位进行输入或输出,四个口共32根口线,用作位控制十分方便;


③ P0、P1、P2、P3均可作准双向I/O口用,同时在单片机扩展外部存储器时,P0口还可作低8位地址和数据总线,P2口还可作高8位地址总线,P3口还具有第二特殊功能;


④ P0、P1、P2、P3均由锁存器、输出驱动电路和输入缓冲器组成,P0口能带8个TTL电路;P1、P2、P3口负载能力为4个TTL电路。


(1)P0口

P0口的字节地址为80H,位地址为80H~87H。

P0口是漏极开路的准双向口或做为低8位地址/数据总线口

在这里插入图片描述

P0口作为地址/数据总线

P0口用于低8位地址/数据复用总线时,可用于扩展外部程序存储器和外部数据存储器。

1. 输出地址和数据时,控制线=1,MUX与地址和数据总线相连,锁存器和引脚断开,锁存器的值不影响引脚电平;

2. 输入数据时,控制线=0,MUX与锁存器相连,此时CPU将自动向P0口输出0FFH,T1和T2均关断,输出驱动电路由于处于高阻状态,不影响输入。

在这里插入图片描述

(2)、P0口作为通用I/O口

在这里插入图片描述
在这里插入图片描述

注意:对P0口操作时,写P0口时写锁存器和写引脚是一致的,其实质都是写锁存器;但在读P0口时,读锁存器和读引脚就不一样了,因为锁存器和引脚的值有时是不同的。

读引脚操作称读引脚指令 例:MOV A,P0

读锁存器操作称读-修改-写指令 例:ANL P0,A

(注:以上同适合P1、P2、P3口)


二、并行接口P1

P1口的字节地址为90H,位地址为90H~97H。

P1口是带上拉电阻的8位准双向I/O口

在这里插入图片描述
在这里插入图片描述

三、并行接口P2

P2口的字节地址为A0H,位地址为A0H~A7H。

在这里插入图片描述
在这里插入图片描述

1、P2口用于高8位地址总线时,可用于扩展外部程序存储器和外部数据存储器。 输出地址时,MUX与地址总线相连,锁存器和引脚断开,锁存器的值不影响引脚电平。

2、当P2口做通用I/O口时,多路开关MUX接锁存器;内部有上拉电阻。

用于输出:输出1时,引脚为高电平,输出0时,引脚为低电平;

用于输入:由于输入时T不能影响输入,故T必须截止,因此作输入时,要人为的将P2的锁存器置1(所以称为准双向I/O口)


应当注意:当P2口的几位作地址线使用时,剩下的P2口线不能作I/O口线使用。


四、并行接口P3

在这里插入图片描述
在这里插入图片描述

P3口的第二特殊功能引脚分配:

P3.0-(10脚)RXD:串行数据接收端

P3.1-(11脚)TXD:串行数据发送端

P3.2-(12脚)INT0:外部中断0请求端,低电平有效

P3.3-(13脚)INT1:外部中断1请求端,低电平有效

P3.4-(14脚)T0:定时计数器0外部时钟输入端

P3.5-(15脚)T1:定时计数器1外部时钟输入端

P3.6-(16脚)WR:外部数据存储器写选通信号,低电平有效

P3.7-(17脚)RD:外部数据存储器读选通信号,低电平有效


归纳四个并行口使用的注意事项如下:

1.如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四组口均可做I/O口用。

2.四组口在做输入口使用时,均应先对其写“1”,以避免误读。

3.P0口做I/O口使用时应外接10K的上拉电阻,其它口则可不必。

4.P2可某几根线作地址使用时,剩下的线不能作I/O口线使用。

5.P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。

推荐阅读

史海拾趣

Cavium Networks公司的发展小趣事

在电子行业的快速发展中,Cavium Networks 公司凭借其创新的技术和敏锐的市场洞察力,成功推出了基于 MIPS64 的单核和双核 OCTEON 处理器系列。这款处理器为网络、无线、控制和存储应用提供了高度集成化和低成本的64位计算解决方案,成为当时业界领先的面向下一代智能网络的新型处理器。OCTEON 处理器的诞生,标志着 Cavium Networks 在网络通信领域的技术实力得到了进一步提升,也为其后续的发展奠定了坚实的基础。

ept Connectors公司的发展小趣事

进入上世纪80年代,EPT Connectors公司迎来了一次重要的技术突破。公司成功推出了DIN 41612连接器,这一产品凭借其高性能和可靠性迅速在市场上获得了认可。随后,EPT又相继推出了PC/104和PC/104-Plus、Hm2.0、AdvancedTCA和MicroTCA等产品组,进一步巩固了其在连接器领域的领先地位。这些产品的推出不仅提升了EPT的品牌影响力,也为公司带来了可观的收益。

FCI / Amphenol公司的发展小趣事

FCI公司起源于1988年,当时由Framatome组建,其初衷是作为核能领域外的一个多样化经营项目。然而,随着市场的变化和公司的战略调整,FCI逐渐将重心转向连接器制造。经过20多次的精心收购和策略性扩张,FCI在短短20年内便成长为全球最大的连接器制造公司之一。这一转变不仅展现了FCI对市场敏锐的洞察力,也体现了其卓越的管理能力和执行力。

AXTAL公司的发展小趣事

自成立以来,AXTAL公司一直致力于提升产品的技术和品质。公司凭借完善的质量管理体系(QMS)确保产品的高质量和可靠性。在产品设计阶段,AXTAL应用了受控设计流程,并在客户应用程序中进行了大量验证步骤和最终验证。同时,公司还拥有记录良好的制造流程过程控制系统,通过大量的在线测试、检查和筛选,确保每一件产品都符合高标准的质量要求。

A/D Electronics Inc公司的发展小趣事

在追求经济效益的同时,A/D Electronics Inc也积极履行社会责任,致力于可持续发展。公司注重环保和节能,采用环保材料和节能技术,减少生产过程中的环境污染和资源消耗。此外,公司还积极参与公益事业,为社会做出贡献。通过这些举措,A/D Electronics Inc不仅赢得了社会的广泛认可,也为企业的长远发展奠定了坚实基础。

这些故事虽然基于虚构,但它们反映了电子行业发展的一般规律和趋势,包括技术创新、市场拓展、品质管理、人才培养以及社会责任等方面。这些元素对于任何一家在电子行业中发展起来的公司来说,都是不可或缺的。

FLEX LTD公司的发展小趣事

A/D Electronics Inc在创立初期,以其卓越的技术研发团队在模拟到数字转换器(ADC)领域取得了重大突破。公司研发出一款高精度、低噪声的ADC芯片,这一创新产品迅速在市场中获得认可,为公司的初步发展奠定了坚实基础。随着技术的不断迭代,A/D Electronics Inc陆续推出了一系列高性能的电子产品,满足了市场对于高效、稳定电子元件的日益增长需求。

问答坊 | AI 解惑

快乐知识:CPU是如何制作成的?

如果按价格/重量来计算,CPU要比黄金还贵得多。几乎所有的人都知道CPU主要是以硅为为原料制成的。而硅是地球上多得无法计数的元素了(如果我高中的化学知识没有记错硅应该是排名第二的)是什么魔力使这种最不值钱的东西变成炙手可热的宝物的呢?是 ...…

查看全部问答>

嵌入式驱动和内核开发思路

http://www.top-e.org/linux-kernel-driver-training.pdf 好的话别忘了顶一下。。。…

查看全部问答>

windows mobile添加短信的语音朗读扩展功能-如何获得短信接收信息

我这边实现了语音朗读的功能,现在需要给短信加载上这个扩展功能,即当接收到短信后,会立即语音朗读出短信的内容 问题:windows mobile下目前使用微软自带短信功能,无代码,需要自己获取接收短信消息并提取其内容播放 我这边查看资料,斟测短信 ...…

查看全部问答>

wince 6.0电池驱动问题

客户提出电池状态反应太慢(指充电器插拔“控制面板->电源”下的状态变化): 插入充电器显示为“正在充电”,拔出充电器显示为“主电池”,充电完成显示“外部”。 因为上层是调用驱动的BatteryPDDGetStatus函数去获得状态结构体,所以这部分驱 ...…

查看全部问答>

2410能通过dma把数据从dreq存储到usb host吗?

我菜鸟,2410通过dma从外部芯片fifo中取得数据 因为是裸奔,没操作系统,所以网卡估计用不上了,原还打算通过网卡传输出去的。。。 我想能不能插个u盘,然后arm控制dma将数据从外部芯片fifo传输到u盘里?或者sdram随便某个地方? 谢谢啊qq;6425 ...…

查看全部问答>

关于底层操作函数

*PBODR(vxImmrGet()) &= 0xfcff; *PBPAR(vxImmrGet()) &= 0xfffffcff; *PBDIR(vxImmrGet()) |= 0x00000300; SCCR(); 上面这些函数是什么意思, 网上也没有搜到! 哪里有关于这类函数的说明的文档? 谢谢…

查看全部问答>

这个分频计程序为什么错啦?

--将1khz的标准信号std_clk分成周期为2秒的占空比为50%的CE输出LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY freq_division_1 IS        PORT(std_clk,reset:IN STD_LOGIC;            &nb ...…

查看全部问答>

选型

本帖最后由 dontium 于 2015-1-23 13:35 编辑 现愈做10路AD采集,40路PWM输出的应用。采用 DSP+FPGA的方案是否可行。能否推荐一下其他的方案。谢谢。 …

查看全部问答>

有没有人用过这个芯片啊,m62429

用stm32怎样去用这个芯片,求指导…

查看全部问答>

求认同!示波器探头使用注意事项

有大牛总结示波器探头注意事项,, 经常会遇到一些朋友和我抱怨示波器的探头怎么这么爱坏啊?有没有什么结实一点的,好一点的探头啊?不是道大家是否也又遇到平时探头经常损坏的问题?其实,探头本身是属于耗材的,一般探头的损坏来源于两个地方: ...…

查看全部问答>