实验一 I/O实验
实验目的:
熟悉SZ—DSPII实验平台的使用 了解DSP对I/O口的访问方式 熟悉简单的程序设计及指令运用
实验设备:
计算机;DSP硬件仿真器;DSP实验开发平台
实验硬件设置:
在做实验以前,需要接通该实验的硬件电路,本实验为:先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨,开关S10往下拨来选通主板上发光二极管等输出指示设备;将系统主板中“MCU/DSP选择档”选中MCU(往下拨),将“功能键7”拨上去,电击键盘中的RST键,MCU 将对所有发光二极管进行检测,如果所有的发光二极管正常,则将“MCU/DSP选择挡”选中DSP,将功能键1到7都拨下来。然后开始做实验,注意在做实验时开始按了RST硬件复位后,实验不要再按RST键,以免由于DSP复位而失败。如果实验中硬件工作不正常,可按RST对整个系统硬件进行复位。
实验原理:
本程序主要是实现将数据往一个I/O端口送,从而显示一种状态,来验证DSP对I/O口的访问。该实验是由DSP直接编程,往发光二极管送数,运用PORTW指令,观察发光二极管的变化,从而完成基本的I/O实验。
D8-D15 高八位数据 DSP CPLD 锁存 8个 指示灯
指示灯的片选 1002H 硬件框图
实验程序框图
DSP送出不同的数据 DSP初始化 开始 输出到1002H
实验程序
FG_ADDR .set 1002H DATA
DELAY .macro sec_tenth
loop1? STM #09h,AR6 loop0? STM #19999,AR7
BANZ $,*AR7- BANZ loop0?,*AR6- BANZ loop1?,*AR5- .endm
;延时 sec_tenth/10 秒
STM sec_tenth-1,AR5 reset:
.set 60h ;double ram data .sect \B _c_int00 NOP NOP
.space 31*4*16
.title \.global _c_int00 .mmregs
.text LD #0h,DP STM #3000h,SP RSBX INTM
STM #07FFFh,SWWSR
;工作在20MHz
_c_int00:
SSBX XF ;XF=1 ST #1007h,CLKMD
RPT #0FFh NOP STM #0ffffh,IFR ORM #000h,IMR RSBX SXM ST #8100H,DATA
#10
WRDENG: PORTW DATA,FG_ADDR DELAY NOP
ST #4200H,DATA
DATA,FG_ADDR #10
PORTW DELAY
ST #2400H,DATA PORTW DELAY
ST #1800H,DATA PORTW DELAY #10
ST #1800H,DATA PORTW DELAY
DATA,FG_ADDR #10
DATA,FG_ADDR DATA,FG_ADDR #10
RPT #10 NOP
ST #2400H,DATA PORTW DELAY RPT #10 NOP
ST #4200H,DATA PORTW DELAY RPT #10 NOP
ST #8100H,DATA PORTW DELAY RPT #10 NOP
STM #00H,DATA ;;; PORTW DELAY NOP
ST #100H,DATA
DATA,FG_ADDR #10
PORTW DELAY
ST #200H,DATA PORTW DELAY
ST #400H,DATA PORTW DELAY #10
DATA,FG_ADDR DATA,FG_ADDR #10
DATA,FG_ADDR #10
DATA,FG_ADDR #10
DATA,FG_ADDR #10
DATA,FG_ADDR #10
ST #800H,DATA PORTW DELAY RPT #10 NOP
ST #1000H,DATA PORTW DELAY #10 RPT #10 NOP
ST #2000H,DATA PORTW DELAY RPT #10 NOP
ST #4000H,DATA PORTW DELAY RPT #10 NOP
STM #8000H,DATA PORTW DELAY RPT #10 NOP ;;;
ST #8000H,DATA PORTW DELAY
ST #4000H,DATA
DATA,FG_ADDR #10
DATA,FG_ADDR #10
DATA,FG_ADDR #10
DATA,FG_ADDR #10
DATA,FG_ADDR DATA,FG_ADDR #10