完整word版DSP课程设计 交通灯的定时显示要点.docx

上传人:b****4 文档编号:27323630 上传时间:2023-06-29 格式:DOCX 页数:18 大小:1.03MB
下载 相关 举报
完整word版DSP课程设计 交通灯的定时显示要点.docx_第1页
第1页 / 共18页
完整word版DSP课程设计 交通灯的定时显示要点.docx_第2页
第2页 / 共18页
完整word版DSP课程设计 交通灯的定时显示要点.docx_第3页
第3页 / 共18页
完整word版DSP课程设计 交通灯的定时显示要点.docx_第4页
第4页 / 共18页
完整word版DSP课程设计 交通灯的定时显示要点.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

完整word版DSP课程设计 交通灯的定时显示要点.docx

《完整word版DSP课程设计 交通灯的定时显示要点.docx》由会员分享,可在线阅读,更多相关《完整word版DSP课程设计 交通灯的定时显示要点.docx(18页珍藏版)》请在冰豆网上搜索。

完整word版DSP课程设计 交通灯的定时显示要点.docx

完整word版DSP课程设计交通灯的定时显示要点

 

 

DSP课程设计报告

 

 

题目:

交通灯的定时显示

班级:

11级电信二班

姓名:

xxxx

学号:

xxxxxxxxxxxxx

指导老师:

xxx

 

3.5、ICETEK-F2812-EDU实验箱原理图…………………………………………………..7

6、软件的使用:

ccs介绍………………………………………………………………………….9

 

1、设计目的

DSP课程设计是对课程所学理论知识的深化和提高。

目的是能综合应用所学知识,设计与制造出具有简单功能的小型键盘输入发声装置。

能够较全面地巩固和应用DSP课程中所学的基本理论和基本方法,初步掌握小型DSP系统设计的基本方法,并学会用C语言对DSP系统进行编程及DSP试验箱和相关软件的运用。

培养独立思考、独立收集资料、独立设计规定功能的单片机系统的能力;培养分析、总结及撰写技术报告的能力,本次课程设计目的在于:

1、熟悉ICETEK-F2812-EDU实验箱上交通灯的控制方法;

2、掌握F2812A的终端结构和对中断的处理流程;

3、学习DSP的C语言定时和中断程序设计及运用中断程序控制程序流程;

4、学习DSP程序的调试及编写,及运用观察变量的方法查看程序的运行情况。

2、设计分析

2.1、设计任务

本次设计名为LED和交通灯的定时显示,要求在ICETEK-F2812-EDU实验箱上实现指示灯和交通灯的同步定时闪烁。

2.2、设计要求

硬件部分:

在ICETEK-F2812-EDU实验箱上使指示灯和交通灯在定时器的定时中断中按照设计定时闪烁

软件部分:

搞清楚各个引脚功能。

2、熟悉ICETEK-F2812-EDU实验箱上交通灯的控制方法和控制流程。

3、TMS320F2812芯片介绍

3.1TMS320F2812芯片的简介

TMS320F2812作为使用的DSP芯片。

它包含33个电源引脚(为使器件正常运行,所有电源引脚必须正确连接且不能悬空),时钟源模块,DSP有六种信号可以使DSP控制器复位。

所以在设计的初期,我把它分成了四个模块。

它们分别是:

电平转换部分、晶振和复位部分、键盘部分和液晶显示。

其中复位采用电源复位的方式,由引脚PORESET引起。

为了可靠复位,其中高电平的有效时间至少6个CPU时钟周期。

3.2关于TMS320F2812参数

TMS320F2812的具体参数如下:

1、主处理芯片:

TMS320F2812,运行速度为150M。

2、工作速度可达150MIPS。

3、片上的RAM18*16Bit。

4、片上扩展RAM存储空间64K×16Bit。

5、自带的16路12bitA/D,最大采样速率12.5msps。

6、4路的DAC7617转换,100K/S,12Bit。

7、两路UART串行接口,符合RS232标准。

8、16路PWM输出。

9、1路CAN接口通讯。

10、片上128*16bitFLASH.自带128位加密位。

11、设计有用户可以自定义的开关和测试指示灯。

12、4组标准扩展连接器,为用户二次开发提供条件。

13、具有IEEE1149.1相兼容的逻辑扫描电路该电路仅用于测试和仿真。

14、4层板设计工艺,工作稳定可靠。

15、具有自启动功能设计,可以实现脱机工作。

16、可以选配多种应用接口板,包括语音板,网络板等。

3.3管脚的定义和说明

P1接口主要是扩展评估板上空闲的DSP外设引脚,以便于定制用户的硬件环境。

注意:

由于这组引脚是直接来自于F2812DSP芯片,因此,这些引脚为TTL3.3V标准,其输出最高电压为3.3V,如果要接入5V器件,外接时时要注意电平转换。

(在扩展板上使用3.3V-5V兼容器件与扩展接口连接)。

表1管脚的定义及管脚的说明

管脚号

管脚名

说明

1

+5v电源

有POWER提供+5V电源

2

+5v电源

有POWER提供+5V电源

3

PWM1

PWM1输出引脚

4

PWM2

PWM2输出引脚

5

PWM3

PWM3输出引脚

6

PWM4

PWM4输出引脚

7

PWM5

PWM5输出引脚

8

PWM6

PWM6输出引脚

9

PWM7

PWM7输出引脚

10

PWM8

PWM8输出引脚

11

PWM9

PWM9输出引脚

12

T1PWM

T1输出引脚

13

T2PWM

T2输出引脚

14

T3PWM

T3输出引脚

15

T4PWM

T4输出引脚

16

T1CTRP

定时器1比较输出

17

GND

地线

18

GND

地线

19

T2CTRP

定时器2比较输出

20T

T3CTRP

定时器3比较输出

21

T4CTRP

定时器4比较输出

22

C1CTRIP

比较器1比较输出

23

C2CTRP

比较器2比较输出

24

C3CTRP

比较器3比较输出

25

TDIRA

定时器计数方向选择信号A

26

TCKINA

定时器时钟输入A

27

SCITXB

异步串口TX端B

28

SCIRXB

异步串口RX端B

29

SPSIMA

SPI从收主发端

30

SPSOMA

SPI主发从收端

31

SPICLKA

SPI时钟

32

SPISTEA

SPISlave设备发送始能

33

GND

地线

34

GND

地线

3.4F2812结构图

3.4.1ICETEK-F2812-A实物图

左上脚为P1端口,右下角脚为P4端口。

3.4.2TMS320F2812引脚图

图2TMS320F2812引脚图

3.5、ICETEK-F2812-EDU实验箱原理图

3.5.1、S60x控制板结构图

3.5.2、ICETEK-F2812-EDU实验箱原理图

ICETEK-F2812-EDU实验箱原理图如图4所示:

4、系统整体设计

4.1、设计程序流程图

4.2、实验效果图

5、运行描述

在运行时,首先应先在计算机上安装上CCS软件,然后把程序加载到Example中进行调试,如果调试出现错误,要进行修改。

若程序正常通过,则可将实验箱与计算机相连,然后安装实验箱的驱动,驱动安好后,打开开关,连接好后,即可将软件下载到DSP芯片中,运行,查看结果。

指示灯和交通灯在定时器的定时中断中按照设计定时闪烁。

6、软件的使用 

本次设计主要使用的是CCS软件,CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。

 

CCS有两种工作模式,即:

软件仿真器模式:

可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。

  

硬件在线编程模式:

可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

 

 CCS文件名介绍 

在使用CCS前,应该先了解以下软件的文件名约定(在编写程序时最好在某盘根目录下建立一个文件夹,将所有的用户文件放置该文件夹中,建议用字母作为所有文件的文件名,而不要用汉字或数字):

 

 project.pjt CCS定义的工程文件 

 program.c  c程序文件语言

 program.asm 汇编语言程序文件 

 filename.lib 库文件 

 project.cmd 连接命令文件 

 program.obj 编译后的目标文件 

 program.out 可在目标DSP上执行的文件,可在CCS监控下调试/执行 

 project.wks 工作空间文件,可以记录你的工作环境设置。

 

 programcfg.h54 头文件 

 programcfg.s54 汇编原文件 

 program.cdb CCS的设置数据库文件,是使用DSP/BIOS API必须的,其他没有使用DSP/BIOS API的程序也可以使用,当新建一个设置数据库时,会产生下面的文件。

7、课程设计总结

本次课程设计,我选择的题目是LED和交通灯的定时显示,目的是在ICETEK-F2812-EDU实验箱上实现指示灯和交通灯的同步定时闪烁。

虽然这是一个比较简单的任务,但是由于基础薄弱,好多东西都不甚明了,经过多次努力才勉强完成任务。

这次DSP课程设计历时两个星期,前面几天就是在寝室学习和熟悉CCS软件,学到了很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

过程中也遇到了很多问题,不过及时的问同学解决问题,使我更加了解了DSP的原理。

通过这次设计,进一步加深了对DSP的了解,让我对它有了更加浓厚的兴趣。

特别是当每一步成功时,心里特别的开心。

 

这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,毕竟基础太差,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

 

 总的来说,这次交通灯定时显示的设计还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导和同学们的帮助下,终于克服重重困难完成任务,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

最后,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!

8、参考文献

ICETEK-F2812-A-USB-EDU教学实验系统软件实验指导

9、软件设计

9.1、程序代码

#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile

#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile

//led

unsignedintuLed[2][2]={{0x10,0x48},{0,0x48}

};

//Prototypestatementsforfunctionsfoundwithinthisfile.

voidDelay(unsignedintnTime);

interruptvoidcpu_timer0_isr(void);

voidGpio_select(void);

voidGpio_PortA(void);

voidGpio_PortB(void);

inti=0,nCount;

unsignedintuLBD;

#defineLEDS*(int*)0xc0000

#defineT46uS0x0d40

#defineCTRGR*(int*)0x108000

#defineCTRLCDCMDR*(int*)0x108001

#defineCTRKEY*(int*)0x108001

#defineCTRLCDCR*(int*)0x108002

#defineCTRCLKEY*(int*)0x108002

#defineCTRLCDLCR*(int*)0x108003

#defineCTRLCDRCR*(int*)0x108004

#defineCTRLA*(int*)0x108005

#defineCTRLR*(int*)0x108007

Uint16var1=0;

Uint16var2=0;

Uint16var3=0;

Uint16test_count=0;

Uint16Test_flag=0;

Uint16Test_var=0;

Uint16Test_status[32];

intjishu=0,uPort8000,nScanCode;

intnCountLed,i;

voidmain(void)

{InitSysCtrl();//初始化cpu

DINT;//关中断

InitPieCtrl();//初始化pie寄存器

IER=0x0000;//禁止所有的中断

IFR=0x0000;

InitPieVectTable();

EALLOW;//ThisisneededtowritetoEALLOWprotectedregisters

PieVectTable.TINT0=&cpu_timer0_isr;//指定中断服务子程序

EDIS;//ThisisneededtodisablewritetoEALLOWprotectedregisters

CpuTimer0.RegsAddr=&CpuTimer0Regs;

//Initializetimerperiodtomaximum:

CpuTimer0Regs.PRD.all=0x0FFF;

//Initializepre-scalecountertodivideby1(SYSCLKOUT):

CpuTimer0Regs.TPR.all=0;

CpuTimer0Regs.TIM.all=0;

CpuTimer0Regs.TPRH.all=0;

//Makesuretimerisstopped:

CpuTimer0Regs.TCR.bit.TSS=1;

CpuTimer0Regs.TCR.bit.SOFT=1;

CpuTimer0Regs.TCR.bit.FREE=1;

//Reloadallcounterregisterwithperiodvalue:

CpuTimer0Regs.TCR.bit.TRB=1;

CpuTimer0Regs.TCR.bit.TIE=1;

//Resetinterruptcounters:

CpuTimer0.InterruptCount=0;

StartCpuTimer0();//启动定时器0

//EnableCPUINT1whichisconnectedtoCPU-Timer0:

IER|=M_INT1;

//EnableTINT0inthePIE:

Group1interrupt7

PieCtrlRegs.PIEIER1.bit.INTx7=1;

Gpio_PortB();

CTRGR=0;//初始化ICETEK-CTR

CTRGR=0x80;

CTRGR=0;

CTRLR=0;//关闭东西方向的交通灯

CTRLR=0x40;//关闭南北方向的交通灯

CTRGR=2;

LEDS=0XFF;

while

(1)

{GpioDataRegs.GPBDAT.bit.GPIOB5=1;

LEDS=0X00;

Delay(10);

GpioDataRegs.GPBDAT.bit.GPIOB5=0;

LEDS=0XFF;

Delay(10);

}

}

voidDelay(unsignedintnDelay)

{

intii,jj,kk=0;

for(ii=0;ii

{

for(jj=0;jj<6400;jj++)

{

kk++;

}

}

}

voidGpio_PortB(void)

{

//GPIOTest#2:

//ConfigureUpper8bitsofPortasinputsandlower8bitsasoutputs

//Loopbackbits[7:

0]tobits[15:

8]

//Don'tsetanyinputqualifier

var1=0x0000;//setsGPIOMuxsasI/Os

var2=0x00FF;//setsGPIO15-8DIRasinputs,7-0DIRasoutputs

var3=0x0000;//Don'tsetanyinputqualifier

Gpio_select();

test_count=0;

Test_status[Test_var]=0x0002;

Test_var++;

Test_status[Test_var]=0xD0BE;//Setthedefaultvalueofstatus

//to"PASSED"

GpioDataRegs.GPBCLEAR.all=0x00FF;//TestClear

asm("RPT#5||NOP");

GpioDataRegs.GPBSET.bit.GPIOB5=1;

}

voidGpio_select(void)

{

EALLOW;

GpioMuxRegs.GPAMUX.all=var1;//ConfigureMUXsasdigitalI/Osor

GpioMuxRegs.GPBMUX.all=var1;//peripheralI/Os

GpioMuxRegs.GPDMUX.all=var1;

GpioMuxRegs.GPFMUX.all=var1;

GpioMuxRegs.GPEMUX.all=var1;

GpioMuxRegs.GPGMUX.all=var1;

GpioMuxRegs.GPADIR.all=var2;//GPIOPORTsasoutput

GpioMuxRegs.GPBDIR.all=var2;//GPIODIRselectGPIOsasoutput

GpioMuxRegs.GPDDIR.all=var2;

GpioMuxRegs.GPEDIR.all=var2;

GpioMuxRegs.GPFDIR.all=var2;

GpioMuxRegs.GPGDIR.all=var2;

GpioMuxRegs.GPAQUAL.all=var3;//SetGPIOinputqualifiervalues

GpioMuxRegs.GPBQUAL.all=var3;

GpioMuxRegs.GPDQUAL.all=var3;

GpioMuxRegs.GPEQUAL.all=var3;

EDIS;

}

interruptvoidcpu_timer0_isr(void)

{

//CpuTimer0.InterruptCount++;

//Acknowledgethisinterrupttoreceivemoreinterruptsfromgroup1

PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;

CpuTimer0Regs.TCR.bit.TIF=1;

CpuTimer0Regs.TCR.bit.TRB=1;

if(nCount==0)

{

LEDS=~LEDS;

}

nCount++;nCount%=194;

}

//Nomore.

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1