ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:108.42KB ,
资源ID:317576      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-317576.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DSP实验报告Word格式.docx)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

DSP实验报告Word格式.docx

1、3、 认识中断、GPIO、定时器等的编程使用方法。 二、 实验内容和原理 实验一 LED绿灯的控制: 共阳极发光二极管原理图如下 图1 发光二极管原理图通过GPIO控制发光二极管DS20DS25的亮灭。当GPIOFx=0时,对应的发光二极管被点亮。GPIO端口:GPIOF13GPIOF8 实验二 利用CPU定时器和中断实现点亮了4盏规定的绿灯,同时控制灯分别以1s,100ms,10ms,1ms为周期交替亮灭。 通过设置CPU定时器,使1ms产生1个中断输出,再通过循环计数控制当分别产生1ms、10ms、100ms、1s的时间间隔进入中断,控制相应LED亮灭。 实验三 分别用两种TI资源的方法编

2、程,实现控制绿灯和红灯的要求。方法一是仅仅使用TI规定的变量编程,方法二是使用TI资源的内置文件,初始化文件和.c文件等中的自带函数。把6盏绿灯及16盏红灯有规律地控制点亮。 红灯的控制: LED接口如图:1、一端接电源高电平红灯的控制:2、一端接锁存器的输出;3、由两个锁存器控制16盏灯;两个锁存器:1、输入数据为GPIOB8 GPIOB15;2、锁存信号由GPIOE0 GPIOE2 控制 ;点灯控制:1、先确定第几组,第几盏;2、GPIOE输出组号,GPIOB输出位号;3、延时,GPIOE输出锁存信号 三、 主要仪器设备 TMS实验板、PC机、程序烧写器四、 操作方法和实验步骤1、 实验一

3、(1)学习DSP的相关内部元件的使用方法。(2)了解C语言编写DSP程序的方法。(3)在软件CSS3.3中读懂并改写老师上传的程序,通过对相关的寄存器赋值完成项目的程序编写工作。(4)学习软件的调试运行方法。把相关的程序烧写入开发板中,调试,实现原来预想中的功能。2、实验二(1)学习CPU定时器的初始化设置及使用;(2)学会使用CPU中断系统;(3)设计并编写项目程序;(4)把相关的程序烧写入开发板中,调试,实现原来预想中的功能。3 实验三(1)学习红灯LED控制方法;(2)设计并编写相关程序;(3)把相关的程序烧写入开发板中,调试,实现原来预想中的功能。五、实验结果与分析1、 实验一:试验中

4、点亮了一排灯,按老师的所要求的方式闪亮。实验程序设计:程序段#define EALLOW asm( EALLOW)#define EDIS asm( EDIS#define PLLCR*(volatile unsigned int *) 0x7021) #define PCLKCR*(volatile unsigned int *) 0x701C)#define HISPCP*(volatile unsigned int *) 0x701A)#define LOSPCP*(volatile unsigned int *) 0x701B) #define WDCR*(volatile unsig

5、ned int *) 0x7029)#define SCSR*(volatile unsigned int *) 0x7022)#define GPFMUX*(volatile unsigned int *) 0x70D4)#define GPFDIR*(volatile unsigned int *) 0x70D5)#define GPFDAT*(volatile unsigned int *) 0x70F4)简单宏定义,将相关寄存器与其地址相关联。其中#define EALLOW asm(#define EDIS asm()表示将汇编指令EALLOW与EDIS进行宏定义,在后面以C语言编写

6、的程序可以直接调用。void InitPll(void) int i;EALLOW;PLLCR = 10; /SYSCLK = 外部振荡频率 * PLLCR /2EDIS;for(i= 0; i ( (131072/2)/12 ); i+) ; /延时,使得PLL模块能够完成初始化操作void InitPll(void)函数用于锁相环初始化,初始化PLL模块;如果外部晶振为30MHz,计算得SYSCLK为30MHz*10/2=150MHz。void InitPeripheralClocks(void)EALLOW;HISPCP = 1; / HISPCLK= SYSCLK * HISPCP /

7、2LOSPCP = 2; / LOSPCLK= SYSCLK * LOSPCP /2PCLKCR = 0x909;/ 开启部分外设 void InitPeripheralClocks(void)函数用于初始化外设时钟。设置高速外设时钟预定表寄存器HISPCP和HSPCLK,使高速外设时钟频率=SYSCLK/(HSPCLK*2)=150MHz/2=75MHz;设置低速外设时钟预定表寄存器LOSPCP的LSPCLK,使低速外设时钟频率=SYSCLK/(LSPCLK*2)=150MHz/4=37.5MHz;向PCLKCR写入0x909,用来使能EVA,ADC,SPI,SCIB 等外设时钟。void

8、DisableDog(void)WDCR = 0x0068; /关闭看门狗;void DisableDog(void)该函数用于关闭看门狗;设置看门狗控制寄存器WDCR的WDDIS(位6)为1屏蔽看门狗模块。void InitSysCtrl(void)DisableDog();InitPll();InitPeripheralClocks();void InitSysCtrl(void)函数用来初始化系统控制;包括关闭看门狗,设置初始化始终频率,初始化外设时钟频率。void InitGpiof(void) GPFMUX =0x0000; GPFDIR =0xFF00; void InitGpio

9、f(void)函数用来初始化GPIO口;设置模式寄存器GPFMUX的相关位为0,使GPIOF引脚配置为通用数字I/O模式;设置方向寄存器GPFMUX的相关位为1,使引脚配置为输出。void main(void)long int i;InitSysCtrl();InitGpiof()for(;GPFDAT = 0x5678; for(i= 0; 500000; GPFDAT = 0x1234;/主函数点亮部分绿灯void main(void)函数为实验主函数;通过设置数据寄存器GPFDAT的值,控制相应输出口对应的绿灯亮灭。点亮4盏规定的灯,同时实现灯分别以1s,100ms,10ms,1ms为周

10、期交替亮灭。 实验程序设计:程序段 void InitPll(void)EALLOW;/SYSCLK = 外部振荡频率 * PLLCR /2HISPCP = 1;void InitPeripheralClocks(void)函数用于初始化外设时钟;void InitGpiof(void)函数用于GPIO初始化;void InitCputimer(void) TIMER0TPR=149; TIMER0TPRH=0; TIMER0PRD=999999; TIMER0TCR=0xf000;void InitCputimer(void)函数用于初始化CPU定时器;设定CPU定时器的频率,预定标寄存器写

11、入149,将系统时钟分频为1MHz,TIMER0TPRD写入99999时钟周期值为1s;TIMER0TCR的14,15位置位,清除中断标志位、中断使能。typedef interrupt void(*PINT)(void);interrupt void INT_1_7(void);void InitPIE(void)PIEIFR1=0x0000;PIEIER1=0x0040;PIECTRL=0x1;PIEACK =0x1;void InitPIE(void)函数用于初始化PIE控制器;清零PIEIFR寄存器和PIERER寄存器,使能PIE中断向量表,清零中断标志位int k;InitSysCt

12、rl();InitGpiof();InitCputimer();InitPIE();* (PINT *) 0x0D4C = & INT_1_7;asm( and IFR,#00H); or IER,#01H EINTLPMCR0=0x0;k=0;)asm( IDLE;void main(void)函数用于初始化系统控制、GPIO、CPU定时器、PIE中断控制器。清除PIEIER和PIEIFR没有产生中断的情况下,系统运行在低功耗模式。interrupt void INT_1_7(void) /中断函数 k+=1; a+=1; b+=1; c+=1; /使用四个变量 if(k=100) k=0;

13、GPFDAT=GPFDAT|0X2000; else if(k=50) GPFDAT=GPFDAT&0XDFFF; if(a=20) a=0;GPFDAT=GPFDAT|0X1000; else if(a=10)0XEFFF; if(b=200) b=0;GPFDAT=GPFDAT|0X0800; else if(b=100)0XF7FF; if(c=2000) c=0;GPFDAT=GPFDAT|4000; else if(c=1000)0XFBFF; PIEACK=0x1; TIMER0TCR=0xf000;interrupt void INT_1_7(void)中断函数采用四个变量和if

14、语句结合,利用位与实现绿灯不同频率的亮灭。实验现象:观察到目标板上的四个led绿灯亮起来,其中两个看不出有闪动,一个能观察到微弱的闪动,一个约每秒闪动一次,明亮程度依次递减。3、实验三(1)实现规定的功能点亮预定实现的红灯和绿灯。实现对6盏绿灯和16盏红灯的控制。#include DSP281x_Device.h / DSP281x头文件void LedOut(Uint16 led);void IOinit() /I/O口初始化 EALLOW; GpioMuxRegs.GPBMUX.all = GpioMuxRegs.GPBMUX.all&0x00ff;GpioMuxRegs.GPBDIR.a

15、ll = GpioMuxRegs.GPBDIR.all|0xff00; GpioMuxRegs.GPEMUX.all = GpioMuxRegs.GPEMUX.all&0xfff8;GpioMuxRegs.GPEDIR.all = GpioMuxRegs.GPEDIR.all|0x0007; EDIS;void IOinit()函数用于GPIO口初始化;将GPIOB8GPIOB15配置为一般I/O口,D0D7;将GPIOB8GPIOB15配置为输出,D0D7;将GPIOE0GPIOE2配置为一般I/O口输出,作138译码。程序段 SysCtrlRegs.PLLCR.bit.DIV = 10;S

16、ysCtrlRegs.HISPCP.all = 1; / HISPCLK= SYSCLK /HISPCP *2SysCtrlRegs.LOSPCP.all = 2; / LOSPCLK= SYSCLK / LOSPCP *2SysCtrlRegs.PCLKCR.all = 0;SysCtrlRegs.WDCR = 0x0068; CpuTimer0Regs.TPR.all = 149; CpuTimer0Regs.TPRH.all= 0; CpuTimer0Regs.PRD.all = 999; CpuTimer0Regs.TCR.all =0xf000;PieCtrlRegs.PIEIFR1

17、.all=0x0000;PieCtrlRegs.PIEIER1.all=0x0040;PieCtrlRegs.PIECRTL.bit.ENPIE=0x1;PieCtrlRegs.PIEACK.all =0x1; InitSysCtrl();IOinit();PieVectTable.TINT0= &/SysCtrlRegs.LPMCR0.all=0x0;void main(void)为程序主函数。扩展内容:定义变量无符号整形变量led,写入组号。unsigned int led;interrupt void INT_1_7(void)led=0x0014;LedOut(led);void Le

18、dOut(Uint16 led) Uint16i; /将GPIOB8GPIOB15配置为输出,D0D7GpioDataRegs.GPEDAT.all = 0xfffb; /LEDB选通GpioDataRegs.GPBDAT.all = led;/显示高8位for (i=0;100; i+) /延时 GpioDataRegs.GPEDAT.all = 0xffff; /锁存高8位GpioDataRegs.GPEDAT.all = 0xfffa; /LEDA选通GpioDataRegs.GPBDAT.all = (led8);/显示低8位 i+) /锁存低8位第5个红灯和第3个红灯被点亮。(2)将红灯按规则点亮:2ms亮一次,七次为一个周期。初始化PLL模块中外部晶振为30MHz,计算得SYSCLK为30MHz*10/2=150MHz,预定标寄存器写入149,将系统时钟分频为1MHz,TIMER0TPRD写入99

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2