单片机-引脚并行口结构讲解

在之前我们已经能够让一个灯不停地闪烁了,此时大家应该大概了解了引脚能够接受数据信息再控制设备;

实际上,在学习跟高级的程序之前,这些知识是不够的。我们理论知识远远不够!

    下面,我会结合操作给大家讲理论知识。

程序如下:

MAIN: MOV P1,#0FFH
LCALL DELAY
MOV P1,#00H
LCALL DELAY
LJMP MAIN
DELAY:MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END

我给出了一段程序,希望你不要一开始看我的讲解,你可以自己琢磨一下。

      (请你先思考)

这里只有一个新名字: #0FFH;

如果你仔细看了之前我之前的文章你会猜到#0FFH是表示高电平(1)的数字;

你也知道MOV是什么意思!

与原来的代码比较,不同是SETB P1.0,现在改为MOV P1,#0FFH,之前CLR P1.0,现在改为MOV P1.0,#00H

MOV把#0FFH传递给P1,这里能知道P1代表的是从P1.0到P1.7这八个引脚。也就是这八个引脚都是高电平;

这不是重点,重点是P1所有的引脚都是接受信息的;所以引脚有输入功能;

  现在,我把代码改成:

MAIN: MOV P3,#0FFH
LOOP: MOV A,P3
MOV P1,A
LJMP LOOP

仔细看看什么意思。

#0FFH传递给了P3,P3的值给了A,A的值给了P1。

实际上是P3的八个引脚上的高电平或者低电平影响着P1的八个引脚。

重点:引脚还有输出功能

输出功能就有输出线,  除了输出之外,还有两根线,一根从外部管脚接入,另一根从锁存器的输出接出,分别标明读管脚和读锁存器。这两根线是用于从外部接收信号的,为什么要两根呢?原来,在51单片机中输入有两种方式,分别称为‘读管脚’和‘读锁存器’,第一种方式是将管脚作为输入,那是真正地从外部管脚读进输入的值,第二种方式是该管脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读管脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。

上面的这句话是不是有点懵?

我们嵌入式开发员其实现在不比过深了解。而且这方面内容以后也会讲的;

我们主要了解怎么用,指令是什么就ok,我们操作单片机不是操作芯片,如果你想了解这方面的详细内容,私下联系我,我会把51单片机并行口及其应用PPT发给你

其实今天讲的理论内容很少,就那两个重点;

结合代码你会理解的清楚些,你会知道原因。

对于里面的原理我们是不要求深层次掌握的,有兴趣可以去学习。

下一章我们学习特殊功能寄存器,主要是理论。

这里提醒大家做好准备,下一章开始就有些难度了。有些同学可能跟不上,不过我们不需要背,记。

我们只要了解它的原理,所以语言不会很官方化。

原文地址:https://www.cnblogs.com/fire-7/p/7159287.html