51单片机的秒表设计报告

  • 格式:doc
  • 大小:271.50 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称:微机原理课程设计

题目:基于51单片机的秒表设计

摘要

随着社会的发展,单片机已经渗透到我们生活中的各个领域,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等。本设计就是由单片机STC89C52RC芯片和1602液晶为核心,辅以必要的电路,构成了一个单片机电子秒表。秒表是一种常用的测试仪器,它可以用在百米赛跑等需要精确计时的地方,为人们的生活提供了很大的方便。该单片机电子秒表布置合理,全部器件分布在7*10cm覆铜板上,看起来小巧精简。采用的是单片机内部定时/计数器计时,走时非常精确而且不易出错。1602液晶经蓝白滑动变阻器调节亮度,,可以直观地显示时间。一个控制按键就可以控制秒表的计数与停止,按一下控制键,秒表工作状态就由计时变为计时变为停止或停止变为计时,按一下清零键就可以清零,操作非常简单。液晶显示屏第一行显示2013.7.11字样的秒表制作完成时间,第二行显示计时时间。它的计时周期为100秒,显示满刻度为99:99秒,从左往右数共四位,前两位显示整数部分,后两位显示小数部分。

关键词:秒表,51单片机,C语言,1602液晶

目录

一、设计任务、要求 (8)

1.1 设计任务: (8)

1.2 设计要求: (8)

二、方案总体设计 (9)

2.1 方案一: (9)

2.2 方案二: (9)

2.3系统采用方案 (9)

三、硬件设计 (11)

3.1 单片机最小系统 (11)

3.2 液晶显示模块 (11)

3.3 系统电源 (12)

3.4 整体电路 (12)

3.5 PCB整体电路 (13)

四、软件设计 (14)

4.1 keil软件介绍 (14)

4.2程序流程图 (15)

五、仿真 (17)

5.1 proteus软件介绍 (17)

5.2 仿真过程 (17)

六、总结 (19)

6.1设计总结: (19)

6.2经验总结: 0

七、参考文献 (1)

一、设计任务、要求

1.1 设计任务:

1).对更多小器件的了解

2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用

3).掌握仿真软件的运用和原理图的绘制

4).加深焊接的技巧,提高焊接的能力

5).熟悉调试方法和技巧,提高解决实际问题的能力

6).熟悉设计报告的编写过程

7).熟悉PCB的制作

1.2 设计要求:

1).清零键进行清零

2).一个独立按键进行停止与运行的操作

3).蓝白滑动变阻器可以调节液晶亮度

二、方案总体设计

设计一个基于51单片机的秒表。液晶屏幕第一行显示秒表制作完成日期,第二行显示计时时间;利用单片机内部精确到微妙的定时计数器来实现计时功能;利用引脚的电平变换来实现一个独立按键按控制秒表的运行与停止;利用清零键功能来实现按键的清零操作。调节蓝白滑动变阻器来调节液晶亮度。

2.1 方案一:

51单片机的定时/计数器工作在模式2时是一个可以自动重装载的8位定时/计数器。工作时高八位和低八位装入相同的初值,当低八位装满时,高八位的值自动装入到第八位中,从而可以省去用户软件中重装初值常数的语句,可产生相当精确的定时时间。由于只有八位参与计数,所以其计数周期最大为256微妙。秒表精确到0.01秒,所以采用初值装入0x38,计数50次秒表最低位加1 。低位的累加进而向高位的进位,从而实现1602液晶的秒表显示。设置液晶屏幕第一行显示秒表制作完成日期,第二行显示计时时间。同样检测TR0的值,如果TR0为0,则说明暂停。外部中断具有实时处理的功能,所以可以利用外部中断来进行控制运行与停止的操作。外部中断有两种触发中断的方式:定电平触发,跳变沿触发。如果用低电平触发的话,由于按键每按一次,导通的时间大约为20毫秒,在这个时间段足够触发好多次中断,所以不用低电平触发,采用跳变沿触发中断。每按一次按键触发一次中断,在中断程序中对TR0进行设置,从而实现控制运行与停止。清零键每按一次就清零一次,程序就回到初始位置,液晶屏幕第二行也就显示初始的00:00状态。

2.2 方案二:

51单片机的定时/计数器工作在模式0时是一个16位位定时/计数器。工作时高八位和低八位各装入初值,当低八位装满时,高八位加1。由于是16位参与计数,所以其计数周期最大为65536微妙。秒表精确到0.01秒,所以采用高八位初值装入(65536-10000)/256,低八位装入(65536-10000)%256,计数1次秒表最低位加1 。低位的累加进而向高位的进位,从而实现1602液晶的秒表显示。设置让液晶屏幕第一行显示秒表制作完成日期,第二行显示计时时间。同样检测TR0的值,如果TR0为0,则说明暂停。按键可以改变引脚的电平,所以可以检测P口的变化,根据P口的电平情况来在程序中对TR0进行设置,从而实现控制运行与停止。清零键每按一次就清零一次,液晶屏幕的第二行也就显示初始的00:00状态。

2.3系统采用方案

1)总体设计:

系统总体框架图如图所示:

图1 系统总体框架

2)总体方案工作原理

由于定时器工作模式2是八位计数,可装入的值太小,秒表最低位每加一次需要进入50次定时器中断,由于进入中断的次数太多,所以很容易出现在低八位装满本应触发而程序还在中断子程序中运行,而无法触发中断的情况,所以不适宜采用工作模式2。工作模式0只需要进入定时中断一次就可以让秒表最低位加1次,需要进入中断的次数相对来说少很多。所以选择功能模式0是更加合理的。由于外部中断跳变沿方式每一次下降沿都会触发中断,而按键按下的时候,会出现抖动的情况,并且采用外部中断不易进行消抖,很不稳定,很可能按一次出现几次中断,所以不采用外部中断方式。用P口检测的话,比较容易消抖,还可以进行松手检测,并且也可以实时监测,所以用P口检测的方法进行控制。根据这些对比,最终选择选择方案二。