DSP课程设计一定频率范围内的方波生成.docx
- 文档编号:25328244
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:17
- 大小:4.77MB
DSP课程设计一定频率范围内的方波生成.docx
《DSP课程设计一定频率范围内的方波生成.docx》由会员分享,可在线阅读,更多相关《DSP课程设计一定频率范围内的方波生成.docx(17页珍藏版)》请在冰豆网上搜索。
DSP课程设计一定频率范围内的方波生成
DSP课程设计--一定频率范围内的方波生成
DSP课程设计报告
——一定频率范围内的方波生成
组长:
黄君君
小组成员:
施以鹏,范嘉琪,谭洪军
李素华,蒋晓菲,余美洁
指导老师:
曹洪龙
一、设计题目
二、设计目标
1.设计要求
2.设计目的
三、设计方案
1.相关仪器的选择
2.设计原理
四、设计内容
五、设计结果
六、课程设计的参考文献
七、课程设计的结论及心得
一、设计题目
一定频率范围内的方波生成
二、设计目标
1.设计要求
(1)利用DSP的IO引脚输出方波
(2)频率范围5KHz~40KHz
(3)频率连续可调
(4)频率精度为100Hz
2.设计目的
(1)熟悉TMS320VC5416的硬件结构
(2)学会相关程序的编写
(3)熟悉CCS软件的使用
三、设计方案
1.相关实验设备的选择:
CCS软件,TMS320VC5416,示波器,导线
2.设计原理:
通过定时器中断程序产生方波,利用定时器在XF管脚输出频率可调的方波,设定时钟频率CLK=80MHz,则定时器的中断周期为:
1/80MHz*(1+7)*(1+9)=1us,再通过对计数器进行50次,达到50us的低电平,改变输出波形的电平,再分别计数不同的次数即可达到改变方波频率的效果。
四、设计内容
(1)asm源程序代码:
.mmregs
.include"global.h54"
.include"mymem.h54"
.text
;***************************************************
;Function:
main
;Description:
;mainfunctionofMyTimer0
;
;Note:
;DSPisinitializedandthestatusofTimerisanalyzedto
enableordisablethetimer
;***************************************************
_main
ssbxINTM;INTM=1,屏蔽中断
stm#d_stack+400h,sp;initsp
callDSP_INIT
RSBXINTM;INTM=0,开中断
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
work_loop:
;enabletimer
ANDM#0ffefH,*(TCR);TSS=0,启动定时器
IDLE1
BANZwork_loop,*AR1-
XORM#1,*(isFlag_Timer0);异或运算
CMPM*(isFlag_Timer0),#1;TC=
BCSet_XF,TC
RSBXXF;XF=0
STM#50,AR1
Bwork_loop
Set_XF
SSBXXF;XF=1
ST#10,*(Count0)
LD*(Count0),A
STLMA,AR1
Bwork_loop
dead_loop:
nop
nop
nop
bdead_loop
.end
(2)初始化程序:
.text
.mmregs
.include"global.h54"
.include"mymem.h54"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Function:
DSP_INIT;
;DESCRIPT:
whendspstartwork,it'sbecalled;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DSP_INIT:
;MP/MC(6)=0,OVLY(5)=1
ANDM#0BFH,*(PMST);与运算BFH=10111111B
nop
nop
;DROM(3)=1,CLKOFF
(2)=1
ORM#0ADH,*(PMST);或运算ADH=10101101B
nop
nop
;registerinit
STM#0h,SWWSR;软件等待状态寄存器SWWSR的初始化
stm#CLKMOD_DIV,clkmd;pllshouldhavesometimedelayingtoworknormally
rpt#(0x800-1)
nop
;时钟发生器80M
Stm#CLKMD100,CLKMD;CLKMD=4007HPLLMUL=4,PLLNDIV=1,PLLDIV=0
Set_CLK_PLL
Rpt#(0x800-1)
nop
CMPM*(CLKMD),#CLKMD100;TC=
BcSet_CLK_PLL,NTC
RSBXOVM;支持移溢出
stm#50,AR1
st#0,*(Count0)
st#0,*(Count1)
st#0,*(Count_25)
st#0,*(Count_25+1)
st#0,*(IsDelay)
st#0,*(isFlag_Timer0)
;timer0init,1us
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
stm#TCR100,TCR;initTCR,TSS=1,TDDR=9,free=1
stm#PRD100,PRD
;PRD=07H,(PRD+1)*(TDDR+1)*Tclk
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RSBXSXM
Stm#0xFFFF,IFR;clearIFR
stm#0x0008,IMR;开放定时器
ret
(3)CMD配置文件:
MEMORY
{
PAGE0:
EPROG:
origin=0x100,len=0x0500
VECT:
origin=0x0080,len=0x80
PAGE1:
USERREGS:
origin=0x0B00,len=0x0400
PAGE1:
STACK_MEM:
origin=0x0600,len=0x0500
EDATA:
origin=0x0f00,len=0x0100
MYDATA:
origin=0x1000,len=0x7000,fill=0x0000
}
SECTIONS
{
.vector:
{}>VECTPAGE0
.text:
{}>EPROGPAGE0
.bss:
{}>USERREGSPAGE1
.sysmem:
{}>USERREGSPAGE1
my:
{}>USERREGSPAGE1
stack_mem:
{}>STACK_MEMPAGE1
.data:
{}>EDATAPAGE1
}
(4)中断向量表:
.mmregs
.include"global.h54"
.include"mymem.h54"
.align0x80
.sect".vector"
IV_RESET:
BD_main;复位中断,跳转到程序的入口
NOP
NOP
IV_NMI:
RETE;NMI中断,开中断返回
NOP
NOP
NOP
IV_SINT17:
RETE;软件中断#17,开中断返回
NOP
NOP
NOP
IV_SINT18:
RETE;软件中断#18,开中断返回
NOP
NOP
NOP
IV_SINT19:
RETE;软件中断#19,开中断返回
NOP
NOP
NOP
IV_SINT20:
RETE;软件中断#20,开中断返回
NOP
NOP
NOP
IV_SINT21:
RETE;软件中断#21,开中断返回
NOP
NOP
NOP
IV_SINT22:
RETE;软件中断#22,开中断返回
NOP
NOP
NOP
IV_SINT23:
RETE;软件中断#23,开中断返回
NOP
NOP
NOP
IV_SINT24:
RETE;软件中断#24,开中断返回
NOP
NOP
NOP
IV_SINT25:
RETE;软件中断#25,开中断返回
NOP
NOP
NOP
IV_SINT26:
RETE;软件中断#26,开中断返回
NOP
NOP
NOP
IV_SINT27:
RETE;软件中断#27,开中断返回
NOP
NOP
NOP
IV_SINT28:
RETE;软件中断#28,开中断返回
NOP
NOP
NOP
IV_SINT29:
RETE;软件中断#29,开中断返回
NOP
NOP
NOP
IV_SINT30:
RETE;软件中断#30,开中断返回
NOP
NOP
NOP
*********************************************************************************
*本程序未用此中断*
*********************************************************************************
IV_INT0:
RETE
NOP
NOP
NOP
*********************************************************************************
*本系统未用*
*********************************************************************************
IV_INT1:
RETE
NOP
NOP
NOP
*********************************************************************************
*外部中断#2:
本系统未用*
*********************************************************************************
IV_INT2:
RETE
NOP
NOP
NOP
*********************************************************************************
*内部定时中断#0:
mytimer*
*********************************************************************************
IV_TINT0:
BDtimer0
PSHMST0
PSHMST1
*********************************************************************************
*McBSP#0接收中断:
本系统未用*
*********************************************************************************
IV_BRINT0:
RETE
NOP
NOP
NOP
*********************************************************************************
*McBSP#0发送中断:
本系统未用*
*********************************************************************************
IV_BXINT0:
RETE
NOP
NOP
NOP
*********************************************************************************
*DMA通道#0中断:
本系统未用*
*********************************************************************************
IV_DMAC0:
RETE
NOP
NOP
NOP
*********************************************************************************
*内部定时中断#1:
本系统未用*
*********************************************************************************
IV_TINT1:
RETE
NOP
NOP
NOP
*********************************************************************************
*外部中断#3:
本系统未用*
*********************************************************************************
IV_INT3:
RETE
NOP
NOP
NOP
*********************************************************************************
*HPI中断:
本系统未用*
*********************************************************************************
IV_HPINT:
RETE
NOP
NOP
NOP
*********************************************************************************
*McBSP#1接收中断:
本系统未用*
*********************************************************************************
IV_BRINT1:
RETE
NOP
NOP
NOP
*********************************************************************************
*McBSP#1发送中断:
本系统未用*
*********************************************************************************
IV_BXINT1:
RETE
NOP
NOP
NOP
*********************************************************************************
*DMA通道#4中断:
本系统未用*
*********************************************************************************
IV_DMAC4:
RETE
NOP
NOP
NOP
*********************************************************************************
*DMA通道#5中断:
本系统未用*
*********************************************************************************
IV_DMAC5:
RETE
NOP
NOP
NOP
Reserved1:
NOP
NOP
NOP
NOP
Reserved2:
NOP
NOP
NOP
NOP
.text
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;timerinterruptacknowledge
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
timer0:
popmST1
popmST0
rete
.end
五、设计结果:
1.频率为9.613kHz,占空比为51.90%的方波:
2.频率为6.579kHz,占空比为67.10%的方波:
3.频率为16.13kHz,占空比为17.78%的方波:
六、课程设计的参考文献
《DSP技术与应用实例》赵红怡编著(电子工业出版社2012)
《DSP实验教程:
基于TMS320VC5416DSK》张涛陈存彪编著(机械工业出版社2009)
七、课程设计的结论及收获
在CCS中用汇编语言编写源程序,可以实现输出频率连续可调的方波信号,下载到开发板TMS320VC5416上以后可用示波器测量输出的方波波形和频率。
通过对一定频率范围内的方波生成课程设计的实践,让我们对开发板TMS320VC5416的结构有了更加直观的了解,同时也对用汇编语言编写程序更加熟练,也让我们熟悉了CCS的开发环境。
而且,在课程设计的过程中,小组成员们通过学校图书馆和上网等方式查阅了大量的资料,在阅读了大量文献的过程中,不仅对我们所做的课程设计有了更加深刻的认识,而且我们也对DSP设计相关方面的知识有了更加深入的了解。
这次的课程设计是分小组进行的,在小组内大家分工合作,也互相学习,锻炼了大家的团队协作的能力。
总之,我们不仅收获了课本知识,也锻炼了动手能力,还学会了如何去配合,去相互学习。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计 一定 频率 范围内 方波 生成