大学课程设计基于单片机的频率计.docx

上传人:b****6 文档编号:8189901 上传时间:2023-01-29 格式:DOCX 页数:16 大小:512.10KB
下载 相关 举报
大学课程设计基于单片机的频率计.docx_第1页
第1页 / 共16页
大学课程设计基于单片机的频率计.docx_第2页
第2页 / 共16页
大学课程设计基于单片机的频率计.docx_第3页
第3页 / 共16页
大学课程设计基于单片机的频率计.docx_第4页
第4页 / 共16页
大学课程设计基于单片机的频率计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

大学课程设计基于单片机的频率计.docx

《大学课程设计基于单片机的频率计.docx》由会员分享,可在线阅读,更多相关《大学课程设计基于单片机的频率计.docx(16页珍藏版)》请在冰豆网上搜索。

大学课程设计基于单片机的频率计.docx

大学课程设计基于单片机的频率计

 

智能仪表设计基础

课程设计

 

课题名称:

频率计设计

学生姓名:

学号:

班级:

指导老师:

 

扬州大学能源与动力工程学院

二零一一年九月

 

目录

第1章频率计的整体方案设计…………………………………………()

1.1设计理念…………………………………………………………()

1.2分析设计任务……………………………………………………()

第2章电路的设计和器件的选择………………………………………()

2.1信号整形设计部分………………………………………………()

2.2单片机控制设计部分……………………………………………()

2.3显示电路设计部分………………………………………………()

2.4软件控制设计部分………………………………………………()

第3章组装调试电路……………………………………………………()

3.1硬件调试…………………………………………………………()

3.2软件调试…………………………………………………………()

第4章实验结果及误差计算……………………………………………()

第5章设计小结…………………………………………………………()

第6章元器件清单…………………………………………………………()

第7章参考文献…………………………………………………………()

附录频率计的设计任务书及程序清单………………………………()

1.原理图……………………………………………………………()

2.单片机C语言程序………………………………………………()

3任务书……………………………………………………………()

 

第1章频率计的整体方案设计

1.1设计理念

本频率计要求能测出输入信号为正弦波、三角波、方波等周期信号波的频率。

所谓“频率”,就是周期性信号在单位时间(1S)内变化的次数。

本次设计采用LM324以及IN4728稳压管组成的电路将正弦波、三角波,方波整形成方波,通过软件控制51单片机记录1s内的方波的上升沿的个数,即可得到被测信号的频率。

1.2分析设计任务

本频率计的数据采集系统主要元器件是单片机STC89C51,由它完成对待测信号频率的计数和结果的显示等功能,外部还有复位电路、晶振电路和显示模块等部件。

系统框图如下所示:

图1-2-1系统框图

 

第2章电路的设计和器件的选择

2.1信号整形设计部分

为了能测不同波形的周期信号频率,必须对被测信号进行整形处理,使波形能成为被单片机C51识别的脉冲信号。

本设计的整形模块由LM324和IN4728A组成的电压比较器构成。

经过运放部分处理的信号电压值直接输入单片机可能造成电压值过高烧毁单片机,因此需要对电压值进行稳定电压处理。

 

整形电路如下所示:

图2-1-1

 

图2-1-2

 

图2-1-3

 

图2-1-4

2.2单片机控制设计部分

本设计采用STC89C51单片机,是一种高性能低功耗的8位微处理器。

本次设计主要用到单片机P3口的一部分和P1口与LCD相连。

22,23脚接12M晶振,为单片机提供时序;P3.1和P3.2口与MAX232连接,从而将软件程序考进到单片机中;P1.6与P1.7口通过与八段数码管连接,从而对记得的数据进行显示;将整形过后的方波接入到T0口,通过编程对输入脉冲进行测频并将其在数码管上显示。

图2-2-1

2.3显示电路设计部分

显示部分我们采用五位十进制数码管,用单片机89C51进行编程实现数码管显示的功能。

数码管显示电路图如下所示:

图2-3-1

 

2.4软件控制设计部分

主要能通过软件编程来完成各模块的硬件功能,通过仿真达到预期效果。

根据系统硬件设计,软件设计主要包括:

单片机控制程序模块,数码管显示模块。

程序框图如下所示:

图2-4-1主程序

图2-4-2T0中断程序

图2-4-3T1中断程序

 

第3章组装调试电路

 

3.1硬件调试

主要使用数字万用表、信号发生器、示波器。

依次测量每个功能部件功能是否达到要求。

用数字万用表测试每个元器件是否焊接有效,是否有虚焊,导线是否完全联通,器件是否有损坏;用示波器测量信号发生器输出的波形频率是否准确,测试我们的整形电路是否恩那个达到预期的效果。

 

3.2软件调试

通过编写C语言程序测试数码管显示模块、计数模块、定时模块是否都能满足所需功能要求。

 

第4章实验结果及误差计算

第一次测量结果

实际值

测量值

差值

误差

10

10

0

0

50

47

3

0.06

100

95

5

0.05

200

187

13

0.065

500

468

32

0.064

1000

936

64

0.064

1100

1021

79

0.071818

1200

1122

78

0.065

1500

1405

95

0.063333

2000

1871

129

0.0645

2500

2336

164

0.0656

3000

2808

192

0.064

3500

3271

229

0.065429

4000

3736

264

0.066

5000

4671

329

0.0658

10000

9336

664

0.0664

表4-1

 

误差分析:

这次测得数据具有很大的误差,我们对其进行了分析。

首先是对示波器的输出波形,检测其是否像其显示的频率一样。

测试结果是一样。

然后我们又对整形电路的输出波形的频率进行了检测,结果还是一样。

最后,我们怀疑是我们的单片机的晶振是否和显示的一样。

即通过改变定时时间来消除误差。

完善过后的测得数据

实际值

测量值

差值

误差

10

10

0

0

50

50

0

0

100

100

0

0

200

200

0

0

500

500

0

0

1000

1000

0

0

1100

1100

0

0

1200

1200

0

0

1500

1500

0

0

2000

2000

0

0

2500

2500

0

0

3000

3000

0

0

3500

3500

0

0

4000

4000

0

0

5000

5000

0

0

10000

10000

0

0

表4-2

此次测得的数据与实际值毫无误差

 

第五章设计小结

我们的智能仪器课程设计安排在大四的开始,为期三个星期。

以前总是在课堂上听着老师分析智能仪器的原理,如何设计的,怎么实现功能的。

现在我们也开始自己动手练习了。

虽然做的很粗糙,功能也不是很完善,但是自己能够在同组成员的共同努力下做出这样的一件东西,真的是一件令人很激动的事情。

一开始,我在想考研嘛,时间比较的紧张,还要花费三个星期的时间做课程设计,可能有些不太合适,但是听见唐老师一直在强调,这个对自己以后考研面试很有帮助,于是我想也是,就算自己考试了,还是要面试的,不如趁着这个机会好好学习一下,再说大家都在实验室做课程设计,我自己也不能够安心呆在教室看书。

于是我和组员们就投入到了课程设计中。

首先是要画出模拟图,焊接硬件电路,由于我们的课题比较简单,这些任务基本上能够在规定的计划时间内完成。

最后一步就是编写程序,然后上机调试。

这是最难的一步,也是最关键的一步。

这是我们会遇到很多的问题。

果然,我们遇到了。

我们做的是测频计,用信号发生器发出正弦波,方波,和三角波,然后通过我们设计的调理电路将其转成规则的方波,通过程序,我们用数码显示管读出它的频率。

一开始,我们的程序无法运行,我们自己已经找不出错误了,于是就请了班上比较厉害的同学帮我们看看问题出在哪里,经过一番努力问题还是没有能过解决掉。

于是我们的设计一点进展都没有,急坏了我们。

没有办法,只能重新找条思路编程,于是我们又继续编程序了。

最后终于能够显示结果了,可是误差很大,老师说自己找原因,没有办法,我们又要开始纠结了。

最后我们选择用补偿法将误差缩小了。

最后能达到很高的准确度。

这次课程设计对我的启发很大。

很多的东西纸上谈兵是没有用的,只有真正的自己动手做了,才能发现问题,解决问题,在失败中成长。

就像考研,即使你的分数线再高,如果对于动手方面的东西一点都没有接触,学校是不会看好你的,毕竟是工科的学生,纯理论的东西是没有用的。

 

第六章元器件清单

元器件

数量

单片机

STC89C51

数码管显示器

LG3641

MultichannelRS-232Drivers/Receivers

MAX232

电阻

若干

电容

若干

晶振

6MHz一个12MHz一个

放大器

LM324

稳压管

1N4728两个

排针

若干

导线

若干

表6-1

 

第七章参考文献

[1]童诗白主编.《模拟电子技术基础》(第三版)·高教出版社.2001

[2]张毅刚主编《单片机原理及应用》(第一版)·高教出版社.2010

[3]张国雄主编《测控电路》(第3版)·机械工业出版社.2010

[4]LM324:

放大器

ZLG7290:

种I2C接口键盘及LED驱动管理器件,提供数据译码和循环、移位、段寻址等控制。

STC89C51:

单片机

MAX232:

+5V-Powered,MultichannelRS-232Drivers/Receivers

 

附录

1.原理图

 

2.单片机C语言程序

#include

#include

#include"ZLG7290.h"

#include"I2C.h"

sbitSDA=P1^7;

sbitSCL=P1^6;

typedefunsignedcharBYTE;

typedefunsignedlongintWORD;

typedefunsignedlongintDWORD;

#defineT1MS(65536-12000)

sfrAUXR=0x8e;

DWORDt,a[8];

//-----------------------------------

/*精确延时程序*/

voiddelay(BYTEt)

{

do

{

TL0=T1MS;

TH0=T1MS>>8;

TR0=1;

while(!

TF0);

TF0=0;

TR0=0;

}while(--t);

}

/*读出现在计数器中的计数值*/

WORDfuzhi(void)

{

WORDi,j;

i=TH1;

j=i<<8;

j+=TL1;

returnj;

}

/*将1s计数的值显示*/

voiddiv(unsignedlongintss)

{

BYTEi;

for(i=0;i<5;i++)

{

a[i]=ss%10;

ss/=10;

ZLG7290_Download(i,0,0,a[i]);

if(i==3){ZLG7290_Download(i,1,0,a[i]);}

}

}

//--------------------------------------

main()

{

DWORDmi,bb,cc;

AUXR=0xc0;

TMOD=0x51;

TL1=0;

TH1=0;

TR1=1;

ET1=1;

EA=1;

while

(1)

{delay(1000);

bb=fuzhi();

mi=t;

t=0;

cc=mi*65536+bb;

TH1=0;

TL1=0;

div(cc);

}

}

/*t1中断函数*/

voidt1_sever(void)interrupt3

{

TL1=0;

TH1=0;

t++;

}

 

3.任务书

一、课题名称

频率计设计

2、设计内容及设计要求

测给定的正弦波、三角波、方波的频率。

设计任务:

(1)测量信号:

正弦波;三角波;方波;

(2)测量频率范围:

10Hz到10kHz之间;

(3)显示方式:

LED数码管十进制数显示;

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

当前位置:首页 > 高等教育 > 工学

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

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