文档详情

《数字输入输出》ppt课件

tia****nde
实名认证
店铺
PPT
345.51KB
约39页
文档ID:67224415
《数字输入输出》ppt课件_第1页
1/39

1,第6章 数字输入输出I/O,41只I/O引脚,大部分是复用的 DSP复位时,大部分I/O引脚会被上拉为数字输入的模式 数字I/O脚有专用和复用之分其功能可通过9个16位控 制寄存器来控制 控制寄存器分为两类: (1)I/O复用控制寄存器(MCRx),用来选择I/O脚是片 内外设功能还是通用I/O功能; (2)数据方向控制寄存器(PxDATDIR):用来控制双向,2,I/O脚的数据传送方向 注意:上述数字I/O脚是通过控制寄存器(映射在数 据存储器空间)来控制的,与器件的I/O空间无任何 关系I/O复用引脚的结构见图6-1由图可看出复用I/O引脚 如何实现来引脚功能选择和数据 传送方向选择的6.1 数字I/O寄存器简介,3,4,表6-1(P65)列出了与I/O模块有关的寄存器,地址为:7090h-709Fh(映射在数据存储器间) 表6-1 LF240x/240xA 的数字I/O控制寄存器 地址 寄存器 功能 7090h MCRA I/O复用控制寄存器A 7092h MCRB I/O复用控制寄存器B,5,地址 寄存器 功能 7094h MCRC I/O复用控制寄存器C 7098h PADATDIR I/O端口A数据和方向寄存器 709Ah PBDATDIR I/O端口B数据和方向寄存器 709Ch PCDATDIR I/O端口C数据和方向寄存器 709Eh PDDATDIR I/O端口D数据和方向寄存器 7095h PEDATDIR I/O端口E数据和方向寄存器 7096h PFDATDIR I/O端口F数据和方向寄存器,6,保留位是不可操作的,读出为0,写入对它无影响。

注意:当复用I/O脚无论是被配置为外设功能还是为 通用I/O时,引脚的状态都可通过读I/O数据寄存器来 获取7,(2) I/O端口复用控制寄存器B,映射地址:7092h, 其配置见表 6-3(P66)3) I/O端口复用控制寄存器C(MCRC),映射地址: 7094h,其配置见表 6-4(P67)6.2 I/O 端口复用控制寄存器,LF240x/240xA具有3个I/O端口复用控制寄存器: MCRA、MCRB、MCRC1) I/O端口复用控制寄存器A (MCRA),映射址: 7090h,其配置见表 6-2(P65)8,LF2407/2407A有6个数据和方向控制寄存器 (PxDATDIR), 这些数据和方向控制寄存器包含控制 引脚的两个功能位 • I/O方向位 如果引脚被选择通用I/O,方向位决定了该引脚是输入(0)还是输出(1) • I/O数据位 如果引脚被选择了通用I/O,当方向选为输入,则可从该位上读取数据,当方向选为输出,则可向该位写入数据 6.3 数据和方向控制寄存器,9,当I/O端口被选择作通用I/O引脚,数据和方向控制寄 存器可以控制数据和I/O引脚的数据方向 如果I/O端口被选择作外设功能时,数据和方向控制寄 存器的设置对相应的引脚无影响。

下面详细介绍数 据和方向控制寄存器 (1)I/O端口A数据和方向控制寄存器(PADATDIR), 映射地址:7098h,格式如下 位15-8:AnDIR PA7-PA0的数据方向 0-相应引脚配置为输入 1-相应引脚配置为输出,10,位7-0:IOPAn 如果AnDIR=0,引脚配置为输入: 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平 如果AnDIR=1,引脚配置为输出: 0-设置相应引脚,使其输出信号为低电平 1-设置相应引脚,使其输出信号为高电平 当引脚选择为通用I/O功能时,那么I/O端口A数据和方向控制寄存器(PADATDIR)的数据位与对应的I/O引脚如表6.5(P69)所示11,表6.5 寄存器PADATDIR的数据位与对应的I/O引脚 如果I/O端口用作通用I/O,则必须对数据和方向寄存器进行初始化设置,规定其为输入端口还是输出端口12,(2) I/O端口B数据和方向控制寄存器(PBDATDIR), 映射地址:709Ah I/O端口B数据和方向控制寄存器的格式如下 位15-8:BnDIR PB7-PB0的数据方向 0-相应引脚配置为输入 1-相应引脚配置为输出 位7-0:IOPBn 如果BnDIR=0,引脚配置为输入方式。

0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平,13,如果BnDIR=1,引脚配置为输出 0-设置相应引脚,使其输出信号为低电平时有 效 1-设置相应引脚,使其输出信号为高电平时有 效 当引脚选择为通用I/O功能时,那么I/O端口B数据和方 向控制寄存器(PBDATDIR)的数据位与对应的I/O引 脚如表6.6所示14,(3) I/O端口C数据和方向控制寄存器(PCDATDIR), 映射地址:709Ch I/O端口C数据和方向控制寄存器的格式如下: 位15-8:CnDIR PC7-PC0的数据方向 0-相应引脚配置为输入 1-相应引脚配置为输出 位7-0:IOPC7-IOPC0 如果CnDIR=0,引脚配置为输入 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平,15,如果BnDIR=1,引脚配置为输出 0-设置相应引脚,使其输出信号为低电平 1-设置相应引脚,使其输出信号为高电平 当引脚选择为通用I/O功能时,那么I/O端口C数据和方 向控制寄存器(PCDATDIR)的数据位与对应的I/O引 脚如表6.7所示4) I/O端口D数据和方向控制寄存器(PDDATDIR), 映射地址:709Eh,I/O端口D数据和方向控制寄存器的格式如下。

只有一位,16,位15-9:保留位 位8: D0DIR 0-相应引脚配置为输入 1-相应引脚配置为输出 位7-1:保留 位0: IOPD0 如果D0DIR=0,引脚配置为输入 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平,17,如果D0DIR=1,引脚配置为输出 0-设置相应引脚,使其输出信号为低电平时有效 1-设置相应引脚,使其输出信号为高电平时有效 当引脚选择为通用I/O功能时,那么I/O端口D数据和方 向控制寄存器(PDDATDIR)的数据位与对应的I/O引 脚如表6.8所示5) I/O端口E数据和方向控制寄存器(PEDATDIR), 地址:7095h I/O端口E数据和方向控制寄存器的格式如下:,18,位15-8:EnDIR 0-相应引脚配置为输入 1-相应引脚配置为输出 位7-0:IOPEn 如果EnDIR=0,引脚配置为输入 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平 如果EnDIR=1,引脚配置为输出 0-设置相应引脚,使其输出信号为低电平 时有效,19,1-设置相应引脚,使其输出信号为高电平时有效 当引脚选择为通用I/O功能时,那么I/O端口E数据和方 向控制寄存器(PEDATDIR)的数据位与对应的I/O引 脚如表6.9所示。

6) I/O端口F数据和方向控制寄存器(PFDATDIR), 映射地址:7096h I/O端口E数据和方向控制寄存器的格式如下 位15:保留位 位14-8:EnDIR 0-相应引脚配置为输入 1-相应引脚配置为输出,包含7位,20,位7-0:IOPFn 如果FnDIR=0,引脚配置为输入 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平 如果FnDIR=1,引脚配置为输出 0-设置相应引脚,使输出为低电平有效 1-设置相应引脚,使输出为高电平有效 当引脚选择为通用I/O功能时,那么I/O端口E数据和方 向控制,21,寄存器(PFDATDIR)的数据位与对应的I/O引脚如表 6.10 所示在使用数字I/O之前,需用软件对数字I/O进行配置,选择I/O引脚的功能,且设置I/O引脚的数据方向,然后才可以读取数据或输出数据 下面为一个基本的数字I/O配置实例的汇编源程序读者可参照此程序,来配置其它的任何数目的数字I/O6.4 数字I/O端口配置实例,22,MCRA .set7090h ;可将这些映射语句放于240x.h文件中 PADATDIR .set7098h ;可将这些映射语句放于240x.h文件中 PBDATDIR .set709Ah;可将这些映射语句放于240x.h文件中 LDP #0E1h ;指向相应的数据页面 LACC #0h ;设置MCRA所有位均为0 SACL MCRA ;将引脚IOPA0-7和IOPB0-7配置为I/O引脚 SACL PADATDIR ;引脚IOPA0-7配置为输入,低电平有效 LACC #0F00h ;引脚IOPB7-IOPB4配置为输入 SACL PBDATDIR ;引脚IOPB3-IOPB0配置为输出 LACC PBDATDIR ;读取引脚IOPB7-IOPB4的输入状态 AND #00F0h ;A为输入状态,23,上面为一个数字I/O的实际配置程序,对于每个寄存器 的定义可以参考前面的介绍,为了读者使用方便, 表6.11(P74)列出了所有数字I/O定义的参考表。

通常可以配置数字I/O为输入或输出,以便于与外设进 行信息交换本例为使用数字I/O端口来查询外界信 号输入情况,硬件接口电路如图6.11所示:,6.5.1 使用数字I/O查询输入信号,6.5 数字I/O的应用实例,24,25,为抗干扰,外界输入信号需要加光耦隔离,以便获得 符合LF2407/2407A要求的信号本例使用 PWM3/IOPB0、PWM4/IOPB1、PWM5/IOPB2和 PWM6/IOPB3 I/O初始化需设置引脚为I/O功能,且需要选择信号方 向下面为读取输入信号的例程 ======================= * 文件名:INPUT.asm * .includ “240xA.h” ;变量和寄存器定义 .includ “vector.h” ;中断向量表定义,请参考4.9节,26,;――――――――――――――――――――――――― ;B2块的变量定义 ;――――――――――――――――――――――――― .bss INDATA,1 ;I/O输入值判断变量 .bss GPR0,1 ;通用目标寄存器 ;======================== ;主代码 ;======================== .text NOP START: SPLK #000Eh,IMR ;屏蔽除INT2-4以外的其它中断 LACC IFR ;读中断标志 SACL IFR ;清除中断标志,27,CLRC CNF ;配置块B0到数据存储空间 LDP #00E0h ;数据页指向7000h~707Fh SPLK #06Fh,WDCR ;如VCCP=5V,则禁止看门狗 LDP #SCSR17 SPLK #0000,SCSR1 ; LDP #00E1h ;数据页指向7080h~70FFh SPLK #0F00h,MCRA ;配置I/O,选择IOPB0~IOPB3 SPLK #0000h,PBDATDIR ;配置为输入模式 LDP #0 SPLK #0,GPR0 ;为程序存储器空间设置 ; 0~7个等待状态 OUT GPR0,WSGR,28,KICK_DOG ;复位看门狗 CLRC INTM ;使能DSP中断 ST_LOOP1 LDP #00E1h LACC PBDATDIR LDP #INDATA SACL INDATA BIT INDATA,BIT0 ; 判断IOPB0是否有输入信号如 ; 有则跳到ST_LOOP2 BCND ST_LOOP2,TC B 。

下载提示
相似文档
正为您匹配相似的精品文档