DSP课程设计报告
中国地质大学江城学院DSP课程设计报告
DSP课程设计报告
专业:姓名:学号:任课教师:
年月日中国地质大学江城学院DSP课程设计报告
一、实验内容
编写程序,产生正弦波
二、实验目的
学会用ccs集成开发软件,在开发环境下完成工程项目创建,程序编辑,编译,链接,调试和数据分析。
三、实验设备
(1)DSP实验箱
(2)装有ccs201*软件的电脑(3)DSP硬件仿真器
四、实验程序代码
正弦波形的汇编程序
.title"sinx.asm"
.mmregs
.def_c_int00
.refd_xs,d_sinx,d_xc,d_cosxsin_x:.usect"sin_x",360STACK:.usect"STACK",10k_theta.set286PA0.set0_c_int00:.text
STM#STACK+10,SPSTM#0,AR1
STMk_theta,AR0STM#sin_x,AR7STM#90,BRCRPTBloop1-1LDMAR1,ALD#d_xs,DPSTLA,@d_xsSTLA,@d_xcCALLsin_startCALLcos_startLD#d_sinx,DPLD@d_sinx,16,AMPYA@d_cosxSTHB,1,*AR7+MAR*AR1+0loop1:STM#sin_x+89,AR6STM#88,BRCRPTBloop2-中国地质大学江城学院DSP课程设计报告
LD*AR6-,ASTLA,*AR7+loop2:STM#179,BRCSTM#sin_x,AR6RPTBloop3-1LD*AR6+,ANEGASTLA,*AR7+loop3:NOP
end:Bendsin_start:
.defsin_startd_coef_s.usect"coef_s",4.data
table_s:.word01C7H.word030BH.word0666H.word1556H
d_xs.usect"sin_vars",1d_squr_xs.usect"sin_vars",1d_temp_s.usect"sin_vars",1d_sinx.usect"sin_vars",1c_1_s.usect"sin_vars",1.text
SSBXFRCT
STM#d_coef_s,AR4RPT#3
MVPD#table_s,*AR4+STM#d_coef_s,AR2STM#d_xs,AR3STM#c_1_s,AR5ST#7FFFH,c_1_sSQUR*AR3+,ASTA,*AR3
||LD*AR5,B
MASR*AR3+,*AR2+,B,AMPYAA
STHA,*AR3
MASR*AR3-,*AR2+,B,AMPYA*AR3+STB,*AR3
||LD*AR5,B
MASR*AR3-,*AR2+,B,AMPYA*AR3+中国地质大学江城学院DSP课程设计报告
STB,*AR3+
||LD*AR5,B
MASR*AR3-,*AR2+,B,AMPYAd_xs
STHB,d_sinxRETcos_start:
.defcos_startd_coef_c.usect"coef_c",4.data
table_c:.word0249H.word0444H.word0AABH.word4000Hd_xc.usect"cos_vars",1d_squr_xc.usect"cos_vars",1d_temp_c.usect"cos_vars",1d_cosx.usect"cos_vars",1c_1_c.usect"cos_vars",1.text
SSBXFRCT
STM#d_coef_c,AR4RPT#3
MVPD#table_c,*AR4+STM#d_coef_c,AR2STM#d_xc,AR3STM#c_1_c,AR5ST#7FFFH,c_1_cSQUR*AR3+,ASTA,*AR3
||LD*AR5,B
MASR*AR3+,*AR2+,B,AMPYAA
STHA,*AR3
MASR*AR3-,*AR2+,B,AMPYA*AR3+STB,*AR3
||LD*AR5,B
MASR*AR3-,*AR2+,B,ASFTAA,-1,ANEGAMPYA*AR3+MAR*AR3+RETD中国地质大学江城学院DSP课程设计报告
ADD*AR5,16,BSTHB,*AR3RET.end
正弦波形的链接程序MEMORY{
PAGE0:
EPROM:org=0E000H,len=1000HVECS:org=0FF80H,len=0080HPAGE1:
SPRAM:org=0060H,len=0020HDARAM1:org=0080H,len=0010HDARAM2:org=0090H,len=0010HDARAM3:org=0200H,len=0200H}
SECTIONS
{.text:>EPROMPAGE0.data:>EPROMPAGE0STACK:>SPRAMPAGE1sin_vars:>DARAM1PAGE1
coef_s:>DARAM1PAGE1cos_vars:>DARAM1PAGE1coef_c:>DARAM2PAGE1
sin_x:align(512){}>DARAM3PAGE1.vetors:>VECSPAGE0}
复位向量文件vectors.asm.title"vectors.asm".ref_c_int00.sect".vectors"B_c_int00.end
五、实验步骤
CCS软件的基本操作:
(1)建立工程:点击菜单project-new,在弹出的窗口中输入工程名,后缀是.pjt;(2)建立文件:点击菜单file-new-sourcefile,建立汇编语言文件和链接命令文件;(3)将文件加入工程:点击菜单project-addfilestoproject,选择要加入的文件添加到工程;
(4)工程的汇编链接:点击菜单project-rebuildall,若汇编链接成功会生成.out文件;(5)装载可执行程序:点击菜单file-lodeprogram,装载.out文件;(6)执行程序:点击菜单debug-run;(7)观察结果。中国地质大学江城学院DSP课程设计报告
注意事项:
(1)标号区分大小写,标号从第一列开始;(2)星号(*)从第一列开始;
(3)指令助记符不能从第一列开始;(4)MEMORY和SECTIONS要大写;
(5)在链接命令文件中解释说明用符号/**/;(6)PAGE与0或与1之间要有空格。
六、实验小结
本次课程设计中遇到一些课堂中从未有过的问题,通过网络查找和同学交流,大大促进了设计进程。并在过程中进一步提高自身的创作、创新水平,扎实基础,扩展所学。并且此次课程设计,基于课程理论知识和网上资料,使我对数字信号处理课程有了更深一步的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的了解。在理论课的基础上进行实验实习,是对本门课程的深入学习和掌握,在以后的工作学习中,数字信号的处理都是采用计算机仿真的方法进行测试,因此,掌握基于计算机的数字信号处理方法对以后的工作和学习有很大的帮助。这样一个课程设计对我们的发展有着极大的帮助!
最后,这个设计之所以能按时完成离不开老师的指导和同学的帮助,在这我对他们表示衷心的感谢。
扩展阅读:DSP技术及课程设计实验报告二
东南大学自动化学院
实验报告
课程名称:DSP原理及C程序开发
第二次实验
实验名称:基于DSP系统的实验指示灯、拨码开关和定时器院(系):自动化专业:自动化姓名:学号:实验室:实验组别:
同组人员:实验时间:201*年4月18日评定成绩:审阅教师:
第一部分实验:基于DSP系统的实验指示灯和拨码开关
一.实验目的
1.了解ICETEKF28335-A评估板在TMS320F28335DSP外部扩展存储空间上的扩展。2.了解ICETEKF28335-A评估板上指示灯和拨码开关扩展原理。3.学习在C语言中使用扩展的控制寄存器的方法。
二.实验设备
计算机,ICETEKF28335-A实验箱(或ICETEK仿真器+ICETEKF28335-A评估板+相关连线及电源)。
三.实验原理
1.TMS320F28335DSP的存储器扩展接口
存储器扩展接口是DSP扩展片外资源的主要接口,它提供了一组控制信号和地址、数据线,可以扩展各类存储器和存储器、寄存器映射的外设。
-ICETEKF28335-A评估板在扩展接口上除了扩展了片外SRAM外,还扩展了指示灯、DIP开关和D/A设备。具体扩展地址如下:
0x180004-0x180005:D/A转换控制寄存器0x180001:板上DIP开关控制寄存器
0x180000:板上指示灯控制寄存器
-与ICETEKF28335-A评估板连接的ICETEK-CTR显示控制模块也使用扩展空间控制主要设备:
208000-208004h:读-键盘扫描值,写-液晶控制寄存器
208002-208002h:液晶辅助控制寄存器208003-208004h:液晶显示数据寄存器
2.指示灯与拨码开关扩展原理
图1指示灯扩展原理
图2拨码开关扩展原理
四.实验步骤
LED程序如下:
#defineLED(*(unsignedshortint*)0x180000)for(;;){
LED=0x01;Delay(1000);LED=0x02;Delay(1000);LED=0x04;Delay(1000);LED=0x08;Delay(1000);}
开关程序如下;
#defineSW(*(unsignedshortint*)0x180001)for(;;){}
LED=SW;
五.实验结果
可知:映射在扩展存储器空间地址上的指示灯寄存器在设置时是低4位有效的,数据的最低位对应指示灯D1,次低位对应D2,...依次类推。LED灯以流水灯的形式闪灭。
可知:映射在扩展存储器空间地址上的拨码开关控制寄存器在回读时是低4位有效的,数据的最低位对应拨码开关1,次低位对应2,...依次类推。拨动开关对应的LED灯随开关闪灭。
程序二中的led灯与拨码开关不是正向对应的,而是相反的。
六.问题与思考
ICETEKF28335-A评估板上的指示灯控制寄存器是可读可写的,请问用什么办法可以回读指示灯状态?
答:可以将指示灯控制寄存器的数据传递给一个参数,将参数输出,可以根据二进制数据的后四位知道指示灯的状态。
第二部分实验:基于DSP系统的实验定时器
一.实验目的
1.通过实验熟悉F28335A的定时器;2.掌握F28335A定时器的控制方法;
3.掌握F28335A的中断结构和对中断的处理流程;
4.学会C语言中断程序设计,以及运用中断程序控制程序流程。
二.实验设备
计算机,ICETEK-F28335-A实验箱(或ICETEK仿真器+ICETEKF28335-A系统板+相关连线及电源)。
三.实验原理
1.通用定时器介绍及其控制方法TMS320F28335A内部有三个32位通用定时器(TIMER0/1/2),定时器1和2被保留给实时操作系统(DSPBIOS)用,只有定时器0可以提供给用户使用。
2.中断响应过程a.接受中断请求。必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。
b.响应中断。必须能够响应中断请求。如果中断是可屏蔽的,则必须满足一定的条件,c.准备执行中断服务程序并保存寄存器的值。
按照一定的顺序去执行。而对于非可屏蔽中断和软件中断,会立即作出响应。
d.执行中断服务子程序。调用相应得中断服务程序ISR,进入预先规定的向量地址,并且执行已写好的ISR。
3.中断类别可屏蔽中断:这些中断可以用软件加以屏蔽或解除屏蔽。
不可屏蔽中断:这些中断不能够被屏蔽,将立即响应该类中断并转入相应的子程序去执行。所有软件调用的中断都属于该类中断。
4.中断的优先级如果多个中断被同时激发,将按照他们的中断优先级来提供服务。中断优先级是芯片内部已定义好的,不可修改。
四.实验步骤
打开工程文件Lab303-Timer目录中的“Timer.pjt”。编译下载运行,观察指示灯在定时器的定时中断中按照设计定时闪烁(流水)。改变CpuTimer0Regs.PRD.all=0xffff函数里的值,观察实验现象。
初始化LED=0,m=0;修改中断服务程序如下:
interruptvoidcpu_timer0_isr(void){
CpuTimer0.InterruptCount++;m++;
//Acknowledgethisinterrupttoreceivemoreinterruptsfromgroup1PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;CpuTimer0Regs.TCR.bit.TIF=1;CpuTimer0Regs.TCR.bit.TRB=1;
if(m>100)
{}}m=0
LED=(~LED);
五.实验结果
程序实现LED定时亮灭,但是因为定时器本身设定的周期比较小,所以在100个中断过程后才执行一次具体的任务,,使得指示灯变化。改变CpuTimer0Regs.PRD.all函数的值会改变定时器周期,使得指示灯闪烁的速度产生变化。
友情提示:本文中关于《DSP课程设计报告》给出的范例仅供您参考拓展思维使用,DSP课程设计报告:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。