DSP课程设计温度采集与显示FWord格式文档下载.docx

上传人:b****5 文档编号:17419318 上传时间:2022-12-01 格式:DOCX 页数:10 大小:75.13KB
下载 相关 举报
DSP课程设计温度采集与显示FWord格式文档下载.docx_第1页
第1页 / 共10页
DSP课程设计温度采集与显示FWord格式文档下载.docx_第2页
第2页 / 共10页
DSP课程设计温度采集与显示FWord格式文档下载.docx_第3页
第3页 / 共10页
DSP课程设计温度采集与显示FWord格式文档下载.docx_第4页
第4页 / 共10页
DSP课程设计温度采集与显示FWord格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

DSP课程设计温度采集与显示FWord格式文档下载.docx

《DSP课程设计温度采集与显示FWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《DSP课程设计温度采集与显示FWord格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

DSP课程设计温度采集与显示FWord格式文档下载.docx

2.1.3设计思路

系统首先设计温度采集硬件电路,在多次实验运算拟合出热敏电阻输出电压值与温度之间的函数关系,热敏电阻的输出的电压值随温度的上升而下降,呈现出负系数,从而运用于实验中检测温度;

然后将采集的温度送入DSPTMS320F2812模数转换模块将电压信号变为数字信号,再编写函数来控制LCD来显示相应的温度及相关文字。

总体设计

2.2.1硬件设计

TMS320F2812作为使用的DSP芯片。

它包含33个电源引脚(为使器件正常运行,所有电源引脚必须正确连接且不能悬空)时钟源模块,DSP有六种信号可以使DSP控制器复位,即电源复位、复位引脚~RS、软件复位、非法地址复位、看门狗定时器溢出、欠压复位六种复位信号。

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

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

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

DSP最小系统组成框图如图1所示。

图1DSP最小系统

其中:

开关SW-PB、电容C1、两个反相器及其电阻电源构成了复位电路,晶振与两个并联电容接XTAL1与XTAL2构成振荡电路,PWM1与PWM7构成了调制信号的输入与输出,旁路引脚接地,请求控制信号MP/MC与GND接地。

2.2.2系统框图设计

该系统包括温度采集电路模块、DSPF2812芯片、A/D转换部分和LCD液晶显示,首先要初始化A/D转换模块,然后等待中断,当产生中断后对采集到的模拟信号进行处理,为确保转换精度要进行多次取值求平均,转换结果放在结果寄存器的高12位上,通过编程将处理后的温度值送到LCD上进行显示。

图2系统设计流程图

元器件的选择

2.3.1单元电路设计

(1)设计方案

MC1403芯片为数模转换提供基准电压,且输入端接+5V电源后再并联一个去噪声的电容,利用热敏电阻进行温度采集,采集后的输出电压(不得大于)与DSP的P2端口23引脚相连。

(2)外扩电路设计图

图3温度采集电路原理图

2.3.2单元模块分析

(1)MC1403芯片的引脚结构如下图所示。

图4MC1403芯片

Vin端口输入一个~的模拟电压值(接P2口的1引脚),在输入端接一个电容滤除其他频率分量,在Vout端输出了一个稳定的电压值(接P2口的23引脚),该电压值不得大于,GND端接模拟地(接P2口的33引脚)。

(2)A/D转换模块

当模/数转换完成后,读取结果寄存器前,最好先读取模/数转换控制寄存器ADCRL2的ADCFIF01或ADCFIF02,以确定当前结果寄存器的状态,保证读取的结果是正确。

另外,要注意12位的转换结果放在结果寄存器中的高12位上,该12位数据与外部模拟输入电压的关系为:

12位数字结果=4095*(输入电压/基准电压)

程序流程图与源程序

2.4.1软件系统流程图

软件系统流程图如图5所示。

图5程序流程图

3运行结果

(1)运行描述

M1403芯片作为模数转换提供基准电压,利用热敏电阻进行采集,采集后的输出电压与DSP的P2口23引脚相连。

将采集到的电压送入A/D转换模块,编写程序实现A/D转换,转换结果放在结果寄存器的高12位上,编写函数获取A/D转换结果,将处理的温度值的各个对应显示到LCD上。

(2)系统调试

MC1403芯片Vin端输入一个+5V的模拟电压值;

在输入端接一个电容滤除其它频率分量;

在Vout端输出了一个稳定的电压值;

GND端直接接模拟地;

给试验箱供电,打开SetupCCS2(‘C2000),在弹出的对话框中选择ICETEK-5100USBEmulatorforTMS320F2812导入,进行配置设置然后进入CCS2(‘C2000),打开工程文件进行编译生成.out文件下载到硬盘中然后调试,观察液晶显示屏,第一行显示“温度显示”,第二行显示“温度值℃”,当用手触摸时,温度显示不断变化,实现了温度的采集与现实。

4课程设计总结

通过学习DSP课程我们都知道,DSP实际上也是一种单片机,它同样是将中央处理单元、控制单元和外围设备集成到一块芯片上。

但DSP有别于普通的单片机,它采用了多组总线技术实现并行运行机制,从而极大地提高了运算速度,也提供了非常灵活的指令系统。

通过这次课程设计,不仅是我进一步加深对课本知识的理解,更让我学会了团结合作的精神,不但锻炼了我们动手动脑的能力,还提高了我们分析问题、解决问题的能力,在这次设计中我也学会了遇事要冷静,团结合作,虚心请教,没有任何事情解决不了,最后衷心的感谢始终支持我们的老师们,你们辛苦了!

5参考文献

[1]万山明.TMS320F281xDSP原理及应用实例.北京航空航天大学出版社,2007

[2]郑红,王鹏,董云凤,吴冠.DSP应用系统设计实践.北京航空航天大学出版社,2006

[3]徐科军,张瀚,陈智渊.TMS320F281xDSP原理与应用.北京航空航天大学出版社,2006

附录

#include"

"

interruptvoidadc_isr(void);

3f8000L20L000f=0x1;

=1;

//EnableEVASOCtostartSEQ1

//EnableSEQ1interrupt(everyEOS)

//ConfigureEVA

//AssumesEVAClockisalreadyenabledinInitSysCtrl();

=0x0080;

//SetupT1comparevalue

=0x0fff;

//Setupperiodregister

//EnableEVASOCinEVA

=0x1042;

//Enabletimer1compare(up

TurnOnLCD();

//打开显示

LCDCLS();

//清除显示内存

*(int*)0x108000=0x80;

//初始化ICETEK-CTR

Delay(LCDDELAY);

*(int*)0x108000=0x0;

*(int*)0x108000=0x80;

*(int*)0x108001=LCDCMDSTARTLINE;

//设置显示起始行

*(int*)0x108002=0;

for(;

;

{

Wendu(temp);

LCDWrite(2,0,0,0);

LCDWrite(2,16,0,1);

LCDWrite(2,32,1,2);

LCDWrite(2,48,1,3);

LCDWrite(6,48,1,4);

//在液晶屏上显示相应的汉字及符号

WriteNb(6,6,ledkey[ZhengshuT&

0x000f],0,0);

WriteNb(6,5,ledkey[(ZhengshuT&

0x00f0)>

>

4],0,0);

WriteNb(6,2,ledkey[XiaoshuT&

0x000f],0,1);

WriteNb(6,1,ledkey[(XiaoshuT&

4],0,1);

WriteNb(6,7,ledkey[11],0,0);

//在液晶屏上显示温度值

}

}

voidDelay(intnDelay)

{

intii,jj,kk=0;

for(ii=0;

ii<

nDelay;

ii++)

for(jj=0;

jj<

1024;

jj++)

{

kk++;

}

//打开显示子程序

voidLCDCLS()

inti,j;

for(i=0;

i<

8;

i++)

*(int*)0x108001=LCDCMDPAGE+i;

Delay(LCDDELAY);

*(int*)0x108002=0;

*(int*)0x108001=LCDCMDVERADDRESS;

for(j=0;

j<

64;

j++)

*(int*)0x108003=0;

Delay(LCDDELAY);

*(int*)0x108002=0;

*(int*)0x108001=LCDCMDPAGE+i;

*(int*)0x108004=0;

if(LR==0)

intj;

intk=n;

*(int*)0x108001=LCDCMDPAGE+x;

Delay

(1);

*(int*)0x108001=LCDCMDVERADDRESS+y;

for(j=0;

16;

j++)

*(int*)0x108003=lcdkey[k][j];

Delay(10);

Delay

(1);

for(j=16;

32;

Delay(100);

else

*(int*)0x108004=lcdkey[k][j];

voidWriteNb(unsignedintx,unsignedinty,unsignedchar*No,unsignedf,unsignedintLR)

inti;

y*=8;

*(int*)0x108001=LCDCMDPAGE+x;

//设置操作页=1

*(int*)0x108001=LCDCMDVERADDRESS+y;

//起始列=8

if(f==1)

*(int*)0x108003=~No[i];

else

*(int*)0x108003=No[i];

*(int*)0x108002=0;

}

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

当前位置:首页 > 工程科技 > 电力水利

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

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