自动打铃系统----学校上下课自动打铃设计设计人:要求:(1)实现上下课的打铃,并通过语音提示上下课;(2)按下开机键,显示当前年月日时间,在LCD液晶屏显示年,月,日,星期,时,分,秒,年-月-日-星期显示在第一行,格式xx-xx-xx-星期x;时分秒显示在第二行,格式xx-xx-xx(24小时格式);(3)能够设置当前时间;(4)使用语音芯片提示上下课,上课时提示:“亲爱的同学们,上课了”,重复2遍,下课时提示:“亲爱的同学们,下课了“,重复2遍。(5)允许使用时钟芯片。自动打铃系统设计-1-《摘要》单片机的外接石英晶体振荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息。如果石英晶体振荡器的频率信号为6MHZ,设定定时器定时工作方式1下,定时器为3CBOH,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数自动打铃系统,是以一片8位单片机为核心的实时时钟及控制系统。我们知道到60,则向时计数器进位,如此周而复始的连续计数,便可获得时、分、秒的信号,建立一个实时时钟。接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求。《关键词》单片机;时间设置电路;计时电路;显示电路;定时打铃控制电路《引言》始的无人问津到现在的随处可见,红绿灯,记分牌,电子秒表,江苏信息职业技术学院毕业设计(论文)--2-遥控器,电饭煲,电视等只要是电子产随着科技的不断发展,各种芯片都得到了很好的发展,80C51同样如此,从开品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些己编好的程序而己.而这里要介绍的是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化,总之,一个需要时间系统的机构实现自动提醒功能。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。而本文是用AT89C52单片机设计的一个自动打铃系统。自动打铃系统设计-3-第一章设计方案论证1.1《设计要求》它可以作为时钟电路来显示时间,进行设置,定时打铃。按照自顶向下设计方法划分自动打铃系统的功能。可分为:时间设置电路,计时电路,显示电路和定时打铃控制电路等。(以信息科学与技术学院的打铃情况设计内容时间起床8:10早自习7:30-8:10第一节课8:20-9:00第二节课9:10-9:50第三节课10:00-10:40第四节课10:50-11:30第五节课13:30-14:10第六节课14:20-15:00第七节课15:20-16:00第八节课16:10-16:50晚自习19:00-20:30熄灯22:30江苏信息职业技术学院毕业设计(论文)--4-1.2《设计方案选择》1.2.1方案一:数字电路设计的自动打铃系统利用函数信号发生器来进行脉冲信号输出,利用74160N来设置十进制和六进制的进位输出。利用数码显示器来显示时间,利用或门、与门、非门、与非门、等电路元件进行组合实现打铃的控制。1.2.2方案二:基于单片机的自动打铃系统设计单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,没产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。建立完一个实时时钟后接下来进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间与信息时间表上的作息时间是否相同,相同者,则进行报时处理并控制打铃,不相同则返回主程序。1.2.3方案确定方案一的设计只能事先设定打铃时间不能完全自动打铃,且在修改打铃时间上存在一定的困难。而方案二中的设计能完全实现自动化,诠释了我们这次毕业设计的主题。并在修改打铃时间上有了很大的方便,只需修改一部分程序便能实现不同的需要。因此我选择方案二进行设计。自动打铃系统设计-5-1.3《基本方案》1.3.1设计课题简要概述自动打铃装置用于工厂、学校等地的时间控制,本设计是按照学校作息时问设定的,模拟了电了钟显示时、分、秒。还根据学校的作息时间按时打铃,本系统有4个按钮,分别用来调时、调分、秒和强制打铃及强制关铃,以保证始终与标准时间相吻合。首先设计出本系统的硬件基本框图,根据框图设计电气原理图,简要概述基本原理,按照设计技术参数设计出各部分程序。1.3.2系统软硬件划分由于需要最小系统设计,因此,极大地介于系统的硬件成本,所有能用软件实现的功能都用软件完成,如按键的去抖,采用延时,显示部分用动态显示等,这样硬件部分的设计可以采用单片机最小系统,所谓最小系统时仅有程序存储器和时钟及复位电路的单片机系统。1.3.3单片机选型根据课题的具体内容,任务要求,计时、校时、定时、键盘显示等功能,经多方面考虑,所选系统选项用.与MSC-51单片机完全兼容的AT89C52功耗单片机。江苏信息职业技术学院毕业设计(论文)--6-1.4总体设计框图图一整体框图自动打铃系统设计-7-第二章硬件电路设计2.1基本原理概述本系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4部分构成。通过内部定时产生中断,从而使驱动电铃打铃。设定51单片机工作在定时器工作方式1,每100ms产生一次中断,利用软件将基准100ms单元进行累加,当定时器产生10次中断就产生lS信号,这是秒单元加1。同理,对分单元和时单元计数从而产生秒,分,时的值,通过六位七段显示器进行显示。由于动态显示法需要数据所存等硬件,接口较复杂,考虑显示只有六位,且系统没有其他浮躁的处理程序,所有采用动态扫描LED的显示。本系统采用四个按键,当时钟时间和设置时间一直时,驱动程序动作,进行打铃,每次打铃30S江苏信息职业技术学院毕业设计(论文)--8-2.2主要原件参数及功能简介2.2.1主控器AT89C52自动打铃系统设计-9-AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。2.2.2DS13021)性能特性DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1.RSE复位,2.I/O数据线,3.SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时功率小十1mW。提供秒分时日日期。月年的信息,每月的天数和闰年的天数可自动调整时钟,操作可通过AM/PM指示决定采用24或12小时格式。2)管脚描述XIXZ32.768KHz晶振管脚GND接地RST复位脚I/O数据输入/输出引脚SCLK串行时钟Vcc1,Vcc2电源供电管脚DS1302串行时钟芯片8脚DIPDS1302S串行时钟芯片8脚SOIC200milDS1302Z串行时钟芯片8脚SOIC150mi江苏信息职业技术学院毕业设计(论文)--10-自动打铃系统设计-11-2.3单元电路的设计2.3.1显示电路显示部分采用1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令江苏信息职业技术学院毕业设计(论文)--12-普通的LCD1602显示2.3.2键盘接口电路设计由于键盘只有四个,采用独立式按钮,用查询法完成读健功能。\图五按键电路2.3.3响铃电路设计响铃电路用到了蜂鸣器、三极管、1K电阻。蜂鸣器两端分别接地和三极管。三极管一段电源另一端与电阻相连并接入AT89C51的P3.7接口。设置取消选择移位增加减小保存数据自动打铃系统设计-13-电路原理图使用SH69P43为控制芯片,使用4MHz晶振作为主振荡器。PORTC.3/T0作为I/O口通过三极管Q2来驱动蜂鸣器LS1,而PORTC.2/PWM0则作为PWM输出口通过三极管Q1来驱动蜂鸣器LS2。另外在PORTA.3和PORTA.2分别接了两个按键,一个是PWM按键,是用来控制PWM输出口驱动蜂鸣器使用的;另一个是PORT按键,是用来控制I/O口驱动蜂鸣器使用的。连接按键的I/O口开内部上拉电阻。先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000Hz,也就是说蜂鸣器的驱动信号波形周期是500μs,由于是1/2duty的信号,所以一个周期内的高电平和低电平的时间宽度都为250μs。软件设计上,将根据两种驱动方式来进行说明。a)蜂鸣器工作原理:PWM输出口直接驱动蜂鸣器方式由于PWM只控制固定频率的蜂鸣器,所以可以在程序的系统初始化时就对PWM的输出波形进行设置。江苏信息职业技术学院毕业设计(论文)--14-首先根据SH69P43的PWM输出的周期宽度是10位数据来选择PWM时钟。系统使用4MHz的晶振作为主振荡器,一个tosc的时间就是0.25μs,若是将PWM的时钟设置为tosc的话,则蜂鸣器要求的波形周期500μs的计数值为500μs/0.25μs=(2000)10=(7D0)16,7D0H为11位的数据,而SH69P43的PWM输出周期宽度只是10位数据,所以选择PWM的时钟为tosc是不能实现蜂鸣器所要的驱动波形的。这里将PWM的时钟设置为4tosc,这样一个PWM的时钟周期就是1μs了,由此可以算出500μs对应的计数值为500μs/1μs=(500)10=(1F4)16,即分别在周期寄存器的高2位、中4位和低4位三个寄存器中填入1、F和4,就完成了对输出周期的设置。再来设置占空比寄存器,在PWM输出中占空比的实现是通过设定一个周期内电平的宽度来实现的。当输出模式选择为普通模式时,占空比寄存器是用来设置高电平的宽度。250μs的宽度计数值为250μs/1μs=(250)10=(0FA)16。只需要在占空比寄存器的高2位、中4位和低4位中分别填入0、F和A就可以完成对占空比的设置了,设置占空比为1/2duty。