DSP硬件实验报告-北邮.pdf
《DSP硬件实验报告-北邮.pdf》由会员分享,可在线阅读,更多相关《DSP硬件实验报告-北邮.pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-北京邮电大学DSP 硬件实验报告学学院:院:电子工程学院电子工程学院专专业业: :姓姓名:名:学学号号: :班班级:级:-实验一实验一常用指令实验常用指令实验一、一、实验目的实验目的熟悉 D开发系统的连接了解 DP 开发系统的组成和结构和应用系统构成熟悉常用 C54X 系列指令的用法(程序寻址,寄存器,IO 口,定时器,中断控制) 。二、实验步骤与内容二、实验步骤与内容(一)简单指令程序运行实验源程序:;thrgram is compiled t no utoinitlizato mode-程序在非自动初始化模式下编译.mmres(-ntermmormaped regtrs nt hesym
2、ol tale) 进入记忆映射注册进入符号表oba _a (-idntfy one or mor gloa(external)smbls) -定义一个或多个全局变量_ain:stm(累加器的低端存放到存储器映射寄存器中 )#300,sp(堆栈指针寄存器);堆栈指针的首地址设为#00ssbx(状态寄存器位置位)xf ;状态寄存器位置位,灯亮call (非条件调用,可选择延迟)dely(存储器延时) ;调用 dela函数延时sbx(状态寄存器复位)xf;状态寄存器位复位,灯灭cll deay;调用 deay 函数延时b (累加器)_mai;可选择延迟的无条件转移,循环执行nop(无操作)op;de
3、ay.5 secondeay: ;延迟 0.5 秒t2,ar (辅助寄存器);把地址存放到存储器映射寄存器中oo1:stm0f9h,ar4(辅助寄存器 4);把地址存放到存储器映射寄存器中lop2:bnzlop2,*ar-;A4 不为 0 时转移,指针地址减一-bazloop,*3- ;若不为 0,ar3 减 1,共进行 1000*0 次跳转e (可选择延迟的返回pc=s+);reurn,返回onp;stm 2 cyle;banwhe RE 4yle;FASE 2 cyls;0fh2d;20h=999d.e实验现象F 灯以一定频率闪烁;单击“at”暂停程序运行,则 XF 灯停止闪烁,如再单击“
4、Rn”,则“XF”灯又开始闪烁;(二)资料存储实验源程序:*;t o knowledge of he cmproramis copiled at no atoiitaliation mod.mmregsglbal _ain_ain:;sore datsm10,r1;1 映射到内存 1000h 位;tm5000,ar1;deso exeiormoryp(循环执行下一条指令,计数为短立即数)70h;循环执行下一条指令8次t(存储 T 寄存器的值)aaaah,*a1+ ;daa存储寄存器的值;read data then r-sotm7,ar3;设置 ar; stm5000h,ar;addrss o
5、f eerior emor; stm5008h,a2;addes fexerir mmortm1h,r1;设置 ar1 为 1000stm10,a2 ;设置 ar2 为 108hoo:l*ar1+,;把单数据存储操作数装入 T 寄存器中st,a2;存储 T 寄存器的值-bazoop,*ar3here:hereend;循环次;可选择延迟的无条件转移,循环执行实验目的:; 本实验程序将对 0 x000 开始的 8 个地址空间, 填写入 0AAAA的数值,然后读出,并存储到 0X100开始的 8 个地址空间。在 CCS中可以观察TA内存空间地址 01000X0F 值的变化。实验现象:在CS 的“Vi
6、ew”下拉菜单中的 Memory 窗口中查找 C5410 各个区段的数据存储器地址,在可以改变的存储器内容的地方 ,选定地址随意改变其中内容并观察结果;本实验要查看x100Hx00FH单元的数值变化, 输入地址 0 x100H;查看x000Hx100H 单元的初始值,单击“Run”运行程序,也可以“单步”运行程序;单击“Hl”暂停程序运行。(三):/实验源程序:; :exp03.asm;len how t prateI/pt;e oe knwedg o hertli the O space x000=8 swiches; 00001 LEDs.mmrgs.loa_maintext_main:s
7、tm300h,s;堆栈指针的首地址设为#3s0001 h,ar;dine thedrss,定义r1 的地址 ;dei the addresportr00h,*1;从端口 00h 读出开关状态,存入 ar中。a-1=port(0h)npnppotwr1,01h;将r的内容(开关状态)写入到d 灯上(输入到1 h),控制灯的亮灭nopo _main;寻循环执行nop nop.end;实验现象; 任意调整 K0K7 开关,可以观察到对应 L0LP7 灯 “亮” 或 “灭”(四):定时器实验源程序【初始化程序】【初始化程序】.mmregs.gba_inital_inital:stm 03h,a;初始化
8、 300h数据地址,设置 ar1 的地址s00h,*ar1;辅助寄存器 ar1 指向#0hsm 20,ar1 ;初始化302h 数据地址,设置 ar的地址st#,*a;辅助寄存器 ar1 指向#00hstm 00,ar155#h,*a1stm0h,art0#aah,*r1tm20h,ar1st004,assx1,11;将 ST1INM 置为,停止所有中断stm0fffh,fr;清除所有中断标识fr:中断标志寄存器tm00h,imr;将立即数寄存器(imr)置为 0,停止所有中断-stm10h,tc ;停止计时器tcr:发送控制寄存器stm 41f,prd;将初始时间设为est0h,tcr;开始
9、计时器stm08h,imr;允许计时器中断rsbx 11,1;将 ST1.ITM 置为,开始所有中断r【端口程序】【端口程序】 (定义管脚)(定义管脚).mregs.gloalporta.globalpotb_por:tm40h,a1;设置r1 地址st5555 h,*a1;辅助寄存器 ar1 指向 5555hportw*a1,01;r1 的值做输出控制小灯亮灭retporb:stm 403h,ar1;设置 a1 地址saa,*ar1;辅助寄存器 ar1 指向aaahortw*r,01h; ar1 的值控制亮灭rt【向量程序】【向量程序】sct .vcrref _c_nt00;程序入口 .re
10、f imer;时间中断点lig0 x0 ; 必须被连结到页边界ESE: ; 重设向量D _it0 ;到C入口点的分支 STM #200,S;堆栈大小为 20SP:堆栈寄存器nmi: RETE ;启动中断并从一个返回 NO NOP ;软件中断snt17 .space *16snt pae 4*6-in1 .pce 4*16si20 .spc 4*16snt21 .ce 4*1sn22 .spae 4*6sint2 .pce *16int2 .ace *6sin2 .spce 4*16si6 .spce 4*16sit27 ac 4*16sin28pace 4*16i29 .space *6sin
11、t3 .spc *16int0: RETENP NOP NOPint1: RETE NOOP NOt2:ETE NO NPOPtint:b _timer NOP NOPnt0:EEP NOP NOPxnt: REENPOPrint1: RETOP NOPNOPxnt1:ETNOP NOP NO-tme 中断;设置实用-int3: REE NOPNOP NOP.end实验现象单击 “Run” 运行,可观察到 L灯(LP0LP7)以一定的间隔时间不停摆动;单击“Hlt” ,暂停程序运行,LED 灯停止闪烁;单击“al” ,暂停程序运行,E灯停止闪烁。(五):INT2 中断实验源程序【初始化程序】【
12、初始化程序】.mmegsglobaliitial.tet_intial:stm30,ar3;初始化数据0h a3:辅助寄存器st0#h,*ar3;辅助寄存器r3 指向#00hstm 203h,a4;初始化数据300a4:辅助寄存器s0#h,*ar4ssb1,11;将 s.intm 置为 1,停止所有中断tm 00,im; 将立即数置 0,停止所有中断m:立即数寄存器st0fffh,ifr;清除所有中断标志 ifr:中断标志寄存器stm 4h,imr ;允许 it2 中断sbx1; 1,允许所有中断et .【端口程序】【端口程序】与【向量程序】【向量程序】参见实验四。.实验现象单击“Ru”运行程
13、序,反复拨动开关 K0,观察 LP1LP7 LD 灯亮灭变化;单击“Halt”暂停程序运行,反复拨动开关 0,PP LED灯亮灭不发生变化。-实验二实验二:A/D:A/D 采样实验采样实验实验目的1掌握利用LV20D实现 A/转换的技术基本原理和常用方法。2学会SP 的多信道缓冲串口的应用方法。3掌握并熟练使用 DP 和 A5的接口及其操作。4通过实验加深对P 系统频谱混叠认识.源程序:【C 程序】exervid nitC540(od); */创建初始化 C5402 的函数,返回值为空*exern oidOpenMBS(void);*/创建打开 McBSP 端口的函数,返回值为空;*/exte
14、rn void CloeMcBSP(void);/*创建关闭BSP 端口函数*xtern void RADAD0(vid); /*创建从 AD50 的数据流中读取数据的函数;D50:硬件端口/vod man(oi)/主函数开始/nitC402(); * 初始化C50 DS /penMcBP();/*调用函数,打开cSP 端口*/while ()ADAD50();/*从 AD的数据流中读取数据,完成 AD转换 */【汇编程序】【汇编程序】.global nitC5402;全局符号定义 Init5402(初始化C5402).obl OpenMBSP; 全局符号定义_OeMcBS(打开cSP).gl
15、bal _CleMcSP;全局符号定义_CLoseMcBS(关闭cBSP)globalREADA0 ;全局符号定义 _EADAD5(读取A50 数据流).lobal _WTEAD5;全局符号定义_WITEAD50(向 AD50写入数据流)inue MRegs.h;引入头文件 MMRes.IitC542:NO-L#0, DPT 0, CKD置STM #, CLKD;(在设置之前转到分线规模式)SM#4007, CKMD ; 将 C5402 DSP 时钟设置到0Hz* ConigrC5402System Register *;配置 C54系统寄存器STM#0200, SWWS; 为空间设置两个等待
16、周期;WWSR:外部总线/等待状态寄存器;为数据和监督空间设置 0 个等待周期STM #0000,BCR ;为堆栈转换寄存器设置等待状态;BSR:外部总线块转换控制寄存器; 堆栈空间为 64,之间没有多余的循环;连续的 监督数据 读取SM #0 x1800,ST0; 为状态寄存器 0 进行预设值STM x290,T; 为状态寄存器 1 进行预设值(note:INT=)STM #0 x00A0,S ;PMT:处理器方式状态寄存器; OVLY=,向量指向 00h* Set up Tmer Ctrol gisers*;(设置时钟控制寄存器)STM #0 x010, TCR;停止 oncp 计时 C
17、R 定时器控制寄存 器; 计时器 0 用作主循环的计时器* Iiiize McBSP2 Registers *;(初始化McBS2 (用来创建设备配置)寄存器)ST SPCR1,cBSP2_PSA; 设置 SC1 的寄存器地址STM #0000h, McBSPSPSD ;McBSP2 r eftjustify; 通过框架同步产生接受中断STMSPR2,McBP_SPS; 设置SR2的寄存器地址; 通过框架同步产生传输中断SM#0000, McBSP2_PSD ; McBST(异步传输); 在 SW 断点之后运行STR1,McBSP2_SPS ;设置CR1 的寄存器地址;RR1:接收控制寄存器S
18、TM0040h, cBSP2_PSD ;接收框架1长度16bis-; 重置数据存储器页指针; 对 DS时钟进行软件设-TMRCR2, McB2_SPSA ;设置 RC2 的寄存器地址TM#04h,McB2_SPSD ;接收相位=1; 设置框架长度为 16bitsM XCR, MBSP2_SPSA ;设置 XC1 的寄存器地址STM 040,McBSSPSD; 设置与接收(ec)相同STMXC2, MBSP2SA; 设置 XCR2 的寄存器地址ST #0040h,McBPSSD ;设置与接收(rc)相同SPCR, MBS_SSA ; 设置CR 的寄存器地址STM #00e, McBSP2_SSD
19、 ; 时钟和框架从外部产生(slave)* Fnish DSPInitilation *;(结束SP初始化)T x0000, IR ; 关闭外围中断ST #0 xFF, IFR ; 清除中断的标志RE ;返回主程序NOOP* Watng orMcBS0RX Fnihd *; (等待 McB0 异步接收结束)IfRxRDY1:OPSTMPCR1, McS_SSA;启动 McBSPRxLM McBS2PSD, AAD#002h, ;隐藏已经接受到的 bt(可以用来代替系列端口中断)BC IfDY1, AEQ ; 继续寄存(ceckin)NOPNOP ; 返回NOPOP*WaitingoMSPTX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 硬件 实验 报告 北邮
限制150内