当前位置:文档之家› 数字转速表的设计

数字转速表的设计

数字转速表的设计
数字转速表的设计

湖南工程学院课程设计

课程名称单片机原理与应用

课题名称数字转速表的设计

专业电气工程及其自动化

班级

学号

姓名

指导教师肖锋

2013年6 月21 日

湖南工程学院

课程设计任务书

课程名称单片机原理与应用

课题数字转速表的设计

专业班级

学生姓名

学号

指导老师李晓秀

审批

任务书下达日期2013 年月日任务完成日期2013年月日

目录

目录...................................................... - 6 -

前言..................................................... - 6 - 第1章基本原理........................................... - 8 -

第2章总体设计思路....................................... - 8 -

2.1 设计方案.......................................... - 8 -

第3章硬件电路的设计方案................................. - 9 -

3.1 LED显示部分的电路设计........................... - 10 -

3.2 按键电路设计..................................... - 10 -

第4章软件设计方案...................................... - 11 -

4.1显示程序模块...................................... - 12 -

4.2延时程序模块...................................... - 12 -

4.3脉冲个数的求取.................................... - 13 -

4.4键盘电路.......................................... - 14 -

第5章系统调试.......................................... - 15 -

5.1 软件模拟仿真..................................... - 15 -

5.2 硬件调试......................................... - 17 - 总结与体会.............................................. - 19 - 参考文献................................................ - 19 -

附录..................................................... - 19 - 系统硬件原理图....................................... - 20 - 程序清单............................................. - 20 -

前言

单片机作为嵌入式微控制器在工业测控系统,智能仪器和家用电气中得到广泛应用。虽然单片机的品种很多,但MCS-51系列单片机仍不失为单片机中的主流机型。本课程以MCS-51系列以及派生系列单片机芯片为主介绍单片机的原理与应用,与其特点是由浅入深,注重接口技术和应用。

近年来,微型计算机的发展速度足以让世人惊叹,以计算机为主导的信息技术作为一种崭新的生产力,正在向社会的各个领域渗透,也使机电一体化的进程大大加快。

机电一体化是当今制造技术和产品发展的主要倾向,也是我国机电工业发展的必由之路。可以认为,它是用系统工程学的观点和方法,研究在机电系统和产品中如何将机械、计算机、信息处理和自动控制技术综合应用,以求机电系统和产品达到最佳的组合。机电一体化产品所需要的是嵌入式微机,而单片机具有体积小、集成度高、功能强等特点,适于嵌入式应用。智能仪器、家用电器、数控机床、工业控制等机电设备和产品中竟相使用单片机。

就目前而言,单片机的发展势头依然不减,各种型号和功能更强的单片机和超级接口芯片不断出现,进一步向高层次发展的重要标志就是构成多机系统和分布式网络。世界上单片机芯片的产量以每年27%的速度递增,到本世纪初已达30亿片,而我国的年需求量也超过了亿片的数量,这表明单片机有着广阔的应用前景。本课程设计主要针对目前我国早期应用比较广泛的“MCS-51”单片机进行系统的讲解和分析。为使用和开发各类机电一体化设备和仪表建立基础。

第1章基本原理

利用AT89C51作为主控器组成一个转速表。电机转速采用光电脉冲传感器来测量,电机每转一周输出一个脉冲。设置定时器/计数器T0和T1,利用其内部定时器T0设置为定时方式,且定时时间为1s,在一秒内,计数器T1设置为外部脉冲计数工作方式,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,设在1s内测量的脉冲个数为m,则可计算出电机转速为n=60*n转/min。

第2章总体设计思路

2.1 设计方案

该系统的功能概括起来就是测量当前电机的转速。要完成此功能,关键在于转速的测量,电机转速采用传感器或由信号发生器的方波脉冲信号来模拟,因此只要在给定的时间内对脉冲计数,即可测出转速。例如,可将脉冲信号接到引脚,外部中断1选择边沿触发方式。MCS-51单片机内有两个定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s。计数器T0设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为n,又由于脉冲频率为1个脉冲/转,故测到转速n就是脉冲频率*60。定时1s,在1s内允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,设为m,则转速n=m*60。

此次设计我们采用AT89C51作为基本元件。在P3.5 口输入脉冲, 当

按下启动键后,定时器和计数器开始工作,定时器定时1秒,计数器开始对P3.5口输入的脉冲进行计数,当定时1秒结束时,,计数器此时已经统计了1s内的脉冲数m,经计算后得到转速n,通过LED显示出来。然后计数器清零,计数值清零,重新进行下一次计数。按下停止键后,定时器与计数器均停止工作。按下复位键后,计数值清零,系统回到初始状态。

第3章硬件电路的设计方案

根据设计要求和设计思路,硬件电路由三部分组成,分别为按键电路,LED显示器电路和AT89C51晶振连接电路,其框架如下图:

图3-1硬件电路设计图

3.1 LED显示部分的电路设计

本课题的显示部分是由4个八段数码管构成,用以显示由单片机所测得的电机转速,以及开始测速时的初始状态。其硬件电路连接是单片机P0.0~P0.7管脚分别接数码管的A~G管脚,P2.4~P2.7接数码管的片选端,采用共阴极连接的方法。

为了解决解决AT89C51的驱动能力不足的问题,在数码管的A~G端分别接入一个上拉电阻,电阻阻值为1K欧,电阻的另一端接+5V直流电源,在片选端接入下拉电阻,阻值也为1K欧。其连接图如下图4-2所示:

图3-2 显示部分硬件电路图

3.2 按键电路设计

对按键电路的设计可以由2种方式:一种方式是直接按键设计,这种设计电路适用于按键较少的控制;另一种方式是矩阵式键盘的设计,它适用于对控制按键较多的电路控制。此次设计的按键有3个:启动、停止、复位。所以采用直接按键设计,其连接图如下图4-3所示。

图3-3直接按键电路图

第4章软件设计方案

根据此次课程设计的要求和设计思路,进行模块设计。包括AT89C51的初始化程序模块,定时程序模块,计数程序模块,短延时程序模块,显

示程序模块。

4.1显示程序模块

转速的显示我们采用了一个四位一体共阴极数码管作为显示器,该器

件内部已将4个数码显示器的同名字段端并接在一起,从左到右4个数码管的公共阴极分别由一个引脚引出,由1~4表示。扫描方式为动态扫描,动态数码扫描显示方式是利用了人眼的视觉暂留效应,把四个数码管按一定顺序(从左至右或从右至左)进行点亮,当点亮的频率(即扫描频率)不大时,我们看到的是数码管一个个的点亮,然而,当点亮频率足够大时,我们看到的不再是一个一个的点亮,而是全部同时显示(点亮),与传统静态扫描方式得到的视觉效果完全一样。因此我们只要给数码管这样一个扫描频率,那么就可以实现两个以上的数码管同时点亮。而这个频率我们可以通过延时程序来产生,只要点亮频率足够大,就可以实现我们的要求。

部分程序如下:

P2=0x10; //将P2.4口置1,P2端口其他位置0;

P0=table[qian]; //对P0口赋值,显示千位;

delay(1); //延时;

P2=0x20; //将P2.5口置1,P2端口其他位位置0;

P0=table[bai]; //对P0口赋值,显示百位

delay(1); //延时;

简单的说,就像高中数学中的“乘法原理”一样,这样可以很轻易的迅速增加上述“无意义指令”的数目。值的大小不仅仅与晶振、单片机本身运算速度有关,而且还与C的编译器有关,所以说,这个值虽说是可以精确计算的,但大多数情况下,程序员用的都是“经验值”。程序举例:

delay(uint m)

{

uint i,j;

for(i=m;i>0;i--)

for(j=110;j>0;j--);

}

当m=500时,延时时间约为0.5秒。

4.3脉冲个数的求取

00CS-51单片机内有两个定时器/计数器T0和T1,利用其内部定时器T1设置为定时方式,且定时时间为1s。计数器T0设置为外部脉冲计数工作方式,设在1s内测量的脉冲个数为n,又由于脉冲频率为1个脉冲/转,故测到转速n就是脉冲频率*60。定时1s,在1s内允许中断,每中断一次,软件计数器加1,1s后,关闭中断,则软件计数器即为1s内的脉冲数,设为mm,则转速n=mm*60。部分程序如下:

void timer0() interrupt 1

{

TR0=0;

TR1=0;

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

mm=0;

mm|=TH1;

mm=(mm<<8)|TL1;

TH1=0;

TL1=0;

TR0=1;

TR1=1;

}

4.4键盘电路

数字转速表的键盘操作应具有3个功能,即:启动、停止、复位。确定矩阵式键盘上哪一个按键被按下通常需要加防抖程序,其过程如图5-4所示。以启动按键为例,抖程序如下:

if(QD==0)

{

delay(2);

if(QD==0)

{

……

……

}

}

图4-4键盘扫描流程图

第5章系统调试

5.1 软件模拟仿真

试验所涉及的2个软件keil和proteus,以下是仿真步骤。

程序调试部分keil:先新建一个工程,并保存在所建工程弹出的对话框中选择AT89C51处理器。建一个文档以编辑程序,将所设计的程序输入到新建文档中,并保存文档.c(c语言源文件)。将所保存的文档添加到工程中去,再进行工程配置,点击Project菜单下的Options for Target ,在弹出的对话框中设晶振为12MHZ,将Create HEX File打上勾,再编译文件。

仿真部分proteus:运行proteus的ISIS后进入仿真界面将所需元件选择好,根据原理图画出仿真图,待仿真图换好后双击AT89C51由keil所产生的程序,按开始进行仿真。

以下是部分仿真试验现象:

当输入的脉冲频率为24HZ时,

当属如脉冲频率为32HZ时:

5.2 硬件调试

硬件调试的步骤如下:接通电源和数据线,通过软件将在keil中生成的HEX文件下载到单片机板子上,先对板子关电当显示请上电时按下单片机上的电源开关按钮上电下载程序到单片机中,通过按键和LED的显示进行调试。

当程序下载完之后,按下电源开关,LED上显示初始状态,按下启动键显示接收数据的状态,按下停止键后显示当前所记录的数据,按下复位键则显示初始状态。

总结与体会

时间流逝,为期两周的单片机课程设计在不知不觉中就已经结束了,在这两周里,我有说不尽的感谢,学习到了很多知识,知道了理论必须和实践相结合。

在这次设计中,我们需要对电机的转速进行测量,转速表需要具有启动,停止和复位三个功能。因为缺乏对实际电路的了解,对定时器与计数器的设置不熟练,经常出错,但是通过不停地尝试,修改与调试,功夫不负有心人,最终还是将程序写出来了,但是仍然遇到了许多硬件上的问题,比如按键的上拉电阻,LED的驱动等,通过李老师耐心的指导,这些问题都一一解决了。最后进行了仿真时,得到了理想的效果,实现了此次课程设计所要求的功能。

通过这次课程设计,我从中学到的知识终生受益。发现,提出,分析解决问题和施加能力的提高对以后的工作和生活有很大的帮助,了解到理论知识与实践相结合的重要性,学会了坚持,耐心和努力。

最后我不得不在此对肖锋老师的细心指导表示感谢,一开始我完全没有设计头绪,不知道从何下手,不知道一些管脚的名称和作用,但是老师没有放弃,您一遍一遍的给我讲解,让我记忆更加深刻。

参考文献

[1] 王迎旭等.单片机原理及及应用[M]. 2版.机械工业出版社,2012.

[2] 高峰.单片微型计算机原理与接口技术[M].电子工业出版社,2003.

[3]王守中.51单片机开发入门与典型实例[M].人民邮电出版社,2007

[4] 戴灿金.51单片机及其C语言程序设计开发实例[M].清华大学出版社,2010.

[5] 胡汉才.单片机原理及其接口技术[M].3版.清华大学出版社,2010.

系统硬件原理图

程序清单

相关主题
文本预览
相关文档 最新文档