秒表电子时钟毕业设计.doc_第1页
秒表电子时钟毕业设计.doc_第2页
秒表电子时钟毕业设计.doc_第3页
秒表电子时钟毕业设计.doc_第4页
秒表电子时钟毕业设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文) 题 目: 秒表电子时钟毕业设计 学生姓名: 学 号: 200917140 专业班级: 09 应用电子高级(3)班 指导教师: ii 秒表电子时钟毕业设计 摘要摘要:数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用 单片机组成数字电子秒表,力求结构简单、精度高为目标。设计中包括硬件电路的设计和系统 程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和停表电路等。主控 制器采用单片机at89c51,显示电路采用共阴极 led 数码管显示计时时间。 关键词:关键词:单片机,电子钟,位码,段码,显示 秒表 电子时钟的毕业设计 i 目 录 1 总体方案设计1 1.1 电路原理 1 1.2 设计的系统 1 1.3 计时控制方案 1 1.4 显示控制方案 2 1.5 键盘控制方案 2 2 硬件设计2 2.1 at89c51 单片机的简介.2 2.2 at89c51 单片机复位方式.4 2.3 74ls244 的功能.5 2.4 74ls07 的功能6 2.5 键盘接口工作原理 6 2.6 显示电路的工作原理 7 3 软件设计9 3.1 设计思路 9 3.3 主程序 .10 3.4 中断服务程序 .12 3.5 显示程序 .13 3.6 按键程序 .15 小结16 致 谢17 秒表 电子时钟的毕业设计 1 1 总体方案设计 1.11.1 电路原理电路原理 电路的核心是 at89c51 单片机,设计中有 6 位 led 显示和 4 个按键接口,采用 p0 接口外接 8 路反相三态缓冲器 74ls244 作 led 动态扫描的段码控制驱动信号,用 p1 接口的 p1.0-p1.3 外接一片集电极开路反相门电路 74ls07 做为 6 位 led 的位选 信号驱动口, led 共阴极端与 74ls07 的输出端相连;按键接口,由 p2.1,p2.2,p2.3,p2.4 来完成。 将电子钟的显示情况和数码管的计时情况,分别以代码的形式送 led 数码管, led 显示器是由发光二极管显示字段的 at89c51 单片机输出设备。单片机应用系统 常采用七段 led 数码管作为显示器,启动定时器,同时调用显示程序,和查询按键。 利用软件计数器的方法计时一秒,利用中断的方法使计时时间循环。当按下按键 p2.3 时开始启动定时功能。 1.21.2 设计的系统设计的系统 电子钟的总体设计图,如图 1.1 所示。 p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 a b c d e f g h +5v p2.4 p2.1 p2.3 p2.2 xtal1 xtal2 gnd vcc rst vss p2.0 74ls244 74ls07 at89c51 图 1.1 电路总体设计图 1.31.3 计时控制方案计时控制方案 利用 at89c51 内部的定时器/计数器进行定时,配合软件延时实现计时。该方案 节省硬件成本,且能够使我在定时器/计数器的使用、中断及程序设计方面得到锻炼 与提高。 2 1.41.4 显示控制方案显示控制方案 显示分为静态显示和动态显示,静态显示由于占用较多的接口,在单片机设计 中常采用串行扩展来完成。该方案占用接口资源多,显示亮度由保证,但硬件开销 大,电路复杂,信息刷新速度慢,实用于并行接口资源较少以及对显示没有要求的 场合。led 动态显示硬件连接简单,但动态扫描的显示方式需占用 cpu 较多的时间, 在该系统中由于单片机除了扫描 at89c51 芯片外没有太多的实时测控任务,故选用 动态扫描方式在 6 个数码管上显示当前时间。 1.51.5 键盘控制方案键盘控制方案 键盘分为独立式键盘和行列式键盘,独立式键盘接口电路配置灵活,硬件结构 简单,工作可靠但每个按键必须占用一根 i/o 接口线,i/o 接口线浪费较大,在单 片机应用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一 根 i/o 接口线上,故只在按键数量不多时采用。而行列式键盘每条行线与列线在交 接处不直接相通,而是通过一个按键用以连接,当按键较多时可采用行列式键盘以 节省 i/o 接口。本设计采用四个按键,所以这里选用独立式键盘。 2 硬件设计 2.12.1 at89c51at89c51 单片机的简介单片机的简介 2.1.1 at89c51 的结构组成的结构组成 at89c51 是单片机中的典型产品,at89c51 单片机包含中央处理器、程序存储器 (rom)、数据存储器(ram)、定时/计数器、并行接口、串行接口和中断系统等几大单 元及数据总线、地址总线和控制总线等三大总线,如图 2.1 所示。 现分别加以说明: 1、中央处理器 中央处理器(cpu)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,cpu 负责控制、指挥和调度整个单元系统协调的工作,完成 运算和控制输入输出功能等操作。 2、数据存储器(ram) at89c51 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们 秒表 电子时钟的毕业设计 3 是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用 于存放用户数据,所以,用户能使用的 ram 只有 128 个,可存放读写的数据,运算 的中间结果或用户定义的字型表。 图 2.1 单片机内部结构示意图 3、程序存储器(rom) at89c51 共有 4kb 掩膜 rom,最大可扩展 64k 字节,用于存放用户程序,原始数 据或表格。 4、定时/计数器: at89c51 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于 控制程序转向。 5、并行输入输出(i/o)口: at89c51 共有 4 组 8 位 i/o 口(p0、 p1、p2 或 p3),用于对外部数据的传输。 6、中断系统 at89c51 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个 串行中断,可满足不同的控制要求,并具有 2 级的优先级别选择。 2.1.2 at89c51 的引脚介绍的引脚介绍 at89c51 单片机内部总线是单总线结构,即数据总线和地址总线是公用的. at89c51 有 40 条引脚, 这 40 条引脚可分为 i/o 接口线、电源线、控制线、外接晶 体线 4 部分。 at89c51 单片机为双列直插式封装结构, 如图 2.2 所示。 at89c51 单片机的电源线有以下两种: (1)vcc:+5v 电源线。 (2)gnd:接地线。 at89c51 单片机的外接晶体引脚有以下两种: (1)xtal1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。采用内 部振荡器时,它接外部石英晶体和微调电容的一个引脚。 4 (2)xtal2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另 一端。采用外部振荡器时,该引脚悬空。外接晶体引脚。 ea/vp 31 x1 19 x2 18 reset 9 rd/p3.7 17 wr/p3.6 16 int0/p3.3 12 int1/p3.2 13 t0/p3.4 14 t1/p3.5 15 p10 1 p11 2 p12 3 p13 4 p14 5 p15 6 p16 7 p17 8 p00 39 p01 38 p02 37 p03 36 p04 35 p05 34 p06 33 p07 32 p20 21 p21 22 p22 23 p23 24 p24 25 p25 26 p26 27 p27 28 psen 29 ale /p 30 txd/p3.1 11 rxd/p3.0 10 图 2.2 at89c51 引脚分配图 控制线 at89c51 单片机的控制线有以下几种: (1)rst:复位输入端,高电平有效。 (2)ale/prog:地址锁存允许/编程线。 (3)psen:外部程序存储器的读选通线。 (4)ea/vpp:片外 rom 允许访问端/编程电源端。 2.22.2 at89c51at89c51 单片机复位方式单片机复位方式 单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循 环状态,在这种情况下都需要复位。 复位的作用是使中央处理器 cpu 以及其他功能 部件都恢复到一个确定的初始状态,并从这个状态重新开始工作。 at89c51 单片机的复位靠外部电路实现,信号由 reset(rst)引脚输入,高电平 有效,在振荡器工作时,只要保持 rst 引脚高电平两个机器周期,单片机即复位。 复位后,pc 程序计数器的内容为 0000h,片内 ram 中内容不变。复位电路一般有上 电复位、手动开关复位和自动复位电路 3 种,在本设计中用手动复位方式,如图 2.3 所示。 秒表 电子时钟的毕业设计 5 图 2.3 单片机的手动复位电路 2.32.3 74ls24474ls244 的功能的功能 74ls244 在设计中是段码显示中的驱动器件,在电路中起驱动段码的功能。 74ls244 的具体功能如下: 74ls244 是原码三态输出的 8 缓冲数码驱动器,其管脚分布图如图 2.4 所示,g 为控制端,又称为使能端其工作原理如下: 当 g=0 时,a 输入为低电平时,y 输出也为低电平。 当 g=0 时,a 输入为高电平时, y 输出为高电平。 当 g=1 时,a 不论输入高电平还是低电平 y 为高阻状态 功能表如表 2.1 所示: 表 2.1 74ls244 的功能表 入入入入 gay lll lhh hxz 1a1 2 1a2 4 1a3 6 1a4 8 2a1 11 2a2 13 2a3 15 2a4 17 1y1 18 1y2 16 1y3 14 1y4 12 2y1 9 2y2 7 2y3 5 2y4 3 1g 1 2g 19 图 2.4 74ls244 管脚图 2.42.4 74ls0774ls07 的功能的功能 74ls07 在设计中是位码中的驱动器件,在电路中起驱动位码的功能。74ls244 的具体功能如下: 74ls07 是六缓冲的数码驱动器,它是有 6 个集电极开路的非门所组成,管脚分 布如图 2.5 所示,其工作原理如下,当使能端为低电平时,输入为高电平时输出也 为高电平,当输入为低电平时输出也为低电平,其逻辑表达式为:y=a 。 6 vcc 14 2a 3 2y 4 3a 5 3y 6 gnd 7 6a 13 6y 12 5a 11 5y 10 4a 9 4y 8 1a 1 1h 2 图 2.5 74ls07 管脚图 2.52.5 键盘接口工作原理键盘接口工作原理 在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命 令及指令等输入到系统中,来实现简单的人机通信。在设计中运用了 4 个按键接口, 按键运用时要注意它自身的抖动情况,和键盘的连接方法。 2.5.1 开关的去除抖动功能开关的去除抖动功能 目前, at89c51 单片机应用系统上的按键常采用机械触点式按键,它在断开、闭 合时输入电压波形如图 2.6 所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时 间长短与开关的机械特性有关,一般为 510ms。由于抖动,会造成被查询的开关状 态无法准确读出。例如,一次按键产生的正确开关状态,由于键的抖动,cpu 多次 采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是 不允许的。为了保证 cpu 对键的一次闭合仅在按键稳定时作一次键输入处理,必须 消除产生的前沿(后沿)抖动影响。 图 2.6 按键过程 2.5.2 键盘的接口电路键盘的接口电路 独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向 系统输入信息。这时,可将每个按键直接接在一根 i/o 接口线上,这种连接方式的 键盘称为独立式键盘。如图 2.7 所示,每个独立按键单独占有一根 i/o 接口线,每 根 i/o 接口线的工作状态不会影响到其他 i/o 接口线。这种按键接口电路配置灵活, 硬件结构简单,但每个按键必须占用一根 i/o 线,i/o 接口线浪费较大。故只在按 键数量不多时采用这种按键电路。 在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,i/o 接口线有确定的高电平。当 i/o 接口内部有上拉电阻时,外电路可以不配置上拉电 秒表 电子时钟的毕业设计 7 阻。本设计中采用独立式按键接口电路。根据设计要求需要进行时间调整,所以设 计中采用 4 个按键。p2.1 用做时间的待调整按键,p2.2 用做时间的依次加一,p2.3 用做时间的依次减一,p2.4 用做启动定时按键。 +5v p2.1 p2.2 p2.3 p2.4 at89c51 图 2.7 独立式键盘电路 2.62.6 显示电路的工作原理显示电路的工作原理 led 显示器是由发光二极管显示字段的 at89c51 单片机输出设备。单片机应用 系统常采用七段 led 数码管作为显示器,这重显示器具有耗电低、配置灵活、线路 简单、安装方便、耐转动、价格低廉且寿命长等优点。因此应用比较广泛。 1、led 数码管显示器的分类 led 数码管显示器可以分为共阴极和共阳极两种结构。 (1)共阴极结构:如果所有的发光二极管的阴极接在一起,称为共阴极结构,则 数码显示段输入高电平有效,当某段输入高电平该段便发光,如图 2.8 所示。 (2)共阳极结构:如果所有的发光二极管的阳极接在一起,称为共阳极结构,则 数码显示段输入低平有效,当某段输入低电平该段便发光, a b c d e f g dp r x 8 图 2.8 共阴极七段 led 显示器 2、led 显示接口 显示电路中分动态显示和静态显示: (1)静态显示方式:led 的静态显示是指当数码管显示某一字符时,相应段的 发光二极管处于恒定的导通或截止状态,直到需要显示另一字符为止。 8 (2)led 动态显示就是利用单片机依次输出每一位数码管的段选码和对应于该 位数码管的位选控制信号,一位一位轮流点亮各七段数码管。对每位数码管来说, 每隔一段时间点亮一次,如此循环。利用人眼的“视觉暂留”效应,只要每位显示 间隔足够短就可以给人以同时显示的感觉。在动态显示方式中,同一时刻,只有一 位 led 数码管在显示,其他各位是关闭的。在段选码和位选码每送出一次后,应保 持 1ms 左右,这个时间应根据实际情况而定。不能太小,因而发光二极管从导通到 发光有一定的延时,导通时间太小,发光太弱人眼无法看清。但也不能太大,因为 毕竟要受限于临界闪烁频率,而且此时间越长,占用 cpu 时间也越多。 采用动态显示方式比较节省 i/o 接口,硬件电路也较静态显示方式简单,但其 亮度不如静态显示方式,而且在显示位数较多时,cpu 要依次扫描,占用 cpu 较多 的时间。 通过静态显示方式和动态显示方式的比较,我们会选择一种比较适用的显示方 式,所以根据我们的设计要求我们需要显示六位数码管。因此在实际应用中常采用 动态显示方式。 用 at89c51 单片机构建七段数码管动态显示系统时,6 位数码管均采用共阴极 led,p0 接口作为段选码输出口,8 路驱动采用 74ls244 总线驱动器作为字形驱动芯 片,经过 8 路驱动电路后接至数码管的各段,字形驱动输出 0 时发光。p2 接口作为 位选码输出口,6 路驱动采用 74ls07(oc 门驱动器) ,当 c 接口线输出 1 时,选通 相应位的数码管工作。如图 2.9 所示。 p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 a b c d e f g h 74ls244 74ls07 at89c51 图 2.9 扫描式显示电路 秒表 电子时钟的毕业设计 9 3 软件设计 3.13.1 设计思路设计思路 本设计中设有一个中断程序,按键子程序,显示子程序,和主程序四部分。 主程序中根据设计要求进行显示初始化,然后对定时器赋值,开启定时器后就 要调用显示和按键子程序。 在中断程序中主要实现 24 小时的计时功能。根据设计的要求需要 60 秒向分进 一位,60 分到时向时进位,24 小时到就清零,重装初值。重新计数。 按键子程序中用 4 个按键来实现设计中的调整功能,在设计中用 p2.2 实现时间 的依次加一,用 p2.3 实现时间的依次减一。用 p2.1 来用做时间的待调整按键。用 p2.4 来实现定时功能。 本设计中选用动态显示,在显示中用 6 个数码管显示器。并且要做一个段码表, 用查表的方法完成送段码的功能,然后送给 p0 口,位码送给 p1 口。 3.2 定时秒的定时秒的实现实现 定时方法我们采用软硬件结合的方法,在主程序中设定一个初值为 20 的软件计 数器使定时器 t0 工作于方式 1 定时 50 毫秒,这样每当 t0 到 50 毫秒时 cpu 就响应 它的溢出中断请求进入他的中断服务子程序。定时器的最大定时时间为 50 ms, 因此如果想得到 1s 的定时,需要计 20 次 50ms 才能实现。在中断服务子程序中, cpu 先使软件计数器减 1,然后判断它是否为零。为零表示 1 秒已到。 定时器 t0 和 t1 有 4 种工作方式,即方式 0、方式 1、方式 2、方式 3。t0 和 t1 这两个定时器在方式 0、方式 1、方式 2 下工作时,其用法完全一致,仅在方式 3 时 有所区别。各种方式的选择是通过对 tmod 的 m1、m0 两位进行编码来实现的。 在本设计中由于只设计有一个中断程序,所以也只选用了一个定时器 t0,根据 设计的要求选择 tmod 的工作方式为方式 1。 定时器工作时必须给计数器送初值,将这个值送到 th0 和 tl0 中。它是以加法 计数的,并能从全 1 到全 0 时自动产生溢出中断请求。因此工作于方式 1,定时器为 16 位计数器其定时时间由下式计算: 定时时间=(216x)振荡周期12(或) x=216定时时间振荡周期12 10 式中 x 为 t0 的初始值,该值和计数器工作方式有关。 如单片机的主脉冲频率为 12mhz,经过 12 分频。 定时器的初值为: x=216定时时间振荡周期12 =216-5010-312106/12 =65536-定时时间 =65536-50000 =15536 =3cb0h 所以初值 th0=3ch、tl0=0b0h 方式 0:定时时间2131 微秒8.192 毫秒 方式 1:定时时间2161 微秒65.536 毫秒 秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合 的办法才能解决这个问题,定时器需定时 50 毫秒,故 t0 工作于方式 1,定时 20 次, 就可定时一秒。 3.33.3 主程序主程序 主程序初始化和按键控制,首先将时间、中断、次数、和显示分别进行初始化, 然后启动定时器对时间进行判断,将时间送数据缓冲区,调用显示程序,同时扫描 按键程序,用无条件跳转指令返回, 再调用显示程序,如此周而复始的循环,如图 3.1 所示。 秒表 电子时钟的毕业设计 11 图 3.1 主程序框图 主程序: org 0000h ljmp start org 000bh ljmp ctco org 0030h start:mov 30h,#09h mov 31h, #05h mov 32h,#09h mov 33h,#05h mov 34h,#01h mov 35h,#01h mov 50h,#02h mov 51h,#01h mov 52h,#00h mov 53h,#00h mov tmod,#01h mov th0,#3ch mov tl0,#0b0h mov r3,#20 setb ea setb et0 setb tr0 12 3.43.4 显示程序显示程序 显示程序采用动态显示,由位码控制那一个数码管显示,由段码控制数码管显 示什么数值,根据中断程序显示时间来查表显示数值,在显示子程序中,先查表取 数,然后把段码送到 p0 口,接着把位码送到 p1 口,再调用延时子程序延时。这样 才能清晰的看到数码管的显示值。然后调整数据指针,判断循环一周了吗?如果没 有循环一周,就左移位码,重新取数。如果循环一周到了,子程序返回。 从第一位到第六位逐个点亮,同时每显示一位判断一次六位显示完了吗?同时, 由于采用动态扫描方式,所以是依次循环点亮各位数码管,即可构成多位动态显示 电路。采用定时器中断方式实现动态扫描,每隔 20 秒扫描一次。每位数码管点亮的 时间为一秒。如图 3.2 所示。 图 3.2 显示程序框图 显示程序: display: mov r0,#30h mov r2,#01h mov dptr,#tab l1: mov a,ro movc a,a+dptr cjne r2,#04h,k2 秒表 电子时钟的毕业设计 13 orl a,#80h k2:cjne r2,#16,k1 orl a,#80h k1:mov p0,a mov p2,r2 lcall dealy inc r0 mov a,r2 jb acc.6,l2 rl a mov r2,a ljmp l1 l2: ret tab: db 3fh,06h,5bh,4fh,66h,6dh db 7dh,07h,7fh,6fh,77h,7ch db 39h,5eh,79h,71h,00h dealy: mov r6,#05h ll2: mov r7,#200 ll1: djnz r7,ll1 djnz r6,ll2 ret 3.63.6 按键程序按键程序 按键模块采用独立式键盘电路,本设计中采用 4 个按键, p2.1、p2.2、p2.3、p2.4。先判断是否按下 p2.1,如果没按下 p2.1,判断是否按下 p2.4?如果是延时去抖松开后,启动定时器。如果没按再判断是否按下 p2.1。如果 按下 p2.1,先进行延时去抖,判断按键是否松开,然后把待调整位的位码送到 a 中 暂存。接着判断 p2.2 是否按下?如果延时去抖松开后,就让暂存在 a 中的值加一, 然后再判断是否还要加。如果 p2.2 没有按下,判断 p2.3 是否按下?如果延时去抖 松开后,把暂存在 a 中的值减一,然后再判断是否还要减。如果 p2.2 和 p2.3 都没 按下,就让位码左移,然后判断是否移到最高位?如果是就子程序返回,如果不是 再判断是否要加或减。如图 3.3 所示。 按键子程序: loop:jnb p2.1,cur0 jnb p2.4,cur1 cur0:lcall dealy jnb p2.1,$ lcall dealy mov a,32h 14 cpl a mm: jnb p2.2,cur2 lcall dealy jnb p2.2,$ lcall dealy rl a 图 3.3 按键程序框图 ljmp mm cur2: lcall dealy jnb p2.2,$ lcall dealy inc a ljmp mm cur1: lcall dealy jnb p2.3,$ lcall dealy mov a,50h cjne a,34h,loop mov a,51h cjne a,35h,loop mov a,52h cjne a,32h,loop mov a,53

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论