数字秒表.docx
- 文档编号:27218952
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:21
- 大小:248.69KB
数字秒表.docx
《数字秒表.docx》由会员分享,可在线阅读,更多相关《数字秒表.docx(21页珍藏版)》请在冰豆网上搜索。
数字秒表
前言
在计算机综合应用实训,此实验阐述了基于单片机的数字电子秒表设计。
本设计主要特点是计时精度达到0.01s,具有多组数据记录功能,一键实现开始、暂停、清零功能。
解决了传统的由于计时精度不够造成的误差和不能记录多组数据局限性。
是各种体育竞赛的必备设备之一。
本设计的数字电子秒表系统采用AT89S52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部控制电路来设计计时器。
将软、硬件有机地结合起来,使得系统能够实现六位LED显示,显示时间为0~59分59秒99毫秒,计时精度为0.01秒,能正确地进行计时,同时能记录10组时间,并能用上下翻动键对计时时间进行查询。
其中软件系统采用C语言编写程序,包括显示程序,定时中断服务,延时程序等,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
目录
一、概述3
1.意义:
3
2.小组个个人工作分配:
3
3.功能3
二、硬件电路设计及描述4
1.方案及设计思想:
4
2.电路原理图5
3.芯片资料:
7
4.元件清单:
9
三、软件设计流程及描述10
1.模块层次结构图10
2、程序流程图11
3、源程序代码11
四.测试20
五.总结21
一、概述
1.意义:
时间是日常生活、体育竞技、工业、医学、航天等领域最常遇到的一个物理量。
测量时间的基本方法是使用秒表直接测量。
其中秒表的精度是人们最关心的,这就要求它的计时最小单位足够小,显示模块的灵敏度足够高。
特别是在体育测量中对秒表的精度和功能有较高的要求。
本设计要使时间的测量准确,可记录多组数据,就必须使系统有更小的计时单位和记录功能。
本设计能解决竞技时,一表记录多人不同成绩。
其中一键实现开始、暂停、清零,简化了电路,操作简便。
2.小组个个的工作分配:
在设计系统之前,我们一起先查资料了解一般秒表的设计方法。
经过大家的分析,确定了设计方案。
了解方案中的模块功能从而确定元器件选择。
根据方案其中一个同学绘制了仿真电路图,另外一个同学主要负责程序的摸索,一起在仿真过程中对元器件进行修订和更改,使系统更加稳定和简便。
最后还有个同学主要负责实物电路的连接与测试。
3.系统主要功能
1.实现计时功能:
当按下开始键时,秒表开始计时。
计时范围在0~59分59秒990毫秒。
2.实现多组数据记录功能:
当计时开始后,按下记录键,每按一次记录一组数据,暂停后,可以对记录数据翻动查询。
3.实现一键三功能:
一键实现开始、暂停、清零功能。
二、硬件电路设计及描
1.方案及设计思想:
设计要求:
数字秒表
A.最小显示位10ms,计时范围0~59分59秒990毫秒。
B.一键控制三种工作状态:
计时,暂停,清零。
C.系统工作符合一般秒表要求。
方案一:
此方案采用数字电路实现,单片机控制显示部分。
数字电路具有占用硬件电路复杂、只能驱动数码管和其它简单的外围电路、产生的最小计时单元误差大。
原理图如图1-1所示。
图1-1数字电路控制方法
方案二:
此方案采用AT89S52单片机实现。
单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。
而且体积小,硬件实现简单,安装方便。
另外AT89S52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
它既可以产生精准的计时单元,还可以控制复杂的外围电路。
其原理如图1-2所示。
图1-2采用单片机控制方法
关于比较:
通过以上两种方案框图,我们可以看到用单片机来实现,自由度大,不但能实现所要求的功能,而且能在很大的程度上扩展功能,且产生效果很好,故我们采用后一种方案。
其中显示,我们采用的是LED显示,因其器件显示清晰,价格低廉。
所以此次设计,我们方案二。
2.电路原理图
控制部分(左边)
单片机首先判断外部按键P1.0、P1.1、P1.2、P1.3的状态,当按“开始”键时,单片机根据外部脉冲信号,计算时间,动态在P0口输出段选电平在P2口输出位选电平,经过74LS245驱动后通过数码管显示出计时时间。
计时开始后再按此键便暂停,继续按则实现清零。
计时开始后按下记录键便可以记录多组数据,记录的数据可以用翻动键来逐个查看。
显示部分(右边)
我们采用动态显示的方法。
动态显示的优点是,它占用CPU的时间少,每次只把一个数据送到外部接口,做实物时调节程序内的扫描时间就可以让数码管显示平稳察觉不到闪烁。
静态显示,是每一个数码管不论在什么时候都点亮,占用CPU的时间很多。
数码管为共阳极工作,P0端口用来为八段显码提供低电平输入,P2.0、P2.1、P2.2、P2.3、P2.4、P2.5输出高电平用作选位,来确定哪一个数码管显示,并协同P0口确定显示的数值,在显示的过程中,为确保有足够大的驱动电流,我们没有采用外加上拉电阻上拉电压,而是采用了两个74LS245串入驱动。
使数码管能够正常显示。
3.芯片资料:
74LS245管脚图
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。
AT89S52管脚图
4.元件清单:
AT89S52单片机1片
74LS2452片
12Mhz晶振1个
30皮法电容3个
1k电阻6个
470欧电阻6个
按键开关5个
共阳极四位LED数码管1个
共阳极两位LED数码管1个
三、软件设计流程及描述
1.模块层次结构图
2、程序流程图
3、源程序代码
#include
#include
codeunsignedcharnum[]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90};
codeunsignedcharnum1[]={0x40,0x79,0x24,0x30,0x19,
0x12,0x02,0x78,0x00,0x10};
sbitkey1=P1^0;
sbitkey2=P1^1;
sbitkey3=P1^2;
sbitkey4=P1^3;
sbits0=P2^0;
sbits1=P2^1;
sbits2=P2^2;
sbits3=P2^3;
sbits4=P2^4;
sbits5=P2^5;
voidinit();
voiddelay();
voiddisplay();
voidkey_1();
voidkey_2();
voidkey_3();
voidkey_4();
staticunsignedcharMs0[10],Ms1[10],Sec0[10],Sec1[10],Min0[10],Min1[10];
staticintkey_n,j,x;
unsignedcharkey3_flag,key4_flag;
unsignedcharms0=0,ms1=0,sec0=0,sec1=0,min0=0,min1=0;
voidmain()
{
init();
while
(1)
{
key_1();
key_2();
key_3();
key_4();
display();
}
}
voiddelay()
{
unsignedinti;
for(i=0;i<600;i++);
}
voidkey_1()
{
if(!
key1)
{
delay();
if(!
key1)
{
while(!
key1)
{;}
key_n++;
if(key_n==1)
TR0=1;
else
{
if(key_n==2)
TR0=0;
else
{
if(key_n==3)
{
ms0=ms1=0;
sec0=sec1=0;
min0=min1=0;
key_n=0;
for(j=0;j<10;j++)
{
Min0[j]=0;Min1[j]=0;
Sec0[j]=0;Sec1[j]=0;
Ms0[j]=0;Ms1[j]=0;
}
j=0;x=0;
}
}
}
}
}
}
voidkey_2()
{
if(!
key2)
{
delay();
if(!
key2)
{
while(!
key2)
{;}
if(j==10)
TR0=0;
Min0[j]=min0;Min1[j]=min1;
Sec0[j]=sec0;Sec1[j]=sec1;
Ms0[j]=ms0;Ms1[j]=ms1;
j++;
}
}
}
voidkey_3()
{
if(!
key3)
{
delay();
if(!
key3)
{
while(!
key3)
{;}
key3_flag=1;
if(x==j)
x=0;
else
if(key4_flag)
x+=1;
key4_flag=0;
min0=Min0[x];sec0=Sec0[x];ms0=Ms0[x];
min1=Min1[x];sec1=Sec1[x];ms1=Ms1[x];
x++;
}
}
}
voidkey_4()
{
if(!
key4)
{
delay();
if(!
key4)
{
while(!
key4)
{;}
key4_flag=1;
if(x==0)
x=j;
else
if(key3_flag)
x-=1;
key3_flag=0;
min0=Min0[x];sec0=Sec0[x];ms0=Ms0[x];
min1=Min1[x];sec1=Sec1[x];ms1=Ms1[x];
x--;
}
}
}
voiddisplay()
{
s0=0;
s1=0;
s2=0;
s3=0;
s4=0;
s5=1;
P0=num[ms0];delay();
s0=0;
s1=0;
s2=0;
s3=0;
s4=1;
s5=0;
P0=num[ms1];delay();
s0=0;
s1=0;
s2=0;
s3=1;
s4=0;
s5=0;
P0=num1[sec0];delay();
s0=0;
s1=0;
s2=1;
s3=0;
s4=0;
s5=0;
P0=num[sec1];delay();
s0=0;
s1=1;
s2=0;
s3=0;
s4=0;
s5=0;
P0=num1[min0];delay();
s0=1;
s1=0;
s2=0;
s3=0;
s4=0;
s5=0;
P0=num[min1];delay();
}
voidinit()
{
key3_flag=0,key4_flag=0;
ms0=ms1=sec0=sec1=min0=min1=0;
key_n=0;j=0;x=0;
P2=0xff;
P1=0xff;
TMOD=0x01;
TH0=0xd8;
TL0=0xef;
EA=1;
ET0=1;
TR0=0;
}
voidtiem0(void)interrupt1using1
{
TH0=0xd8;
TL0=0xef;
TR0=1;
ms0++;
if(ms0==10)
{
ms0=0;
ms1++;
if(ms1==10)
{
ms1=0;
sec0++;
if(sec0==10)
{
sec0=0;
sec1++;
if(sec1==6)
{
sec1=0;min0++;
if(min0==10)
{
min0=0;
min1++;
if(min1==6)min1=0;
}
}
}
}
}
}
四.测试
测试方法:
将电路接上电源,自制秒表与校验秒表同时计时,大约十分钟同时暂停记录数据比较。
测试设备:
校验秒表,直流稳压电源。
实测数据:
自制秒表计时时间
校验秒表计时时间
相差时间
10分0秒400毫秒
10分1秒200毫秒
800毫秒
10分0秒100毫秒
10分1秒450毫秒
1350毫秒
10分0秒600毫秒
10分1秒860毫秒
1260毫秒
10分0秒330毫秒
10分1秒470毫秒
1140毫秒
10分0秒560毫秒
10分1秒590毫秒
1030毫秒
系统指标:
相差时间/校验时间=误差时间
根据计算误差时间=0.0019秒
该秒表符合设计要求,能满足一般非精密计时工作。
五.总结
通过两周的实验设计和动手操作,我们小组在老师的指导下终于有了比较完整的实验方案和结果。
我们通过查找资料和相关文献,并参考了老师的意见,进行不断的研究与探索而成,实现了电路的简洁易懂和电路的稳定,在实验过程中我们获益匪浅,学会了高效率的查阅资料、运用工具书、利用网络查找资料。
我们发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。
偶尔还会遇到错误的资料现象,这就要求我们应更加注重实践环节。
虽然途中遇到不少麻烦,比如共阴极共阳极数码管的选择问题,电路连线的问题,清零电路工作故障的问题,复位电路的问题,仿真能实现象但到实物中就没有结果得问题。
经过反复的检查排除,最终实现了数字秒表电路的功能。
经过这次课程设计,它让我们接触更多平时没有接触过的科学仪器设备、元器件以及获得相关的仪器调试经验,同时我们也发现自己在这方面很多不足之处。
体会到理论知识对实践有很大的指导作用,他让我们知道,只有在正确的理论指引下,才能设计出合乎实际需要的硬件电路。
参考文献
[1]:
张毅刚《新编MCS-51单片机应用设计》.哈尔滨工业大学出版社,2003.7
[2]:
蓝和慧《单片机应用技能》电子工业出版社,2009.4
[3]:
李光飞、李良儿《单片机C程序设计实例指导》.北京航空航天大学出版社,2005.09
课程设计
题目
数字秒表
二级学院
专业
班级
姓名
学号
考核项目
设计50分
平时成绩20分
答辩30分
得分
总分
考核等级
教师签名
姓名
学号
考核项目
设计50分
平时成绩20分
答辩30分
得分
总分
考核等级
教师签名
姓名
学号
考核项目
设计50分
平时成绩20分
答辩30分
得分
总分
考核等级
教师签名
姓名
学号
考核项目
设计50分
平时成绩20分
答辩30分
得分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 秒表