资源描述
第四章DSP输入输出编程,4.1数字I/O端口概述,数字IO端口的英文全称为GeneralPurposeDigitalI/O,简写为GPIO,也称数字IO,是LF2407A与外部设备联系的接口。2407A有41个数字I/O口,其中绝大多数具有另一功能,其对应外部引脚是基本功能和一般I/O复用引脚。TI公司的技术资料中把对应的片内外设的功能称为“基本功能”,而数字I/O口相对于“基本功能”成为“第二功能”(SecondaryFunction)。,I/O空间与数字I/O端口有什么联系,1.I/O空间与数字I/O端口没有任何的联系,是不同的两个事物。它们之间只有一个共同点,就是都可以与外部设备发生联系,都用于与外部设备发生关系。2.它们之间的区别在于I/O空间是通过16位的地址总线和16位的数据总线以及IS与外部设备相联系,通过汇编语句IN,OUT读写I/O空间中某一地址上的数,这个数是一个16为的二进制数;而数字I/O端口是片内外设模块之一,与定时器这样的片内外设功能等同,这一数字输入/输出(I/O)端口通过对片内控制寄存器进行读、写,以对数字I/O端口进行操作。,数字IO端口结构图,图中可以看出,“引脚”既可以作为基本功能使用,也可以作为数字I/O口使用。其选择功能由“MUX控制位”(即开关控制位)完成。这里,该控制位仅是一个二进制数字位MCRx.n,当MCRx.n=1时,选择基本功能,当MCRx.n=0时,选择数字I/O口功能。,选择数字I/O口功能后,由“I/O端口方向位”选定该端口是输入,还是输出。当值为0时,选择输入功能;当值为1时,选择输出功能。“I/O端口数据位”时数字I/O口的数据位,当数字口作输入使用时,从该位读取数据;当数字端口作输出使用时,向该位写数据。,I/O口复用控制寄存器(MCRx):用来控制选择I/O引脚作为基本功能或一般I/O引脚功能。数据和方向控制寄存器(PxDATDIR):当I/O引脚作为一般I/O引脚功能时,用数据和方向控制寄存器可控制数据和I/O引脚的数据方向,这些寄存器直接和I/O引脚相连。,数字I/O寄存器,表4-1数字数字I/O模块控制寄存器地址,I/O端口复用控制寄存器A的配置(MCRA)地址7090h,I/O口复用控制寄存器B(MCRB地址7092h),I/O端口复用控制寄存器C的配置(MCRC地址7094h),I/O口数据和方向寄存器,TMS320LF2407系列总共有6个数据和方向控制寄存器(PxDATADIR),当I/O口用作一般I/O引脚功能时,用数据和方向控制寄存器,可控制数据和到双向I/O引脚的数据方向。这些寄存器直接和双向I/O引脚相连。当I/O用作基本功能时,这些寄存器的设置对相应的引脚无影响。,6个数据和方向控制寄存器(PXDATDIR),包含两个功能位。(1)I/O方向位:如果引脚被选择了通用I/O,方向位决定了是输入(0)还是输出(1)。(2)I/O数据位:如果引脚被选择了通用I/O,当方向选为输入,则可从该位上读取数据,当方向选为输出,则可向该位写入数据。,数据和方向控制寄存器,如I/O端口被选择作通用I/O引脚,数据和方向控制寄存器可以控制数据和I/O引脚的数据方向。如I/O端口被选择作外设功能时,数据和方向控制寄存器的设置对相应的引脚无影响。(1)I/O端口A数据和方向控制寄存器(PADATDIR),地址:7098h位15-8:AnDIRPA7-PA0的数据方向0:相应引脚配置为输入1:相应引脚配置为输出,位7-0:IOPA7-IOPA0如果AnDIR=0,引脚配置为输入0相应引脚的电平读为低电平1相应引脚的电平读为高电平如果AnDIR=1,引脚配置为输出0设置相应引脚,使其输出信号为低电平时有效1设置相应引脚,使其输出信号为高电平时有效如果I/O端口用作通用I/O,则必须对数据和方向寄存器进行初始化设置,为输入还是输出。,端口A数据和方向控制寄存器A(PADATADIR)地址7098h,端口B数据和方向控制寄存器(PBDATDIR)地址709Ah,端口C数据和方向控制寄存器(PCDATDIR)地址709Ch,端口D数据和方向控制寄存器(PDDATDIR)地址709Eh,端口E数据和方向控制寄存器(PEDATDIR)地址7094h,端口F数据和方向控制寄存器(PFDATDIR)地址7096h,实现LED显示管的循环显示:先第1个LED亮,然后是第1、2个LED亮,其次是第1、2、3个LED亮,依此类推,直到8个LED显示管全亮,8个LED显示管全亮后,接着是第1至7个LED显示管亮,然后是第1至6个LED显示管亮,第1个LED显示管亮。如此循环显示。,实例,电路图,74HC273用于驱动8个发光二极管,CLR接TMS320LF2407的复位引脚,使得复位时74HC273为低电平,不点亮发光二极管。IOPF2接CLK作为74HC273的控制信号,用端口IOPB来控制发光二极管的亮灭。,用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮之后,通过改变端口的数据输出,达到点亮不同的LED显示管的目的。对应的端口的二进制值应该为:00000001000000110000011100001111000111110011111101111111111111110111111100111111000111110000111100000111000000110000000100000011如此完成一个循环。,
展开阅读全文