非常好的资料-秒表时钟程序-c语言-51单片机-Proteus仿真-均包括 下载本文

内容发布更新时间 : 2024/5/8 18:48:01星期一 下面是文章的全部内容请认真阅读。

电子工程训练实验报告

题目:秒表系统的设计和工程实现

系班: 学号: 姓名:

大连理工大学电工电子实验中心

电子安装实验室

一. 单片机系统设计方案描述

系统设计基本指标:

1.实现最大时间长度超过5分钟的正常倒计时

2.可以在5分钟范围内自由方面设置秒表的开始时间 3.进入最后一分钟时,三声蜂鸣器响提示

4.秒表计时到,五声蜂鸣器响,同时小灯亮提示

电子工程训练是一个综合性实验。秒表系统设计总体上分为硬件设计和软件设计两个部分,并要充分考虑它们的匹配设计。硬件设计特别是引脚的配置要充分考虑软件实现的需要,反过来,软件设计也要建立在硬件的基础上,并且充分利用硬件提供的资源。

硬件电路大体上可分为最小系统板电路、数码管显示电路和按键电路。最小系统板电路和数码管显示电路在老师指导下很快得以完成。按键电路为充分考虑以后软件设计的灵活性和可扩展形,采用了排线将引脚引出。

软件设计上,为方便秒表的操作使用,设置了“修改”、“增加”、“移位”和“开始/暂停”四个按键功能。“修改”键按下,进入修改状态,相应的修改位闪烁,提示按“增加”键修改该位时间参数,操作“移位“按键可以移动修改位。“开始暂停”则用于秒表的开始运行和暂停运行。

按键处理通常有查询和中断两种方式处理,查询占用较多的单片机运行资源,而且延迟防抖效果较差,容易多次触发,而中断方式消抖则操作更为灵敏。同时考虑到AT89S52只有两个外部中断,将使用较多的“增加”和“开始/暂停”两个按键处理分配给两个外部中断。另外两个按键则采用查询方式检测处理。

软件设计整体上利用了“有限状态机”的思想,按键控制状态的转换,并在相应的状态下执行相应的操作。一共设置了3个状态:state=0(暂停状态),state=1(开始运行状态),state=2(修改状态),它们的相互转化如下:

秒表计时,自动修改时间参数“移位”键和“增加”键修改时间参数,修改数码位闪烁提示State=1开始运行状态始开”/暂停按键“下“修改”键按下”开始/暂停“键按下State=2修改状态“键”改修按下State=0暂停状态数码管显示暂停的时间 由于本人之前接触过一些仿真软件Proteus的知识,而本系统设计所需要的单片机、按键、数码管、蜂鸣器等硬件均可在Proteus得到仿真。在程序的编写调试过程中,可以完全脱离硬件,高效率的完成了程序的编写调试。

二. 硬件原理图(电路原理图、硬件仿真图)

Proteus仿真图