"单片机课程设计报告-秒表设计"

需积分: 5 0 下载量 76 浏览量 更新于2023-12-27 收藏 192KB DOC 举报
单片机课程设计报告-秒表设计 设计课题:秒表设计 专业班级:电子***班 学生姓名:*** 学号:*** 指导教师:*** 设计时间:2011 年 5 月 30~6 月 19 日 目录 一、 设计任务和要求………………………………………………3 (1)设计任务……………………………………………………3 (2)设计要求…………………………………………………3 二、 设计方案与论证………………………………………………3 三、 单元电路设计与参数计算……………………………………4 (1)时钟电路……………………………………………………4 (2)按钮电路…………………………………………………4 (3)显示电路…………………………………………………5 (4)单片机……………………………………………………5 四、 原理图及器件清单……………………………………………6 (1)总原理图……………………………………………………6 (2)PCB 图……………………………………………………7 (3) Proteus 仿真图……………………………………………7 (4)元器 设计任务和要求 本课程设计的任务是设计并实现一个秒表,满足秒表的基本功能,并在此基础上进行一定的创新和设计。设计要求包括秒表功能的实现、显示清晰、操作简便、外形美观等方面。 设计方案与论证 针对设计任务和要求,我们采用了基于单片机的设计方案,通过按钮控制开关、时钟电路控制秒表计时、显示电路显示计时结果等功能模块的设计,经过论证,认为这种设计方案是可行的,并且具有一定的可扩展性。 单元电路设计与参数计算 在具体的电路设计过程中,我们分别设计了时钟电路、按钮电路、显示电路和单片机电路。时钟电路的设计需要考虑精度和稳定性;按钮电路的设计需考虑防抖动和稳定触发;显示电路的设计需要考虑显示清晰度和功耗;单片机的选择需要考虑计算能力和芯片成本等因素。 原理图及器件清单 根据设计的单元电路,我们得到了总原理图和PCB图,并列出了元器件的清单,以便于后续的制作和调试。同时,我们还进行了Proteus仿真,验证了设计的正确性和稳定性。 通过上述的课程设计报告,我们不仅学习了单片机的基本原理和应用,还锻炼了自己的设计能力和实际动手能力。这个秒表设计不仅是一次课程设计,更是对我们知识的综合运用和提升,对今后的学习和工作都有着积极的促进作用。同时,我们也意识到设计工作需要细心和耐心,只有充分的准备和认真的执行,才能得到令人满意的结果。希望通过这次课程设计,能够更好的为我们将来的工作打下坚实的基础。 结语 通过本次课程设计,我们深刻领会了单片机的应用和设计原理,对秒表的设计有了更深入的理解,也提升了我们的工程实践能力。同时,在这个过程中,我们也学会了团队协作和推动项目的能力,这将对我们未来的学习和工作有着重要的意义。通过这次设计,我们对我们的专业有了更深入的理解,也增强了我们对工程设计的信心,为我们未来的发展奠定了更加坚实的基础。
2023-02-27 上传
一:课程设计题目 秒表/时钟计时器 二:课程设计任务与要求: 利用89C51单片机设计秒表/时钟计时器,通过LED显示器显示秒十位和个位,在设计 过程中用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计 数达到60时,就自动返回到0,重新开始秒计数。 三:设计过程: 1.设计原理:此次课程设计题目是秒表/时钟计时器,由课程设计的要求和任务,我采用 的C语言编程,设计秒表要求一秒定时,采用了定时器和FOR循环来定时,其中一个软件 一个硬件,会在方案论证中分析在1秒时采用的是硬件定时,即用单片机内部的定时器T 0。先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。然后由定义的变量 second来进行加一运算,然后将其值通过P1,P2口在数码管上进行显示。其中数码管的 显示时,我在程序中首先定义了一个关于数码管显示的字形码定义,以便在显示时调用 即可。 (1)方案论证: 方案1:在方案1中,我们所选用的是软件定时,即用for循环来定时1秒进行显示的变化 。 方案2:在方案2中,采用的是硬件定时,即用单片机内部的定时器T0。先将时钟初始化 ,赋入初值50ms定时,循环20次来进行1秒定时。 方案比较:我们从两方面进行两种方案的比较,第一,由于此次课程设计要求是秒表, 则在定时时要求比较精确,所以采用硬件的定时器定时时比较准确的。第二,由于秒表 的定时程序是很小的,在利用软件定时占用的CPU并不是很多,不能显现出来,但真正大 程序时会很占用资源的,所以在用定时中断过程中是非常节省资源的。综合上述两种比 较,我们选用了第二种方案。 (2)创新点: a.在课程要求的基础上,我们做成的电路板上,用复位键来控制秒表计时的重新开始, 即清零。 b.在以上设计的基础上,我们又重新设计了一个程序,基本原理没有变,只是将秒表在 到达59清零的瞬间向分的位数上进1,程序将会在附录3中给出。 2.硬件系统框图与说明: 首先,连接的是单片机51的最小系统,其中包括时钟电路,复位电路,在此中包 括的元器件在附录3中。我们所选用的数码管是共阴极的,置1时导通,所以将单片机 的P1.0~P1.7连接数码管的a~dp,P2口同理。然后在数码管秒表个十位的显示则由软件 程序来控制。 3.软件主要模块流程图与说明: 在真正应用时,我们的一秒定时是用定时中断的,但单片机的T0最长也不能1秒定时 ,所以我们采用50ms定时循环20次,用count来控制。当秒的时间达到59时,用软件来清 零时循环从00重新开始。 四:课程设计总结: 1:本次的课程设计,使关于51系列单片机的,正是我们刚刚学到的51单片机,在平时课 程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样 的。开始时我也觉得自己的理论知识已经够了,但当我拿到课题时,在脑海里想的是非 常好的,但真正编成和控制时,理论和实际结合不到一起,甚至于51芯片的使用我都感 觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。本次课程设计我主要 负责编程,这次不仅锻炼了我C语言的知识,更加我们正在学习的51的定时与中断结合在 一起,进行了实际的操作,让我的知识掌握得更加牢固。本次的实际经验之后,让我对 单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认 识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。 2:通过这次课程设计——秒表/时钟计时器,使我又重新开始学习C语言,因为C语言是大 一学的,至从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了 一点眉目。刚开始以为可以用汇编很容易就写出来,因为我们正在学习汇编语言,以为 学的很明白了,但是用汇编时才发现原来都不怎么熟练,编了一会程序发现只有一种感 觉——举步维艰啊!还是放弃汇编选择C语言吧!对于单片机,我们课本学习的是80C51, 但是这次做课程设计用的是89C51,这样不仅使我们掌握了80C51,而且对89C51也有了一 定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现 问题。通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器 的应用与中断。学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。这次 课程设计使我受益匪浅,而且都是实际的东西。 3:这次课程设计,我们做的是秒表/时钟计时器,最终我们选择的是用C语言编程,但原 来学的也只是能看懂别人写好的程序而已,通过这次课程设计,更加熟练了C语言的程序 设计思路。这次课程设计我主要负责焊接电路板,焊接过程中最困难的地方就是数码管 的焊接,因为数码管的管脚和89C51的管脚是不对应的,而且要避免接线的交叉,所以最 后确定了布线最合理的方案,如硬
2023-02-27 上传
基于单片机的秒表课程设计 XX: 班级: 学号: 专业: 指导教师: 年 月 日 目录 1、总体设计方案简介 1.1设计课程任务 1.2系统分析 1.3系统方案 1.4方案论证 2、硬件设计 2.1控制芯片的介绍 2.2硬件接线 2.2.1硬件接线接口 2.2.2硬件接线图 3、软件设计 3.1程序设计思路 3.2流程图 3.3源程序 3.4仿真结果 4、元件清单 5、心得体会 基于单片机的秒表课程设计 摘要 本设计的成品是在单片机最小系统的根底上增加显示电路和控制电路来完成数字式 秒表的硬件电路的。电子秒表电路主要由AT89S51单片机最小系统电路、七段数码管动 态显示电路和控制电路组成,它能实现八段数码显示和计时,能通过控制电路控制时间 的暂停和开场。 关键字:AT89S51 数码管 最小系统 1总体设计方案简介 1.1设计课题任务 设计一个具有特定功能的数字式秒表。用AT89C52设计一个2位LED数码显示"秒表〞,显 示时间为00- 59,另设计一个"开场〞按钮和一个"复位〞按钮。按键说明:按"开场〞按键,开场计数 ,数码管从00开场每秒自动加一;按"复位〞按键,系统清零,数码管显示00。 1.2系统分析 设计的电路主要是能屡次计时,计时的多少通过显示电路出来,设计框图如下图; 1.3系统方案 利用AT89C52单片机设计数显定时器。此方案采用AT89C52单片机系统来实现。AT8 9C52芯片内含8KB的EEPROM,不需要外扩展存储器,可是系统整体构造更为简单。设计 框图如下图; 1.4方案论证 此方案是以AT89C52芯片为中心控制系统,可实现计时、清零等功能,大大提高了 系统的智能化,也是的系统所测结果精度大大提高。所以此方案可行。 2硬件设计 2.1控制芯片的介绍 AT89S52是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器,的8位CMO S微控制器,使用高密度、非易失存储技术制造,并与80S52引脚和指令系统完全兼容。 主要性能: 与MCS-51微控制器 产品系列兼容。 片内有4KB可在线重复编程的快闪擦写存储器 存储数据保存时间为10年 宽工作电压X围:VCC可为2.7V到6V 全静态工作:可从0Hz至16MHz 程序存储器具有3级加密保护 128*8位内部RAB 32条可编程I/O线 两个16位定时器/计数器 中断构造具有5个中断源和2个优先级 可编程全双串行通道 空闲状态维持低功耗和掉电状态保存存储内容 2.2硬件接线 2.2.1硬件接线端口 时钟引脚:XTAL1和XTAL2与内部的反相放大器构成一个振荡器,它提供单片机的时 钟控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 P2口:P2.6和P2.7端口分别控制数码管的十位和个位供电,当相应的端口变成低电 平时,驱动相应的三极管会导通,+5V通过三极管给数码管相应的位供电,这是只要PO 口送出数字的显示代码,数码管就能正常显示数字。 PO口:PO.O-PO.6端口用排线连接到数码管显示模块区域中的A- G端口上;PO.O对应着A,......,PO.6对应着G。P0.7接高电平。 P1.0接"开场〞按键 2.2.2硬件接线图〔见附录图〕 3软件设计 3.1程序设计思路 在硬件的根底上,可以通过软件完成数字式秒表的设计。我先用了矩阵键盘上的任 意两个独立按键作为控制键。用一个键去控制计时的开场;用一个键做计时的清零按键 。用按键扫描的方式判断按键是否按下。用动态显示的方法扫描秒表的计数,显示所记 下的数。用中断的方法来进展计时加1,每10ms中断一次进展重新赋值并加1,当10ms单 元到达10,就令该单元赋0,并让100ms单元加1,以此类推。 3.2流程图 1主程序流程图 3.3源程序 FIRST EQU P2.7 ;第一位数码管的位控制 SECOND EQU P2.6 ;第二位数码管的位控制 SEC EQU 00H ;1S到的标记 UALUE EQU 21H ;秒计数器 COUNT EQU 22H ;软件计数器 DISPBUF1 EQU 5EH ;5EH是显示缓冲区 DISPBUF2 EQU 5FH ;5EF是显示缓冲区 HIDDEN EQU 10 ;消隐码在字型码表的第10位 ORG 0000H LJMP START1 ORG 000BH LJMP INT_T0 ORG 0100H START1: P1.0,START1 LJMP START START:MOV SP,#5FH ;设置堆栈指针初值 MOV VALUE,#0 ;秒计数器 MOV COUNT,#0 ;软件计数器 MOV DISPBUF1,#0 ;显示缓冲区 填充0 MOV DISPBUF2,#0 ; 显示缓冲区 填充0 MO