当前位置:主页 > 行业产品 >

PIC单片机的输入和输出操作方法介绍

发布时间:19-11-09 阅读:616

pic单片机是进修单片机人士必定打仗的一款器件,是以大年夜家对pic单片机或多或少具备必然懂得。而在pic单片机进修历程中,pic单片机内部硬件资本接口是必要大年夜家掌握的基础内容之一。此中,I/O更是pic单片机的实际根基操作。

I/O口单片机作为一个节制器件必定稀有据输入和输出。输入量可能是温度、压力、转速等,而输出量可能是开关量和数据,以包管受控历程在规定的范围内运行。数据的输入和输出都需经由过程单片机内部有关电路,再与引脚构成输入/输出(I/O)端口。PIC16F84单片机芯片有两个I/O端口(PROTA和PORTB)。端口A为5位口,端口B为8位口,共占用13位引脚。每个端口由一个存器(即数据存储器中的特殊功能寄存器05H、06H单元)、一个输出驱动器和输入缓冲器等组成。当把I/O口作输出时,数据可以锁存;作输进口时,数据可以缓冲。

16F84 PORTA口中的RA4是斯密特触发输入、漏极开路输出。而其它的RA口引脚都是TTL电平输入和全CMOS驱动输出。端口PORTB是一个八位双向可编程I/O口。各端口虽然也由锁存器、驱动器、缓冲器等构成,但因功能略有不合而导致电路亦存在区别。现以PORTA口的RA0 ~RA3的电路(见左图)为例,阐明其基础事情道理。

图中RA口的I/O引脚是由数据偏向位(寄存器TRISA)来定义数据流向。当TRISA寄存器的位置为“1”时,其输出驱动器(由P沟道和N沟道MOS管串接而成)呈高阻态,即两个MOS管均截止,I/O口被定义为输入。此时,数据由I/O端输入,经TTL输入缓冲器到D触发器。当履行读指令时,此D触发器使能,数据经三态门进入数据总线。

当TRISA的位置为“0”时,I/O口被定义为输出,此时输出锁存器的输出电平便是I/O口的输出电平。

读PORTA寄存器的结果便是读取I/O引脚上的电平,而写PORTA寄存器的结果是写入I/O锁存器。所有的写I/O口的操作都是一个“读入/改动/写入”的历程,即先读I/O引脚电平,然后由法度榜样改动(按要求给定一个值),再置入I/O锁存器。

PIC16F84单片机的输出可供给20mA的电流,以是它可直接驱动LED。PORTA和PORTB各个位均可分手定义为输入和输出。下面以PORTA口初始化法度榜样的实例,阐明选择I/O口的措施。

CLRF PORTA;端口A被清零BSF STATUS;状态寄存器STATUS的RPO位置为1,选BANK1。

MOVLW 0xCF ;将定向值;11001111置入W事情寄存器MOVWF TRISA;置RA(3~0)位为输入;RA 5?4位为输出;TRISA 7?6位未用在应用I/O口时应留意:

(1)当必要一个I/O口一会做输入、一会又做输出时,输出值会不确定。

(2)I/O引脚输出驱动电路为CMOS互补推挽输出。当其为输出状态时,不能与其它输出脚接成“线或”或“线与”,否则,会因电流过载烧坏单片机。

(3)当对I/O口进行写操作后不宜直接进行读操作,一样平常要求在两条继续的写、读指令间至少加入一条NOP指令。

例:MOVWF 6 ;写I/ONOP ;稳定I/O电平MOVF 6,W;读I/O5?客栈单片机履行法度榜样时,经常要履行调用子法度榜样。这样就孕育发生了一个问题:若何影象是从何处调用的子法度榜样,以便履行子法度榜样之后精确返回。此外,在法度榜样履行历程中,还可能会发生中断,转而履行中断子法度榜样,这时又若何影象从何处中断,以便返回呢?满意上述功能的措施便是“客栈”技巧。

“客栈”是一个用来保存临时数据的栈区。当主法度榜样调用子法度榜样时,单片机履行到CALL指令或发生中断时,就自动将下一条指令的地址“压栈”保存到栈区。当子法度榜样停止,单片机履行返回指令时,就自动地把栈区的内容“弹出”,作为下步指令履行的新地址。

PIC16F84单片机芯片内有一个8级13位宽(与PC同宽)的硬件客栈,此客栈既不占用法度榜样存储空间,也不占用数据存储空间。当履行一条CALL指令或一其中断被相应后,法度榜样计数器PC中的断点地址就自动被压栈(PUSH)保护,而当履行RETURN、RETLW或者RETFIE指令时,客栈中的断点地址会弹回(POP)法度榜样计数器PC中。无论是PUSH照样POP操作,都不影响PCLATH寄存器的内容。

责任编辑;zl



上一篇:梁明:张开双臂为世界经济提供更多发展机遇
下一篇:没有了