单片机第六课:单片机的内外部结构分析(四)

上传人:宝路 文档编号:5025451 上传时间:2017-08-27 格式:DOC 页数:3 大小:30KB
返回 下载 相关 举报
单片机第六课:单片机的内外部结构分析(四)_第1页
第1页 / 共3页
单片机第六课:单片机的内外部结构分析(四)_第2页
第2页 / 共3页
单片机第六课:单片机的内外部结构分析(四)_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机第六课:单片机的内外部结构分析(四)》由会员分享,可在线阅读,更多相关《单片机第六课:单片机的内外部结构分析(四)(3页珍藏版)》请在金锄头文库上搜索。

1、单片机第六课:单片机的内外部结构分析(四)1. 第三个实验上两次我们做过两个实验,都是让 P1.0 这个引脚使灯亮,我们可以设想:既然 P1.0 可以让灯亮,那么其它的引脚可不可以呢?看一下图 1,它是 8031 单片机引脚的说明,在 P1.0 旁边有P1.1,P1.2.P1.7,它们是否都可以让灯亮呢?除了以 P1 开头的外,还有以 P0,P2,P3 开头的,数一下,一共是 32 个引脚,前面我们以学过 7 个引脚,加上这 32 个这 39 个了。它们都以P 字开头,只是后面的数字不一样,它们是否有什么联系呢?它们能不能都让灯亮呢?在我们的实验板上,除了 P10 之外,还有 P11P17 都

2、与 LED 相连,下面让我们来做一个实验,程序如下:MAIN: MOV P1,#0FFHLCALL DELAYMOV P1,#00HLCALL DELAYLJMP MAINDELAY:MOV R7,#250D1: MOV R6,#250D2: DJNZ R6,D2DJNZ R7,D1RETEND将这段程序转为机器码,用编程器写入芯片中,结果如何?通电以后我们可以看到 8 只 LED 全部在闪动。因此,P10P17 是全部可以点亮灯的。事实上,凡以 P 开头的这 32 个引脚都是可以点亮灯的,也就是说:这 32 个引脚都可以作为输出使用,如果不用来点亮 LED,可以用来控制继电器,可以用来控制其

3、它的执行机构。程序分析:这段程序和前面做过的程序比较,只有两处不一样:第一句:原来是 SETB P1.0,现在改为 MOV P1,#0FFH,第三句:原来是 CLR P1.0,现在改为 MOV P1.0,#00H。从中可以看出,P1 是 P1.0P1.7 的全体的代表,一个 P1 就表示了所有的这八个管脚了。当然用的指令也不一样了,是用 MOV 指令。为什么用这条指令?看图 2,我们把 P1 作为一个整体,就把它当作是一个存储器的单元,对一个单元送进一个数可以用 MOV 指令。二、第四个实验除了可以作为输出外,这 32 个引脚还可以做什么呢?下面再来做一个实验,程序如下:MAIN: MOV P

4、3,#0FFHLOOP: MOV A,P3MOV P1,ALJMP LOOP先看一下实验的结果:所有灯全部不亮,然后我按下一个按钮,第()个灯亮了,再按下另一个按钮,第()个灯亮了,松开按钮灯就灭了。从这个实验现象结合电路来分析一下程序。从硬件电路的连线可以看出,有四个按钮被接入到 P3 口的 P32,P33,P34,P35。第一条指令的用途我们可以猜到:使 P3 口全部为高电平。第二条指令是 MOV A,P3,其中 MOV 已经见,是送数的意思,这条指令的意思就是将 P3 口的数送到 A 中去,我们可以把 A 当成是一个中间单元(看图 3),第三句话是将 A 中的数又送到 P1 口去,第四句

5、话是循环,就是不断地重复这个过程,这我们已见过。当我们按下第一个按钮时,第(3)只灯亮了,所以 P12 口应当输出是低电平,为什么 P12 口会输出低电平呢?我们看一下有什么被送到了 P1 口,只有从 P3 口进来的数送到 A,又被送到了 P1 口,所以,肯定是 P3 口进来的数使得 P12 位输出电平的。P3 口的 P32位的按钮被按下,使得 P32 位的电平为低,通过程序,又使 P12 口输出低电平,所以 P3 口起来了一个输入的作用。验证:按第二、三、四个按钮,同时按下 2 个、3 个、4 个按钮都可以得到同样的结论,所以 P3 口确实起到了输入作用,这样,我们可以看到,以 P 字开头的

6、管脚,不仅可以用作输出,还可以用作输入,其它的管脚是否可以呢?是的,都可以。这 32 个引脚就称之为并行口,下面我们就对并行口的结构作一个分析,看一下它是怎样实现输入和输出的。3. 并行口结构分析:1、输出结构先看 P1 口的一位的结构示意图(只画出了输出部份):从图中可以看出,开关的打开和合上代表了引脚输出的高和低,如果开关合上了,则引脚输出就是低,如果开关打开了,则输出高电平,这个开关是由一根线来控制的,这根数据总线是出自于 CPU,让我们回想一下,数据总线是一根大家公用的线,很多的器件和它连在一起,在不同的时候,不同的器件当然需要不同的信号,如某一时刻我们让这个引脚输出高电平,并要求保持

7、若干时间,在这段时间里,计算机当然在忙个不停,在与其它器件进行联络,这根控制线上的电平未必能保持原来的值不变,输出就会发生变化了。怎么解决这个问题呢?我们在存储器一节中学过,存储器中是可以存放电荷的,我们不妨也加一个小的存储器的单元,并在它的前面加一个开关,要让这一位输出时,就把开关打开,信号就进入存储器的单元,然后马上关闭开关,这样这一位的状态就被保存下来,直到下一次命令让它把开关再打开为止。这样就能使这一位的状态与别的器件无关了,这么一个小单元,我们给它一个很形象的名字,称之为“锁存器”。2、输入结构这是并行口的一位的输出结构示意图,再看,除了输出之外,还有两根线,一根从外部引脚接入,另一

8、根从锁存器的输出接出,分别标明读引脚和读锁存器。这两根线是用于从外部接收信号的,为什么要两根呢?原来,在 51 单片机中输入有两种方式,分别称为读引脚和读锁存器,第一种方式是将引脚作为输入,那是真正地从外部引脚读进输入的值,第二种方式是该引脚处于输出状态时,有时需要改变这一位的状态,则并不需要真正地读引脚状态,而只是读入锁存器的状态,然后作某种变换后再输出。请注意输入结构图,如果将这一根引线作为输入口使用,我们并不能保证在任何时刻都能得到正确的结果(为什么?)参考图 2 输入示意图。接在外部的开关如果打开,则应当是输入 1,而如果闭合开关,则输入 0,但是,如果单片机内部的开关是闭合的,那么不管外部的开关是开还是闭,单片机接受到的数据都是 0。可见,要让这一端口作为输入使用,要先做一个准备工作,就是先让内部的开关断开,也就是让端口输出1才行。正因为要先做这么一个准备工作,所以我们称之为“准双向 I/O 口”。以上是 P1 口的一位的结构,P1 口其它各位的结构与之相同,而其它三个口:P0、P2、P3 则除入作为输入输出口之外还有其它用途,所以结构要稍复杂一些,但其用于输入、输出的结构是相同的。看图()。对我们来说,这些附加的功能不必由我们来控制,所以我们就不去关心它了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号