DSP入门学习之数字IO模块.ppt_第1页
DSP入门学习之数字IO模块.ppt_第2页
DSP入门学习之数字IO模块.ppt_第3页
DSP入门学习之数字IO模块.ppt_第4页
DSP入门学习之数字IO模块.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章:数字输入/输出模块(I/O),6.1数字I/O端口概述6.2数字I/O端口寄存器6.3I/O端口应用,6.1数字I/O端口概述,数字I/O脚有专用和复用之分。其功能可通过9个16位控制寄存器来控制。控制寄存器分为两类:I/O复用控制寄存器(MCRx),用来选择I/O脚是片内外设功能还是通用I/O功能;数据方向控制寄存器(PxDATDIR):用来控制双向I/O脚的数据传送方向。注意:上述数字I/O脚是通过控制寄存器(映射在数据存储器空间)来控制的,与器件的I/O空间无任何关系。LF240 x系列DSP多达41只I/O引脚,大部分是复用的。,6.2数字I/O寄存器,I/O复用引脚的结构见图6.1。由图可看出复用I/O引脚如何来实现引脚功能选择和数据传送方向选择的。,图6.1复用引脚配置图,6.2数字I/O寄存器,表6.1(P97)列出了与I/O模块有关的寄存器,地址为:7090h-709Fh注意:映射到数据存储器空间。当复用I/O脚无论是被配置为外设功能还是为通用I/O时,引脚的状态都可通过读I/O数据寄存器来获取。保留位是不可操作的,读出为0,写入对它无影响。,6.2数字I/O寄存器,表6.1数字I/O控制寄存器地址,6.2数字I/O寄存器,I/O口复用输出寄存器LF240 x/240 xA具有3个I/O端口复用控制寄存器:MCRA、MCRB、MCRC。(1)I/O端口复用控制寄存器A(MCRA),映射地址:7090h,其配置见表6.2(P97)。,6.2数字I/O寄存器,6.2数字I/O寄存器,(2)I/O端口复用控制寄存器B,映射地址:7092h,其配置见表6.3(P98)。注意:MCRB.9-MCRB.15必须配置成1,其为系统的专用引脚,用作与硬件仿真器接口(JTAG)相连,实现DSP的在线仿真功能。对其写0会引起不可预测的结果。,6.2数字I/O寄存器,6.2数字I/O寄存器,(3)I/O端口复用控制寄存器C(MCRC),映射地址:7094h,其配置见表6.4(P99)。,6.2数字I/O寄存器,6.2数字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端口被选择作外设功能时,数据和方向控制寄存器的设置对相应的引脚无影响。,6.2数字I/O寄存器,(1)端口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,则必须对数据和方向寄存器进行初始化设置,为输入还是输出。,6.2数字I/O寄存器,(2)端口B数据和方向控制寄存器(PBDATDIR),地址:709Ah位15-8:BnDIRPB7-PB0的数据方向0相应引脚配置为输入1相应引脚配置为输出位7-0:IOPBn如果BnDIR=0,引脚配置为输入方式。0相应引脚的电平读为低电平1相应引脚的电平读为高电平如果BnDIR=1,引脚配置为输出0设置相应引脚,使其输出信号为低电平时有效1设置相应引脚,使其输出信号为高电平时有效,6.2数字I/O寄存器,(3)端口C数据和方向控制寄存器(PCDATDIR),地址:709Ch位15-8:CnDIRPC7-PC0的数据方向0相应引脚配置为输入1相应引脚配置为输出位7-0:IOPCn如果CnDIR=0,引脚配置为输入方式。0相应引脚的电平读为低电平1相应引脚的电平读为高电平如果CnDIR=1,引脚配置为输出0设置相应引脚,使其输出信号为低电平时有效1设置相应引脚,使其输出信号为高电平时有效,6.2数字I/O寄存器,(4)端口D数据和方向控制寄存器(PDDATDIR),地址:709Eh位15-9:保留位8:D0DIR0相应引脚配置为输入1相应引脚配置为输出位7-1:保留位0:IOPD0如果D0DIR=0,引脚配置为输入方式。0相应引脚的电平读为低电平1相应引脚的电平读为高电平如果D0DIR=1,引脚配置为输出0设置相应引脚,使其输出信号为低电平时有效1设置相应引脚,使其输出信号为高电平时有效,6.2数字I/O寄存器,(5)端口E数据和方向控制寄存器(PEDATDIR),地址:7095h位15-8:EnDIRPE7-PE0的数据方向0相应引脚配置为输入1相应引脚配置为输出位7-0:IOPEn如果EnDIR=0,引脚配置为输入方式。0相应引脚的电平读为低电平1相应引脚的电平读为高电平如果EnDIR=1,引脚配置为输出0设置相应引脚,使其输出信号为低电平时有效1设置相应引脚,使其输出信号为高电平时有效,6.2数字I/O寄存器,(6)端口F数据和方向控制寄存器(PFDATDIR),地址:7096h位15:保留位14-8:FnDIRPF6-PF0的数据方向0相应引脚配置为输入1相应引脚配置为输出位7:保留位7-0:IOPFn如果FnDIR=0,引脚配置为输入方式。0相应引脚的电平读为低电平1相应引脚的电平读为高电平如果FnDIR=1,引脚配置为输出0设置相应引脚,使其输出信号为低电平时有效1设置相应引脚,使其输出信号为高电平时有效,6.2数字I/O寄存器,数字I/O端口配置实例配置:选择I/O引脚的功能,且设置I/O引脚的方向。I/O配置实例程序:,6.3I/O端口应用,1、I/O端口作为输出使用I/O端口输出8个信号,这8个信号分别连接到8个LED,硬件接口电路如图6.2(P102)所示。输出引脚与LED之间接一触发器74HC273,来实现对LED的驱动。在此使用IOPB作为输出信号来控制发光二极管的亮灭,而IOPF2作为选通74HC273的输出信号。,图6.2TMS320LF2407与LED接口电路,6.3I/O端口应用,下面的实例程序实现对8个LED的循环驱动,即LED循环发光LED1LED2LED3LED4LED5LED6LED7LED8LED1。(1)主程序IOSFT_REG.usect.data0,1;要显示的数据寄存器.includeF2407REGS.H;引用头部文件.def_c_int0.text_c_int0;相当于主程序的入口CALLSYSINIT;调系统初始化程序LDP#DP_PF2;指向7080h7100h区LACLMCRAAND#000FFH;IOPB口配置为一般I/O功能SACLMCRALACLMCRCAND#0FBFFH;IOPF2配置为一般I/O功能SACLMCRCLACLPBDATDIROR#0FF00H;IOPB口设置为输出方式SACLPBDATDIROR#0FF00H;IOPB口设置为输出方式SACLPBDATDIR,6.3I/O端口应用,LDP#5H;指向0280h0300h区SPLK#01H,IOSFT_REG;给显示的数据赋初值LOOP:LDP#DP_PF2LACLPFDATDIROR#0404H;IOPF2设置为输出方式,且IOPF2=1SACLPFDATDIR;开74HC273片选信号LDP#5HLACLIOSFT_REGLDP#DP_PF2SACLPBDATDIR;送要显示的数据到IOPB口LACLPFDATDIRAND#0FFFBH;IOPF2=0SACLPFDATDIR;关74HC273片选信号CALLDELAY;调延时程序LDP#5HLACLIOSFT_REGSFL;左移一位SACLIOSFT_REGBITIOSFT_REG,BIT8;判是否循环完一次,即已点亮第8个发光二极管BCNDLOOP1,TCBWAITLOOP1:LDP#5HSPLK#01H,IOSFT_REG;如循环完一次则显示数据赋初值WAIT:NOPBLOOP,6.3I/O端口应用,(2)系统初始化程序SYSINIT:SETCINTMCLRCSXMCLRCOVMCLRCCNF;B0被配置为数据存储空间LDP#0E0HSPLK#81FEH,SCSR1;CLKIN=6M,CLKOUT=24MSPLK#0E8H,WDCR;不使能WDTLDP#0SPLK#0000H,IMR;不使能SPLK#0FFFFH,IFR;清全部中断标志RET,6.3I/O端口应用,(3)软件延时程序DELAY:MAR*,AR4LARAR4,#0FFFEHLARAR0,#00HDELAY1:SBRK#1NOPCMPR00BCNDDELAY1,NTCRET,6.3I/O端口应用,1、I/O端口作为输入和输出使用键盘的响应作为I/O端口的输入,用I/O端口的输出点亮发光二极管,硬件接口电路如图6.3(P104)所示。用查询的方式读取键值,当K1键按下时,点亮发光二极管。K1键对应的I/O输入引脚为IOPF3,在IOPF3作通用I/O输入的情况下,如K1键按下则端口F数据和方向控制寄存器(PFDATDIR)的第3位为0。经过延时消抖动后如PFDATDIR.3仍为0则表示K1键按下。,图6.3TMS320LF2407与键盘、LED接口电路,6.3I/O端口应用,下面的实例程序实在前面程序的基础上添加了键盘输入程序,仅给出通用I/O作为输入时的初始化和读键盘程序。(1)初始化程序IOINIT:;添加在前面程序的大循环;LOOP:之前就行了LDP#DP_PF2LACLMCRCAND#0F7FFH;IOPF3配置为一般的I/O口SACLMCRCLACLPFDATDIRAND#0F7FFH;IOPF3为输入方式SACLPFDATDIRRET,6.3I/O端口应用,(2)读K1键程序READKEY:;添加在前面程序的大循环LOOP:之后就行了LDP#DP_PF2LACLPFDATDIR;取出键值PFDATDIR.3SACLKEYDAT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论