基于AT89C52倒计时定时器设计_第1页
基于AT89C52倒计时定时器设计_第2页
基于AT89C52倒计时定时器设计_第3页
基于AT89C52倒计时定时器设计_第4页
基于AT89C52倒计时定时器设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、成都理工大学毕业设计(论文) i 基于 at89c52 倒计时定时器设计 作者姓名:xx 专业班级:xxxxxxxx 指导老师:xx 摘要 在日常的生活和工作中, 倒计时定时器已成为人们日常生活中必不可少的 物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们 的生活、学习、工作、娱乐带来极大的方便。倒计时定时器具有实用性高、成 本低、功耗低、易操作等优点。 本文主要介绍了基于 at89c52 单片机控制的倒计时定时器的设计。文中阐 述了设计该系统的一些基本背景、原理及系统的各部分组成等。本次设计实现 了在 4 位八段 led 显示分秒、时间的设定、倒计时、复位、报警等功能。

2、关键字:倒计时定时器 at89c52 报警 成都理工大学毕业设计(论文) ii the design of countdown timer based on at89c52 abstract:in our daily life and work, countdown timer has become essential to daily life.it is widely used in our family, stations, terminals, theaters, offices and other public places,also take a great convenience

3、 to peoples lives, study, work and entertainment. countdown timer has a character of practical and low-cost, low power consumption, easy operation and so on. this paper introduced the design of countdown timer based on at89c52, and described the background, principles and the various parts of the sy

4、stem. the design has achieved the main function such as: time setting, time count-down ,resetting and alarm. keywords: countdown timer at89c52 alarm 成都理工大学毕业设计(论文) iii 目录 第 1 章 引 言.1 1.1 选题背景.1 1.2 指导思想.2 1.3 方案论证与选择.2 1.4 系统概述.4 第 2 章 系统总体设计.5 2.1 模块功能实现与原理.5 2.2 计时精度.6 第 3 章 硬件及软件设计.8 3.1 主控模块.8 3

5、.1.1 at89c52 的基本知识.8 3.1.2 at89c52 的内部结构.9 3.1.3 at89c52 的引脚功能描述.10 3.1.4 at89c52 的工作模式.13 3.1.5 at89c51 的内部存储器.14 3.2 显示模块.15 3.3 键盘模块.16 3.4 系统电路.18 3.4.1 蜂鸣器报警/提示音电路设计.18 3.4.2 电源电路设计.19 3.4.3 时钟电路设计.20 3.5 系统软件框图.20 3.6 编程语言选择.21 第四章 结论.22 4.1 总结.22 4.2 系统展望.22 4.3 在本次课程设计中获得的学习体会.22 致 谢.23 参考文献

6、.24 附录 1.25 附录 2.26 成都理工大学毕业设计(论文) 1 第 1 章 引 言 1.1 选题背景 倒计时定时器已成为人们日常生活中必不可少的物品,广泛用于个人家庭 以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱 乐带来极大的方便。随着技术的发展,人们已不再满足于钟表原先简单的报时 功能,希望出现一些新的功能,诸如日历的显示、闹钟的非接触式止闹、跑表 功能、重要日期倒计时显示等,以带来更大的方便,而所有这些,又都是以数 字化的倒计时定时器为基础的。因此,研究实用倒计时定时器及其扩展应用, 有着非常现实的意义,具有很大的实用价值。 由于数字集成电路技术的发展和采

7、用了先进的石英技术,使倒计时定时器 具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动 控制等各个领域。虽然现在市场上已有现成的倒计时定时器集成电路芯片出售, 价格便宜,使用也灵活,如可以随意设置时、分、秒的输出,改变显示数字的 大小等,并且由于集成电路技术的发展,特别是 mos 集成电路技术的发展, 使倒计时定时器具有体积小、携带方便,但是这里介绍的实用倒计时定时器可 以满足使用者的一些特殊要求,输出方式灵活、功耗低、计时准确、性能稳定、 维护方便等优点。2 实用倒计时定时器是一个时间控制系统,既能作为一般的时间显示器,也 可作为一个定时控制器,驱动负载或显示信息,同时可以

8、根据需要扩展其功能。 在此设计研究过程中需综合运用所学的模拟电子技术、数字电子技术、单片机 原理与应用、电子系统设计等课程的知识,掌握实用倒计时定时器的设计、组 装与调试方法,利用现代的电子系统设计、单片机等新电子技术以及现代的设 计手段,系统地培养了综合设计、操作调试、故障处理的能力,达到综合素质 以及创新能力的提高。 本次毕业设计中采用单片机作为主要芯片设计倒计时控制系统。本系统的 设计实用性强、设计灵活方便并且适合在任何条件下进行定时,所以设计意义 较为深远。 成都理工大学毕业设计(论文) 2 1.2 指导思想 通过对倒计时时钟软、硬部分的设计及调试,进一步掌握单片机的性能特 点及工作原

9、理。在设计过程中熟悉 at89c52 系列单片机各个管脚的功能,学习 单片机控制八段数码管显示的工作原理。提高单片机软件部分的编程能力,特 别是利用单片机 c 语言对单片机的编程能力。通过本次毕业设计总结在四年大 学学习中学到的知识,并且提高实际操作能力,为以后进一步学习和工作打好 基础。 1.3 方案论证与选择 1.总体方案论证与选择 方案一:纯硬件电路系统。各功能采用分离的硬件电路模块实现。用时序逻 辑电路实现时钟功能,用 555 定时器实现闹钟的设定。但这种实现方法可靠性 差、控制精度低,灵活性小、线路复杂、安装调试不方便,而且不方便实现对 系统的扩展。 方案二:采用 at89c52 单

10、片机作为系统的控制核心。倒计时功能采用 c 语言 编程利用单片机内部定时器来实现,可以使用 led 八段数码管显示时间等信息。 由于使用了单片机,整个系统可编程,系统的灵活性大大增加了。另外,本方 案可以方便的实现其他功能的扩展。 经过以上的比较论证,选用方案二来完成项目设计的要求。 2.模块方案论证与选择 (1)时钟模块 方案一:基本门电路搭建 用基本门电路来实现时钟发生器,电路结构复杂,故障系数大,不易调试。 方案二:专用时钟芯片 目前市场上已有很多实时时钟芯片。如 ds12887、ds1302、pcf8563、x1227 等, 芯片内都集成了时钟/日历功能,给时钟系统设计带来很多方便。

11、方案三:由单片机实现倒计时功能 成都理工大学毕业设计(论文) 3 单片机内部具有定时器,可方便实现定时功能。通过计算可知,使定时器 每 25ms 产生一次中断,当产生 40 次中断后秒单元将加一,以此类推,从而实 现时、分、秒的走时,并加以显示。 经过考虑,本着实用可行的原则,由于 at89c52 有内部定时器,完全可以 通过 c 语言变程来实现倒计时功能因此计时功能,定时模块采用方案三来实现。 (2)键盘模块 方案一:采用独立式按键电路 每个键单独占有一根 i/o 接口线,每个 i/o 口的工作状态互不影响,此类 键盘采用端口直接扫描方式。8 方案二:采用阵列式键盘 此类键盘是采用行列扫描方

12、式,当按键较多时可以降低占用单片机的 i/o 口数目。 由于本系统使用用的键盘按键较少,i/o 接口线不多,所以采用方案二。 (3)显示模块 方案一:采用液晶显示。 液晶特别是具有汉字显示功能的液晶显示器,来实现显示功能,不仅可以 实现基本的显示信息,而且可以显示丰富的符号指示信息以及文字指示信息, 信息量丰富且直观易懂。而且液晶显示有功耗低,体积小,重量轻,寿命长, 不产生电磁辐射污染等优点。 方案二:使用多个数码管显示。 led 数码管是利用二极管发光显示数字和字母,具有亮度大、接口设计比 较容易,价格相对较便宜等优点。 由于本设计不需要显示大的信息量,系统采用方案二。 (4)止闹功能 方

13、案一:采用声音控制实现非接触止闹功能。此方案的优点是操作方便, 但由于声控存在灵敏度的问题,在现场条件差的环境中,外界噪声对正常声音 信号带来的干扰,也比较容易引起误动作。 成都理工大学毕业设计(论文) 4 方案二:采用光电开关实现非接触止闹功能,因为光电开关利用物体对红 外线的反射,可检测到物体的有无,方便有效,人体只需要靠近传感器 20cm 以 内就可产生信号,完成止闹功能。3 方案三:采用按下止闹按钮实现接触式止闹。一般钟表都具有闹钟功能, 定时时间到,便自动启动闹钟,发出铃声、音乐声以提醒人们,再由人按下止 闹按钮停止闹钟工作,此方案优点是操作起来很方便。 系统的止闹模块设计采本着实用

14、,成本低的原则,采用用方案三实现止闹 功能。 1.4 系统概述 利用单片机定时器及计数器产生定时效果通过编程形成倒计时效果,再利 用数码管动态扫描显示单片机内部处理的数据。同时通过端口读入当前外部控 制状态来改变程序的不同状态,实现不同功能。系统上电自检后,实时实现分 钟、秒信息的显示,通过按键可实现校对时间、倒计时的设定和显示。当设置 的定时时间到时,单片机通过蜂鸣器来实现声报警,利用开关实现止闹的功能。 成都理工大学毕业设计(论文) 5 第 2 章 系统总体设计 本设计主要功能是实现时间的设定、倒计时、报警功能,采用分秒显示, 在 4 位八段 led 上显示分和秒。若想设置时间,需复位;用

15、定时器 1 进行按键扫 描,判断是否有键按下,若有键按下,是那个键按下;定时时间到则蜂鸣器发 出警报;复位后停止发出警报声音,时间显示为系统初始时间(系统软件设定), 按下确认键,系统开始重新倒计时。结构框图如图 2-1 所示: 主控单元 硬件复位电路 键盘模块 显示模块 图 2-1 系统结构框图 蜂鸣器报警 2.1 模块功能实现与原理 (1)主控单元 主控单元主要有 at89c2 单片机构成,主要利用片内定时器 0 进行定时,定 时器 1 进行键盘扫描,控制各个模块完成倒计时定时功能。 (2)键盘模块 键盘模块一共有 5 个按键,其中按键 1 和按键 5 分别设置时间的增减,按 键 2 和按

16、键 4 分别控制光标的左移和右移,按键 3 为确认键,按下此键开始倒 计时。5 个按键分别与 p1.0 p1.4 口连接,当没有按键按下时这几个口为高电 平,当这几个口为低电平时,表示有按键按下。 成都理工大学毕业设计(论文) 6 (3)复位电路 复位操作是使单片机进入某种确定的初始状态。复位电路的基本功能是: 系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见, 电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合 过程中引起的抖动而影响复位。 (4)显示模块 显示模块主要分为分显示和秒显示两个部分,由四个共阳极八段数码管; 四个共阳极八段数码管与 p0

17、口连接,公共端分别与四个 pnp 三极管连接,四 个 pnp 三极管再与 p2.0 p2.3 连接,当这几个口给低电平时三极管导通数码管 点亮。 (5)蜂鸣器报警 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜 发声的,因此需要一定的电流才能驱动它,单片机 io 引脚输出的电流较小,单 片机输出的 ttl 电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电 路。蜂鸣器的正极接到 vcc(5v)电源上面,蜂鸣器的负极接到三极管的发 射极 e,三极管的基级 b 经过限流电阻后由单片机的引脚控制,当引脚输出高 电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当引脚输出低电平

18、 时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通 过程序控制引脚的电平来使蜂鸣器发出声音和关闭。还可以在程序中改变单片 机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音 调的声音。另外,改变引脚输出电平的高低电平占空比,则可以控制蜂鸣器的 声音大小。1 2.2 计时精度 本设计利用 mcu 的定时器软件计时,计时误差首先取决于 mcu 的时钟。 (1)mcu 时钟引起的计时误差 mcu 的 fosc=12mhz,是由石英晶体振荡器产生的,其频率稳定度优于 10-6 ,有 时可达 10-11 。按 10-6计算,每秒变化 6 微秒,100 分钟的变化仅为

19、 0.036s, 故此变化可以忽略。 (2)中断响应时间造成的误差 成都理工大学毕业设计(论文) 7 计时定时器的初值,是按以下式计算出来的初填值=2n tint/tc 式中,2n 为 计时器的容量,这里是 65536;tint 中断(计时溢出)的时间;tc 为机器周期, 这里 tc=2us。0.1s 中断的初值为 15536.由于 tc 为整数,此初值是无误差的。 但是,由于中断请求到执行中断服务程序的第一条指令是需要几个 tc 的时 间,即中间响应时间。何况执行第一条指令填入 tl1 还需要 3 个 tc,若中断响 应时间为 3 tc,0.1s 内的计时误差 6t=12us,100min

20、计时误差为-0.72s,完全满 足计时精度要求。5 成都理工大学毕业设计(论文) 8 第 3 章 硬件及软件设计 3.1 主控模块 本设计的主控模块由 at89c52 单片机构成,利用片内定时器通过软件实现控 制数码管显示、倒计时等功能。 时间设定主要是靠键盘对时间进行设定,键盘主要有四个功能键和一个确 定键。分别用于设定时间和确定开始倒计时。定时器的时间主要是依托单片机 内部time0可编程定时计数器实现时间的准确获取。time0 是一个通用的单通道 8 位定时器/ 计数器模块。其主要特点如下:单通道计数器,比较匹配发生时 清除定时器( 自动加载),10 位的时钟预分频器溢出和比较匹配中断源

21、 (tov0 和 ocf0) t/c(tcnt0)和输出比较寄存器(ocr0)为8位寄存器。4中断请求信号 在定时器中断标志寄存器tifr 都有反映。所有中断都可以通过定时器中断屏蔽 寄存器timsk单独进行屏蔽。t/c可以通过预分频器由内部时钟源驱动,或者是 通过t0 引脚的外部时钟源来驱动。时钟选择逻辑模块控制使用哪一个时钟源与 什么边沿来增加( 或降低)t/c 的数值,如果没有选择时钟源t/c 就不工作。时 钟选择模块的输出定义为定时器时钟clkt。双缓冲的输出比较寄存器ocr0 一直 与t/c 的数值进行比较,比较匹配事件还将置位比较标志ocf0。 设计中将 time0 作为整个系统的

22、定时器时钟来源,通过 time0 的定时功能 实现对定时操作,由于 time0 是八位的定时计数器无法在一次操作中完成 1 秒 的定时。在单片机内部资源的操作中采取重复操作的方式实现一秒的准确定时 操作。在系统的测量过程中通过 time0 的操作在过一秒之后初始设定的时间值 将自动递减到 0,并且通过数码管实现动态显示。 3.1.1 at89c52 的基本知识 at89c52 是 51 系列单片机的一个型号,它是 atmel 公司生产的。at89c52 是一个低电压,高性能 cmos 8 位单片机,片内含 8k bytes 的可反复擦写的 成都理工大学毕业设计(论文) 9 flash 只读程序

23、存储器和 256 bytes 的随机存取数据存储器(ram) ,器件采用 atmel 公司的高密度、非易失性存储技术生产,兼容标准 mcs-51 指令系统,片 内置通用 8 位中央处理器和 flash 存储单元,功能强大的 at89c52 单片机可为 您提供许多较复杂系统控制应用场合。 at89c52 有 pdip、pqfp/tqfp 及 plcc 等三种封装形式,如图所示(本设 计采用第二种封装形式) ,以适应不同产品的需求。 其主要功能特性: 兼容 mcs51 指令系统 8k 可反复擦写(1000 次)flash rom 32 个双向 i/o 口 256x8bit 内部 ram 3 个 1

24、6 位可编程定时/计数器中断 时钟频率 0-24mhz 2 个串行中断 可编程 uart 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 at89c52 为 40 脚双列直插封装的 8 位通用微处理器,采用工业标准的 c51 内核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调 整时的功能控制。功能包括对会聚主 ic 内部寄存器、数据 ram 及外部接口等 功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 ir 的接收 解码及与主板 cpu 通信等。 成都理工大学毕业设计(论文) 10

25、 3.1.2 at89c52 的内部结构 at8c52 功能框架图如图 3-1 所示: 图 3-1 at8c52 功能框架图 成都理工大学毕业设计(论文) 11 at8c52 功能框封装图如图 3-2 所示: 图 3-2 at8c52 功能框封装图 3.1.3 at89c52 的引脚功能描述 at89c52 引脚名称如表 3-1 所示: 表 3-1 at89c52 引脚名称 引脚编号引脚标记 diplccqef 端口类别 vss202216i vcc404438i p0.0p0.7393243363730i/o p1.0p1.71829444i/o p2.02.72128243113, 243

26、1 i/o p3.0p3.7101711,13195,713i/o rst9104i ale/prog303327i/o psen293236o ea/vpp313529i xtal2182014o 成都理工大学毕业设计(论文) 12 xtal1192115i p0 口:p0 口是一组 8 位漏极开路型双向 i/o 口, 也即地址/数据总线 复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 ttl 逻辑门电路, 对端口 p0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序 存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激 活内部上拉电阻。在 fla

27、sh 编程时,p0 口接收指令字节,而在程序校验时,输 出指令字节,校验时,要求外接上拉电阻。 p1 口:p1 是一个带内部上拉电阻的 8 位双向 i/o 口, p1 的输出缓冲 级可驱动(吸收或输出电流)4 个 ttl 逻辑门电路。对端口写“1”,通过内 部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内 部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。与 at89c51 不同之处是,p1.0 和 p1.1 还可分别作为定时/计数器 2 的外部计数 输入(p1.0/t2)和输入(p1.1/t2ex),参见表 3-2。 flash 编程和程序校验期间,p1

28、接收低 8 位地址。 表 3-2 p1.0 和 p1.1 的第二功能 引脚号功能特性 p1.0t2(定时计数器 2 外部计数脉冲输入),时钟输 出 p1.1t2ex(定时计数 2 捕获重装载触发和方向控制) p2 口:p2 是一个带有内部上拉电阻的 8 位双向 i/o 口,p2 的输出缓冲 级可驱动(吸收或输出电流)4 个 ttl 逻辑门电路。对端口 p2 写“1”,通 过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因 为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访 问外部程序存储器或 16 位地址的外部数据存储器(例如执行 movx dptr

29、指令)时,p2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器 (如执行 movx ri 指令)时,p2 口输出 p2 锁存器的内容。flash 编程或 校验时,p2 亦接收高位地址和一些控制信号。 成都理工大学毕业设计(论文) 13 p3 口:p3 口是一组带有内部上拉电阻的 8 位双向 i/o 口。p3 口输出 缓冲级可驱动(吸收或输出电流)4 个 ttl 逻辑门电路。对 p3 口写入“1” 时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 p3 口 将用上拉电阻输出电流(iil)。p3 口除了作为一般的 i/o 口线外,更重要的 用途是它的第二功能,如下表所示

30、: 表 3-3 p3 口第二功能表 此外,p3 口还接收一些用于 flash 闪速存储器编程和程序校验的控制信号。 rst:复位输入。当振荡器工作时,rst 引脚出现两个机器周期以上高 电平将使单片机复位。 ale/prog: 当访问外部程序存储器或数据存储器时,ale(地址锁存 允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ale 仍以时钟振 荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ale 脉冲。对 flash 存 储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对 特殊功能寄存

31、器(sfr)区中的 8eh 单元的 d0 位置位,可禁止 ale 操作。 该位置位后,只有一条 movx 和 movc 指令才能将 ale 激活。此外,该引 脚会被微弱拉高,单片机执行外部程序时,应设置 ale 禁止位无效。 psen:程序储存允许(psen)输出是外部程序存储器的读选通信号, 当 at89c52 由外部程序存储器取指令(或数据)时,每个机器周期两次 psen 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 psen 信号。 成都理工大学毕业设计(论文) 14 ea/vpp:外部访问允许。欲使 cpu 仅访问外部程序存储器(地址为 0000hffffh),ea

32、 端必须保持低电平(接地)。需注意的是:如果加密位 lb1 被编程,复位时内部会锁存 ea 端状态。如 ea 端为高电平(接 vcc 端), cpu 则执行内部程序存储器中的指令。flash 存储器编程时,该引脚加上+12v 的编程允许电源 vpp,当然这必须是该器件是使用 12v 编程电压 vpp。 xtal1:振荡器反相放大器的及内部时钟发生器的输入端。 xtal2:振荡器反相放大器的输出端。 时钟振荡器: at89c52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 xtal1 和 xtal2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片 外石英晶体或陶瓷谐振器一起

33、构成自激振荡器,振荡电路参见图如下。 图 3-3 振荡电路图 外接石英晶体(或陶瓷谐振器)及电容 c1、c2 接在放大器的反馈回路中构成 并联振荡电路。对外接电容 c1、c2 虽然没有十分严格的要求,但电容容量的 大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温 度稳定性,如果使用石英晶体,我们推荐电容使用 30pf10pf,而如使用陶瓷 谐振器建议选择 40pf10f。 成都理工大学毕业设计(论文) 15 3.1.4 at89c52 的工作模式 at89c52 有两种可用软件编程的省电模式,它们是空闲模式和掉电工作模 式。这两种方式是控制专用寄存器 pcon(即电源控制寄

34、存器)中的 pd(pcon.1)和 idl(pcon.0)位来实现的。pd 是掉电模式,当 pd=1 时,激 活掉电工作 模式,单片机进入掉电工作状态。idl 是空闲等待方式,当 idl=1,激活空闲 工作模式,单片机进入睡眠状态。如需同时进入两种工作模式,即 pd 和 idl 同时为 1,则先激活掉电模式。在空闲工作模式状态,cpu 保持睡眠状态而所 有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内 ram 和所有 特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复 位终止。终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件 被激活,idl(pcon.0

35、)被硬件清除,即刻终止空闲工作模式。程序会首先响应 中断,进入中断服务程序,执行完中断服务程序并紧随 reti(中断返回)指令 后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。 其二是通过硬件复位也可将空闲工作模式终止。需要注意的是,当由硬件复位 来终止空闲工作模式时,cpu 通常是从激活空闲模式那条指令的下一条指令开 始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期 (24 个时钟周期)有效,在这种情况下,内部禁止 cpu 访问片内 ram,而允 许访问其它端口。为了避免可能对端口产生意外写入,激活空闲模式的那条指 令后一条指令不应是一条对端口或外部

36、存储器的写入指令。在掉电模式下,振 荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内 ram 和特 殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬 件复位,复位后将重新定义全部特殊功能寄存器但不改变 ram 中的内容,在 vcc 恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重 启动并稳定工作。3 3.1.5 at89c51 的内部存储器 flash 闪速存储器的编程: 成都理工大学毕业设计(论文) 16 at89c52 单片机内部有 4k 字节的 flash perom,这个 flash 存储阵列 出厂时已处于擦除状态(即所有存储单元的内容均

37、为 ffh),用户随时可对其 进行编程。编程接口可接收高电压(+12v)或低电压(vcc)的允许编程信号。 低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用 eprom 编程器兼容。at89c52 单片机中,有些属于低电压编程方式,而有些 则是高电压编程方式,用户可从芯片上的型号和读取芯片内的名字节获得该信 息. at89c52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个 字节,要对整个芯片内的 perom 程序存储器。写入一个非空字节,必须使用 片擦除的方式将整个存储器的内容清除。编程前,设置好地址、数据及控制信 号。编程单元的地址加在 p1 口和 p2 口的 p2

38、.0p2.3(11 位地址范围为 0000h0fffh),数据从 p0 口输入,引脚 psen 为低电平,rst 保持高电 平,eavpp引脚是编程电源的输入端,按要求加上编程电压, aleprog 引脚输入编程脉冲(负脉冲)。编程时,可采用 420mhz 的时 钟振荡器,at89c52 编程方法如下: 1在地址线上加上要编程单元的地址信号。 2在数据线上加上要写入的数据字节。 3激活相应的控制信号。 4在高电压编程方式时,将 eavpp 端加上+12v 编程电压。 5每对 flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个 aleprog 编程脉冲。改变编程单元的地址和写入的数

39、据,重复 15 步骤, 直到全部文件编程结束。每个字节写入周期是自身定时的,通常约为 1.5ms。 at89c52 单片机用数据查询方式来检测一个写周期是否结束,在一个写周 期中,如需读取最后写入的那个字节,则读出的数据的最高位(p0.7)是原来 写入字节最高位的反码。写周期完成后,有效的数据就会出现在所有输出端上, 此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查 询。 3.2 显示模块 本模块的主要功能就是显示倒计时的起始时间,开始倒计时后时间的变化 以及显示设定好的时间。 成都理工大学毕业设计(论文) 17 基于at89c52单片机的数码管显示分成了两大块:分钟显示和

40、秒显示。其 工作原理由段码线送出待显示的字符,然后通过顺序执行依次选中每一位数码 管,同时使显示字符在每一位上停留一段时间,这样便可以看到4个led的显示, 4个计数led是由p0口控制,由于是共阳极,所以低电平有效。当程序顺序执行 到数码管动态显示程序时,便可实现4个led的动态显示功能。 动态显示设计硬件图如下图 3-4 所示: a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 9 ds2 dpy_7-seg_dp a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com

41、 9 ds3 dpy_7-seg_dp a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 9 ds4 dpy_7-seg_dp a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 9 ds5 dpy_7-seg_dp q5 pnp q4 pnp q3 pnp q2 pnpr5 1.5k r4 1.5k r6 1.5k r3 1.5k pd3pd2 pd1pd0 a b c d e f g dp a b c d e f g dp a b c d e f g dp a b

42、c d e f g dp vcc 图 3-4 显示电路设计原理图 led 显示器是有多段发光二极管显示字段的显示器件,有共阳极和共阴极 两种,同时也有两种显示方式:静态显示和动态显示。两种方式相比较,静态 显示的优点是显示亮度大。在单片机应用系统中使用多位 led 显示器时,为节 省单片机的 i/o 口线,多采用动态显示电路。由于本设计中采用的是多位 led 显示,故采用动态 led 显示。 3.3 键盘模块 键盘设计电路原理图如下图 3-5 所示: 成都理工大学毕业设计(论文) 18 s2 sw-pb s5 sw-pb s3 sw-pb s4 sw-pb s6 sw-pb k2 k3 k4

43、k5 k1 10k r 9 r es2 10k r 10 r es2 10k r 11 r es2 10k r 12 r es2 10k r 13 r es2 vc c 图 3-5 键盘设计电路原理图 (1) 键盘作用 计算机控制系统中,数据和控制信号的输入主要使用键盘,键盘接口,尤 其是键输入信号的软件处理方法是影响系统使用和操作性能的重要因素,键盘 接口和软件的任务主要包括以下几个方面: *检测并判断是否有键按下 *按键开关的延时消抖功能 *计算并确定按键的键值 *程序根据计算出的键值进行一系列的处理和执行 (2)键盘的选择 键盘按结构分为独立式按键行列式,每类按译码方式的不同又分为编码式

44、 和非编码式两种,单片机中一般都使用的是用软件来识别和产生键代码的非编 码式键盘行列式键盘编码方式有静态和动态两种,静态接口主要由一个行编码 器和列编码器构成,动态接口可采用计数器、译码器和数据选择器来构成这两 种键盘由硬件完成键的译码任务,一般小型仪器和控制系统中使用较多的是行 列式和独立式的非编码键盘,如果系统要求实现多键同时按下的处理则采用非 编码独立式较合适。6使用矩阵键盘,能减少键盘与单片机接口时所占用的 i/o 线的数目,总上所述本方案选择非编码式键盘。 (3)键盘扫描流程图如图 3-6: 成都理工大学毕业设计(论文) 19 开始 有键闭合 延时 10ms 时否抖动? 判断闭合键键

45、号,并保存 闭合键释放? 返回 n y n n y 图 3-6 键盘扫描流程图 3.4 系统电路 3.4.1 蜂鸣器报警/提示音电路设计 系统为了提示倒计时的完成设计了报警提示电路。主要是在系统进行时间 设定时提示正在设置时间,和在倒计时完成时通过蜂鸣器的蜂鸣报警实现提示 功能。电路主要有一个蜂鸣器和一个三极管组成。在倒计时完成时通过控制端 口 p3.0 给三极管送入低电平使其导通,实现蜂鸣器报警。 蜂鸣器电路设计原理图如下图 3-7 所示: 成都理工大学毕业设计(论文) 20 b1 speaker q6 pnp r7 1.5k vcc spe 图 3-7 蜂鸣器电路设计原理图 3.4.2 电

46、源电路设计 整个系统的工作采用外接 5v 直流电的方式给系统供电,由于系统用于精 密的测量对电源的要求较高。所以在外接 5v 直流电的同时在系统电源介入口 也进行相关的处理,以利于系统本身获得稳定性以及纹波系数较好的电源。 电源设计原理图如下图 3-8 所示: r1 390 1 led vcc gnd 1 gnd 2 vcc 3 power vcc 图 3-8 电源设计原理图 成都理工大学毕业设计(论文) 21 3.4.3 时钟电路设计 时钟电路是数字电路的核心。 mcs51 单片机的时钟电路设计通常有两种形式:采用内部振荡方式和采 用外部振荡方式。 内部振荡方式:mcs51 单片机内有一个用

47、于构成振荡器的高增益反相放大 器,引脚 xtal1 和 xtal2 分别是此放大器的输入端和输出端。把这两个引脚与 作为反馈元件的晶体或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡 时钟脉冲。晶体或陶瓷振荡器的频率一般为 1.212mhz,但需要根据单片机的 具体要求而定。两个电容 c1 和 c2 的值一般为 30pf 左右,需要根据晶体或陶瓷 谐振荡器的实际情况而定。7 外部振荡形式:外部振荡形式就是办外部已有的时钟信号(如有源晶体振 荡器产生的时钟信号)导入单片机内。 本设计采用内部振荡方式,如图 3-9 所示: x1 crystal c10 33pf c9 33pf xtal2 xt

48、al1 图 3-9 晶振电路设计原理图 3.5 系统软件框图 系统软件流框图如下图 3-10 所示: 成都理工大学毕业设计(论文) 22 图 3-10 系统软件流框图 本系统当中,定时器 0 负责计时,并且以秒为单位,定时器 1 负责进行定 时扫描,所以当进入系统主函数后,系统不停地进行显示和按键处理,定时和 按键扫描则在中断中进行,这样就提高了系统的实时性(消抖再也不用延时了) 。 3.6 编程语言选择 编写单片机的软件的时候,应该尽量使用高级语言来编写。使用汇编语言, 逐条指令编写,并且手工分配单片机中的内存资源。由于汇编语言的低可读性、 低结构逻辑复杂,在一个软件的逻辑关系混乱后,要保证

49、写出来的软件能安全 运转是很困难的,所以用用 c 语言编写。 成都理工大学毕业设计(论文) 23 第四章 结论 4.1 总结 整个设计所实现的功能非常简单,归结为四个字:定时报警。所谓定时就 是实现 at89c52 的定时器精确定时到 1 秒的功能,整个显示部分实现了分显示 和秒显示两部分,同时实现了键盘的相关键值功能:按键 3 为确定启动倒计时 的功能键,按键 1 和按键 5 实现光标的左移和右移,按键 2 和按键 4 实现当前值 的增加和减小。实现了硬件复位的功能,同时也实现了蜂鸣器报警的功能,同 时在设定定时时间值的时候,实现了当前设定位的闪烁效果,当启动测量以后, 也实现了所设定时间值

50、不闪烁的效果,同时也实现了对设定时间值的保存,开 始倒计时后,除复位键有效外其它键均无效。最后,当测量结束的时候,按下 键盘当中的复位键,实现系统复位,再次倒计时的功能。 4.2 系统展望 随着人们生活水平的提高,人们对倒计时定时器的要求越来越高,有单一 的计时功能到发展到现在有多功能倒计时定时器。这些多功能倒计时定时器广 泛用于个人家庭以及车站、码头、剧院、办公室等公共场所。利用单片机作为 倒计时定时器的控制核心可以做到硬件电路简单稳定,减小电磁干扰和其他环 境干扰,充分发挥软件编程的优点,减少因元器件精度不够引起的误差。设计 中了解到倒计时定时器的迅猛发展,它已经普遍应用到人们日常生产和生

51、活之 中了。倒计时定时器有很强的发展空间,因此我们有理由相信将来倒计时定时 器会与我们的生产和生活更加紧密相连。 4.3 在本次课程设计中获得的学习体会 在本次毕业设计当中,自己深深的明白了理论知识一定要和实践相结合的 道理,只有把理论知识贯穿到实践当中,才能真正的学到有用的知识,自己在 这次毕业设计中也学到了很多新的知识。 成都理工大学毕业设计(论文) 24 致 谢 这次毕业论文能够得以顺利完成,并非我一人之功劳,是所有指导过我的 老师,帮助过我的同学和一直关心支持着我的家人对我的教诲、帮助和鼓励的 结果。我要在这里对他们表示深深的谢意! 感谢我的指导老师xx 老师,没有您的悉心指导就没有这

52、篇论文的顺 利完成。 感谢我的父母,没有你们,就没有我的今天,你们的支持与鼓励,永远是 支撑我前进的最大动力。 感谢身边所有的朋友与同学,谢谢你们四年来的关照与宽容,与你们一起 走过的缤纷时代,将会是我一生最珍贵的回忆。 成都理工大学毕业设计(论文) 25 参考文献 1曹巧媛.单片机原理及应用m.:电子工业出版社.1997.7. 2沈卫红.单片机应用系统设计实例与分析m.北京航空航天大学出版社.2003.1. 3杨振江等.流行单片机子程序及应用实例m.西安电子科技大学出版社.2002.7. 4付家才单片机控制工程实践技术m. 北京:化学工业出版社,2004 5孙育才,王荣兴,孙化芳.新型at8

53、9s52系列单片机及其应用m. 北京:清华大学 出,2005 6朱定华.单片机原理及接口技术实验m.北京:北方交通大学出版社,2002 7张鑫,华臻,陈书谦.单片机原理及应用m.北京:电子工业出版社,2005 8何立民.mcs51系列单片机应用系统设计系统配置与接口技术m.北京:北京航空 航天大学出版社,1999 9陈小忠,黄宁,赵小侠编著.单片机接口技术实用子程序 m.北京:人民邮政出版 社,2005 10chen steve stanley damster. variable air volume system for environment qualitym,mcgraw-hill co

54、mpany.1996. 11dallas semiconductor data etookm.dallas semiconductor corp,.2000. 12quick guild to 1-wire net using pcs and microcontrollersm. application note 132.dallas semiconductor corp. 1999. 成都理工大学毕业设计(论文) 26 附录 1 倒计时定时器原理图: b1 speaker x1 crystal c10 33pf c9 33pf q6 pnp r7 1.5k r1 390 1 led a bf

55、 c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 9 ds2 dpy_7-seg_dp a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 9 ds3 dpy_7-seg_dp a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 9 ds4 dpy_7-seg_dp a bf c g d e dpy 1 2 3 4 5 6 7 a b c d e f g 8 dp dp com 9 ds5 dpy_7-seg_dp

56、q5 pnp q4 pnp q3 pnp q2 pnp r5 1.5k r4 1.5k r6 1.5k r3 1.5k r22 100 r16 100 r15 100 r17 100 r18 100 r21 100 r20 100 r19 100 s2 sw-pb s5 sw-pb s3 sw-pb s4 sw-pb s6 sw-pb e d c dp b a f g pd3pd2 pd1pd0 a b c d e f g dp a b c d e f g dp a b c d e f g dp a b c d e f g dp k2 k3 k4 k5 k1 vcc vcc vcc at89c52 p1.0/t2 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 rst 9 p3.0 10 p3.1 11 p3.2 12 p3.3 13 p3.4 14 p3.5 15 p3.6 16 p3.7 17 xtal2 18 xtal1 19 gnd 20 p2.0 21 p2.1

温馨提示

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

评论

0/150

提交评论