DSP课程设计总结报告

  • 格式:doc
  • 大小:1.12 MB
  • 文档页数:19

课程设计总结报告

课程名称 DSP控制器及其应用

设计题目 万年历设计

专 业 电子信息工程

班 级

姓 名

学 号

指导教师

报告成绩

信息工程学院

二〇一四年六月十三日

2 目 录

前 言 ......................................................................... 错误!未定义书签。

第一章 设计要求 ...................................................... 错误!未定义书签。

1.1 基本要求 ...................................................... 错误!未定义书签。

1.2 提高要求 ...................................................... 错误!未定义书签。

第二章 系统的组成和工作原理 .............................. 错误!未定义书签。

2.1 DSP TMS320 VC5509APGE芯片的工作原理错误!未定义书签。

2.2 LCD1602液晶显示器的工作原理 ............................................... 6

第三章 主电路图及程序流程图 ............................................................ 7

3.1主电路图 ....................................................................................... 7

3.2程序总流程图 ............................................................................... 7

3.3程序分块流程图 ........................................................................... 8

第四章 软件程序设计 .............................................................................. 9

4.1 程序 .............................................................................................. 9

4.2 调试与处理出现问题 .................................................................. 9

第五章 设计总结 .................................................... 错误!未定义书签。

附录1:参考文献 ..................................................... 错误!未定义书签。

3

前 言

随着科技的不断发展,诞生了越来越多的电子产品。比如手表,时钟等等,现在的钟表在功能设计上不断地完善,不仅仅可以显示时间(时分秒),而且可以显示年月日,星期几等等。

科技的发展离不开人类的不断努力,培养高科技人才是21世纪必做的事。作为祖国的接班人更要努力学习好电子信息这门科技专业。因此我们要不断的接触各种电子产品,加强对电子技术 技术理论的掌握和实际的应用 。在本次的实验中,我们就 以 DSP芯片为核心控制电子钟,具有多项显示,用2812上的LCD液晶显示屏显示当前年、月、日、时、分、秒。

4 第一章 设计要求

本次课程设计要求设计一个万年历,利用DSPTMS320

VC5509APGE芯片控制,使用程序来控制时间的实时更新,当秒加到60时,分自动加1,当分加到60时,小时自动加1,当小时加到24,天加1,天加到30时,月加1,月加到12时,年加1,使用I602上的LCD液晶显示屏显示当前年、月、日、时、分、秒。对现有器件进行简单地编程,实现各种简单地显示控制。

1.1 设计目的

1. 学习软件的安装,熟悉运用CCS v3.3软件,加强软件编程能力;

2. 学习DSP芯片的I/O端口的控制方法;

3. 了解1602字符液晶的使用功能

4. 能够对现有器件进行简单地编程,实现各种简单地显示控制。

1.2 基本要求

⑴ 此系统先显示设定的当前时间(年月日时分秒),并进行计数

⑵ 设计硬件外扩电路,同时设计软件程序进行软硬件联系调试

⑶ 连接仿真器,在液晶显示屏上进行显示

5 第二章系统的组成和工作原理

2.1 DSP TMS320 VC5509APGE芯片

2.1.1 DSP TMS320 VC5509APGE芯片引脚图。

2.1.2 DSP开发环境

ccs 3.3,Easy5509开发板的程序都是基于TI 公司的 CCS3.3 。

2.1.3 软件安装

1) 首先安装 CCS3.3。安装步骤可直接运行光盘中软件目录下的 CCS 软件的 setup.exe,按提示操作,即可完成 CCS 的安装,接着按手册说明顺序安装CCS补丁软件

6 2)然后连接好硬件与仿真器,连与电脑接口,打开电脑的设备管理器,寻找刚检测到的未知设备,更新驱动,接着安装仿真器驱动,注意要和 CCS 安装在同一个目录;

3)打开set up ccs,设置。具体可看手册。最后可以打开ccs软件,进行编写程序,同时连接硬件,测试是否连接。

2.2 LCD1602液晶显示器

2.2.1 1602LCD液晶显示原理

LCD1602液晶显示器的工作原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。

引脚图:

1602采用标准的16脚接口,其中:

第1脚:VSS为电源地 第2脚:VCC接5V电源正极

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。

第7~14脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。

7 第三章 主电路图及流程图

4.1 主电路图

4.2程序总流程图

该设计用DSP程序完成。程序总的流程图如下:

接通电源,DSP和时钟初始化,读取时钟数据,DSP进行处理程序,LCD1602显示器接受数据并进行显示。每200ms检测一次时间。 8

4.3程序分块流程图

4.3.1 LCD1602液晶显示模块

当DSP一上电,显示一个时间,一定时间后,显示程序中设置的时间,并实时刷新时间,将要要显示的时间送入LCD1602中,实现万年历的显示。利用LCD1602 16*2的数组,自己设置两个长度为10的数组,第一行显示年月日,第二行显示时分秒,如第一行:2014-12-12,第二行:12-12-12。秒表时间接近于60秒旨在能够快速的检测分秒日月,是否能够转换增加。

4.3.2 时钟模块 9

先判断1s延迟是否到了,如否,如否,则返回,如是,则将秒加1,加到60秒时,分加1,并将秒置0,分加到60时,小时自动加1,当小时加到24时,天加1,天加到30时,月加1,月加到12时,年加1。从而实现万年历的设计。

10 第四章 软件程序设计

#include

#include

#include

#include

#include

#define led8 (*((unsigned int *)0x200001))

#define Digital8 (*((unsigned int *)0x200002))

#define LCD_REG (*((unsigned int *)0x200003))

#define buzzer (*((unsigned int *)0x200004))

#define USER_SW (*((unsigned int *)0x200005))

#define LCD_DATA (*((unsigned int *)0x200006))

#define UART_BASE_ADDR 0x200008

#define RBR *((int *)(UART_BASE_ADDR+0))

#define THR *((int *)(UART_BASE_ADDR+0))

#define IER *((int *)(UART_BASE_ADDR+1))

#define IIR *((int *)(UART_BASE_ADDR+2))

#define FCR *((int *)(UART_BASE_ADDR+2))

#define LCR *((int *)(UART_BASE_ADDR+3))

#define MCR *((int *)(UART_BASE_ADDR+4))

#define LSR *((int *)(UART_BASE_ADDR+5))

#define MSR *((int *)(UART_BASE_ADDR+6))

#define SCR *((int *)(UART_BASE_ADDR+7))

#define DLL *((int *)(UART_BASE_ADDR+0))

#define DLM *((int *)(UART_BASE_ADDR+1))