定时打铃器的设计 课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书
课程设计名称:专业课程设计
课程设计题目:定时打铃器的设计
学院名称:信息工程学院
专业:电子信息工程班级: 110411
学号: 11041130 姓名:张明
评分:教师:李翔文
20 14 年 6 月 30 日
专业课程设计(论文)任务书I、专业课程设计(论文)题目:
定时打铃器的设计
II、专业课程设计(论文)使用的原始资料(数据)及设计技术要求:(1)显示时钟格式:**时**分**秒。

(2)可任意设定时间达到定时控制,定时点可有2 个
(3)定时时间到,打铃1 分钟,然后自动关闭打铃。

III、专业课程设计(论文)工作内容及完成时间:
第17周:设计电路图,参考文献,仿真。

第18周:领取元器件,按照电路图焊接。

第19周:调试装置,总结实验,完成实验报告。

IV、主要参考资料:
[1] 张先庭.单片机原理、接口与C51应用程序设计.北京:国防工业出版社,2011年
[2] 吴开志、陈黎娟、邓谦、任爱山.单片机技术及应用实验指导书.南昌.南昌航空出版社,2008年.
[3] 吴清绣.微型计算机原理及接口技术.北京.中国科学技术大学出版社,2004年.
[4] 吴向军.汇编语言程序设计.北京.高等教育出版社,2001年.
[5] 李光飞.51系列单片机设计实例.北京:北京航空航天大学出版社.2003年信息工程学院电子信息工程专业 110411 班
学生(签名):张明
日期:自2014年6月5日至2014年6月25日
指导老师(签名):
助理指导老师(并指出所负责的部分):
电子系(室)主任(签名):
定时打铃器的设计
学生姓名:张明班级:110411
指导老师:李翔文
摘要:随着电子技术的不断发展,定时提示功能在生活中、工作中越来越重要,在一些重要领域,对时间的精确度及实现多个时间点提示功能的要求也越来越高,通过合理的技术实现定时提示功能的多样化及高精度性越来越成为当下一迫切的需要。

根据单片机的特性制作的定时打铃系统能很好的实现定时提示功能多样化的要求,且能满足一定程度下的时间精度要求。

本文介绍的是以STC89C51芯片为核心结合其他硬件模块制作的定时打铃器实现定时提示功能。

本文主要介绍了定时打铃器的硬件、软件的设计及调试过程。

硬件主要由:单片机最小系统、键盘显示电路、数据存储电路、打铃电路组成。

单片机最小系统主要由AT89C51芯片构成;键盘显示电路主要由HD7279控制的4x4矩阵键盘和八个数码管构成;数据存储电路是以AT24C02芯片为基础的具有掉电保存数据功能的小型模块。

打铃电路实现了到达定时点响铃提醒功能。

软件采用Keil开发环境作为开发平台,程序由C语言编写,可读性强及可移植性。

程序主要由主程序、键盘扫描子程序、定时中断子程序,显示子程序,数据存储子程序组成。

通过单片机程序烧写软件,将程序写入AT89C51芯片中,结合硬件电路实现了通过程序控制硬件电路实现定时打铃功能。

经测试,本定时打铃器很好的实现了定时打铃功能,能设定四个定时时间点,响铃提示时间长达一分钟,且具有掉电保护功能,能存储设定好的定时时间点。

由于本次设计中采用了模块化设计思想,故可以很方便的扩充相应的功能,诸如在芯片容量及硬件电路条件允许范围内增加多个定时时间点、增加数据的存储等。

本次设计能为今后更多的定时打铃系统的设计提供了宝贵的研究基础,能在更多的项目工程中发挥不可或缺的重要作用。

关键词:AT89C51 HD7279 AT24C02 定时打铃Keil
目录
第一章绪论 (2)
1.1 课题的背景及意义 (3)
1.2 国内外发展趋势 (3)
1.3 设计要求 (4)
1.4 研究内容 (4)
第二章系统组成及工作原理 (5)
2.1 系统组成 (5)
2.2 系统工作原理 (5)
第三章硬件电路设计 (7)
3.1 单片机控制系统电路设计 (7)
3.2 键盘显示电路设计 (8)
3.3 数据存储电路设计 (11)
3.4 打铃电路设计 (13)
第四章软件设计 (15)
4.1 系统软件开发平台的介绍 (15)
4.2 主程序设计 (16)
4.3 子程序设计 (18)
4.3.1键盘扫描子程序 (18)
4.3.2定时中断服务子程序 (19)
4.3.3显示子程序 (20)
4.3.4 数据存取子程序 (21)
第五章系统的安装及调试 (22)
5.1硬件调试 (23)
5.2软件调试 (25)
第六章总结与展望 (26)
6.1 总结 (26)
6.2 展望 (26)
参考文献 (27)
附录一程序清单 (28)
附录二实验原理图 (44)
附录三元件清单 (45)
致谢 (46)
第一章绪论
1.1 课题的背景及意义
随着人类文明的不断发展,科学技术不断的得到提高,特别是在电子领域,生活中我们经常需要根据时间来计划将要完成的事情,定时提示功能就显得非常重要,起初的定时提示功能是以定时打铃器的形式出现在学校、机关、工厂、车站、码头、医院、邮电等企事业单位,用于实现作息安排功能,机械式且打铃单调,使用范围有限而且时间不准确,不适合于更高精度时间的要求领域,因此,研究新型的定时打铃器引领变革具有重要的意义。

近年来在电子领域单片机产品的出现及其技术的成熟与完善,使得大量基于单片机为基础的定时打铃器运用而生,而且种类繁多,定时精确度也相对有了很大的提高,打铃器的打铃方式也多种多样,有使用计算机声卡发声的,也有通过使用串口控制打铃设备电源的一些产品,但是在现今通过生产利润与技术成本控制提高企业竞争力背景下,这些种类的定时打铃器不适合大量生产,而且在某种条件或者环境中使用及其不方便,因此,设计一种简单方便同时又具有相对全面的计时功能、打铃功能的定时打铃器显得及其重要。

综上所述,在电子技术飞速发展的时代下,设计一个功能全面,定时准确且适用领域和适用环境广泛、生产成本合理相对有技术含量的定时打铃器具有很重要的价值,而且这种打铃器简单便捷,能根据项目所需实现的功能要求进行适当的修改,进而实现重要的定时提示功能,具有很大的生产与使用价值。

1.2 国内外发展趋势
现今社会中,定时提示功能变得越来越重要,日常生活中的闹钟,学校或者企业的作息铃声,体育行业中的计时以及一些高精密的仪器中都需要用到定时提示功能,快节奏工作生活前提下,对定时精准性要求也越来越高,定时打铃器在国内外技术上其实已有了很大的发展与革新。

起初大部分定时打铃器都是比较简单电子元器及适当的程序控制件构成,但是很容易受到内外部的干扰,比如电压不稳定等,引起很大的偏差甚至错误,随着单片机技术的出现,基于单片机为核心的与外部电路结合的电子定时打铃器开始大量出现,形式各异,相比之下计时更精准电路,更稳定,受外部影响较小,而且电路模块化,程序设计更便捷简单,可实现更多的功能。

而大部分基于单片机为基础的定时打铃器大都是由三个部分组成,即键盘控制、数码显示、打铃电路三个模块组成,比如A T89C51芯片与HD7279芯片构成的键盘控制电路,通过程序的编写控制I/O口的输出进而控制显示定时数据及打铃电路。

当然也有部分采用8255芯片为核心部件的定时打铃器,原理都大同小异。

现今高科技时代在一些特殊的对定时精确度要求高的领域比如,微电子方面,体育田径项目等行业,单片机技术显然会有一定的误差,于是随之出现了部分通过计算机控的定时打铃器,或者是结合其他影像技术设计而成的打铃器。

随着技术的不断发展,定时打铃器不断地走向体积小、模块化的集成电路的形式,在一些大型的电子设备或机械仪器中充当不可或缺的一部分,基于单片机为基础的打铃器不仅有较成熟的技术而且成本低廉、体积小,根据功能需求可以很容易的设计多元的定时器,未来定时打铃器将会朝着多元化的趋势行进,比如定时与记忆保护功能的实现,基于单片机为基础的定时打铃器适合于低成本的大量生产,多元化发展的道路上具有很大的发展前景。

1.3 设计要求
本设计采用STC89C51单片机与HD7279键盘控制模块结合,用于实现控制外部电路对定时时间的存储及打铃,主性能为:
1.显示时钟格式:**时**分**秒
2.可任意设定时间达到定时控制,定时点至少有两个
3.可对设定的时间进行存取,实现掉电保护功能
4.定时时间到,打铃一分钟,自动关闭打铃继续计时
1.4 研究内容
1.开发板STC89C51单片机、HD7279键盘控制模块及开发环境Keil平台的使用。

2.AT24C02存储电路、打铃电路的工作原理和电路图的设计。

3.键盘控制电路的工作原理及程序设计。

4.时钟显示模块及A T24C02存储电路的程序设计。

第二章系统组成及工作原理
2.1系统组成
通过一周的资料查找及对单片机知识的学习,本次设计采用如下设计方案:
(系统组成框图)
定时打铃器主要有四大模块组成,即:单片机控制模块、键盘显示模块、数据存取模块、打铃电路模块。

单片机控制部分通过相应的程序存储芯片在使用时运行程序对其余模块进行控制实现数据的发送与接收;时间显示主要是由数码管组成,用于显示时、分、秒;键盘用于控制或者改变数码管的显示内容,根据设计要求中要实现至少两个定时点的设置,不同按键可实现切换不同响铃时间点时分秒的显示,对时间的校准,以及可设置四个定时点;数据存取模块主要实现掉电保护功能,保存四个设定定时点,在断电恢复后能保存并继续上一次的计时设置值;打铃电路模块主要作用是通过单片机输出的不同电压实现在定时点到达后及时响铃。

2.2 系统工作原理
定时打铃器主要通过软件编程来控制硬件电路进而实现时间数据的显示、存取、按键扫描、即时打铃功能的。

系统的工作原理主要分为如下两大模块:
(1)硬件模块
定时打铃器的单片机控制模块主要是由AT89C51芯片构成与八个数码管组成显示的部分相连接,同时还与4x4矩阵键盘连接,矩阵键盘的扫描控制通过HD7279芯片完成,具有记忆功能的芯片AT24C02芯片充当了数据存储部分的核心部件,矩阵键盘及存储芯片与单片机是串行连接,单片机通过内部程序的运行适时对这两部分进行数据的读与写的操作,当定时器计时到达时,单片机通过P口输出高低电平给输出接口部分,继电器起保护作用,p 口输出电压的不同将使得响铃器发出铃声从而实现定时打铃功能。

矩阵键盘部分设置了十二个按键用于对显示内容的控制,即:加、减、切换、确定、选择键共五个类型的按键。

数据存取部分通过程序中不断地对时间的扫描不断地存储更新的时间数据,通过串行数据传输的方式存储在芯片中,当断电时,断电前一刻的时间信息已存入芯片,重新接通电源后会先读取并显示前一次的数据,进而实现掉电保护功能。

(2)软件模块
软件部分主要是有以下几个部分组成:
软件模块中,主程序部分组要是包含子程序的调用语句、对数据的读取及存储及判断定时时间是否正确算法程序;键盘扫描部分主要是不断地对4x4矩阵键盘进行扫描判断按下的键,进而不断地赋给相应的变量,主程序判断按键按下的情况控制数码管现实的数值;定时中断部分主要是一算法组成,变量不断地自加一,实现时分秒的递增,当达到一定数值时,进入中断程序对变量进行清零,比如秒钟变量达到60秒时进入中断后重新从零开始。

时间显示部分程序则不断的显示键盘所控制下应该显示的变量值,比如显示 时-分-秒,年-月-日,或者在切换键的作用下显示四个定时时间值,或者在加减按键的作用下显示数据的更改值。

第三章硬件电路的设计
3.1 单片机控制系统电路设计
单片机最小控制系统主要由AT89C51芯片及相关电阻电容等电子元件构成单片机、时钟电路、复位电路等部分组成,MCS51芯片有40个引脚构成,大致有电源、外界晶体引脚、I/O口、控制引脚三大类组成,基本电路原理图如下图所示:
单片机的总体结构上可分为微处理器、数据存储器、程序存储器、中断控制、特殊功能寄存器、串行口、I/O口几大部分,本次课程设计采用晶振频率为12MHZ的芯片,单片机的复位方式有两种:上电复位和手动复位,两种方式都是使RST引脚维持高电平一段时间。

51单片机内部有128字节的数据存储区,内部RAM编址为00H~7FH,不同的区域功能完全不相同,对程序存储器只能进行读操作。

微处理器主要由运算器和控制器组成。

I/O口有p0、p1、p2、p3、四大类,除了充当I/O口作用外,P1口是纯I/O口,P2口还可以充当扩展系统的地址总线使用,输出高八位地址,p3口具有第二功能,p0口用作地址总线的低八位及数据线。

图中电容C1、C2一般取5~30PF,作用是使振荡器起振,同时对振荡频率起微调作用。

3.2 键盘显示电路设计
本次课程设计的键盘显示电路的核心部件是HD7279芯片,HD7279芯片是串行接的,可以同时驱动八位共阴数码管的智能显示驱动芯片,有多种译码方式,可单独控制显示段,同时可以接多达64键的矩阵键盘,内部含有去抖电路。

单片即可完成LED显示,键盘接口的全部功能。

HD引脚图如下图所示。

HD7279芯片共有28个引脚,与单片机建立握手连接主要是通过CS、CLK、DATA、KEY引脚与单片机的P1口连接,进行指令、数据的传送,CS是片选端,DATA是串行数据输入/输出端,CLK是时钟输入端,KEY是按键有效输出端。

HD7279芯片的控制指令分为两大类:纯指令和带有数据的指令。

纯指令有:复位指令A4H、左移指令A1H、右移指令A0H。

带有数据指令有:下载数据按方式0译码、下载数据按方式1译码、下载数据不译码、读键盘数据指令15H、闪烁控制指令88H。

部分指令格式如下:
1.下载数据按方式0译码
其中a2a1a0为地址,d0d1d2d3是数据,000~1001显示0~9,1010显示—,1111显示空白。

2.下载数据按方式1译码
与上一条指令基本相同,但是d0~d3值对应的是0~9,A~F.
3. 下载数据不译码
a2a1a0为位地址,A~G,DP显示数据,对应七段数码管,对应的数据为1时,该段数据点亮。

4.闪烁控制指令88H
d1~d8对应八个数码管,为0时闪烁,1时不闪烁。

5.读键盘控制指令15H
其中该指令从7279中读出当前按键代码,前一个字节015H为指令代码,范围是00~3FH 无键按下时是FFH,检测到有效按键时,KEY引脚由高电平变低电平,一直到按键结束,此期间输出当前按键代码。

HD7279芯片的串行接口时序图如下:
1. 纯指令
2. 带数据指令
3. 读键盘指令
根据对数据的操作的读与写的不同,DATA分别作为数据输入端和数据输出端。

键盘控制与显示电路图如下图所示:
其中16个按键与芯片SA~SG及部分电阻元件的连接构成矩阵键盘扫描部分,程序中通过对键盘的扫描,KEY引脚电平发生改变,矩阵键盘由行和列组成,通过使某列为低电平,当按键按下时,行变为低电平,与列有交叉点进而读出按键的地址确定按下的具体键位,
通过程序的编写,按键的按下可使相应的变量值发生改变进而使现实的内容发生改变。

数据显示部分由八个共阴数码管与7279芯片DIG0~DIG7 DP及部分电阻元件构成,电阻起保护作用。

MCU通过DA TA 、KEY、CLK、CS与HD7279握手连接,程序中根据7279芯片时序图不停地对矩阵键盘扫描,通过不同的译码方式对数码管显示的数据进行变,本次设计中八位数码管用于显示时、分、秒(格式为:xx—xx—xx)。

本次设计中采用了12个按键对数据进行操作,各键的地址如下图:
各按键的实际意义如下图:
注:本设计中根据要求设计了四个定时点,通过按键‘定时点1~4’可查看四个设定的时间点,通过时分秒的加减六个按键可对设定时间点进行修改,确定键课进行修改时间的确认,通过切换键可查看时钟信息与定时点信息。

3.3数据存取电路设计
数据存取电路的实质作用就是实现掉电保护功能,对四个设定的时间进行保存,在断电恢复后不丢失上一次操作所设定的响铃时间。

数据存取电路的核心芯片是AT24C02芯片,是CMOS型EPROM,有256x8的存储空间,引脚图如下所示:
其中A0 A1 A2三个引脚是地址线,用于确定芯片的硬件地址,SDA为串行数据输入/输出,
SCL为串行时钟,SDA,SCL 为漏极开路端,需接一5.1KΩ的上拉电阻,WP为写保护端,接地时允许对芯片进行一般的读写操作,高电平时只能进行读操作。

对芯片进行读写操作时应当先
写入控制字,格式如下:
高四位是识别位,A2A1A0是片选,表明数据将存储在芯片的内具体位置,R/W是读写,为1表明对24c02进行读操作,为0则进行写操作。

读写操作过程如下图所示:
硬件连接图如下图所示:
硬件电路设计时将AT24C02芯片的地址线、地线、WP口均接地,保证了数据存储的初始地址从0开始,且可对数据进行读写操作。

同时24c02需要2,5V~+5.5V的电源供电,在时钟SCL控制下SDA与单片机进行握手连接,实现数据的存储与读取。

3.4打铃电路设计
当设定的时间到达时,单片机通过P1.3口电平信号的改变反应到打铃电路中实现打铃的功能,打铃一分钟后又P1.3口关闭打铃。

硬件连接图如下图所示:
电路设计原理:打铃电路由继电器、三极管、蜂鸣式报警器、电阻、反向器、+5V +12V电源组成,单片机P1.3口输出低电平时,经过74LS04反向器使三极管9013基极处于高电平而导通,则+12V电源与三极管c b e三极导通,在继电器内部,电感线圈与金属片的吸引使得+5V电源与蜂鸣报警器连通,进而实现响铃功能,继电器实质上是起一个开关的作用。

当P1.3口输出高电平时,蜂鸣报警器又不导通,停止响铃。

理论计算:9013是NPN型三极管,集电极电流允许最大电流0.5A,放大倍数为60,74LS04输出高电平时,有:
I=5V/1KΩ=0.5mA
Ic=0.5mA.60=0.3mA<0.5 符合导通要求。

第四章软件设计
本次软件设计采用的是模块化设计思想,模块化设计能降低程序的复杂程度,方便程序的修改。

而且采用Keil4开发软件,使用的是简单易懂的C语言编写的程序,相比于汇编语言,C语言的可读性和移植性更强,下面介绍软件的一些基本的软件开发平台程序流程图。

4.1 系统软件开发平台的介绍
Keil C51 是美国Keil software 公司出品的51系列兼容单片机C语言软件开发系统。

Keil C51软件提供了丰富的库数据和功能强大的集成开发调试工具μVision2全是windows 界面。

只要看一下编译后生成的汇编代码,就能体会到keil C51生成的目标代码的效率之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

Keil的版本目前是V4版本,开发环境包括:编译器和汇编器,实时操作系统,项目管理器和调试器。

它是很优秀的8051C编译器。

在次平台上开发流程的一般步骤为:
1. 创建一个目标工程,选择合理的目标器件和工具配置。

2. 使用C语言挥着汇编语言编写源程序。

3. 用编译器编译源程序进行查找并修改错误。

4. 用项目管理器生成应用。

5. 调试连接后的应用。

Keil 4的开发环境如下图所示:
4.2 主程序设计
本次软件设计中主程序部分先进入对相关芯片的初始化过程,为实现掉电保护功能,先对AT24C02EPROM访问数据,显示上一次断电时存储的定时点信息,标志F用于切换显示时钟或者定时点信息,F=0时显示时钟,F=1时显示定时点信息,本次设计中可设置4个定时点信息,通过按键的不同使a的值改变,a取1~4时分别对定时点1~4进行修改、显示、存储等操作。

主程序中通过判断时钟信息是否与四个设定的定时点相一致,进而实现对响铃电路的控制,当到达定时点的时候,程序进入60秒延时并响铃程序,实现响铃一分钟后,时钟继续计时,响铃也立即停止。

流程图如下图所示:
4.3 子程序设计
4.3.1 键盘扫描子程序
键盘扫描子程序中:当有键按下时,进入读取键值子程序,若按下定时点1~4,则对a进行相应赋值,进而进入定时点信息的设置,执行加减修改等操作,若按下其他键则对时钟信息设置执,行修改等操作,或者执行确认,切换等操作。

程序中通过按键对F的值得改变来确定执行相应的子程序模块。

程序流程图如下图所示:
4.3.2 定时中断服务子程序
定时中服务子程序实质是实现对时分秒的范围的控制,AT89C51采用定时器1,工作方式为方式1,晶振12MHZ,定时时间50ms,1s需要进入中断20
=3CH, 次,程序中初值的设置是(2 ^16-X)*1μs=50ms, 得X=3CB0H. 即 TH
TL
=B0H,每20 次中断后秒钟自加一,秒钟到59后,清零且分钟自加一,分钟0
到59后,分钟清零时钟加一,时钟到23后,时钟清零,如此实现时钟的功能。

程序流程图如下图所示:
4.3.3 显示子程序
当不同的按键按下时,会对标志F的值做出相应的改变,程序中通过判断F的值显示相应的内容,F为1时显示定时点信息,F为零时显示时钟信息。

键盘显示模块是串行方式发送数据的,因此通过延时程序给7279发送控制命令,相应的执行译码显示,将设定的存储在缓冲区的时间信息显示在数码管中,根据不同的按键信息,控制命令的不同译码的方式也就不相同,进而实现了闪烁,确定,切换显示信息等按键的功能。

程序流程图如下图所示:
4.3.4 数据存取子程序
数据的存取实质是实现了掉电保护功能,AT24C02EPROM 芯片的数据的
存储与读取略有不同,串行方式下,数据借助延时子程序一位一位的传送,每次读或写都需初始化,启动,写控制命令,进而对相应的地址处的数据进行操作,执行完操作,调用停止子程序即结束了对24C02的访问。

程序流程图如下图所示:
(存数据流程图) (读数据流程图)
第五章系统的安装及调试
定时打铃器是硬件电路与软件高度结合的小型系统,是通过C语言编写的程序控制单片机、HD7279键盘显示模块、掉电保护电路、打铃电路几大硬件部分而实功能的。

硬件电路的连接图如下图所示:
各模块与单片机的连接如下表所示:
其中还需将+5V及+12V电源的接地线连接在一起。

此次设计的调试过程主要有硬件调试和软件调试两大部分。

5.1 硬件调试
由于本次硬件部分的设计是按模块化进行的,因此对硬件部分地调试也根据从部分到整体的原则进行调试,主要有:单片机最小系统的调试,键盘显示电路的调试,打铃电路的调试,掉电保护电路的调试。

A T89C51构成的单片机最小系统和HD72279为核心的键盘显示电路集成在开发板中,如下图所示:
因此在调试的过程中元件之间的连接未出现连接不通等问题,但是需注意的是,由于种种操作不当或者程序的错误,很容易造成短路芯片发热烧坏等现象,应先检查芯片的供电电源是否是+5V,在未写入程序的时候检查I/O口的电压是否正常,检查复位键的按下前后复位引脚的电压是否正常,检查晶振电路在复位状态下晶振引脚是否是高电平判断晶振是否完好无缺,进而继续进行其他调试实验。

打铃电路和掉电保护如下图所示
打铃电路由继电器、74LS04反向器,蜂鸣器,电阻,9013三极管组成,检查元件的完好性后进行焊接,对该模块调试时,先用万用表检测是否有断点、短路等问题,避免对元器件造成损坏,特别是继电器极易因电压不合适而烧坏,接通电源后测量各点的电压,判断是否符合理论的计算与分析。

三极管有c b e 三极,电压电流过大会造成损坏,继电器图如下:。

相关文档
最新文档