DSP技术原理及应用
实验报告
课程名称: DSP技术原理及应用实验 学 院: 信息学院 专 业: 电子信息科学与技术 班 级: xxxxxxxxxxxx 学 号: xxxxxxxxxxxxxxx 姓 名:
2013年5月 14 日
xxxxxxx 成 绩:
实验一常用指令实验
实验题目
《一》流水灯实验 《二》LCD显示实验
《三》读取键状态,在LCD上显示/点亮相应LED的实验 实验目的
熟悉CCS集成开发环境、熟悉常用cx指令及软件操作。 实验内容与步骤
熟悉CCS集成开发环境。
进入CCS环境并新建一个工程和三个源文件。 在CCS的编辑器中编写源文件。
参看标准CX指令集。在四大类指令中,各选5条指令,将其写成可使用(可编译)的形式,并加注释,再编译,直至无错误(通过汇编)。 实验环境
CCS集成开发环境 实验过程及数据
实验截图:
代码:
(1)cyzl _zl.asm
.title \"cyzl_zl.asm\" .mmregs
STACK .usect \"STACK\ .def start .data
table: .int 1,2,3,4 ;allocate space for stack
.int 8,6,4,2
.text ;code follow... start:
;STM #1k,MMR MMR=#1k
STM #0,SWWSR ;RPT #k Repeat(#k) RPT #7
;MVPD pmad,Smem Smem=prog(pmad) MVPD table,*AR1+
; ;ADD smem,src src=smem+src ADD *AR3,a
;ADD src[,SHIFT][,dst] Dst=dst+src[< ;SQUR A,dst dst=hi(A)*hi(A) SQUR A,A ; ;AND Smem,src src=src&Smem AND *AR3,A 算术指令 逻辑指令 ;BITF Smem,#1k TC=bitf(Smem,#1k) BITF *AR3,#1234H ;CMPL src[,dst] Dst=~src CMPL A,A ;OR #1k,16,src[,dst] dst=src|#1k<<16 OR #1234H,16,A ;SFTL src,SHIFT[,dst] dst=src< ;FRET Far return ;FRET ;RPT #1k Repeat #1k RPT #1234H ; ;DST src,Lmem Dbl(Lmem)=src DST A,*AR3 ;LD Xmem,SHIFT,dst Dst=Xmen[< 程序控制指令 装入和存储指令 [d]goto pmad ;STH src,Smem Smen=hi(src) STH A,*AR3 .end (2)cyzl_v.asm .title \"cyzl_v.asm\" .ref start .sect \".vectors\" rst: B start .end (3)cyzl_ml.cmd cyzl_v.obj cyzl_zl.obj -o cyzl.out -e start MEMORY { PAGE 0: EPROM: org=0E000H, len=100H VECS: org=0FF80H, len=04H PAGE 1: DARAM org=0080H, len=120H } SECTIONS { .text :>EPROM PAGE 0 .data :>EPROM PAGE 0 .bss :>DARAM PAGE 1 .STACK :>DARAM PAGE 1 .vectors :>VECS PAGE 0 } 实验二数据块交换实验 实验题目 数据块交换实验 实验目的 数据块交换 实验内容与步骤 将程序存储器一个区域名为tab1的内容赋值为1,2,3,…..19,20。 将程序存储器另一个区域名为tab2的内容赋值为101,102,……,119,120。 将tab1的内容复制到数据存储区x 将tab2的内容复制到数据存储区y 将x、y内容对调。 计算Z=∑Y*Y (保存计算结果到变量Z) 编写完成该任务的主程序文件、复位向量文件、链接命令文件,并调试至正确。 实验环境 CCS集成开发环境 实验过程及数据 实验截图 x,y中的值交换后,y中的值做乘累加运算: 代码: (1)cyzl_zl.asm .title \"cyzl_zl.asm\" .mmregs .def start .bss x,20 .bss y,20 .bss m,20 .bss z,1 .data tab1: .int 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 tab2: .int 101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120 .text start: STM #x,AR1 RPT #60 ST #0,*AR1+ ;CLEAR MEMERY STM #x,AR1 RPT #39 MVPD tab1,*AR1+ ;COPY FROM P TO D STM #x,AR2 STM #m,AR3 RPT #19 MVDD *AR2+,*AR3+ ;COPY FROM X TO M STM #y,AR2 STM #x,AR3 RPT #19 MVDD *AR2+,*AR3+ ;COPY FROM Y TO X STM #m,AR2 STM #y,AR3 RPT #19 MVDD *AR2+,*AR3+ ;COPY FROM M TO Y STM #y,AR2 RPTZ A,#19 MAC *AR2+,*AR2,A ;A=A+(AR2)*(AR2) STM #z,AR2 STH A,*AR2 STL A,*AR2 B start .end (2)cyzl_v.asm .title \"cyzl_v.asm\" .ref start .sect \".vectors\" rst: B start .end (3)cyzl_ml.cmd cyzl_v.obj cyzl_zl.obj -o cyzl.out -e start MEMORY { PAGE 0: EPROM: org=0E000H, len=100H VECS: org=0FF80H, len=04H PAGE 1: DARAM org=0080H, len=120H } SECTIONS { .text :>EPROM PAGE 0 .data :>EPROM PAGE 0 .bss :>DARAM PAGE 1 .vectors :>VECS PAGE 0 } 实验三 乘累加实验 实验题目 乘累加实验 实验目的 做乘累加实验 实验内容与步骤 (1)十六进制十进制转换 (2)Y=∑ h(i)*x(i) i=1 其中h(i)=1,2,3,4,5,6,7,8,9,10 已保存在程序空间 X(i)=10,9,8,7,6,5,4,3,2,1 1.X(i)也已保存在程序空间,计算结果保存到变量Y。 2.X(i)须从外部I/O端口输入。计算结果也输出到外部I/O端口。 PA0: 输出端口=0(地址) PA1: 输入端口=1(地址) 实验环境 CCS集成开发环境 实验过程及数据 实验3.1 实验结果y=DC(16进制)=220(10进制) 代码: (1)cyzl_zl.asm .title \"cyzl_zl.asm\" .mmregs STACK .usect \"STACK\ .bss x,10 .bss h,10 .bss y,1 .def start .data table: .word 1,2,3,4,5,6,7,8,9,10 .word 10,9,8,7,6,5,4,3,2,1 .text start: STM #x,AR1 RPT #20 ST #0,*AR1+ ;CLEAR MEMERY STM #STACK+10h,SP STM #x,AR1 RPT #19 MVPD table,*AR1+ ;COPY FROM CALL SUM B start SUM: STM #x,AR2 STM #h,AR3 LD #1,DP RPTZ A,#9 MAC *AR2+,*AR3+,A STL A,@y RET .end (2)cyzl_v.asm .title \"cyzl_v.asm\" .ref start .sect \".vectors\" rst: B start .end (3)cyzl_ml.cmd cyzl_v.obj cyzl_zl.obj -o cyzl.out -e start MEMORY { PAGE 0: EPROM: org=0E000H, len=100H VECS: org=0FF80H, len=04H PAGE 1: DARAM org=0080H, len=120H } SECTIONS { .text :>EPROM PAGE 0 .data :>EPROM PAGE 0 .bss :>DARAM PAGE 1 STACK :>DARAM PAGE 1 .vectors :>VECS PAGE 0 } 实验3.2 实验结果y=DC(16进制)=220(10进制) 代码: (1)cyzl_zl.asm .title \"cyzl_zl.asm\" .mmregs PA0 .set 0 PA1 .set 1 .bss x,10 .bss h,10 .bss y,1 .def start .data tab: .word 1,2,3,4,5,6,7,8,9,10 .text start: STM #x,AR1 RPT #20 ST #0,*AR1+ STM #h,AR2 STM #x,AR3 RPT #9 MVPD tab,*AR2+ LD #0,A ;CLEAR A LD #x,DP LOOP: RPT #9 NOP; PORTR PA1,*AR3 CALL SUM B start SUM: STM #h,AR2 STM #x,AR3 LD #1,DP RPTZ A,#9 MAC *AR2+,*AR3+,A STL A,@y RET .end (2)cyzl_v.asm .title \"cyzl_v.asm\" .ref start .sect \".vectors\" rst: B start .end (3)cyzl_ml.cmd cyzl_v.obj cyzl_zl.obj -o cyzl.out -e start MEMORY { PAGE 0: EPROM: org=0E000H, len=100H VECS: org=0FF80H, len=04H PAGE 1: DARAM org=0080H, len=120H } SECTIONS { .text :>EPROM PAGE 0 .data :>EPROM PAGE 0 .bss :>DARAM PAGE 1 STACK :>DARAM PAGE 1 .vectors :>VECS PAGE 0 } Probe Point设置 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务