基于DSP的时钟设计.docx

上传人:b****8 文档编号:11456895 上传时间:2023-03-01 格式:DOCX 页数:8 大小:70.18KB
下载 相关 举报
基于DSP的时钟设计.docx_第1页
第1页 / 共8页
基于DSP的时钟设计.docx_第2页
第2页 / 共8页
基于DSP的时钟设计.docx_第3页
第3页 / 共8页
基于DSP的时钟设计.docx_第4页
第4页 / 共8页
基于DSP的时钟设计.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

基于DSP的时钟设计.docx

《基于DSP的时钟设计.docx》由会员分享,可在线阅读,更多相关《基于DSP的时钟设计.docx(8页珍藏版)》请在冰豆网上搜索。

基于DSP的时钟设计.docx

基于DSP的时钟设计

DSP设计报告

D

S

P

 

一、方案背景

DSP芯片既具有高速数字信号处理功能,又具有实时性强、功耗低、集成度高等嵌入式微计算机的特点,所以随着科技的发展,DSP技术在机电控制领域的应用愈加广泛。

LED可显示字符,且显示清晰美观、功耗低,在电子产品中也广泛应用。

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个DSP应用系统中,时钟有两方面的含义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了DSP芯片系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:

一是用软件实现,即用DSP芯片内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:

DS1302,DS12887,X1203等都可以满足高精度的要求。

本设计主要介绍用DSP芯片内部的定时/计数器来实现电子时钟的方法,本设计由TMS320LF2407芯片和LED数码管为核心,辅以必要的电路,构成了一个DSP电子时钟。

二、系统方案介绍

1.本方案完全用软件实现数字时钟。

原理为:

在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。

该方案具有硬件电路简单的特点。

而且,由于是软件实现,当DSP芯片不上电,程序不执行时,时钟将不工作。

2.数码管显示方案

动态显示。

所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。

利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。

显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。

调整参数可以实现较高稳定度的显示。

动态显示节省了I/O口,降低了能耗。

三、总体设计

1.结构框图

 

利用TMS320LF2407芯片制作简易电子时钟,由六个LED数码管、五个按键、数码管驱动74HC273及数码管位选74HC138,如图所示:

2.程序流程图

图电子时钟程序流程图

3.程序代码

#include"F2407REGS_c.h"

unsignedintsec,min,hour,i;

unsignedchartable[]={0xFF3F,0xFF06,0xFF5B,0xFF4F,0xFF66,0xFF6D,0xFF7D,

0xFF07,0xFF7F,0xFF6F};//程序初始化

unsignedchartablewe[]={0xFF00,0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06};

voiddelay(unsignedintj);

voidmain()//主程序

{DSP2407_Initialing();

Ioport_Initialing();

asm("CLRCINTM");

EVAIMRA=EVAIMRA|0x0080;//仅允许定时器1的周期中断

EVAIMRA=EVAIMRA&0x0080;//清除定时器1的周期中断

T1CON=0x170C;//timer1为连续增计数模式,预分频值为128,使用内部时钟

T1PER=0xF424;//timer1的周期寄存器值设为200ms

T1CNT=0x00;//timer1的计数器清0

sec=0;min=0;hour=0;i=0;

While

(1)

{PCDATDIR=0x00FF;

if(i==5)//i等于5为1秒

{i=0;

sec++;//秒加1

PBDATDIR=tablewe[0];//选通秒的个位

PFDATDIR=0xFF01;//选通74HC273

PADATDIR=tabale[sec%10];//秒个位显示

PFDATDIE=0xFF00;//关断74HC273

PBDATDIR=table[1];//选通秒的十位

PFDATDIR=0xFF01;//选通74HC273

PADATDIR=table[sec/10];//秒十位显示

PFDATDIR=0xFF00;//关断74HC273

}

if(sec==60)

{sec=0;

min++;//分钟的显示

PBDATDIR=table[2];

PFDATDIR=0xFF01;

PADATRDIR=table[min%10];

PFADATDIR=0xFF00;

PBDATDIR=tablewe[3];

PFDATDIR=0xff01;

PADATDIR=table[min/10];

PFDATAIR=0xFF00;}

if(min==60)

{min=0;

hour++;//小时的显示

PBDATDIR=tablewe[4];

PFDATDIR=0xFF01;

PADATDIR=table[hour%10];

PFDATDIR=0xFF00;

PBDATDIR=tablewe[5];

PFDATDIR=0xFF01;

PADATDIR=table[hour/10];

PFDATDIR=0xFF00;

}

if(hour==24)

hour=0;

if(PCDATDIR=0x00FE)//按键T1,时、分、秒复位为0

{delay(100);//调用延时程序

PCDATDIR=0x00FE;

min=0;

sec=0;

hour=0;}

if(PCDATDIR=0x00FD)//按键T2,时钟停止计时

{delay(100);

PCDATDIR=0x00FD;

PFDATDIR=0xFF00;}

if(PCDATDIR=0x00FB)//按键T3,时钟开始计时

{delay(100);

PCDATDIR=0x00FB;

PFDATDIR=0xFF01;}

if(PCDATDIR=0x00F7)//按键Tm,调分

{delay(100);

PCDATDIR=0x00F7;

min++;}

if(PCDATDIR=0x00EF)//按键Th,调时

{delay(100);

PCDATDIR=0x00EF;

hour++;}

}

voidinterruptINT2()//定时器中断程序

{

swith(PIVR)//有外设中断向量寄存器PIVR判断

case0x0027:

i++;

T1CNT=0x00;

EVAIFRA=EVAIFRA&0x0080;break;default;break;}

voiddelay(unsignedintj)//延时程序

{

unsignedk,m;

for(m=0;m

{

for(k=0;k<50;k++)}

}

四、实验心得

通过DSP的实验学习,对DSP有了新的认识,以前只是懂得数字信号处理的含义,对它的认识只是停留在理论层面,通过这个学期的DSP原理和应用的学习,对如何在实践中运用DSP进行实际问题的解决能力有了显著的提高。

同时这个学期的学习,使我对DSP有更深的理解与认识。

这个学期的DSP实验学习使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。

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

大体而言,我觉得好好掌握DSP的原理、开发及其应用对我们电子通信专业的学生来说是很有用的,不管是对我们以后的专业能力应用,还是对我们对信号处理的理解和应用都有极大的帮助,很感谢老师能够给我们这个学习的机会!

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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