dsp实验二拨码开关实验

dsp实验二拨码开关实验

ID:34416261

大小:110.50 KB

页数:6页

时间:2019-03-05

dsp实验二拨码开关实验_第1页
dsp实验二拨码开关实验_第2页
dsp实验二拨码开关实验_第3页
dsp实验二拨码开关实验_第4页
dsp实验二拨码开关实验_第5页
资源描述:

《dsp实验二拨码开关实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验二拨码开关实验—、实验目的1.了解DSP开发系统的组成和结构2.了解IO的基本编程方法二、实验设备计算机,CCS3.3版本软件,DSP仿真器,E300实验箱,2812CPU板。三、实验原理8位的数字量输入(由拨码开关产生),当拨码打到靠近LED时为低。相反为高。通过74LS244(可读)缓冲连接到DSP的数据总线的低8位。CPU通过读指令读取到拨码开关产生的8位输出的数字量,然后CPU通过写指令把读出的8位数字量写入(0x2200)单元内,使连接到DSP的数据总线的低8位的74LS273的输出端产生高低信号,此时LED灯产生亮灭。当对应L

2、ED灯点亮时说明输出为低,熄灭时为高。(器件74LS244和74LS273详细的介绍请参看数据手册)数字量输入输出单元的资源分配如下:基地址:2000h(当CS1为0时分配有效)数字量分配空间为数据空间地址:基地址+0x2200(低8位,只读)²拨码开关扩展工作原理说明:74LS244片选号、74LS273片选信号和74LS273复位信号由E300上CPLD译码产生。本实验使用DSP数据总线的低8位。实验任务一:1、编写程序完成将拨码开关的信息读入DSP,然后再将该信息回写,控制led灯。调整"数字输入输出单元"的开关K1~K8,观察LED1

3、~LED8灯亮灭的变化。2、本实验的程序流程框图如下:2、输入主要程序#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFilevoidmain(void){unsignedinttemp;temp=0;DINT;InitSysCtrl();InitPieCtrl();IER=0x0000;IFR=0x0000;InitPieVectTable();for(;;){asm("no

4、p");temp=*(int*)0x2200&0x00ff;asm("nop");*(int*)0x2200=temp;asm("nop");}}四、实验步骤(步骤基本与实验一相同)1.2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON。2.E300板上的开关SW4的第二位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。3.运行CodeComposerStudio(CCS)(CCS3.3需要“DEBUG→Connect”)4.用“Projectopen”打开系统项目文件路径为“c:DSP_examep

5、DSP281X_examplese300_02_switchExample_281x_switch.pjt”双击该文件5、输入主要程序。6、编译程序并装载。7.单击“Debug-GoMain”跳到主程序的开始;8.单击“DebugRUN”运行程序。需要判断是高电平亮,还是低电平亮,可以使用中断调试。在运行状态,在需要设置断点的位置的右边,双击,就可以产生红点。表明设置了断点。在view目录下,(如右边图所示:)打开watchwindow,(此项是用来检查和编辑变量或C表达式可以不同格式显示变量值,还可以显示数值、结构或指针等包含多个元

6、素的变量),在本实验中观察temp变量的变化。步骤:在debug目录下点run,在断点处,程序会停下来,可以观察temp变量的值。(也可按“F10”单步运行程序,观察temp变量的值。)9.任意拨动E300底板上的拨动开关,观察LED和拨动开关的对应情况。(LED1-LED7分别对应DSP数据总线的D0-D7)10.单击“DebugHalt”暂停持续运行,开关将对灯失去控制.11.关闭所有窗口,本实验完毕.实验任务二:通过修改以上程序实现:当拔开关时,下一个灯亮。即:1号开关动作时,2号灯亮,2号开关动作时,3号灯亮,*****,等。在第8

7、号开关动作时,第1号灯亮。#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFilevoidmain(void){unsignedinttemp;temp=0;DINT;InitSysCtrl();InitPieCtrl();IER=0x0000;IFR=0x0000;InitPieVectTable();for(;;){asm("nop");temp=*(int*)0x2200

8、&0x00ff;if(temp!=0x80){temp=(temp<<1)&0x00ff;asm("nop");*(int*)0x2200=temp;}else*(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。