DSP实验报告李志刚(精)

合集下载

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结DSP(Digital Signal Processing)数字信号处理是利用数字技术对信号进行处理和分析的一种方法。

在本次实验中,我们探索了DSP的原理和应用,并进行了一系列实验以验证其在实际应用中的效果。

以下是对实验结果的总结与分析。

实验一:数字滤波器设计与性能测试在本实验中,我们设计了数字滤波器,并通过性能测试来评估其滤波效果。

通过对不同类型的滤波器进行设计和实现,我们了解到数字滤波器在信号处理中的重要性和应用。

实验二:数字信号调制与解调本实验旨在通过数字信号调制与解调的过程,了解数字信号的传输原理与方法。

通过模拟调制与解调过程,我们成功实现了数字信号的传输与还原,验证了调制与解调的可行性。

实验三:数字信号的傅里叶变换与频谱分析傅里叶变换是一种重要的信号分析方法,可以将信号从时域转换到频域,揭示信号的频谱特性。

本实验中,我们学习了傅里叶变换的原理,并通过实验掌握了频谱分析的方法与技巧。

实验四:数字信号的陷波滤波与去噪处理陷波滤波是一种常用的去除特定频率噪声的方法,本实验中我们学习了数字信号的陷波滤波原理,并通过实验验证了其在去噪处理中的有效性。

实验五:DSP在音频处理中的应用音频处理是DSP的一个重要应用领域,本实验中我们探索了DSP在音频处理中的应用。

通过实验,我们成功实现了音频信号的降噪、均衡和混响处理,并对其效果进行了评估。

实验六:DSP在图像处理中的应用图像处理是另一个重要的DSP应用领域,本实验中我们了解了DSP在图像处理中的一些基本原理和方法。

通过实验,我们实现了图像的滤波、边缘检测和图像增强等处理,并观察到了不同算法对图像质量的影响。

通过以上一系列实验,我们深入了解了DSP的原理与应用,并对不同领域下的信号处理方法有了更深刻的认识。

本次实验不仅加深了我们对数字信号处理的理解,也为日后在相关领域的研究与实践提供了基础。

通过实验的结果和总结,我们可以得出结论:DSP作为一种数字信号处理的方法,具有广泛的应用前景和重要的实际意义。

dsp实验报告

dsp实验报告

DSP 实验课大作业实验报告题目:在DSP 上实现线性调频信号的脉冲压缩,动目标显示和动目标检测 (一)实验目的:(1)了解线性调频信号的脉冲压缩、动目标显示和动目标检测的原理,及其DSP 实现的整个流程;(2)掌握C 语言与汇编语言混合编程的基本方法。

(3)使用MATLAB 进行性能仿真,并将DSP 的处理结果与MATLAB 的仿真结果进行比较。

(二)实验内容: 1. MATLAB 仿真设定信号带宽为B= 62*10,脉宽-6=42.0*10τ,采样频率为62*10Fs =,脉冲重复周期为-4T=2.4*10,用MATLAB 产生16个脉冲的线性调频信号,每个脉冲包含三个目标,速度和距离如下表:对回波信号进行脉冲压缩,MTI ,MTD 。

并且将回波数据和频域脉压系数保存供DSP 使用。

2.DSP 实现在Visual Dsp 中,经MATLAB 保存的回波数据和脉压系数进行脉压,MTI 和MTD 。

(三)实验原理 1.脉冲压缩原理在雷达系统中,人们一直希望提高雷达的距离分辨力,而距离分辨力定义为:22c cR Bτ∆==。

其中,τ表示脉冲时宽,B 表示脉冲带宽。

从上式中我们可以看出高的雷达分辨率要求时宽τ小,而要求带宽B大。

但是时宽τ越小雷达的平均发射功率就会很小,这样就大大降低了雷达的作用距离。

因此雷达作用距离和雷达分辨力这两个重要的指标变得矛盾起来。

然而通过脉冲压缩技术就可以解决这个矛盾。

脉冲压缩技术能够保持雷达拥有较高平均发射功率的同时获得良好的距离分辨力。

在本实验中,雷达发射波形采用线性调频脉冲信号(LFM),其中频率与时延成正比关系,因此我们就可以将信号通过一个滤波器,该滤波器满足频率与时延成反比关系。

那么输入信号的低频分量就会得到一个较大的时延,而输入信号的高频分量就会得到一个较小的时延,中频分量就会按比例获得相应的时延,信号就被压缩成脉冲宽度为1/B的窄脉冲。

从以上原理我们可以看出,通过使用一个与输入信号时延频率特性规律相反的滤波器我们可以实现脉冲压缩,即该滤波器的相频特性与发射信号时共轭匹配的。

DSP实验报告(综合)

DSP实验报告(综合)

实验报告||实验名称 D SP课内系统实验课程名称DSP系统设计||一、实验目的及要求1. 掌握用窗函数法设计FIR数字滤波器的原理和方法。

熟悉线性相位FIR 数字滤波器特性。

了解各种窗函数对滤波器特性的影响。

2. 掌握设计IIR数字滤波器的原理和方法。

熟悉IIR数字滤波器特性。

了解IIR数字滤波器的设计方法。

3.掌握自适应数字滤波器的原理和实现方法。

掌握LMS自适应算法及其实现。

了解自适应数字滤波器的程序设计方法。

4.掌握直方图统计的原理和程序设计;了解各种图像的直方图统计的意义及其在实际中的运用。

5.了解边缘检测的算法和用途,学习利用Sobel算子进行边缘检测的程序设计方法。

6.了解锐化的算法和用途,学习利用拉普拉斯锐化运算的程序设计方法。

7.了解取反的算法和用途,学习设计程序实现图像的取反运算。

8.掌握直方图均衡化增强的原理和程序设计;观察对图像进行直方图均衡化增强的效果。

二、所用仪器、设备计算机,dsp实验系统实验箱,ccs操作环境三、实验原理(简化)FIR:有限冲激响应数字滤波器的基础理论,模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。

数字滤波器系数的确定方法。

IIR:无限冲激响应数字滤波器的基础理论。

模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。

数字滤波器系数的确定方法。

、自适应滤波:自适应滤波器主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。

e(n)=z(n)-y(n)=s(n)+d(n)-y(n)直方图:灰度直方图描述了一幅图像的灰度级内容。

灰度直方图是灰度值的函数,描述的是图像中具有该灰度值的像素的个数,其横坐标表示像素的灰度级别,纵坐标是该灰度出现的频率(像素个数与图像像素总数之比)。

图像边缘化:所谓边缘(或边沿)是指其周围像素灰度有阶跃变化。

经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,利用边缘临近一阶或二阶方向导数变化规律,用简单的方法检测边缘。

DSP实验报告(一)

DSP实验报告(一)

实验一 信号系统及系统响应一、实验目的1、 熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。

2、 熟悉离散信号和系统的时域特性。

3、 熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。

4、 掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。

二、实验原理(一)连续时间信号的采样采样是指按一定的频率从模拟信号抽样获得数字信号。

采样是从连续时间信号到离散时间信号的过渡桥梁。

对一个连续时间信号进行理想采样的过程可以表示为该信号的一个周期冲激脉冲的乘积,即()()()ˆa a x t x t M t =(1)其中连续信号的理想采样,是周期冲激脉冲()()n M t t n T d +=-=-å(2)它也可以用傅立叶级数表示为:1()s jm tn M t eT+W =-=å(3)其中T 为采样周期,Ω是采样角频率。

设是连续时间信号的双边拉氏变换,即有:()()ata a X s x t edt+--=ò(4)此时理想采样信号的拉氏变换为()ˆˆ()()1ˆ()1ˆ()1()s s ataa jm tsta m s jm ta m a s m X s x t e dtxt ee dtTxt e dtT X s jm T+--++W -=--++--W =- -++=--====-W òåòåòåò(5)作为拉氏变换的一种特例,信号理想采样的傅立叶变换1ˆ()[()]aa s m X j X j m T+=-W =W-W å(6)由式(5)和式(6)可知,信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期等于采样频率。

根据Shannon 取样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频谱混淆现象。

DSP实验报告

DSP实验报告

DSP第一次上机实验报告班级:学号:姓名:第一部分:实验要求(1) 常用数字信号序列的产生:熟悉Matlab产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab 产生和绘制出一些常用离散信号序列。

请用Matlab画出下列序列的波形(-10<n<10):a) δ(n)b) 单位阶跃序列2 u(n-5)c) 矩形序列R(n)d) y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)(2) 数字信号的基本运算:加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进行这些基本运算,得到多个序列构成的组合序列。

请用您的计算机声卡采用一段您自己的声音x(n),长度为45秒,单声道,取样频率44.1kHz,16bit/样值,然后与给定的一段背景音乐y(n) 按下式叠加为一个声音信号z(n):z(n) = 0.7x(n) + 0.3y(n)第二部分:代码及结果截图(a)单位冲激函数δ(n)(b)单位阶跃序列2 u(n-5)c) 矩形序列R(n)d) y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)组合序列-10-8-6-4-20246810音频处理>> [r,fs,bits]=wavread('Recordd.wav');%读取Recordd文件并赋给变量r,作为录音文件[b,fs,bits]=wavread('adele');% 读取adele文件并赋给变量b,作为背景音乐x=r((fs*0+1:fs*45),:);%录音提取1s到45sy=b((fs*45+1:fs*90),:);%背景音乐提取1s到90sz=0.7*x+0.3*y;%叠加一个声音信号wavwrite(z,fs,bits,'music.wav');subplot(3,1,1),plot(x),title('record');subplot(3,1,2),plot(y),title('background');subplot(3,1,3),plot(z),title('music');%作图0.511.52 2.53 3.54x 105-101record0.511.52 2.53 3.54x 105-101background0.511.522.533.54x 105-101music。

DSP实验报告(二)

DSP实验报告(二)

DSP实验报告(二)实验二应用FFT对信号进行频谱分析一、实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写。

2、熟悉应用FFT对典型信号进行频谱分析的方法。

3、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。

二、实验原理与方法①一个连续信号的频谱可以用它的傅立叶变换表示为+ Xa(jW)=-jWtx(t)edtòa-如果对该信号进行理想采样,可以得到采样序列x(n)=xa(nT)同样可以对该序列进行z变换,其中T为采样周期X(z)=+ x(n)z-n+ -令z为ejw,则序列的傅立叶变换X(ejw)=x(n)ejwn-其中ω为数字频率,它和模拟域频率的关系为w=WT=W/fs式中的是采样频率。

上式说明数字频率是模拟频率对采样率的归一化。

同模拟域的情况相似。

数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。

序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系。

1X(e)=Tjw+ - w-2pXa(j)T即序列的频谱是采样信号频谱的周期延拓。

从式可以看出,只要分析采样序列的谱,就可以得到相应的连续信号的频谱。

注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。

在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。

无限长的序列也往往可以用有限长序列来逼近。

有限长的序列可以使用离散傅立叶变换。

当序列的长度是N时,定义离散傅立叶变换为:X(k)=DFT[x(n)]=其中W=e2pj-NN-1n=0WNkn它的反变换定义为:1x(n)=IDFT[X(k)]=N根据式和,则有N-1n=0X(k)WNknX(z)|z=Wnk=NN-1n=0x(n)WNnk=DFT[x(n)]j2pN可以得到X(k)2pk的点,就NN是将单位圆进行N等分以后第k个点。

所以,X(k)是z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。

DSP实验报告一

DSP实验报告一

DSP实验报告一引言本实验旨在通过实际操作,探索数字信号处理(DSP)的基本概念和技术。

DSP是一种通过数字计算来处理连续时间信号的技术,被广泛应用于音频处理、图像处理、通信系统等领域。

本实验将重点介绍数字信号的采样、量化和离散化过程,并通过实际编程实现。

实验过程1. 信号的采样1.1 信号的定义在DSP领域,信号是指随着时间变化的某种物理量,可以是声音、图像等。

我们首先需要定义一个连续的信号,用于采样和处理。

在本次实验中,我们选择了一个简单的正弦信号作为示例:x(t) = A \\sin(2\\pi f t)其中,A表示幅值,f表示频率,t表示时间。

1.2 采样过程为了将连续信号转换为离散信号,我们需要对信号进行采样。

采样是指在一定时间间隔内对连续信号进行测量。

我们可以通过模拟采样器来模拟采样过程。

在本实验中,我们选择了采样频率为100Hz,即每秒采样100次。

使用Python编程实现采样过程:import numpy as np# 信号参数设置A =1f =10# 采样频率设置fs =100# 采样点数设置N =100# 生成时间序列t = np.arange(N) / fs# 生成采样信号x = A * np.sin(2* np.pi * f * t)上述代码中,我们通过调整A和f的值来模拟不同的信号。

生成的信号将存储在x变量中,可以用于后续处理。

2. 信号的量化2.1 量化过程量化是指将连续信号的幅值转换为离散的数值。

在实际应用中,我们通常使用有限位数来表示信号的幅值。

常用的量化方式有线性量化和非线性量化。

在本实验中,我们选择了线性量化方式。

具体的量化过程可以通过下列Python代码实现:import math# 量化位数设置bits =8# 量化步长计算step_size =2* A / (2** bits -1)# 信号的量化x_quantized = np.round(x / step_size) * step_size上述代码中,我们通过调整bits的值来控制量化位数。

dsp实验报告

dsp实验报告

dsp实验报告DSP实验报告一、引言数字信号处理(Digital Signal Processing,DSP)是一种对数字信号进行处理和分析的技术。

它在许多领域中被广泛应用,如通信、音频处理、图像处理等。

本实验旨在通过实际操作,探索和理解DSP的基本原理和应用。

二、实验目的1. 理解数字信号处理的基本概念和原理;2. 掌握DSP实验平台的使用方法;3. 进行一系列DSP实验,加深对DSP技术的理解。

三、实验器材和软件1. DSP开发板;2. 电脑;3. DSP开发软件。

四、实验内容1. 实验一:信号采集与重构在此实验中,我们将通过DSP开发板采集模拟信号,并将其转换为数字信号进行处理。

首先,我们需要连接信号源和开发板,然后设置采样频率和采样时间。

接下来,我们将对采集到的信号进行重构,还原出原始模拟信号,并进行观察和分析。

2. 实验二:滤波器设计与实现滤波器是DSP中常用的模块,用于去除或增强信号中的特定频率成分。

在此实验中,我们将学习滤波器的设计和实现方法。

首先,我们将选择合适的滤波器类型和参数,然后使用DSP开发软件进行滤波器设计。

最后,我们将将设计好的滤波器加载到DSP开发板上,并进行实时滤波处理。

3. 实验三:频谱分析与频域处理频谱分析是DSP中常用的方法,用于分析信号的频率成分和能量分布。

在此实验中,我们将学习频谱分析的基本原理和方法,并进行实际操作。

我们将采集一个包含多个频率成分的信号,并使用FFT算法进行频谱分析。

然后,我们将对频谱进行处理,如频率选择、频率域滤波等,并观察处理后的效果。

4. 实验四:音频处理与效果实现音频处理是DSP中的重要应用之一。

在此实验中,我们将学习音频信号的处理方法,并实现一些常见的音频效果。

例如,均衡器、混响、合唱等。

我们将使用DSP开发软件进行算法设计,并将设计好的算法加载到DSP开发板上进行实时处理。

五、实验结果与分析通过以上实验,我们成功完成了信号采集与重构、滤波器设计与实现、频谱分析与频域处理以及音频处理与效果实现等一系列实验。

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

实验报告实验课程:TMS320X281XDSP原理及C程序开发学生姓名:李志刚学号: 6101206014专业班级:自动化0612009年 12 月 12 日目录一、实验一CCS应用及DSPC程序设计 (3)二、实验二DSP定时器及GPIO应用试验 (7)三、实验三DSP模数(AD)转换实验 (10)四.实验四DSP数模(DA)转换实验 (14)五.实验五PWM输出及电机控制实验 (16)六、实验六DSP串行通信实验 (27)南昌大学实验报告学生姓名:李志刚学号: 6101206014 专业班级:自动化061实验类型:□ 验证□ 综合□ 设计□ 创新实验日期: 2009.9.23实验成绩:实验一 CCS应用及DSP C程序设计一.实验目的1.掌握Code Composer Studio 2.21 的安装和配置步骤过程。

2.了解DSP 开发系统和计算机与目标系统的连接方法。

3. 学习创建工程和管理工程的方法。

4. 了解基本的编译和调试功能。

5. 学习使用观察窗口。

二.实验设备PC 兼容机一台、ICETEK-VC5509-S60(6.1实验箱一台、USB 连接电缆一条三.实验原理1.开发TMS320C55xx 应用系统一般需要以下几个调试工具来完成:a.软件集成开发环境(Code Composer Studio 2.21:完成系统的软件开发,进行软件和硬件仿真调试。

它也是硬件调试的辅助手段。

b.开发系统(ICETEK 5100-USB 或ICETEK 5100-PP:实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。

c.评估模块(ICETEK VC5509-A 或ICETEK VC5509-C 等:提供软件运行和调试的平台和用户系统开发的参照。

2.Code Composer Studio 2.21主要完成系统的软件开发和调试。

它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C 语言程序编译连接生成COFF (公共目标文件格式的可执行文件,并能将程序下载到目标DSP 上运行调试。

3.用户系统的软件部分可以由CCS 建立的工程文件进行管理,工程一般包含以下几种文件:源程序文件:C 语言或汇编语言文件(*.C 或*.ASM头文件(*.H命令文件(*.CMD库文件(*.LIB,*.OBJ四.实验步骤1.实验准备连接实验设备:关闭实验箱上扩展模块和信号源电源开关。

2.设置Code Composer Studio 2.21 在硬件仿真(Emulator方式下运行3.启动Code Composer Studio 2.214.创建工程:⑴创建新的工程文件:⑵在工程文件中添加程序文件:选择菜单“Project”的“Add Files to Project…”项;在“Add Files to Project”对话框中⑶编译链接工程:选择菜单“Project”的“Rebuild All”项,或单击工具条中的按钮;注意编译过程中CCS 主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。

5.编辑修改工程中的文件:⑴查看工程文件:展开CCS 主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包含“volume.h”、“rts55.lib”、“volume.c”和“volume.cmd”文件,其中第一个“volume.h”为程序在编译时根据程序中的“include”语句自动加入的。

⑵ 查看源文件:双击工程管理窗中的“volume.c”文件,可以查看程序内容。

⑶ 编辑修改源文件及编译程序:打开“volume.c”,找到“main(”主函数,将语句“input=inp_buffer;”最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错⑷ 修改工程文件的设置6.基本调试功能:⑴下载程序:执行File Load Program⑵设置软件调试断点:在项目浏览窗口中,双击volume.c 激活这个文件,移动光标到main(行上,单击鼠标右键选择ToggleBreakpoint 或按F9 设置断点(另外,双击此行左边的灰色控制条也可以设置或删除断点标记。

⑶利用断点调试程序:选择Debug Run 或按F5 运行程序,程序会自动停在main(函数上。

7.使用观察窗口:⑴执行View Watch Window 打开观察窗口。

⑵在volume.c 中,用鼠标双击一个变量(比如num,再单击鼠标右键,选择“Quick Watch”,CCS 将打开Quick Watch 窗口并显示选中的变量。

⑶在volume.c 中,选中变量num,单击鼠标右键,选择“Add to Watch Window”,CCS 将把变量添加到观察窗口并显示选中的变量值。

8.文件输入/输出:Probe 断点可以设置在程序的任何位置,当程序运行到Probe断点时,与Probe 断点相关的事件将会被触发,当事件结束后,程序会继续执行。

在这一节里,Probe 断点触发的事件是:将PC 机存储的数据文件中的一段数据加载到DSP 的缓冲区中。

9.图形功能简介:(1)在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。

(2)按F12 运行程序。

观察Input 窗口的内容。

10.编写一个以C语言为基础的DSP程序11.退出CCS。

五、试验程序#include "stdio.h"#include "volume.h"int inp_buffer[BUFSIZE];int out_buffer[BUFSIZE];int *input;int *output;int volume = 2;struct PARMS str ={2934,9432,213,9432,&str};int read_signals(int *input;int write_buffer(int *input,int *output,int count;int output_signals(int *output;main({int num = BUFSIZE;int i;i=0;input=inp_buffer;output=out_buffer;while ( TRUE{read_signals(input;write_buffer(input, output, num;output_signals(output;i++; printf("Number: %d\n",i;}}int read_signals(int *input{return(TRUE;}int write_buffer(int *input,int *output,int count{int i;for ( i=0;ioutput[i]=input[i]*volume; return(TRUE;}int output_signals(int *output{return(TRUE;}六、实验结果通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:南昌大学实验报告学生姓名:李志刚学号: 6101206014 专业班级:自动化061实验类型:□ 验证□ 综合□ 设计□ 创新实验日期: 2009.9.23实验成绩:实验二 DSP定时器及GPIO应用实验一.实验目的1.通过实验熟悉VC5509A 的定时器;2.掌握VC5509A 定时器的控制方法;3.掌握VC5509A 的中断结构和对中断的处理流程;4.学会C 语言中断程序设计,以及运用中断程序控制程序流程。

二.实验设备计算机,ICETEK-VC5509AE-S60 实验箱(或ICETEK 仿真器+ICETEK–VC5509-AE 系统板+相关连线及电源)。

三.实验原理1.通用定时器介绍及其控制方法* PSCR 寄存器说明:15 10 9 6 5 4 3 0Reserved PSC Reserved TDDRPSC: 4 位的预定标值,与TIM 共同组成20 位的定时计数器.TDDR: 预定标周期寄存器(在需要时重装入PSC 的值TCR 寄存器说明2.中断响应过程外设事件要引起CPU 中断,必须保证:IER 中相应使能位被使能,IFR 相应中断也被使能。

3.中断程序设计:程序中应包含中断向量表,VC5509A 默认向量表从程序区0 地址开始存放,根据IPVD 和IPVH 的值确定向量表的实际地址。

4.实验程序流程图:5.实验程序分析:四.实验步骤1.实验准备2.设置Code Composer Studio 2.21 在硬件仿真(Emulator方式下运行3.启动Code Composer Studio 2.214.打开工程文件:打开菜单“ Project ” 的“ Open ” 项。

5.编译、下载程序6.运行程序,观察结果7.改变TIMER_init(函数里*prd0 = 0x0ffff 为“=0x0fff ”;重复步骤5,6 观察实验现象8.退出CCS五、实验程序#include "DSP281x_Device.h" // DSP281x Headerfile Include File#include "DSP281x_Examples.h" // DSP281x Examples Include File// Prototype statements for functions found within this file.interrupt void cpu_timer0_isr(void;#define LEDS *(int *0xc0000#define CTRGR *(int *0x108000#define CTRLCDCMDR *(int *0x108001#define CTRKEY *(int *0x108001#define CTRLCDCR *(int *0x108002#define CTRCLKEY *(int *0x108002#define CTRLCDLCR *(int *0x108003#define CTRLCDRCR *(int *0x108004#define CTRLA *(int *0x108005#define CTRLR *(int *0x108007int i=0,nCount;unsigned int uLBD;void main(void{ unsigned int uPort8000;InitSysCtrl(;//初始化cpuDINT;//关中断InitPieCtrl(;//初始化pie寄存器IER = 0x0000;//禁止所有的中断IFR = 0x0000;InitPieVectTable(;//初始化pie中断向量表EALLOW; // This is needed to write to EALLOW protected registers PieVectTable.TINT0 = &cpu_timer0_isr;//指定中断服务子程序EDIS; // This is needed to disable write to EALLOW protected registersCpuTimer0.RegsAddr = &CpuTimer0Regs;// Initialize timer period to maximum:CpuTimer0Regs.PRD.all = 0xffff;// Initialize pre-scale counter to divide by 1 (SYSCLKOUT:CpuTimer0Regs.TPR.all = 0;CpuTimer0Regs.TIM.all = 0;CpuTimer0Regs.TPRH.all = 0;// Make sure timer is stopped:CpuTimer0Regs.TCR.bit.TSS = 1;CpuTimer0Regs.TCR.bit.SOFT = 1;CpuTimer0Regs.TCR.bit.FREE = 1;// Reload all counter register with period value:CpuTimer0Regs.TCR.bit.TRB = 1;CpuTimer0Regs.TCR.bit.TIE = 1;// Reset interrupt counters:CpuTimer0.InterruptCount = 0;StartCpuTimer0(;//启动定时器0// Enable CPU INT1 which is connected to CPU-Timer 0:IER |= M_INT1;// Enable TINT0 in the PIE: Group 1 interrupt 7PieCtrlRegs.PIEIER1.bit.INTx7 = 1;// Enable global Interrupts and higher priority real-time debug events: EINT; // Enable Global interrupt INTMERTM; // Enable Global realtime interrupt DBGMCTRGR=0; // 初始化ICETEK-CTRCTRGR=0x80;CTRGR=0;CTRLR=0; // 关闭东西方向的交通灯CTRLR=0x40; // 关闭南北方向的交通灯uPort8000=CTRCLKEY;while ( 1{}}interrupt void cpu_timer0_isr(void{ int j,k;//CpuTimer0.InterruptCount++;// Acknowledge this interrupt to receive more interrupts from group 1 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;CpuTimer0Regs.TCR.bit.TIF = 1;CpuTimer0Regs.TCR.bit.TRB = 1;if ( nCount==0{ LEDS=uLBD;uLBD++; uLBD%=16;}nCount++; nCount%=194;}六、实验结果1.灯在定时器的定时中断中按照设计定时闪烁。

相关文档
最新文档