单片机控制秒表系统课程设计.docVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机控制秒表系统课程设计

设计总说明 本设计的任务是设计一个单片机控制的秒表系统。我们利用单片机的定时器/计数器定时和计数的原理,结合显示电路、LED数码管以及按键来设计一个最大时间为59分59秒的秒表,每秒自动加1。按键由开始键、停止键、清零件构成。在设计时,我们应将软、硬件有机的结合起来,使得系统能够正确地进行计时,并结合相应的显示驱动程序,使数码管能够正确地显示时间,暂停和中断。数码管显示有静态显示和动态显示两种方法。动态显示可以节省I/O口,硬件电路比较简单,但是编程比较复杂,而且显示的效果一般;静态显示效果好,编程简单,但却浪费I/O口。在我们的设计中,为了更好地提高自己编程的能力和理解数码管的动态显示,我们采用动态显示。通过KEIL软件的仿真和PROTEUS的仿真,我们的设计能够实现预想的功能。 关键字:AT89C51,单片机,LED数码管,动态显示 目录 1.概述 1 1.1设计任务 1 1.2设计要求 1 2.硬件设计 2 2.1 AT89C51单片机 2 2.2晶振电路 5 2.3显示电路 6 2.4键盘 7 3.软件设计 8 3.1开机初始化程序 8 3.2键扫描程序 9 3.3开始、暂停、清零子程序 9 3.4延时子程序 10 3.5计数程序 10 3.6显示子程序 11 3.7程序流程图 12 4. Proteus软件仿真 13 4.1计时仿真图 13 4.2仿真结果与分析 14 5.课程设计体会 15 5.1设计中遇到的问题及分析 15 5.2心得体会 15 致谢 17 参考文献 17 附录:秒表源程序 18 1.概述 1.1设计任务 本次单片机课程设计主要是设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和计数的原理,结合显示电路、LED数码管以及按键来设计计时器。在设计时,我们应将软、硬件有机的结合起来,使得系统能够正确地进行计时,并且结合相应的显示驱动程序,使数码管能够正确地显示时间、暂停和清零。 1.2设计要求 1)使用四位LED显示,显示时间为00.00-59.59秒。 2)正常计数时,每秒自动加1。 3)一个开始按键、一个暂停按键和一个清零按键。 2.硬件设计 在本系统中,用到的硬件电路主要有电源电路,晶振电路,显示电路以及一些按键电路等。我们采用的是数码管动态显示,用到了P1口和P2口。另外,由于使用P1口驱动显示器,所以需要在P1口接一组上拉电阻,以保证显示器显示正常。 下面分别对硬件电路做简单介绍: 2.1 AT89C51单片机 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 管脚说明如下: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档