堆栈的使用方法2

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

堆栈的使用方法

学院:教育信息与技术学院专业:信息工程班级:0802 姓名:江伟学号:2008116020220

一:实验任务

掌握堆栈的使用方法

二:实验工具

计算机、DSP 实验箱。

三:实验内容

1、用仿真器将计算机与DSP 实验箱连接好,并依次打开实验箱电源、仿真器电源,然后运行CCS 软件。

2、新建一个项目:点击Project-New,将项目命名为example3,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS 软件不能识别以中文命名的文件夹。

3、新建一个源文件:点击File-New-Source File 可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(example3),保存类型选择*.ASM(如果源文件是C 语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM 为保存类型),我们在这里将保存名字命名为example3.asm 。

4、在项目中添加源文件:在新建了一个源文件以后,要想使用CCS 编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击example3.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的example3.asm 文件添加到该项目中去。

5、编写源程序:

在工程管理器中双击example3.asm ,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容:

.title "example3.asm"

.mmregs

size .set 100

stack .usect "STK",size ;堆栈的设置

.bss length,10H

.def _c_int00;start

.text

_c_int00: B start;

start: STM #0,SWWSR ;插入0 个等待状态

STM #stack+size,SP ;设置堆栈的指针

LD #-8531,A

STM #size,AR1

MVMM SP,AR7

loop: STL A,*AR7-

BANZ loop,*AR1-

.end

6、编写链接配置文件:

参照实验一,需要更改的地方如下:

7、编写中断向量表文件

参照实验一,可不作修改。

8、对项目进行编译和链接:

把example3.asm、vectors.asm、example3.cmd 依次添加到项目后,点击Project-CompileFile,在项目编译成功之后点击Project-Build 选项对该项目进行链接,生成*.out 文件。

9、装载可执行文件:

要让程序代码在DSP 内部运行必需将生成的*.OUT

文件装载到DSP 内部,装载方法是点击:File-Load

Programe 再选择生成的example3.out 文件就可以将程

序装载到DSP 的内部存储器中。

10、运行程序并查看结果:

a)首先打开欲查看的数据空间:点击View-Memory,

弹出“Memory Window Options”对话框,把欲查看的

地址改为0x0090

b)点击OK 按钮,然后点击Debug-Run 让程序在DSP

内部运行,最后点击Debug-Halt,再观察“Memory ”

四:实验现象

实验步骤比较复杂,按照步骤,完成的比较好

定时器中断实验

学院:教育信息与技术学院专业:信息工程班级:0802 姓名:江伟学号:2008116020220

一:实验任务

1、掌握DSP 中断技术,学会对DSP 中断的处理方法。

2、掌握中断对于程序流程的控制,理解DSP 对于中断的响应时序。

3、掌握汇编语言编写中断的基本方法。

二:实验工具

计算机、DSP实验箱。

三:实验内容

利用定时器中断制作方波发生器,通过XF 引脚控制LED 发光来检测方波的周期。

五、实验步骤

1、新建一个项目:testxf.pjt;

2、在项目中编辑以下汇编语言文件:

有时定时的长度不能满足需要,比如F=50Mhz时,定时最大是:

20ns*2^4*2^16=20ms。如果需要更长的定时,就要在定时器中断子程序中再加一个计数器,直到产生一定次数的定时中断后再执行相应的操作。如下程序可以产生1Hz 的方波:

;==============================================

; fangbo.asm

; 利用定时器Timer0 在XF 脚产生周期1s 的的方波

;==============================================

.title "fangbo.asm"

.mmregs

.def _c_int00 ;程序入口

.def TINT0_ISR ;Timer0中断服务程序

STACK .usect "STACK",10H ;分配堆栈空间

;设定定时器0 控制寄存器的内容

K_TCR_SOFT .set 0B<<11 ;TCR第11位soft=0

K_TCR_FREE .set 0B<<10 ;TCR第10位free=0

K_TCR_PSC .set 0B<<6 ;TCR第9-6位,可设跟TDDR 一样,也可不设自动加载

K_TCR_TRB .set 1B<<5 ;TCR第5位TRB=1此位置1,PSC会自动加载的

K_TCR_TSS .set 0B<<4 ;TCR第4位TSS=0

K_TCR_TDDR .set 0100B<<0 ;TCR第3-0位TDDR=0100B

K_TCR .set

K_TCR_SOFT|K_TCR_FREE|K_TCR_PSC|K_TCR_TRB|K_TCR_TSS|K_TCR_TDDR

K_TCR_STOP .set 1B<<4 ;TSS=1时计数器停止

.data

DATA_DP:

XF_Flag: .word 1 ;当前XF的输出电平标志,如果XF_Flag=1,则XF=1

;================================================

;主程序:

相关文档
最新文档