选题背景
在当下这个信息科技迅猛发展的时代,各领域对于时间精确要求越来越高,比如在物理界,做实验需要精确的计时工具来测量时间参数;在体育界,比赛场上需要精确的计时工具来区分运动员速度之间的细微差距;在IT行业,时间的要求更是越来越高;最基本的在生活中,计时工具也是常被人使用。所以电子秒表实用域广,性价比高,实用性强,市场前景一片光明。
1.2 单片机简单介绍、单片机微型计算机简称单片机,是典型的嵌入式微控制器,常用英文字母MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片内,是计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种设计思想设计出的处理器,之后,单片机和专用处理器被分开。早期的单片机是8位或4位的,其中最成功的是8031,因为简单可靠性能好而获好评。之后在8031基础上发展了MCS51系列单片机系统。但性价比不理想而未被广泛应用。90年代随着电子产品飞速发展,单片机技术大大提高,处理能力也提高了数倍。目前,高端32位单片机主频已超过300MHZ,而且当代单片机系统已经不只在裸机环境下使用和发展,大量嵌入式操作系统被广泛使用。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。单片机比专用处理器更适合于嵌入式系统,所以他得到了更广泛的应用。其实单片机是世界上数量最多的计算机。现代生活的几乎所有电子和机械产品都集成有单片机。手机,电话,计算机,家庭电器,医疗仪器,电子玩具,掌上电脑等等都会配有单片机。汽车上一般要配有50多部单片机,复杂的工业控制系统上甚至可能有数百台单片机子同时工作!
因此,本次大作业设计以单片机为核心,设计简单的电子秒表系统,是的系统能够正确的运行,并且可以用数码管显示,在现实中生活中应用广泛,既有实现意义。
1.3 设计的作用及目的本设计利用单片机原理,结合显示电路,用以四位一体共阳极数码显示管及按键来实现0000-1000秒计时器。将软硬件合理结合,以实现系统正常运行,数码管正常显示的最终目的。本论文是对电子秒表设计的设基本功能,软件模块硬件模块的设计思路及如何实现功能的主要概述。 本次课程设计加深了对单片机课程的全面认识和对单片机课程的应用。 培养了自己运用所学基础理论解决实际问题的能力。 学习到设计论文写作方法和 用文与图相结合直观,详细,具体地阐述设计成果。对数字电子秒表的设计、检测、制作有了有更进一步的理解与操作,学会了把所学知识知识理论与动手实践相结合。
第2章 设计主要任务
2.1 四位数码管动态显示0000-1000秒可以正确的显示000.0……000.9……001.9……019.9……199.9……999.9之间的所有数,并且以每秒加以的形式显示在数码管上,其中要正确设置数码管各个位上字模才能正确显示000.0……000.9……001.9……019.9……199.9……999.9之间的所有数。所以设定好字模是实现数码管动态显示0000----1000秒这一主要任务的重点工作。
2.2 每秒自动加1要想电子秒表完成计数的功能就要实现系统可以每秒自动加1的功能,并且显示到数码管上。其中需要软件编程来实现每秒自动加1的功能,所以软件的正确编写是实现每秒自动加1这一任务的重要工作。
2.3 开始按键,复位按键,暂停按键
功能按键是实现更智能,更多功能化的工具。按键可以让使用者自如的操控秒表,当按下开始按键时秒表开始正常工作,开始计时,数码管上开始以每秒加1的形式在数码管上正确的显示000.0……000.9……001.9……019.9……199.9……999.9之间的所有数。当按下暂停按键时秒表暂停工作,数码管上显示再按下按键时刻正在显示的000.0……000.9……001.9……019.9……199.9……999.9之间的某个数,不在每秒加1.当按下复位按键时数码管上无论显示什么数字,再按下复位案件这一刻,数码管上各个位现实的数字被清除,显示的是----。当再次按下开始按键时,数码管又开始从000.0开始计数。注意使用时只有在暂停状态下才能继续计时,只有在停止状态下才能清零,在停止时不能继续计时,在暂停时不能清零。 而这些功能都需要单片机和写入控制的代码来实现的,因此软件编程,状态机的使用是实现按键发挥功能这一任务的重要工作。
第3章 硬件模块3.1 时钟电路3.1.1图的设计
3.1.2原理讲解
单片机是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控 制下严格地按时序进行工作。而单片机的时间基准是由时钟电路提供的。在单片机的XTAL1和TXAL2这两个引角间跨接一只晶体振荡器和两只微调电容,形成反馈电路,就构成了一个稳定的自激振荡器,即所谓的时钟电路。电路中电容C7,C8对震荡频率有微调的作用,通常取(30±10)pF。石英晶体选择6MHZ或12MHZ均可,此电路采用 12MHz 的石英晶体。时钟电路如图 3-1。
3.2 复位电路3.2.1图的设计
3.2.2原理讲解
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。除了进入系统的正常初始化之外,当由于程序运 行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新 启动。 为了可靠起见,电源稳定后还要经过一定延时再撤销复位信号,以防电源开关或插头分合过程引起的抖动影响复位。 复位操作有上电自动复位和按 键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。 按键电平复位是通过使复位端经电阻与 Vcc 电源接通而实现的。 在本设计中采用 了按键电平复位方式,其复位电路如图 3-2 所示:
3.3 按键电路3.3.1图的设计
3.3.2原理讲解
- SW1:复位键 按下数码管全部初始化,显示----
- SW2:启动键 按下 数码管停止数字
- SW2:停止键 再按下 数码管运行数字
为了节省元器件,原理图中的SW3作用归结到SW2中。故实物中只需要两个按键即可很好的完成目的。注意使用时只有在暂停状态下才能继续计时,只有在停止状态下才能清零,在停止时不能继续计时,在暂停时不能清零。 键盘电路如图 3-3-1
3.4 显示电路3.4.1图的设计
3.4.2原理讲解
对于数字显示电路,通常采用液晶显示或数码管显示。一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块(字符或点阵),一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外,AT89C51单片机本身无专门的液晶驱动接口。而数码管作为一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或是远距离操作。因此,本设计的显示电路采用8段数码管作为显示介质。显示部分采用动态显示当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制, 所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码 管有显示。 由于各数码管轮流显示的时间间隔短,人的眼睛反应不过来, 因此看到的是连续显示的现象。为防止闪烁延时的时间在 1ms 左右,不能太长, 也不能太短。本设计可采用 P3 口直接驱动八段数码管显示。此方案成本低,而且单片机的 I/O 口占用较少,可以节约单片机接口资源,而且功耗更低。 此电路采用单片机的 P3 口作为数码显示管的段控, 采用 P2 口作为数码管的 位控。2个独立式键盘分别接在单片机的 P1.0,P1.3 口上,以及其他部分构成数字式秒 表的硬件电路。通过编写程序使用单片机的定时计数器,以及软件延时,中断资 源来实现秒计时和相关控制。此数字式秒表的硬件整体结构如图 1-1 所示。由两个SN74HC245DW作为数码管驱动,U2、U3分别用于数码管的显示与位导通。显示电路如图3-4所示。
数码管为四位共阴极数码管。其中:
- 管脚11-18:分别连接8个1K欧姆电阻用以限流。
- 管脚1:VCC接5V电源正极。
- 管脚10、19:VSS为电源地。
- 管脚20:接两个去耦电容。
3.5 USB接口电路3.5.1图的设计
3.6 本章小结3.6.1整体硬件模块框图
3.6.2整体硬件模块电路原理图
3.6.3整体硬件模块电路仿真图
3.6.4 硬件模块总结
电子秒表硬件的总体设计如图3-6-1所示。本系统由单片机以及时钟电路、复位电路、按键电路、显示电路、电源电路组成。
电子秒表硬件的总体电路原理图如图3-6-2所示。
- 单片机管脚P1.0、P1.3与按键电路相连;
- 单片机管脚P2.0-2.7和P3.4-3.7分别与驱动电路相连;
- 单片机管脚9与复位电路相连;
- 单片机管脚10、11与下载电路相连;
- 单片机管脚18、19与时钟电路相连;
- 单片机管脚40连入退耦电容。
第4章 软件模块4.1 启动程序4.4.1 启动程序流程图
4.1.2 启动程序设计原理
启动程序由外部中断进行判断,当定时器TRO=1;ETO=1;后进入中断。程序进行判断启动键是否被按下, 若flag=0则按键置于低电平程序进入下一步。启动程序流程图如图4-1所示。
4.2 复位程序4.2.1 复位程序流程图
4.2.2 复位程序设计原理
程序开始,进行按键扫描。当判断出start按下时,计数器开始计时,当判断出start按键再次按下时,停止计时。此时复位程序才可以使用。复位程序流程图如图4-2所示。
4.3 按键扫描程序4.3.1 按键扫描程序流程图
4.3.2 按键扫描程序设计原理
按键扫描程序主要功能为持续扫描按键是否被按下,利用循环的方式,判断按键是否被按下。判断按键前后的两次状态,检测到按键前为高电平,按键后为低电平。则判断出为按键已经按下,从而进行按键所对应的功能。按键扫描程序流程图如图4-3所示。
4.4 数码管显示程序4.3.1 数码管显示程序流程图
4.4.2 数码管显示程序设计原理
数码管显示驱动的主要工作过程为:首先将所对应的字模编码存入相对应的存储器中,然后将所要显示字符编码在上述存储器中传送给所用数组。通过对数组的调用最终实现数码管的显示。数码管显示驱动程序流程图如图4-4所示。
4.5 状态机程序4.5.1 状态机程序流程图
4.5.2 状态机程序设计原理
首先进行按键扫描,判断flag状态。如果若flag=0,进入第一个状态循环,若为flag=1,进入第二个状态循环。两种状态循环的差异为定义的数组不同。使数码管显示不同的数字。
4.6 本章小结 4.6.1 软件模块整体流程图
4.6.1 软件模块总结
单片机程序由主程序,状态机程序,按键扫描程序,数码管显示驱动程序,启停程序,复位程序,计数程序组成。主程序主要完成各单元程序的初始化并调用各个子程序。数码管显示驱动程序是通过程序将驱动后的数码管各个位显示相应的数字。按键扫描程序是使单片机根据按下的按键,判断并执行相应的功能。启动程序是在启动按键按下后,数码管开始进行计时。复位程序是在复位按键按下后,数码管显示恢复初始状态。启停程序是根据按键使单片机进行计时或停止计时。计数程序是在按键扫描后记录时间。总体软件设计如图4-所示。
第5章 调试体会
调试程序心得体会:在调试程序时,我决定把开启键和暂停键放到一个功能键上实现,这样做首先可以节省代码,其次可以节省元器件。调试过程中遇到了一个棘手的问题就是字模。在仿真中字模是正确的,但是把程序写入电路板时发现是乱码的,所以我的心得就是知道了要更改程序来真正实现软件和硬件的正确结合。仿真和真正实现还是有差异的。
制作过程中心得体会:在焊电路板时,单片机的引脚一定要焊好,要相对应的插入,不能插反,否则很麻烦。要仔细检查是否有虚焊漏焊的引脚,还有就是电阻的大小要选准。否则不会实现电路板的正常功能。我出现的最大的错误就是把一个接地的引脚和接电源的引脚接到了一起,结果导致电路板短路。这是一个很严重的问题。很容易造成电路板损坏。还好及时发现没有造成大的损坏,但给我的教训就是一定要分清底线和电源线,不能把他们两个接在一起。在焊完之后可以用万用表仔细检查之后在供电。
第6章 总结本设计的电子秒表是由AT89c51RC单片机,共阴数码显示管,控制按键,74HC245等元件构成。 设有四位计时显示,启动/暂停,复位按键。计时精度能达到0.1s,设计精简合理,线路简单,功能符合使用基本需求,性能稳定,程序精简,简单易懂。本论文中给出了详细的电路设计方法,仿真电路的详细知识,还有软件的整体框图及软件各部分程序流程图。本系以单片机为核心,但仅单片机方面知识是不够的,还应根据具体硬件结构,针对具体应用对象特点的软件结合作以完善。所以采用C语言来进行软件设计,目标代码短,占用内存少,功能性强。
通过本次大实验设计,复习巩固了我们以前学习的数字,模拟电子技术,单片机原理及接口等课程知识,加深对各门课程及相互关系的理解,并成功使用了Protel6.9,Altium Designer09,Proteus ISIS,Keil uvision4等软件的使用。使理论知识系统化,实用化,系统地掌握微机应用系统的一般设计方法,培养较强的编程能力,开发能力。同时在设计过程中,我也发现了本系统的诸多不足和可以改进的地方。但因为时间紧迫等原因没能更好的改进和扩展更多的功能。本设计的秒表可以外加一个语音报警装置,当达到一定秒数时,语音报警装置启动,发挥提示功能。还可添加充电,显示时间等功能。虽然存在不足,但是本次设计的电子秒表仍完成了对秒表的基本需求,并能很好的执行相应功能,所以它还是具有很好的实用性的, 较好的达到了本次设计的目的。
3. 参考文献[1] 虞沧.微控制器与接口技术[M]电子工业出版社.2012.10
[2] 李朝青. 单片机原理及接口技术[M].北京:北京航空航天大学出版社.2005.10
[3] 夏继强. 单片机实验北京[M].北京:航空航天大学出版社.2001.
[4] 孙德辉,郑士富. 微型计算机控制系统[M].北京:冶金工业出版社.2002
[5] 肖洪兵. 跟我学用单片机[M]北京:北京航空航天大学出版社.2002.8
[6] 陈汝全. 实用微机与单片机控制技术[M] 电子科技大学出版社.1995.7
[7] 王涌. 单片机与嵌入式系统应用[J],2002(3):58-61
[8] 罗亚非. 凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社.2003.5