文档库 最新最全的文档下载
当前位置:文档库 › DSP实验指导书(学生用)(精)

DSP实验指导书(学生用)(精)

DSP实验指导书(学生用)(精)
DSP实验指导书(学生用)(精)

CCS 软件的使用一、软件设置步骤:软件仿真(不使用仿真器)时的软件配置方法如下: 1、点击桌面“SETUP CCS2”的图标,出现如下窗口; 2、点击“Close” ,如下图所示:在上述窗口中右键点击“My System”下的C55XXCyele Accurate Simulator, 点击”Remove”并确认。然后用鼠标把窗口中间的“C54XX Simulator”移到左边的“My System” 窗口中。弹出如下所示的界面: 3、点击“NEXT ”按钮,出现如下图示的窗口: 4、点击窗口中的按钮,在弹出的对话框中选择“SIN5402.cfg”,点击“打开” 铵钮,出现如下图示的窗口: 5、点击“NEXT ”按钮,弹出如下图示的窗口: 6、在上图窗口中点击按钮,在弹出的窗口中选择

“c5402sim.gel”,然后点击“打开”,点“Finish”完成,出现如下图所示的界面,然后关闭窗口保存设置。二、CCS5000 的使用方法: (一CCS 文件名介绍在使用CCS 前,应该先了解以下软件的文件名约定: Project.p.t CCS 定义的工程文件Program.c C 程序文件 Program.asm 汇编语言程序文件 Filename.h 头文件,包括DSP/BIOS API 模块 Filename.lib 库文件 Program.cmd 连接命令文件 Program.obj 编译后的目标文件 Program.out 可在目标DSP 上执行的文件,可在CCS 监控下调试/执行 (二编写一个简单的程序:这一部分将介绍如何在CCS 下面新建一个程序,及如何编译、连接、下载、调试程序。 1、新建一个工程文件(1)、打开桌面上图标CCS 2 (’C5000),出现下图界面;(2)、点击菜单Project、在出现的下拉菜单中点击New 弹出下图示所示的窗口,然后在“Project”中输入项目名字,则会在C:\ti\myprojects 目录下建立一个、文件夹 example,并在example 文件夹下建立项目文件 example.pjt (也可以自己定义其它路径)。注意:此文件不能在中文目录下。(3)点击“完成”按钮出现界面如下:(4 )此时即可加入各种文件项目中,也可马上建立一个源文件然后加入到项目中。建立源文件的方法是:点击File-New -Source,即弹出一个可供编辑的窗口,在窗口中输入内容,然后保存为相应的文件(如果是汇编代码,则保存为文件名后缀为ASM 的文件,依次类推),最后即可把此建立的文件添加到项目中。下面介绍把文件添加到项目中的方法。 2、往工程中加入文件如果把example 文件夹下的example.asm, example.cmd, vectors.asm 三个文件添加到C:\ti\myprojects\exampl

e 下。(1)、选择Project/Add Files to Project,在文件类型选项中*.asm 选择文件,选择 example.asm,然后点击“打开”按钮,即把文件添加到了项目中。(2)、再重复上一步骤,把vectors.asm 添加到项目中。(3)、选择Project/Add Files to Project。在文件类型选项CMD 文件(*.cmd),选择 example.cmd,然后点击“打开”按钮。(4 )、此时,可以在工作窗口的工程视察中 example.pjt 旁的+号,展开工程查看其中文件。结果如下图所示:(5)、注意此时,一些包含的文件不会出现在include 目录下,编译后CCS 会自动加入,不必手动执行。 3、浏览代码和 Windows 的浏览器相似,只要打开+号展现下面的文件,然后双击文件的图标,在主窗口就会显示相应的文件原始代码。 4、编译执行程序(1)、选择Project/Reduild All,或工具条中的相应按钮(2 )、编译成功后,选择 File/Load Program ,选择你刚编译的可执行程序 example.out,并单击打开。(3)、选择Debug/Run,或工具条中的相应图标或运行程序。 5、跟踪/调试程序(1)、选择Debut/Restart,重新执行程序。(2)、不全速运行,而是选择Debug/StepInto 或按F8,单步执行。(3)、单步执行程序的同时,选择View/CPU Registers 观察主要寄存器的变化。选择View/Memon 相应程序区、数据区地址,观察存贮器中的内容。注意:具体变量地址由*.cmd 文件决定。实验一程序的控制与转移一、实验目的 1、掌握条件算符的使用。 2、掌握循环操作指令(BNAZ )和比较操作指令(CMPR)二、实验设备计算机三、实验内容 5 编写程序,实现计算y= ∑xi 的值。 i=1 四、实验步骤 1、点击桌面CCS2(’C5000)图标,运行CCS软件。 2、新建一个项目:点击Project-New,将项目命名为example1,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。 3、新建一个源文件:点击File-New-Source File可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(example1,保存类型选择*.ASM(如果源文件是 C 语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为example1.asm 。 4、在项目中添加源文件:在新建立了一个源文件以后,要想使用 CCS 编译器对

该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理

器中右键单击example1.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的example1.asm文件添加到该项目中去。 5、编写源程序:在工程管理器中双击example1.asm ,将出现文本编辑窗口,在该文本编辑窗口中输入如下内容。(要求:将以下程序每条加上注解。 .title "example1.asm" .mmregs STACK .usect "STACK",10H ;堆栈的设置 .bss x,5 ;为变量分配6个字的存储空间 .bss y,1 .def

start .data table: .word 10,20,3,4,5 ;输入xi .text start: STM #0,SWWSR ;插入 0 个等待状态 STM #STACK+10H,sp ;设置堆栈指针 STM #x,AR1 ;AR1 指向x RPT #4 ; MVPD table,*AR1+ ;把程序存储器中的数据移动到数据存储器 LD #0,A ;将累加器

A清零 CALL SUM ;调用子程序SUM end: B end SUM: STM #x,AR3 ;AR3指向x STM #4,AR2 ;AR2=4 loop: ADD *AR3+,A ;将xi进行累加,并将累加和存放A中BANZ loop,*AR2- ;此循环总共进行5次乘法和比较 STL A,*(y ;将累加和存放入y

中 RET ;子程序返回 .end 提示:(1)源代码的书写有一定的格式,初学者往往容易忽视。每一行代码分为三个区:标号区、指令区和注释区。标号区必须顶格写,主要是定义变量、常量、程序标致时的名称。指令区在标号区之后,以空格或TAB 格开。如果没有标号,也必须在指令前面加上空格或 TAB,不能顶格。注释区在标号区、程序区之后,以分号开始。注释区前面可以没有标号区或程序区。另外还有专门的注释行,以* 打头,必须顶格开始。(2)一般区分大小写,除非加编译参数忽略大小写。(3)标点符号有时不注意会打成中文全角版本号导致错误。 6、编写链接配置文件:只有汇编源程序是不够的,一个完整的 DSP 程序至少包含三个部分:主程序 (*.asm、中断向量表(vectors.asm、链接配置文件(*.cmd。这里先介绍一下链接配置文件。链接配置文件有很多功能,这里先介绍

最常用的也是必须的两条:1.存贮器的分配 2.标明程序入口。由于每个程序都需要一个链接配置文件,每个程序的链接配置文件根据实际情况的需要都略有不同,下面就为本实验的程序编写一个链接配置文件,其它实验的链接配置文件都可

以参考此例来完成: /*example1.cmd */ vectors.obj example1.obj -o example1.out -m example1.map -estart MEMORY { PAGE 0: EPROM:org=0090H len=0F70H VECS:

org=0080H len=0010H PAGE 1: SPRAM:org=1000H len=1000H DARAM:org=2000H len=2000H } SECTIONS { .text :>EPROM PAGE 0 .data :>EPROM PAGE

0 .bss :>SPRAM PAGE 1 STACK :>DARAM PAGE 1 .vectors :>VECS PAGE 0 } 7、编写中断向量表文件 /* vectors.asm */ .title "vectors.asm" .ref start .sect ".vectors" B start .end 8、对项目进行编译和链接:把example1.asm、vectors.asm、

example1.cmd 依次添加到项目后,点击Project -Compile File,在项目编译成功之后点击 Project -Build 选项对该项目进行链接,生成 *.OUT 文件。 9、装载可执行文件:要让程序代码在DSP 内部运行必需将生成的*.OUT 文件装载到DSP 内部,装载方法是点击:File-Load Programe 再选择生成的 example1.out 文件就可以将程序装载到DSP 的内部存储器中。 10、运行程序并查看结果: a )首先打开欲查看的数据空间:点击 View - Memory,弹出“Memory Window Options”对话框,把欲查看的地址改为 0x1000,如上页右图所示。 b点击OK 按钮,然后点击Debug-Run 让程序在DSP 内部运行,最后点击Debug -Halt,再观察“Memory”对话框,看是否与下图一致:实验二加减法和乘法运算一、实验目的掌握加减法和乘法运算指令。二、实验设备计算机三、实验内容 4 编写程序,分别实现计算z=x+y-w、y=mx+b、y= ∑ai xi 。 i=1 四、实验步骤前4 项实验步骤与实验一相同。 5、编写源程序: ***************************************** * * * 计算

z=x+y-w * * * ***************************************** .title

"example2.asm" .mmregs STACK .usect "STACK",10H ;堆栈的设置 .bss x,1 ;为变量

分配4 个字的存储空间 .bss y,1 .bss w,1 .bss z,1 .def start .data table .word

10,26,23 ;x,y,w .text start: STM #0,SWWS

R ;插入 0 个等待状态 STM #STACK+10H,SP ;设置堆栈指针 STM #x,AR1 ;AR1 指向x RPT #2 MVPD table,*AR1+ ;把程序存储器中的数据移动到数据存储器CALL SUMB end: B end SUMB: LD *(x,A ADD *(y,A SUB *(w,A STL A,*(z

RET .end 6、编写链接配置文件:参照实验一,需要更改的地方如下:更改前更改后 Example1.obj Example2.obj -o example1.out -o example2.out -m example1.map -m example2.map 7、编写中断向量表文件参照实验一,可不作修改。 8、对项目进行编译和链接:把example2.asm、vectors.asm、example2.cmd 依次添加到项目后,

点击Project-Compile File,在项目编译成功之后点击Project-Build 选项对该项目进行链接,生成*.out 文件。 9、装载可执行文件:要让程序代码在DSP 内部运行必需将生成的 *.OUT 文件装载到DSP 内部,装载方法是点击: File-Load Programe 再选择生成的example4.out 文件就可以将程序装载到DSP 的内部存储器中。 10、运行程序并查看结果: a)首先打开欲查看的数据空间:点击 View -Memory ,弹出“ Memory Window Options”对话框,把欲查看的地址改为

0x1000,如右图所示。 b点击 OK 按钮,然后点击 Debug-Run 让程序在 DSP 内部运行,最后点击Debug-Halt,再观察“Memory ”对话框,看是否与下图一致:11、建立项目工程文件example3,使之实现计算y=mx+b;

***************************************** * * * 计算 y=mx+b * * *

***************************************** .title "example3.asm" .mmregs STACK .usect "STACK",10H ;堆栈的设置 .bss m,1 ;为变量分配4 个字的存储空

间 .bss x,1 .bss b,1 .bss y,1 .def start .data table: .word 3,15,20 ;m,x,b .text start:STM

#0,SWWSR ;插入 0 个等待状态 STM #STACK+10H,SP ;设置堆栈指针 STM

#m,AR1 ;AR1 指向m RPT #2 ;把下一条指令重复执行 3 遍 MVPD table,*AR1+ ;把程序存储器中的数据转移到数据存储器 CALL SU end: B end SU: LD *(m,T MPY

*(x,A ADD *(

b,A STL A,*(y RET .end 4 12 建立项目工程文件example4,使之实现计算y= ∑aixi 。 i=1 ***************************************** * * 4 * 计算y= ∑ai xi * i=1 * * ***************************************** .title

"example4.asm" .mmregs STACK .usect "STACK",10H ;堆栈的设置 .bss a1,4 ;为变量分配5 个字的存储空间 .bss x1,4 .bss y,1 .def start .data table: .word 3,5,15,20,1,2,3,4 ;输入ai,xi .text start:STM #0,SWWSR ;插入 0 个等待状态 STM #STACK+10H,SP ;设置堆栈指针 STM #a1,AR1 ;AR1 指向x1 RPT #7 ;移动 8 个数据 MVPD

table,*AR1+ ;把数据从数据存储器存入程序存储器 CALL SUM end: B end SUM: STM #a1, ar2 STM #x1, ar3 RPTZ A,*(y ;利用间接寻址方式,和重复指令完成乘加运算 MAC *AR2+,*AR3+,A STL A, *(y RET .end 说明:1、链接配置文件与中断向量表文件与上一个实验类似 2、观察实验结果与前面实验类似。 4 13.编写计算y=

∑aixi 的程序段,数据均为小数。 i=1 其中:a1=0.1,a2=0.2,a3=-0.3,a4=0.4

x1=0.8,x2=0.6,x3=-0.4,x4=-0.2 .title "example13.asm" .mmregs STACK .usect "STACK",10H .bss a,4 .bss x,4 .bss y,1 .def start .data table: .word 1*32768/10 .word

2*32768/10 .word -3*32768/10 .word 4*32768/10 .word 8*32768/10 .word

6*32768/10 .word -4*32768/10 .word -2*32768/10 .text start:SSBX FRCT STM #a,AR1 RPT #7 MVPD table,*AR1+ STM #x,AR2 STM #a,AR3

RPTZ A,#3 MAC *AR2+,*AR3+,A STH A,*(y end: B end .end 14:找出4 项乘积ai*xi(i=1,2,3,4中的最大值主程序:example6.asm

******************************************** * * * 找出4 项乘积

ai*xi(i=1,2,3,4中的最大值 * * *

******************************************** .title "example6.asm" .mmregs STACK .usect "STACK",10H ;堆栈的设置 .bss a,4 ;为变量分配9 个字的存储空

间 .bss x,4 .bss y,1 .def start .data table: .word 1,5,3,4 ;a1,a2,a3,a4 .word

8,6,7,2 ;x1,x2,x3,x4 .text start:STM #0,SWWSR ;插入 0 个等待状态 STM

#STACK+10H,SP ;设置堆栈指针 STM #a,AR1 RPT #7 MVPD table,*AR1+ CALL MAX end: B end MAX: STM #a,AR1 STM #x,AR2 STM #2,AR3 LD *AR1+,T MPY *AR2+,A ;第一个乘积在累加器A 中 loop: LD *AR1+,T MPY *AR2+,B ;其他乘积在累加器B 中 MAX A ;累加器A 和B 比较,选出较大者存入A 中 BANZ loop,*AR3- ;此循环中共进行3 次乘法和比较 STL A,*(y RET .end vectors.asm .title "vectors.asm" .ref start .sect ".vectors" B start .end example6.cmd vectors.obj

example6.obj -o example6.out -m example6.map -estart MEMORY { PAGE 0: EPROM:org=0090H len=0F70H VECS: org=0080H len=0010H PAGE 1:

SPRAM:org=1000H len=1000H DARAM:org=2000H len=2000H } SECTIONS { .text :>EPROM PAGE 0 .data :>EPROM PAGE 0 .bss :>SPRAM PAGE 1

STACK :>DARAM PAGE 1 .vectors:>VECS PAGE 0 } 仿真结果:硬件实验如果CCS 是在硬件目标板上运行,则先要安装目标板驱动程序,然后运行“CCS Setup” 配置驱动程序,最后才能执行 CCS。除非用户改变CCS 应用平台类型,否则只需运行一次 CCS 配置程序。运行Code Composer Studio Setup 软件(即桌面上的Setup

CCS2 (C5000)图标。点击Install a Device Driver,选择相应驱动程序. 例如: 5X 系列: PCI 开发器为xdspci54x.dvr; ISA 开发器为wtxds54xisa.dvr EPP 开发器为sdgo5xx32.dll 2X 系列: PCI 开发

器为xdspci2xx.dvr ISA 开发器为wtxds2xxisa.dvr EPP 开发器为sdgo2xx32.dll 3X 系列: PCI 开发器为xds3xPCI.dvr ISA 开发器为wtxds3xisa.dvr EPP 开发器为Sdgo3x32.dll 对于 EL-DSP-EXP II 型实验箱,由于采用并口与仿真器连接,需要使用 sdgo5xx32.dll 驱动程序。此时,Available Board/Simulator Type 一栏中会出现相应的驱动图标; 把该图标拖动到最左边的 System Configuration 一栏中。出现Board Properties 对话框。点击NEXT,进入下一页,会显示板卡的I/O 口值,将其由0x240 修改为 0x378(ISA、 PCI、USB 仿真器不用修改,此处由于仿真器为并口,须改为0x378,再点击NEXT,在Processor Configuration 窗中, 在Available Processor 中选择TMS320C54XX 然后,点击Add Single;对话框右边出现CPU_1 图标. 点击NEXT,进入下一页,提示选择一个初始化的.GEL 文件,对于 5000 系列的DSP 芯片,可选择5402、5409、5410 等。这里我们选择c5402.gel,最后,点击finish.关闭CCS 程序,选择保存。至此 CCS 硬件调试设置完成。实验三 LED 灯闪烁一、实验目的熟悉CCS软件的使用和简单算法程序的编写二、实验设备计算机,CCS2.2软件,实验箱,DSP仿真器三、实验步骤 1、系统连接。进行DSP 实验前,必须先连接号仿真器、实验箱及计算机。 2、连接正确后,接通电源并启动计算机。此时,仿真盒上的“红色小灯”应点亮。否则 DSP 开发系统与计算机连接有问题。同时将实验箱上 K10 按键弹起。 3、运行 CCS 程序。计算机启动成功后,实验箱上电,再启动 CCS,此时仿真器上当“绿色小灯”应点亮,并且 CCS 正常启动,表明系统连接正常;否则仿真器的连接可能有问题。 4、建立工程文件,并创建文件exp01.asm .mmregs .global _main _main: stm #3000h,sp ssbx xf call delay rsbx xf call delay b _main nop nop ;delay .5 second delay: stm 270fh,ar3 loop1: stm

0f9h,ar4 loop2: banz loop2,*ar4- banz loop1,*ar3- ret nop nop .end 5、建立exp01.cmd 文件 vectors.obj exp01.obj -o exp01.out -m exp01.map -estart MEMORY { PAGE 0: /* program space */ VECS: origin = 0x0080, length = 0x0080 /* 128bytes vector table space */ PROG: origin = 0x0100, length = 0x2F00 /* 8K program memory space */

PAGE 1: /* data space */ SCRA: origin = 0x0060, length = 0x0020 /* scratch pad mem space */ STCK: origin = 0x2000, length = 0x0800 /* 1K words for stack */ D

AT1: origin = 0x2800, length = 0x0100 /* 256 words for sys data */ DAT2: origin = 0x2900, length = 0x1000 /* 12K words for appl data */ } SECTIONS { .vectors : {} > VECS PAGE 0 /* interrupt vector table */ .text : {} > PROG PAGE 0 /* program code */ .coeffs : {} > PROG PAGE 0 /* initialized parameters */ .bss : {} > DAT2 PAGE 1 /* uninitialized vars for applications */ .data : {} > DAT2 PAGE 1 /* initialized data

*/ .stack : {} > STCK PAGE 1 /* software stack section */ .variable : {} > DAT1 PAGE 1 /* uninitialized vars for DSP&AIC10 */ } 6、编译并连接,生成exp01.out 文件。加载该文件,如下图:加载完毕,单击”Run”运行程序。可见指示灯 Led5 以一定频率闪烁;单击”Halt”暂停程序运行,则指示灯 LED5 停止闪烁,如再单击”RUN”,则指示灯LED5 又开始闪烁。改变delay 子程序中的延时参数,可以改变Led 灯亮灭的时间间隔。读者可以自行尝试。关闭所有窗口,本实验完毕。实验四数据存储实验一、实验目的 1、掌握TMS320C54 的程序空间的分配; 2、掌握

TMS320C54 的数据空间的分配; 3、熟悉操作TMS320C54 数据空间的指令。二、实验设备计算机,CCS 2.2 版软件,DSP 仿真器,实验箱。三、实验系统相关资源介绍本实验指导书是以 TMS320VC5402 为例,介绍相关的内部和外部存储器资源。对于其他类型的CPU 请参考查阅相关的数据手册。下面给出

TMS320VC5402 的存储器分配表:对于数据存储空间而言,映射表相对固定。值得注意的是内部寄存器都映射到数据存储空间内。因此在编程应用是这些特定的空间不能作其他用途。对于程序存储空间而言,其映射表和 CPU 的工作模式有关。当MP/MC 引脚为高电平时,CPU 工作在微处理器模式;当 MP/MC 引脚低电平时,CPU 工作在为计算机模式。具体的存储器映射关系如上图所示。存储器试验主要帮助用户了解存储器的操作和 DSP 的内部双总线结构。并熟悉相关的指令代码和操作等。四、实验步骤与内容 1、连接好DSP 开发系统,运行CCS 软件;将实验箱上 K10 按键弹起。 2、在 CCS 的Memory 窗口中查找 C5402 各个区段的数据存储器地址,在可以改变的数据地址随意改变其中内容; 3、在 CCS 中装载

实验示范程序,单步执行程序,观察程序中写入和读出的数据存储地址的变化;

4、联系其他寻址方式的使用。

5、实验操作说明建立工程“e

xp02.pjt”,并在其下建立“exp02.asm”,内容如下 .mmregs .global _main

_main: ;store data stm 1000h,ar1 ;address of internal memory rpt #07h st

0aaaah,*ar1+ ;data ;read data then re-store stm 7h,ar3 stm 1000h,ar1 stm 1008h,ar2 loop: ld *ar1+,t st t,*ar2+ banz loop,*ar3- here: b here .end 再建立exp02.cmd 文件,内容如下: vectors.obj exp01.obj -o exp02.out -m exp02.map -estart MEMORY { PAGE 0: PROG: origin = 0x80, len = 0x980 /* PAGE 0: PROG: origin =0x180, len=0x980(you can repace the line above by using this line,then watch the result*/ PAGE 1: DATA: origin = 0x0a00, len = 0x0a00 } SECTIONS { .text: {} > PROG PAGE 0 .cinit: {} > PROG PAGE 0 .switch: {} > PROG PAGE 0 .bss: {} > DATA PAGE 1 .const: {} > DATA PAGE 1 .sysmem: {} > DATA PAGE 1 .stack: {} > DATA PAGE 1 .data: {} > DATA PAGE 1 } 对工程进行编译,生成.out 输出文件。在File 菜单下加载

“exp02.out”;用“View”下拉菜单中的“Memory”查看内存单元;输入要查看的内存单元地址,本实验要查看 0x1000H~0x100FH 单元的数值变化,输入地址

0x1000H;查看 0x1000H~0x100FH 单元的初始值,单击“Run”运行程序,也可以“单步”运行程序;单击“Halt”暂停程序运行;查看0x1000H~0x100FH 单元内数值的变化;关闭各窗口,本实验完毕。本实验说明:本实验程序将对0x1000 开始的8 个地址空间,填写入0xAAAA 的数值,然后读出,并存储到 0X1008 开始的8 个地址空间。在 CCS 中可以观察 DATA 存储器空间地址 0X1000~0X100F 值的变化。实验五 I/O 实验一、实验目的 1、了解I/O 口的扩展;掌握I/O 口的操作方法; 2、熟悉PORTR,PORTW 指令的用途; 3、了解数字量与模拟量的区别和联系。二、实验设备计算机,CCS 2.2 版软件,DSP 仿真器,实验箱。三、实验步骤与内容 1、将实验箱上 K10 按键弹起。运行 CCS 软件,建立工程文件并输入源程序,编译后运行,分别调整数字输入输出单元的开关 S6~S13,观察

LED6~LED13 亮灭的变化,以及输入和输出状态是否一致。 2、实验

操作说明启动CCS 2.2,建立“exp03.pjt”工程,并建立“exp03.asm”,内容如下: .mmregs .global _main .text _main: stm 3100h,sp stm 1000h,ar1 ;define the address portr 8000h,*ar1 nop nop portw *ar1,8001h nop nop b _main nop nop .end 再建立

exp03.cmd 文件: MEMORY { PAGE 0: PROG: origin = 0x2000, len = 0x980 PAGE 1: DATA: origin = 0x2a00, len = 0x0300 } SECTIONS { .text: {} > PROG PAGE 0 .cinit: {} > PROG PAGE 0 .switch: {} > PROG PAGE 0 .bss: {} > DATA PAGE 1 .const: {} > DATA PAGE 1 .sysmem: {} > DATA PAGE 1 .stack: {} > DATA PAGE 1 .data: {} > DATA PAGE 1 } 将上述 2 个文件加载到工程中,编译并生成.out执行文件。在 File 菜单下加载“exp03.out”;单击“Run”运行程序;分别调整数字输入单元的开关

K2~K9,观察LED7~LED14 亮灭的变化,以及输入和输出状态是否一致。单击“Halt”将暂停持续运行,开关对灯失去控制。关闭所有窗口,本实验完毕。四、

实验说明实验中采用简单的一一映射关系来对I/O 口进行验证,目的是使实验者

能够对I/O 口有一目了然的认识。在本实验中,提供的IO 空间分配如下: CPU:

0x8000 按键 input (X 8 0x8001 灯 output(X 8

相关文档