可存储多组数据的秒表设计.docx

上传人:b****8 文档编号:9477781 上传时间:2023-02-04 格式:DOCX 页数:13 大小:108.16KB
下载 相关 举报
可存储多组数据的秒表设计.docx_第1页
第1页 / 共13页
可存储多组数据的秒表设计.docx_第2页
第2页 / 共13页
可存储多组数据的秒表设计.docx_第3页
第3页 / 共13页
可存储多组数据的秒表设计.docx_第4页
第4页 / 共13页
可存储多组数据的秒表设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

可存储多组数据的秒表设计.docx

《可存储多组数据的秒表设计.docx》由会员分享,可在线阅读,更多相关《可存储多组数据的秒表设计.docx(13页珍藏版)》请在冰豆网上搜索。

可存储多组数据的秒表设计.docx

可存储多组数据的秒表设计

信息与电气工程学院

课程设计说明书

(2011/2012学年第二学期)

 

课程名称:

单片机课程设计

题目:

可存储多组数据的秒表设计

专业班级:

学生姓名:

学号:

指导教师:

设计周数:

两周

设计成绩:

2012年6月20日

八、心得体会………………………………………………………13

 

一、课设目的

(1)掌握单片机的定时器、按键和显示电路的设计,从而学会制作可存储多组数据的秒表。

(2)通过秒表的制作进一步了解各种在制作中用到的中小规模集成电路的作用及使用方法。

(3)学习与掌握单片机软硬件的基本设计思路、方法。

二、技术要求

(1)用5位数码管进行秒数时间显示,分别是分2位,秒2位,1/10秒1位;

(2)有5个按键,分别是开始、记录、停止、清零、回显。

(3)开始上电时显示00:

00:

0,按下“开始”键开始定时;每按下一次“记录”键将当前时间记录、存储;按下“停止”键定时结束,同时显示数据保持不变;按下“清零”键显示数据为00:

00:

0;每按下一次“回显”键将所存储的数据依次显示。

三、器件清单

名称

数量(单位:

个)

共阴数码管

5

9013

5

按键

6

LED

5

10uF电容

1

104电容

2

22pF电容

2

4.7K电阻

5

10K电阻

6

1K电阻

1

开关

1

晶振

1

单片机

1

四、概述

1.意义:

时间是日常生活、体育竞技、工业、医学、航天等领域最常遇到的一个物理量。

测量时间的基本方法是使用秒表直接测量。

其中秒表的精度是人们最关心的,这就要求它的计时最小单位足够小,显示模块的灵敏度足够高。

特别是在体育测量中对秒表的精度和功能有较高的要求。

本设计要使时间的测量准确,可记录多组数据,就必须使系统有更小的计时单位和记录功能。

本设计能解决竞技时,一表记录多人不同成绩。

其中一键实现开始、暂停、清零,简化了电路,操作简便。

2.本人所做的工作:

在设计系统之前,先了解一般秒表的设计方法。

经过分析,确定了设计方案。

了解方案中的模块功能从而确定元器件选择。

根据方案绘制了仿真电路图,在仿真过程中对元器件进行修订和更改,使系统更加稳定和简便。

最后负责实物电路的连接与测试。

3.系统主要功能

1.实现计时功能:

当按下开始键时,秒表开始计时。

计时范围在0~59分59秒990毫秒。

2.实现多组数据记录功能:

当计时开始后,按下记录键,每按一次记录一组数据,暂停后,可以对记录数据翻动查询。

3.实现一键三功能:

一键实现开始、暂停、清零功能。

 

五、程序流程图

六、软件设计

#include

#include

codeunsignedcharnum[]={0x7e,0x30,0x6d,0x79,0x33,

0x5b,0x5f,0x70,0x7f,0x73};//段选

sbitkey1=P1^0;

sbitkey2=P1^1;

sbitkey3=P1^2;

sbitkey4=P1^3;

sbitkey5=P1^4;

sbits0=P2^0;//位选

sbits1=P2^1;//位选

sbits2=P2^2;//位选

sbits3=P2^3;//位选

sbits4=P2^4;//位选

voidinit();//初始化

voiddelay();//延迟程序

voiddisplay();//显示程序

voidkey_1();//按键程序,开始,停止,清零

voidkey_2();//记录

voidkey_3();//回显

staticunsignedcharMs0[10],Ms1[10],Sec0[10],

Sec1[10],Min0[10],Min1[10];//记录,最大记录限制10组

staticintkey_n,j,x;

unsignedcharms0=0,ms1=0,sec0=0,sec1=0,min0=0,min1=0;

voidmain()

{

init();

while

(1)

{

key_1();

key_2();

key_3();

display();

}

}

voiddelay()

{

unsignedinti;

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

}

voidkey_1()

{

if(!

key1)

{

delay();

if(!

key1)

{

while(!

key1)

{;}

TR0=1;

}

}

if(!

key2)

{

delay();

if(!

key2)

{

TR0=0;

while(!

key2);

}

}

if(!

key3)

{

delay();

if(!

key3)

{

ms0=ms1=0;

sec0=sec1=0;

min0=min1=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(!

key4)

{

delay();

if(!

key4)

{

while(!

key4)

{;}

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(!

key5)

{

delay();

if(!

key5)

{

while(!

key5)

{;}

if(x==j)

x=0;

else

x+=1;

min0=Min0[x];sec0=Sec0[x];ms0=Ms0[x];

min1=Min1[x];sec1=Sec1[x];ms1=Ms1[x];

x++;

}

}

}

 

voiddisplay()

{

s0=1;

s1=0;

s2=0;

s3=0;

s4=0;

P0=num[ms1];delay();

s0=0;

s1=1;

s2=0;

s3=0;

s4=0;

P0=num[sec0];delay();

s0=0;

s1=0;

s2=1;

s3=0;

s4=0;

P0=num[sec1];delay();

s0=0;

s1=0;

s2=0;

s3=1;

s4=0;

P0=num[min0];delay();

s0=0;

s1=0;

s2=0;

s3=0;

s4=1;

P0=num[min1];delay();

}

voidinit()

{

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;

}

}

}

}

}

}

七、原理图

八心得体会

作为一名电气专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。

在已度过的大学时间里,我们大多数接触的是专业课。

我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?

如何把我们所学的专业基础课理论知识运用到实践中去呢?

我想做类似的课程设计就为我们提供了良好的实践平台。

俗话说“好的开始是成功的一半”。

说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目。

其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。

最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

这个设计过程中,我们通过在原有的计数器系统进行了改进,使之增添了暂停、计数、清零等的三个控制功能,使之成为一个更加适用,功能更加完备的属于自己的一个系统。

设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。

这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。

九、参考文献

[1]张毅刚.单片机原理与应用.定时期/计数器的编程和应用.北京:

高等教育出版社.2006.6(4)133~135

[2]彭为,黄科,雷道仲.单片机典型系统设计实例精讲.北京:

电子工业出版社.2006.5(3,4)248~268

[3]刘刚,秦永左.单片机原理及应用.北京:

中国林业出版社,2006.9

[4]李建忠.单片机原理及应用.西安:

西安电子科技大学出版社,2002

课程设计

评语

课程设计

成绩

指导教师

(签字)

年月日

 

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

当前位置:首页 > 总结汇报 > 学习总结

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

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