PIC24FJ32的IO端口使用简介

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NOTE1-PIC24FJ32GA004系列的IO端口使用简介介绍针对PIC24FJ32GA004或相同系列单片机IO端口使用。

1、IO寄存器

TRISx:方向寄存器

PORTx:端口寄存器

LATx:锁存寄存器

ODCx:漏极输出控制寄存器

2、寄存器使用

TRISx:控制端口输入输出属性。其中某位为1,引脚输入(input);为0,引脚输出(output)。

PORTx:读PORTX,是直接读引脚上的电平状态(见图)。

写PORTX,将数值写入引脚数据锁存器(见图)。

PIC单片机引脚操作模式为“读出--修改--写入”,使用PORTX操作引脚时应注意两点,一是在单片机初始化之后的运行中尽量不改变端口输入输出方向,容易出问题,二是IO端口避免链接容性负载,此种在高速操作IO端口时会出问题,比如输出快速变化的高低电平时,每次输出都会读取一次端口寄存器数值。

LATx:读LATX,得到保存在端口数据锁存器中的值(该值为写LATX或PORTX后所得)。

写LATx,讲数值写入引脚数据锁存器,与写PORTX效果相同。

通过LATX操作端口IO,可避免上述因“读出--修改--写入”模式造成的问题。

ODCx:将引脚的相应位置1可配置引脚为漏极开路输出。

3、IO端口使用原则

(1)端口用作出入,需要直接读取外部引脚上的电平状态,使用PORTX寄存器:int V ALUE=PORTA;

(2)端口用作输出,输出高低电平,驱动芯片等使用LATX寄存器:

LATA=0XFFEE;

4、IO端口使用的位操作

可以使用P24FJ32GA004.h中定义的位操作宏定义对单片机的IO端口以及其他众多单片机寄存器进行位操作。

如:_LATB0=1; RB0输出高电平

以端口B为例,针对PIC24F系列的位操作被定义如下形式:

/* TRISB */

#define _TRISB0 TRISBbits.TRISB0

#define _TRISB1 TRISBbits.TRISB1

……

#define _TRISB15 TRISBbits.TRISB15

/* PORTB */

#define _RB0 PORTBbits.RB0

#define _RB1 PORTBbits.RB1

……

#define _RB15 PORTBbits.RB15

/* LATB */

#define _LATB0 TB0

#define _LATB1 TB1

……

#define _LATB15 TB15

/* ODCB */

#define _ODB0 ODCBbits.ODB0

#define _ODB1 ODCBbits.ODB1 ……

#define _ODB15 ODCBbits.ODB15

相关文档
最新文档