简易秒表设计.docx

上传人:b****7 文档编号:10371031 上传时间:2023-02-10 格式:DOCX 页数:10 大小:190.03KB
下载 相关 举报
简易秒表设计.docx_第1页
第1页 / 共10页
简易秒表设计.docx_第2页
第2页 / 共10页
简易秒表设计.docx_第3页
第3页 / 共10页
简易秒表设计.docx_第4页
第4页 / 共10页
简易秒表设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

简易秒表设计.docx

《简易秒表设计.docx》由会员分享,可在线阅读,更多相关《简易秒表设计.docx(10页珍藏版)》请在冰豆网上搜索。

简易秒表设计.docx

简易秒表设计

简易秒表设计

一、任务设计:

1、设计任务

●设计并制作一个简易秒表。

2、设计要求

●设计能记录60秒的秒表;

●秒表功耗小于0.3mA/V。

3、发挥部分

●能记录60秒的时间;

●通过触碰工作或停止。

二、设计方案

显示部分是本次设计的重要部分。

方案完全用软件实现秒表工作。

原理为:

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

分、秒信息。

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

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

特点,但当单片机不上电,程序将不执行。

而且由于每次执行程序时,定时器都要重新赋初值,所以该秒表精度不高。

4、显示部分

显示部分由两个数码管组成。

5、电源模块

●采用手机使用电池可以满足供电,不需经常更换,更环保。

●供能电源便宜。

三、总体方案

1、工作原理

本设计采用STC89C51RC单片机作为本系统的控制模块。

单片机可把控制两个LED数码管记时的数据由软件来处理,从而把数据传输到显实模板,实现记时的功能。

以两个LED数码管为显示模板,把单片机传来的数据显示出来,来进行60秒记时。

在显示电路中,主要靠按键来开始、调零、复位。

2、总体设计

设计总体框架图如图1

四、系统硬件部分

1.STC89C52RC单片机最小系统

最小系统包括晶体振荡电路、复位开关和电源部分。

图2为STC89C51RC单片机的最小系统。

图2最小系统电路图

2、存储器模块

存储器采用Atmel公司的STC89C52RC芯片。

该芯片内部含有256个8位字节,可通过I2C总线对其接口进行读写操作,而且带有写保护功能。

其接线图如图3所示。

 

图3T24C02存储器电路

5、数码管显示模块

采用两个数码管进行记时工作,具有很低的功耗,正常工作时电流仅2.0mA/5.0V。

通过编程实现自动关闭屏幕能够更有效的降低功耗。

两个数码管分别记数:

当右边的数字到9后,自动复位;同时左边由1开始。

当左边是5,右边是9时,下一次记时,就全归零。

如图所示:

五、系统软件流程

1、主程序流程如图所示

2.时间设定程序流程如图所示

六、简易秒表的使用说明

1)启动。

在检查输入程序无误后,接通电源,发现现象如同实物工作情况一样:

右边的数码管的数据有1开始一直到9后,下一次记时,左边的数码管的数据显示1,右边清零。

左边由0到5,右边0到9,当左边为5,右边为9,那么下一次记时,就复位。

2)清零。

右边到9后自动回到0;

3)复位。

当左边的数据是5,右边的数据是9,下一次记时,两个数码管的数据都为0.

七、测量及结果分析

1、基本部分测试与分析

(1)测试仪器:

最小系统。

(2)基本要求部分的测试与分析:

●系统通电后,两个数码管都显示0,实物无误。

●显示数据后(设定为60秒),与其他标准的秒表进行比对,发现误差不大,实物完成的很令人满意。

亮度方面有些欠缺,不过总体是令人满意的。

2.发挥部分测试与分析

1)制作的简易秒表可以测59秒的记时,比较精确。

2)环保节能,而且简单方便。

不需要经常更换电池。

3)启动秒表,数据总是:

右边由0到9到0,左边由0到5到0。

八、设计心得体会

经过小组两个星期的努力,终于完成了这次设计任务,设计出了方便实用的简易秒表。

秒表简单实用,但凝聚了小组成员的汗水,最后的成果令人满意,也让我们很开心。

经过这次的实践,也可以说是经过了两个星期的实践,尽管期间有麻烦,但我还是从中学习了秒表的安装和改善方法,也体验到了自己动手的快乐。

参考资料

[1]《单片机原理与接口技术》.牛昱光主编,电子工业出版社.

[2]《单片机技术基础教程与实践》.夏路易编著,电子工业出版社.

[3]《51单片机C语言教程》入门、提高、开发、拓展全攻略.郭天祥著,电子工业出版社.

 

附录一整体电路

 

附录二:

程序

/****************************

*****秒表程序*****

**********

*****按键1:

清零*****

*****按键2:

暂停*****

*****按键1:

启动*****

*****led:

秒表运行指示*****

****************************/

#include

unsignedcharmsec,sec;//定义msec为50ms计数变量,sec为秒变量

voiddelay(unsignedchari);//延时函数

voidT0_INT(void)interrupt1//定时器0中断类型为1

{

TH0=0x3c;//50ms定时初值

TL0=0xb0;

msec++;//中断次数增1

if(msec==20)//中断次数到20次了吗

{

msec=0;//是,1s计时到,50ms计数变量清零

sec++;//秒变量加1

if(sec==90)//到90s吗

{

sec=0;//是,秒变量清零

}

}

}

voidmain()//主函数

{

unsignedcharled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0―9

unsignedchartemp;

TMOD=0x01;//定时器0工作方式1

TH0=0x3c;//50ms定时初值

TL0=0xb0;

EA=1;//开总中断

ET0=1;//开定时器0中断

P3=0xff;//P3口做输入

while

(1)

{

temp=~P3;//读入P3口引脚状态并取反

temp=temp&0x2c;//屏蔽掉无关位

if(temp==0x04)//按下停止键

TR0=0;//停止计数

if(temp==0x08)//按下启动键

TR0=1;//开始计数

if(temp==0x20)//按下复位键

{

TR0=0;

sec=0;

msec=0;

}

P2=0x01;//选中P2.0控制的数码管

P1=led[sec%10];//显示秒个位

delay(5);//延时5ms

P2=0x02;//选中P2.1控制的数码管

P1=led[sec/10];//显示秒十位

delay(5);//延时5ms

}

}

voiddelay(unsignedchari)

{

unsignedcharj,k;

for(k=0;k

for(j=0;j<255;j++);

}

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

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

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