基于单片机的秒表计时器
- 格式:docx
- 大小:1.06 MB
- 文档页数:22


1
第一章 设计的内容、要求及目的
1.1 设计内容
本课题以单片机为核心,要求设计和制作一个秒表,实现计时功能。开始时,全显示“0”,自行设计按钮,要求第1次按下按钮后就开始计时,计时精度最好为0.01秒;第2次按按钮后,计时停止,此时可读取计时数值;第3次按按钮后,计时归零,全显示“0”。此为基本要求,学生可根据自己的创意添加相应扩张,完善或者添加部分功能。
1.2 设计要求
1. 设计方案要合理、正确;
2. 系统硬件设计;
3. 完成必要元器件选择;
4. 系统软件设计及调试;
5. 写出设计报告。
1.3 目的及意义
要求通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。同时要求掌握定时器、外部中断的设置和编程原理。此外,还希望通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 2 该实验通过单片机的定时器/计数器定时和计数原理,设计简单的秒表计时系统,拥有正确的计时、暂停、清零功能,并同时可以用数码管或者液晶显示器显示,在现实生活中应用广泛,比如说体育项目中的跑步竞赛计时,因此具有现实意义。
3 第二章 系统方框图与工作原理
2.1 系统方框图
秒表系统主要由单片机、显示电路,控制按钮等组成。硬件系统比较简单,其系统方框图如下:
图1 系统构成框图
2.2 系统工作原理
秒表系统比较简单,因此,实施了相应扩展,显示器采用了液晶显示器取代LED数码管显示器。同时,添加一个控制按钮,实现可计10个计数值的功能。主要硬件部分与逻辑功能如下:
秒表系统主要用到的是一个内部定时器,如T0,每隔10MS产生一次中断,实现秒表计时的“跑动”;一个外部中断,用于控制按钮,控制的实现由软件判定来实现;此外,就是一个显示电路,由内存读取需要显示的数值传输给显示器循环显示。主要逻辑和控制均由51单片机的软件编程来实现。 单片机 液晶
1 摘要
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度达到0.01s,具有多组数据记录功能,一键实现开始、暂停、清零功能。解决了传统的由于计时精度不够造成的误差和不能记录多组数据局限性。是各种体育竞赛的必备设备之一。
本设计的数字电子秒表系统采用AT89S52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部控制电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现六位LED显示,显示时间为0~59分59秒99毫秒,计时精度为0.01秒,能正确地进行计时,同时能记录10组时间,并能用上下翻动键对计时时间进行查询。其中软件系统采用C语言编写程序,包括显示程序,定时中断服务,延时程序等,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
关键词:单片机;数字电子秒表;仿真;LED
2 目录
一、概述 ..................................................................................................... 3
1.意义:................................................................................................ 3
2.本人所做的工作: ........................................................................... 3
3.功能 .................................................................................................... 3
单片机秒表程序代码
以下是一个基本的单片机秒表程序代码,使用Keil C语言编写:
#include 引入头文件
unsigned int s=0; 定义全局变量秒数
void delay() 定义延时函数
{
unsigned int i,j;
for(i=1;i<=1000;i++)
{
for(j=1;j<=100;j++);
}
}
void timer0() interrupt 1 定义定时器0中断服务函数
{
TH0=0xFC; 设置计时器初始值,每50ms中断一次
TL0=0x67;
s++; 秒数+1
}
void main() 主函数
{
TMOD=0x01; 设置计时器0为模式1
TH0=0xFC; 设置计时器初始值,每50ms中断一次
TL0=0x67;
EA=1; 允许中断
ET0=1;
TR0=1; 启动计时器0
while(1)
{
if(s>=60) 如果秒数到达60秒,重置秒数为0
{
s=0;
}
P1=s; 将秒数显示在P1口上
delay(); 延时
}
}
注:此代码仅供参考,实际使用时可能需要根据具体需求进行修改和优化。
单片机简易秒表正计时时间可设置
秒表是一种用来测量时间流逝的仪器,广泛应用于体育比赛、科学实验和日常生活中。在现代科技的推动下,秒表的功能和精准度都得到了极大提升。本文将介绍一种单片机实现的简易秒表,能够进行正计时,并可设置计时时间。
用于实现秒表功能的单片机芯片有很多种,通常选择计时和定时功能强大的单片机,如STC89C52、AT89C51等。这些单片机具有丰富的外设和强大的计时能力,非常适合实现秒表功能。
在开始设计之前,我们需要明确几个关键的功能要求。首先是正计时功能,我们需要编写程序来实现从0开始的计时。其次是计时时间可设置,即用户可以设置计时的起始时间和结束时间。最后是计时的精确度,单片机通常使用定时中断来实现计时,我们需要考虑到时钟频率和定时器的精度,确保计时的准确性。
首先,我们需要连接单片机与显示器和按键开关。单片机的引脚可以通过通用I/O口或专用的定时器引脚与显示器和按键开关相连接。这里我们选择7段LED数码管作为显示器,用来显示计时结果。按键开关用于设置计时时间。
接下来,我们需要编写程序来实现秒表的功能。首先,初始化单片机的定时器和中断。我们需要设置定时器的工作模式、时钟频率和计时的时间间隔。然后,我们需要编写中断服务函数,该函数在定时器达到设定的时间时被调用。在中断服务函数中,我们将对计时进行加法操作,并将结果显示在LED数码管上。同时,我们还需要判断计时是否达到设置的结束时间,如果达到,则停止计时。
为了使用户可以设置计时时间,我们可以通过按键开关来实现。当用户按下设定时间的键时,我们将进入设定模式,用户可以通过按键来设定起始时间和结束时间。通过LED数码管来显示用户设置的时间。
最后,我们需要对秒表进行测试和调试,确保其功能的正常运行。我们可以逐步测试每个功能点,如正计时功能、计时时间设置功能和计时精确度等。通过串口输出调试信息,我们可以对程序进行调优和改进,提高秒表的性能和稳定性。