资料介绍
单片机资料
上两次我们做过两个实验,都是让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都与LED相连,下面让我们来
做一个实验,程序如下:
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只L
ED全部在闪动。因此,P10P17是全部能点亮灯的。事实上,凡以P开头的这32个
管脚都是能点亮灯的,也就是说:这32个管脚都能作为输出使用,如果不用来点亮LED,
能用来控制继电器,能用来控制其它的执行机构。
程序分析:这段程序和前面做过的程序比较,只有两处不一样:第一句:原来是SETB
P1.0,现在改为MOV P1,#0FFH,第三句:原来是CLR P1.0,现在改为MOV
P1.0,#00H。从中能看出,P1是P1.0P1.7的全体的代表,一个P1就表示了所有
的这八个管脚了。当然用的指令也不一样了,是用MOV指令。为什么用这条指令?看图2
,我们把P1作为一个整体,就把它当作是一个存储器的单元,对一个单元送进一个数能
用MOV指令。
二、第