您的位置 首页 电子

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

PIC单片机的输入和输出操作方法介绍-pic单片机是学习单片机人士必定接触的一款器件,因此大家对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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/343737.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部