基于单片机的多功能秒表的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:单片机具有集成度高,体积小可靠性好和性价比高得优点,该文主要阐述了设计一个利用单片机作为总控制中枢的秒表系统。利用单片机可以定时和记数的原理结合时钟电路、数码管显示电路、复位电路和按键电路将软、硬件同时结合起来,使得系统能够准确无误地进行计时,同时具有开始,暂停,清零和复位的功能。
关键词:单片机;多功能秒表;c语言
中图分类号:tp368 文献标识码:a 文章编号:1009-3044(2016)13-0257-02
1 系统硬件总体结构
本系统采用at89c52单片机为核心器件,通过硬件电路的制作和软件程序的编写,利用单片机的控制作用通过led来直接显示数字[1]。其中硬件电路如电源电路,晶振电路,复位电路[2],显示电路,以及一些按键电路等,软件系统采用c语言编写,包括数码管点亮显示程序,加减计数程序,延时程序,按键消抖程序等[3],并在keil中调试运行,硬件系统利用proteus仿真,简单而且易于观察,在仿真中就可以观察到实际的工作。总体硬件框图如图1所示。[4]
2 模块电路分析
多功能秒表能正常工作,是在各个电路模块组合下协调完成的,其中包括了单片机工作电路、数码管显示电路,按键电路和时钟电路,下面做详细介绍。
2.1 单片机简单介绍
电源vcc、gnd,时钟引脚xtal1、xtal2 ,i/o口引脚p0、p1、p2、p3四组八位i/0,编程控制引脚rst。采用msc-51系列的单片机是因为其具有两大优势[5]:1)片内程序存储器采用快闪存储器,使程序写入方便,还可以任意的擦写;2)提供了更小的芯片,使整个硬件电路体积更小,物美价廉,经济适用。
2.2 晶体振荡电路
at89c52芯片内部有一个反相放大器,用于构成振荡器。引脚 xtal1为反向放大器的输入,引脚xtal2为反向放大器输出,两端跨接石英晶体及两个电容就可构成稳定的自激振荡器。电容器c1,c2起稳定振荡频率,并对振荡频率有微调作用。这部分给单片机提供晶振周期。
2.3 复位电路
采用上加电压加按键共同组成复位电路[2],上电之后,此时电容是充电状态,使rst 保持高电平。当单片机运行的时候,按下按键电路上的复位键也能使rst保持在高电平上,由此实现按键复位的操作,用来完成单片机的复位初始化。
2.4 数码管显示电路
多功能秒表显示是由at89c52提供控制信号,通过数码管的段选和位选来控制数码管的动态显示,其中p0口提供段选,给数码管送入要显示的数字,p2口控制位选,通过给p2口送入数字来控制数码管的亮灭,仿真电路图如图3所示[6]。
我们采用的是数码管显示电路。led数码管是由多个发光二极管封装在一起组成“8”字型的元器件[7],数码管显示分为静态和动态显示两种,静态显示程序设计比较简单,但是会用到较多的端口;动态显示用到的端口会相对较少,节省了单片机的i/o口使用。在设计中,我们采用数码管动态显示,用p0口作驱动。因为p0口的内部没有上拉电阻[8],不管它的驱动能力有多大,也相当于它是没有电源的,所以在使用时必需要为其外接上拉电阻才能输出高电平。
2.5 按键电路
本设计使用的是p1口作为输入电路。仿真电路图如图5所示。
在按键电路中,我们可以在i/o口上直接接按键,分别是开始、暂停和清零。p1口作为
输入端时要先向该口进行写1操作[9](p1口内有上拉电阻,这个端口没有高阻态,不能锁存)单片机内部才会正确读出外部信号。
3 软件设计
系统软件由单片机最小系统,按键电路和显示电路组成,当系统开始工作时首先由复位电路给整个程序初始化,然后单片机等待按键按下,由所按得键执行对应的函数在将函数运行结果传给显示电路并将其显示[10]。程序图如图6所示。
4 结束语
本次设计经过仿真成功之后又搭建了实际电路,跟预期结果一致,计时最大值为99.99秒,精确到0.01秒[5],整体电路计时精确度高,抗干扰能力强,实用性强,性价比高具有一定的市场。