51单片机实现的数字秒表设计与实现

版权申诉
0 下载量 133 浏览量 更新于2024-06-28 收藏 552KB DOCX 举报
"该文档是关于基于51单片机的数字秒表设计的课程设计报告,涵盖了设计目的、任务要求、实现过程、仿真验证和总结。主要目标是设计一个可显示0~59分钟59.59秒,精度为10毫秒的数字秒表,具备复位、启/停控制等功能。" 在51单片机的数字秒表设计中,主要涉及以下几个关键知识点: 1. **51单片机**:51系列单片机是微控制器的一种,广泛用于教学和入门级电子项目。它具有内置的CPU、RAM、ROM、I/O端口等,易于编程和扩展。 2. **硬件电路设计**:设计秒表的硬件电路包括选择合适的电源、单片机、LCD显示屏、按键、时钟电路等。时钟电路通常由晶振和电容组成,提供稳定的时钟信号给单片机。 3. **软件编程**:使用KEIL4编程软件编写单片机的程序,实现计时、显示、控制等功能。程序通常包含初始化设置、定时中断服务子程序、按键处理子程序等模块。 4. **计时精度**:10毫秒的计时精度要求高精度的定时器中断。51单片机的定时器中断可以设置不同的计数模式以达到所需精度。 5. **显示模块**:LCD显示屏用于实时显示时间,需要编程控制字符的显示和更新,通常使用4位或8位数据线与单片机接口。 6. **按键控制**:设计复位、启动/停止等按键,通过I/O口读取按键状态,实现相应功能。 7. **多对象计时**:设计能够同时对两个对象A和B计时,需要额外的计数器和逻辑处理,以实现独立的启/停控制。 8. **PROTEUS仿真**:Proteus是一款强大的电路仿真软件,可以在设计阶段验证硬件电路和程序的正确性,减少实物原型制作中的错误。 9. **STC-ISP编程**:STC单片机支持在线编程(ISP),允许在不拆卸芯片的情况下更新程序,简化了开发流程。 10. **焊接与元件参数**:实际制作过程中,需要掌握电子元器件的焊接技术,并能查阅和理解元件的功能和参数,以确保电路的正确连接。 11. **问题分析与解决**:通过课程设计,学生可以锻炼分析问题和解决问题的能力,这对于后续的毕业设计和科研工作至关重要。 通过这个课程设计,学生不仅能深入理解51单片机的工作原理和编程技巧,还能提升项目实施和问题解决的实践能力,为未来的电子工程工作打下坚实基础。
2023-02-27 上传
电气与自动化工程学院 卓越工程师培养计划 暑期实训报告 题 目 秒表系统的设计 年 级 11级 专 业 自动化 班 级 卓越班 学 号 160111126 姓 名 俞雷 地 点 大学生创新实验室 日 期 2012年8月12日~2012年8月20日 目录 一、单片机简介 - 2 - 二、设计目标 - 3 - 1、设计目的: - 3 - 2、具体操作: - 3 - 三、硬件设计 - 4 - 原理图: - 4 - 四、系统的软件设计 - 5 - 1、软件整体设计思路: - 5 - 2、软件流程图: - 5 - 3、程序: - 6 - (1)数码管秒表显示程序: - 6 - (2)1602液晶秒表显示程序: - 13 - 五、系统的调试及设计结果 - 18 - 1602液晶——秒表显示效果图: - 18 - LED数码管——秒表显示效果图: - 18 - 六、创新实验室课程设计小结 - 19 - 一、单片机简介 单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发 展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯 设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的 各层次中,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电) 等。 管脚图如图1.1所示。 图1.1 AT89C52单片机引脚图 (1) 电源地组Vcc和Vss;VCC—(40)脚接+5V电压;VSS—(20)脚接地 (2) 时钟电路组XTAL1和XTAL2 (3) 控制信号组RST/ALE/PSEN和EA (4) I/O端口P0, P1, P2和P3 二、设计目标 1、设计目的: 1.利用单片机定时器中断实现秒表计时功能。 2.方案一:通过LED显示程序的调整,熟悉LED动态显示的控制过程。 方案二: 通过对1602设置,熟悉1602液晶显示的控制过程。 3.通过键盘程序的调整,熟悉矩阵式键盘的控制,熟悉键盘扫描原理。 4.通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、1602液晶的显 示、键盘扫描和定时器中断等多种功能的综合程序。 2、具体操作: 方案一:用AT89C51设计一个6位的数码管显示作为"秒表",显示时间范围为0.00~65 5.36秒(此处可以通过设置两个变量进行进位操作来达到最大计数9999.99秒),计时精 度达到0.01秒。利用其定时器的原理,数码管以及定时器中断来设计计时器。将软硬件 结合起来,使得系统能实现0.00~655.36秒的计时。另外,通过独立按键的设计来对秒表 进行控制。key1键控制计时的开始与暂停、key2键控制计时时的保存数据然后可以通过 key4键控制数据的输出(可以保存十个,保存十个时秒表可以停止,该功能可用于赛跑 中的计时)、key3键控制"清零"和保存按下清零键前的最后一次所计时间。(特别声明 :每次处于"暂停状态"的时间都可以在此基础之上进行计时)。 方案二:用AT89C51设计一个1602液晶显示的"秒表",显示时间范围为0.00~655.36秒 (此处可以通过设置两个变量进行进位操作来达到最大计数9999.99秒),计时精度达到 0.01秒。利用其定时器的原理,1602液晶以及定时器中断来设计计时器。将软硬件结合 起来,使得系统能实现0.00~655.36秒的计时。另外,通过独立按键的设计来对秒表进行 控制。key1键控制计时的开始与暂停、key3键控制"清零"和保存按下清零键前的最后一 次所计时间。(特别声明:每次处于"暂停状态"的时间都可以在此基础之上进行计时) 。注:由于开发板的键盘对液晶显示有影响,顾放弃数码管秒表显示中的部分功能。 三、硬件设计 原理图:(程序可用于在下图在软件中仿真也可以用于开发板) 四、系统的软件设计 1、软件整体设计思路: 将程序模块化与功能,含有多个子程序的调用与嵌套。通过对按键的是否按下来对秒 表进行操作,按键功能在设计目标的具体操作中已经展现。10毫秒秒定时采用定时器T0 中断的工作方式1进行,中断及计数的开启与关闭受控于按键处理程序。 2、软件流程图: 如图所示。(注:用1602液晶的方案中无key2与key4) 3、程序: (1)数码管秒表显示程序: /********************************** 数码管显示秒表计时 **********************************/ /********************************** 头文件 宏定义 定义 **********************************/ #include<reg52.h> #define uint unsigned int #def