首页- 新闻中心- 正文

芯片解密知识:单片机并行口结构

来源:芯片解密-龙芯世纪   时间:2010-03-18   阅读:1581

过去两次我们做了两个实验的P1.0引脚,使之灯,我们可以想像:由于P1.0使灯,那么其他的脚不能?看一看图1,这是8031微控制器的P1.0旁边的P1.1,P1.2 ....引脚描述研究· 7,他们是否能够清淡?除了小一开始,那里P0,小二,开始小三,一个32在我们面前针的总数教训七针,再加上32的39。他们都一语的P,但数字背后的不一样,他们是否有联系?他们不能都给予清淡?在我们的实验板上,除了第10页,与LED连接到11页17页有,下面让我们来做一个实验,程序如下:

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

该计划将被转换为机器代码,用微控制器编程人员编写的结果?电力的未来,我们将能够看到8所有LED闪烁。因此,第10页17页都能够指向任何光线。事实上,任何使用上的32针开始P是能够指出照明,这意味着:这32针,可作为输出使用的,如果不是灯LED,可用于控制继电器,可用于控制其他执行机构。

程序分析:这段程序和前面做过的程序比较,只有两处不一样:第一句:原来是SETB P1.0,现在改为MOV P1,#0FFH,第三句:原来是CLR P1.0,现在改为MOV P1.0,#00H。从中能看出,P1是P1.0��P1.7的全体的代表,一个P1就表示了所有的这八个管脚了。当然用的指令也不一样了,是用MOV指令。为什么用这条指令?看图2,我们把P1作为一个整体,就把它当作是一个存储器的单元,对一个单元送进一个数能用MOV指令。

二、第四个实验
除了能作为输出外,这32个管脚还能做什么呢?下面再来做一个单片机实验,源程序如下:
MAIN: MOV P3,#0FFH
LOOP: MOV A,P3
MOV P1,A
LJMP LOOP

先看一下这个实验的结果:所有灯全部不亮,然后我按下一个按钮,第()个灯亮了,再按下另一个按钮,第()个灯亮了,松开按钮灯就灭了。从这个实验现象结合电路来分析一下程序。

从硬件电路的连线能看出,有四个按钮被接入到P3口的P32,P33,P34,P35。第一条指令的用途我们能猜到:使P3口全部为高电平。第二条指令是MOV A,P3,其中 MOV已经见,是送数的意思,这条指令的意思就是将P3口的数送到A中去,我们能把A当成是一个中间单元(看图3),第三句话是将A中的数又送到P1口去,第四句话是循环,就是持续地重复这个过程,这我们已见过。当我们按下第一个按钮时,第(3)只灯亮了,所以P12口应当输出是低电平,为什么P12口会输出低电平呢?我们看一下有什么被送到了P1口,只有从P3口进来的数送到A,又被送到了P1口,所以,肯定是P3口进来的数使得P12位输出电平的。P3口的P32位的按钮被按下,使得P32位的电平为低,通过程序,又使P12口输出低电平,所以P3口起来了一个输入的作用。验证:按第二、三、四个按钮,同时按下2个、3个、4个按钮都能得到同样的结论,所以P3口确实起到了输入作用,这样,我们能看到,以P字开头的管脚,不仅能用作输出,还能用作输入,其它的管脚是否能呢?是的,都能。这32个管脚就称之为并行口,下面我们就对并行口的结构作一个分析,看一下它是怎样实现输入和输出的。

并行口结构分析:

1、输出结构
先看P1口的一位的结构示意图(只画出了输出部份):从图中能看出,开关的打开和合上代表了管脚输出的高和低,如果开关合上了,则管脚输出就是低,如果开关打开了,则输出高电平,这个开关是由一根线来控制的,这根数据总线是出自于CPU,让我们回想一下,数据总线是一根大家公用的线,很多的器件和它连在一起,在不一样的时候,不一样的器件当然需要不一样的信号,如某一时刻我们让这个管脚输出高电平,并要求保持若干时间,在这段时间里,计算机当然在忙个不停,在与其它器件进行联络,这根控制线上的电平未必能保持原来的值不变,输出就会发生变化了。怎么解决这个问题呢?我们在存储器一节中学过,存储器中是能存放电荷的,我们不妨也加一个小的存储器的单元,并在它的前面加一个开关,要让这一位输出时,就把开关打开,信号就进入存储器的单元,然后马上关闭开关,这样这一位的状态就被保存下来,直到下一次命令让它把开关再打开为止。这样就能使这一位的状态与别的器件无关了,这么一个小单元,我们给它一个很形象的名字,称之为“锁存器”。

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

请注意,输入结构图,使作为输入要使用的端口引脚,我们不能保证在任何时候能够得到正确的结果(为什么?)参见图2输入图。连接到一个外部开关,一旦打开,应该是进入一个,如果关闭开关,然后输入0,但如果MCU的内部开关闭合,则不论外部开关打开或关闭,单芯片接收的数据为0。可以看出,以作为一种投入使用的港口,应先一'的筹备工作',就是让内部开关关闭,它是使端口输出'1'才兴。正因为如此,应首先准备工作,所以我们称之为“准双向I / O端口。”

这是一个结构,小口,在同其他成员的结构小港口,而其他3个端口:P0,小二,小三,除非作为输入和输出端口,除了收入,还有其他用途,因此,结构应比较复杂一些,但对于输入和输出结构是一样的。插件()。对我们来说,这些额外的功能不必由我们来控制,所以我们不来照顾它。