51单片机实现秒表设计原理与实现

版权申诉
0 下载量 23 浏览量 更新于2024-07-02 收藏 528KB PDF 举报
该资源是一份关于基于51单片机的秒表设计的实训报告,内容涵盖了设计目标、系统硬件和软件设计、调试结果以及实训总结。设计使用AT89C51单片机,通过定时器和LED数码管实现高精度计时,支持开始、暂停和清零功能。 **设计目标** 设计目标是构建一个基于51单片机的秒表系统,具备0.01秒的计时精度,适用于体育竞赛等场景。主要器件为AT89C51单片机,通过定时器和外部中断电路与LED数码管配合,实现0~99.99秒的计时,并且能根据按键操作进行开始、暂停和清零。 **系统硬件设计** 1. **总体方案**:采用简单的结构,由单片机和数码管构建数字秒表。主控制器为AT89C51,显示部分使用四位共阴极数码管,通过P0口输出段码数据,P2.0~P2.2连接译码器进行位选。 2. **单片机选择**:选用AT89C51单片机,因为其性能优越、兼容性强、操作简便且价格适中,适合初学者和实际应用。 3. **计时器设计**:利用T0定时器,中断溢出周期为1ms,每10次中断对10ms位加一,100次对100ms位加一,以实现高精度计时。 4. **按键接口**:通过独立按键实现计时操作,键1启动和继续计时,键2暂停计时,键3清零。 **系统软件设计** 未提供具体软件设计细节,但通常会涉及以下部分: 1. 初始化程序:设置单片机的寄存器,如定时器、中断和I/O端口。 2. 定时器中断服务程序:处理定时器溢出中断,更新计时值。 3. 键盘扫描程序:检测按键输入,响应开始、暂停和清零操作。 4. 显示驱动程序:将计时数值转化为数码管显示格式,驱动数码管显示。 5. 主循环程序:处理非中断事件,如按键扫描后的响应。 **系统调试与设计结果** 这部分未提供具体信息,但在实际项目中,会包括调试过程中的问题解决、系统功能验证和计时精度测试。 **单片机实训小结** 这部分可能包含作者在实训过程中的学习体会、遇到的问题及解决方案,以及对整个项目的反思和改进意见。 这份实训报告详细介绍了基于51单片机的秒表设计,涵盖了从目标设定到硬件选型、系统设计和可能的调试过程。对于学习单片机应用和电子设计的学生来说,是一个很好的实践案例。
2023-02-27 上传
单片机课程设计 课程题目:基于51单片机的秒表设计 专业:电子信息工程 班级:电信121 学号: 姓名: 1 课题内容要求及目的 1.1课题内容 用AT89C51设计一个秒表,该秒表课可显示0.0~99.9秒的时间,进行相应的单片机硬 件电路的设计并进行软件编程利用单片机定时器/计数器中断设计秒表,从而实现秒、十 分之一秒的计时。综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学 知识的理解,具备设计单片机应用系统的能力。通过本次系统设计加深对单片机掌握定 时器、外部中断的设置和编程原理的全面认识复习和掌握。 本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模 拟实现。模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计位!其 中有三位数码管用来显示数据,显示秒(两位)和十分之一秒,十分之一秒的数码管计 数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计 数。计秒数码管采用三位的数码管,当计数超过范围是所有数码管全部清零重新计数。 1.2课题要求 本课题是基于单片机的秒表系统设计,它的具体要求有以下几点: (1)用单片机AT89C51实现; (2)以0.1秒为最小单位进行显示; (3)秒表量程为0.0-99.9秒,用 LED显示; (4)有清零、开始、停止功能。 1.3课题目的 通过课程设计,进一步熟悉和掌握AT89C51单片机的结构及工作原理,掌握以单片 机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。通过完成一个包 括电路设计和程序开发的完整过程,进一步了解开发一单片机应用系统的全过程,通过 此综合训练,为以后毕业设计打下一定的基础。 (1)利用单片机定时器计数器中断设计秒表,从而实现秒、十分之一秒的计时。 (2)综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理 解,具备设计单片机应用系统的能力,加深对单片机课程的全面认识。 (3)通过本次课程设计能够对程序进行编辑,校验。 (4)通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全 面认识复习和掌握,对单片机实际的应用作进一步的了解。 (5)通过本次系统设计,增强自己的动手能力。认识单片机在日常生活中的应用 的广泛性,实用性。 (6)该实验通过单片机的软件延时设计,设计简单的计时器系统,能正确的计时。 软件设计 2.1软件程序 根据课题内容,可作出主流程序树状图如图3.1所示: 图3.1 实验程序清单: HAOMIAO EQU 34H MIAO EQU 35H SHIMIAO EQU 36H ORG 0000H AJMP START ORG 0030H START: CLR C SETB P1.6 SETB P1.5 SETB P1.4 MOV HAOMIAO,#0 MOV MIAO,#0 MOV SHIMIAO,#0 MOV DPTR,#TABLE MOV A,#00H MOVC A,@A+DPTR CLR P1.6 MOV P2,A MOV A,#00H MOVC A,@A+DPTR CLR P1.4 MOV P2,A MOV DPTR,#TABLE1 MOV A,#00H MOVC A,@A+DPTR CLR P1.5 MOV P2,A LCALL KAISHI LCALL MAIN SHIWEI : SETB P1.5 MOV DPTR,#TABLE ;十秒位显示 MOV MIAO,#0 ;使秒位从零位重新循环 INC SHIMIAO MOV A,SHIMIAO CLR C SUBB A,#6 JZ START AJMP MAIN RET TINGZHI: MOV A,#00H ;判断是否有清零指 MOV A,P3 ANL A,#04H JZ START MOV A,#00H ;判断是否有停止指令 MOV A,P3 CLR C ANL A,#02H LCALL YANSHI JZ MAIN LJMP TINGZHI START1 : LJMP START SHIWEI1: LJMP SHIWEI MAIN : SETB P1.5 SETB P1.4 SETB P1.6 MOV A,#00H ; 判断是否有清零指令 MOV A,P3 ANL A,#04H JZ START1 MOV A,#00H ; 判断是否有停止指令 MOV A,P3 CLR C ANL A,#02H JZ TINGZHI MOV DPTR,#TABLE ; 0.1位秒显示 I NC HAOMIAO ;加一,可查下一位数据 MOV A, HAOMIAO ; 判断是否进位 CLR C SUBB A,#10 JZ MIAOZHEN LCALL YANSHI