设计与开发

单片机p3口第二功能 80C51单片机的IO口(五) – P3口内部结构与工作原理

小编 2024-10-10 设计与开发 23 0

80C51单片机的IO口(五) – P3口内部结构与工作原理

P3口的内部逻辑结构如下图所示,由1个输出锁存器、3个输入缓冲器(其中2个为三态缓冲器)、1个与非门和输出驱动电路组成。输出驱动电路与P1、P2口相同,内部有上拉电阻。

P3口的内部逻辑结构

P3口具备以下两种功能:

1. 作为通用I/O口(可字节或位寻址)

内部硬件自动将第二功能输出线W上的电平置“1”。这个时候:

当口线用作输出时,内部总线上的电平状态与输出引脚状态相同;

当口线用作输入时,先要向锁存器写入“1”,使与非门的输出为低电平,进而使MOS管T截止,引脚处于高阻状态。引脚上的数据在“读引脚”信号有效时,通过2个输入缓冲器进入内部数据总线。

从以下分析可知,P3口在用作通用I/O口时,也是准双向口。

2. 作为第二功能口(不进行字节或位寻址)

内部硬件自动将锁存器的Q端电平置“1”。P3口各引脚的第二功能定义如下:

(1) 输出

与非门对第二功能是畅通的,引脚状态与第二功能输出相同。

P3.1 :TXD(串行口输出)

P3.6 :WR(片外数据存储器“写”选通控制输出)

P3.7 :RD(片外数据存储器“读”选通控制输出)

(2) 输入

锁存器的Q端电平和第二功能输出线W电平都被内存硬件自动置“1”。与非门输出为低电平,进而使MOS管T截止,引脚处于高阻状态。引脚信号经输入缓冲器(非三态缓冲器)进入内部第二功能输入线。

P3.0 :RXD(串行口输入)

P3.2 :INT0(外部中断0输入)

P3.3 :INT1(外部中断1输入)

P3.4 :T0(定时器0的外部输入)

P3.5 :T1(定时器1的外部输入)

P3口第二功能的具体用法将在后期相关功能学习时进行介绍。请保持关注。

初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解

初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间 要有个切换的过程,或者说要有一条指令,事实是各端口的第二功能完全是自动的,不需要指令来转换。

如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口 时,它们换作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从 P3. 或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能’而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条S ETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么做,因为这通常这会导致系统死机。   

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦///

堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且 堆栈有特定的数据传输指令,即PUSH和POP,有一个特殊的专为其服务的单元,即堆栈指针SP。 每当执一次 PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值基础上)自动减1。

由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP值,就可以把堆栈设置在规定的内存单元中,如在程序开始时用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元 始往后。08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成混乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情下编程者不会把它当成普通内存用了。

对嵌入式系统工程师及嵌入式硬件工程师而言,2020年将是振奋人心的一年。随着物联网应用的普及,MCU市场将再次繁荣。

因此,市场上对嵌入式系统工程师人才的需求也将出现新高。这些都是底层编程领域中即将出现的趋势。

先搞清楚什么是嵌入式

我们已经习惯了使用强大的计算能力来处理机器学习,那么嵌入式是这样的吗?

一般的机器学习工程师很少考虑计算资源。而且他们也很少关心内存的使用情况。为什么?因为这些硬件都很便宜,甚至是你的手机都拥有相当不错的CPU和大量内存。

你已经很久没有过聚会拍照时发现自己手机上的存储不够的情况了吧?想象一下,你使用的是只有256KB闪存的TrueTouch感应控制器。

没错,只有256KB。而且由于固件占用了一部分, 因此你不能完全使用这点存储。算下来,你能使用的也就是大约100KB。回头再看看你的上一个模型的大小。可能比这个大多了。

对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,私信我“林老师”就可以拿~点击打开我的头像就能领取

编程就是编写程序

还记得前几章我们动手造了的那个二以内加法计算器吗?计算器也是计算机的一种。我们可以把计算器理解为一个拥有多个输入和多个输出的盒子

因此,其实对于一台计算机而言,鼠标键盘甚至屏幕都不是必需品,我们完全可以把输入端通上电,然后每一个输入端都加上一个开关,而对开关的操作就是修改处理器的输入,而输出端完全可以使用小灯来进行显示。(当然上图忽略了一个重要的信号,时钟信号。为了保证每一条指令有序的执行,我们需要一个额外的开关,当且仅当开关开启或闭合的瞬间,CPU才会执行一条指令)

在上世纪五十年代,计算机是如此的简陋,那时候的人们采用手工方式来输入,主要的人机交互方式是纸带

比如如果的输入是00010000,那么对应的纸带的一列就应该是○○○●○○○○

然后把制作好的纸带放入计算机,计算机就会把这一条指令转化成电信号输入进CPU,CPU运算之后会在输出端显示结果(当然有的指令是不会显示结果的)

可以说那时候的计算机科学家真的是在“编织”程序了

在这个过程中,计算机科学家们把想要让计算机完成的工作转变成一条条指令,然后通过“穿孔纸带”这一人机交互方式,计算机就能正确的执行任务了。因此简化的“编程”模型如下

上图把一个程序执行的过程展示了出来,这张图片中有两个箭头,它标志着两个步骤。计算机科学家们把想要完成的任务转化成计算机能够执行的代码,然后计算机根据这些代码执行任务。计算机内部所做的事我们会在后面几张详谈。但是现在亟待解决的问题是前面的步骤,如何把具体的任务转换成计算机所能理解的指令

幸运的是,今天我们不必像最早的计算机科学家们一样手工的进行每一步操作。人们发明了一种新的工具—高级语言。我们直接把想要做的任务用简单易懂的高级语言描述出来,然后一种额外的程序“编译器”就会自动的把它们转化为计算机能理解的一条一条指令,而在高级语言中,最经典最出名的高级语言就是C语言了

请注意,虽然在这里先介绍了C语言。但是从C语言到程序完成的过程,还是有很多步骤的。但是优先介绍C语言仍然是一种最佳的帮助大家理解计算机运行过程的方式。至于如何从C语言到达真正的完整的程序,是我们整个系列希望给大家展示的内容好了。

这期分享就到这里啦,觉得对屏幕前的你有帮助的麻烦一键三连,点赞收藏加关注哦,有问题的朋友也可以在评论区评论,或者私信我

相关问答

单片机p3口第二功能 是什么(简答题)?

P1口和P2口以及P3口都可以做普通的I/O使用!其中P3口具有第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外....

单片机 我的 p3口 2,3,4接了三个led,想要实现三个灯隔一秒轮流...

[最佳回答]ORG0000HORG0030HLOOP:MOVP3,#11111011BLJMPDELAYMOVP3,#11110111BLJMPDELAYMOVP3,#11101111B...

单片机 IO 第二功能 是什么??-ZOL问答

单片机IO口第二功能是:P0口的第二功能是数据/地址总线。P2口的第二功能是地址总线P3口的第二功能是控制总线,具体是:P3.0--RXDP3.1--TXDP3.2--外部中断0...

单片机 中的双向 的主要特征有?

单片机中的双向口是一种具有输入和输出功能的通用口线。它的主要特征包括:1.可以通过编程设置为输入或输出模式;2.可以读取外部信号或向外部设备发送信号;3...

51 单片机 p0p1p2 p3口 ,到底有啥区别啊,他们的基本 功能 有啥?

单片机是一种用于IC芯片、集成电路编程器,一般用的机器语言或汇编语言。51单片机是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、...

三、简答题1、MCS51系列 单片机 共有几个并行I/O ,分别用什么...

[最佳回答]MCS-51单片机有4个双向的8位I/O口的P0~P3口为三态双向口P1,P2,P3口为准双向口(用作输入时,口线被拉成高电平,所以称为准双向口).51单片机的4个口...

51 单片机p3 .4 作用?

第一种做普通IO口(和P2,P1口一样)第二种分别如下P3.0串行口输入RXDP3.1串行口输出TXDP3.2外部中断0输入INT0P3.3外部中断1输入INT1P3.4定时/计数器0的外...

单片机 同一端口(例如 P3 .0)的不同 功能 是怎么实现?

可以用特定的语句来实现如:利用KEIL软件P3.0为RXD,即为串行接收,它可以串行接收也可当I/O口,例如I/O口程序:sbitbit_a=P3^0;可对bit_a=1;接受位程序....

用C语言写一个程序,使 单片机 P3口 的高四位LED和低四位LED轮流点亮?

你要实现的是高4位或低4位是4个一起亮?实际上是P3=0XF7,延时,P3=0X7F,延时。。。只有第4、8两个LED轮流点亮。因为亮的两灯的前3条执行得太快,根本看不出...

三、简答题1、MCS51系列 单片机 共有几个并行I/O ,分别用什么表示?简单描述每个I/O口的主要 功能 ?

MCS-51单片机有4个双向的8位I/O口的P0~P3口为三态双向口P1,P2,P3口为准双向口(用作输入时,口线被拉成高电平,所以称为准双向口)。51单片机的4个口都可...

猜你喜欢