《打铃系统.docx》由会员分享,可在线阅读,更多相关《打铃系统.docx(41页珍藏版)》请在课桌文档上搜索。
1、摘要在现如今快节奏的生活中,人们对于时间的要求越来越苛刻,很多时候都需要对时间进行规划,然后到时间点就要有时间提醒,这就必须用到时钟提醒装置,亦可称为打铃装置。打铃装置有很多种,比方的打铃系统,闹钟的机械打铃装置,播送打铃系统等等,但是日常生活中见得最多的还是校园的自动打铃系统。在学校生活中,每天上下课都离不开打铃系统的使用。打铃器可以为上下课的学生和老师们提供时间提醒,有利于师生对上课和学习的合理安排,同时,也可作为一个提醒学生们作息时间的时间表,让老师和学生都能有一个规律和科学的时间安排。因此,打铃系统的核心局部也是时钟局部,为系统提供时间基准。本设计主要是针对适用于校园打铃系统要求的,其
2、介绍了一种基于单片机的自动打铃系统的设计方法,系统以AT89C52单片机作为控制器,以DS1302时钟芯片作为系统提供时间,并在液晶显示器上显示,通过按键可以设定定时打铃时间。系统软件设计采用C语言来完成,C语言语法简洁,使用方便,用于完成软件设计非常方便。本文提出的设计方法电路简单、本钱低廉、实用性强。关键字:AT89C52单片机、DS1302、液晶显示器、打铃器AbstractNowfast-pacedlife,thetimemoreandmoredemanding,oftenneedtimetoplanandthentothepointintimethereshouldbereminde
3、d,whichmustbeusedtoclockremindercanalsobecalledrangthebelldevice.Rangthebelldevicearemany,suchasthephonerangthebellsystem,mechanicalbelldeviceofthealarmclock,radiobellsystems,etc.,butindailylifeappearorcampusautomaticbellsystem.Inschoollife,thelastclassofthedayareinseparablefromthebellsystem.Thebell
4、canprovidetimeforthelastclassofstudentsandteacherstoremindconducivetoareasonablearrangementoftheteachersandstudentstoschoolandlearning,butalsoasareminderofthescheduleofthestudentsschedule,sothatteachersandstudentscanalawandscientifictiming.Therefore,thecorepartistheclockpartofthebellsystem,thesystem
5、providesatimereference.Thisdesignismainlyfortheapplicablerequirementsofthecampusbellsystem,introducedamicrocontroller-basedautomaticbellsystemdesignmethod,thesystemcontrollerisAT89C52SCM,theDS1302clockchipprovidethesystemwithtime,andtheLCDdisplayedonthemonitorbuttoncansetthetimeintervalofthetimerran
6、gthebelltime.SystemsoftwaredesignusingClanguage,Clanguagesyntaxissimple,easytouse,veryconvenienttobeusedtocompletethesoftwaredesign.Thispaperpresentsthedesigncircuitissimple,lowcost,andpractical.Keywords:AT89C52SCMtheDS1302LCDmonitorsRangthebell目录摘要1Abstract错误!未定义书签。1绪论21.1 选题目的及意义31.2 技术开展概况41.3 论文
7、内容与结构52方案设计62.1 方案比拟与选择62.1.1 系统方案选择62.1.2 时钟芯片选择62.1.3 显示器件选择错误!未定义书签。2.2 设计方案73系统硬件设计73.1 硬件电路图73.2 时钟电路73.2.1 DS1307简介73.2.2 时钟电路设计103.3 按键电路123.4 单片机电路123.4.1 单片机简介123.4.2 单片机最小系统电路143.5 显示电路153.6 打铃电路164系统软件设计174.1 软件设计流程图174.2 读取DS1307时间程序设计184.3 显示程序设计194.4 按键设定程序设计215系统调试225.1 元件清单225.2 调试过程
8、错误!未定义书签。6总结与展望26致谢26参考文献27附录28附录一:电路图28附录二:源程序281绪论1.1 选题目的及意义随着现代科技的开展,管理水平的完善,具有自动提示功能的打铃器能够为企业节省人力资源,减少开支,对做到一体化管理具有很大的帮助。而且自动打铃系统不断影响着我们的学习和生活,它已被广泛应用于各个学校中,它能够实现学校的办公自动化,便于学校的管理。用单片机控制的自动打铃器,充分发挥了体积小,价格廉价,功耗低可靠性好等优点,而且具有可改性,用于学校作息,方便了广阔师生。目前自动打铃系统的研究和使用已经非常普及,之所以选这个课题就是看在他的成熟性和普遍性。在学校生活中,每天上下课
9、都离不开打铃器的使用。打铃器可以为上下课的学生和老师们提供时间提醒,同时,也可作为一个提醒学生们作息时间的时间表,让大家有一个时间意识,形成规律的生物钟,对自身的健康也有很大的好处的。对于那些上课精力过于集中、知识面拓展比拟广的老师的拖堂现象也给了一个下课时间提醒,以免耽误学生们下一节课的上课时间。打铃器作为一个提醒人们时间的设备,自然离不开提供时间的系统,最原始的打铃器是人工根据时间通过敲钟来提醒,随着技术的开展,开始有了机械时打铃器。随着二十世纪电子技术的开展和二十一世纪半导体技术和集成电路的开展,电子技术开始渗入到各行各业,以电子表为主要根底提供时间基准的打铃器自然也是更新换代的更快,现
10、在各种功能更多、使用更先进的打铃器层出不穷,有的还可以以音乐响铃代替传统的“吟吟”声,打铃器更多的向着智能型转变。设备的智能化离不开单片机的使用。单片机简单的说就是一款微型的计算机,包含中央处理器CUP、随机存取存储器RAM、只读存储器RoM、I/O口、串行口等局部,可以作为一个系统的主控制器,将其他局部电路整合到一起组成一个系统,为控制提供智能化。基于以上原因,本课题设计了一款基于单片机的自动打铃系统,使用简单方便、功能齐全。本次的设计重点在于实现自动打铃系统的根本功能之外,争取设计出亮点,出新意,对我本身是个不小的挑战,因此对这个课题的研究不管是对于我本身还是对此工程在科技方面的开展都是有
11、很重要的意义。1.2 技术开展概况1400年,第一批机械钟开始在欧洲流行,其始祖由意大利人乔瓦尼唐迪于1364年制成,他首次在机械钟里引入了轮式钟摆。1511年,荷兰人彼得亨莱茵制成了第一块怀表,但它只有时针而没有分针和秒针,怀表和钟的结构其实是完全一样的,所不同的是它利用螺旋弹簧制成的发条驱动,从而摆脱了传统的钟摆,它靠小巧的“体形”,轻松进入人们的口袋。1582年前后,意大利的伽利略创造了重力摆,1657年,荷兰的惠更斯把重力摆引入机械钟,创立的摆钟。17281759年,英国的哈里森制造出高精度的标准航海钟。17757780年,英国的阿诺德创造出精密表用擒纵机构。1819世纪,钟表制造业已
12、逐步实现工业化生产,并到达相当高的水平。1969年,由瑞士人创意、日本精工企业制作的第一块石英手表一一SeikoAstron诞生,石英手表的创造是基于科学家们发现处于电路之中的石英晶体能产生频率稳定的振动以及可以通过特殊的切割方式来控制石英晶体振动的频率。一九七二年,美国的汉密尔顿公司创造了数字显示手表,马达和齿轮从手表中消失了。在我国,东汉元初四年张衡创造了世界第一架“水运浑象”,此后唐高僧一行等人又在此根底上借鉴改良创造了“水运浑天仪”、“水运仪象台”。至元明之时,计时器摆脱了天文仪器的结构形式,得到了突破性的新开展。机械钟表进入中国最早是在公元1601年,意大利传教士把鸣钟作为贡品献给当
13、时的皇帝,揭开了中国人使用机械时钟的序幕。清朝康熙年间,中国成为世界上最大的钟表进口国。19世纪末期,我国造钟工艺到达了一个崭新的水平,1875年由上海“美利华”作坊制造的南京钟以造型古朴典雅、民族风格鲜明和报时清脆、走时准确而闻名于海内外。我国近代机械制钟工业始于1915年,民族实业家李东山开办了中国时钟制造业的第一家钟厂,并在1918年自制成功第一批座挂钟投放市场。新中国成立后,1955年初在天津成功制造装配出2只钻成品手表,从那时起,结束了中国人只能修表、不能制表的历史。时至今日,人们已经可以通过测量原子的周期来计时了。目前市场上各种类型的自动打铃系统层出不穷,大局部的打铃系统都是基于单
14、片机开发的,而且是结合各种设备的综合应用系统,能实现的功能更强大也更便捷,例如基于校园网的自动打铃系统,自动播送打铃系统,音乐打铃系统等等,但是根本功能都相差不大,区别在于表现的形式有所不同。不过就目前而言打铃系统的功能由单一型开展成多功能多把戏的通用型,而且核心技术不再局限于单片机,这更好的刺激了单片机行业的进步和革新,要想不被时代的脚步所抛弃就必须不断研究出新的东西,保持自身的优势。1.3 论文内容与结构本设计是以AT89C52单片机为核心的一款自动打铃系统,以时钟芯片来实现计时功能,然后单片机负责将时间送入显示电路显示,整个系统不是很复杂,其设计主要包括单片机控制模块、时钟电路和显示电路
15、三个模块的设计,在设计前本人在学校图书馆看了很多关于单片机方面的书,也在网上查了不少资料,也查阅过跟此设计相似的论文或者期刊,得到了不少启发和经验,对本人的设计工作有很大的帮助,能很好的把握设计的整体方向和细节,论文的结构如下:第二章:系统的设计方案,根据系统所要实现的功能,确定设计的根本方案。第三章:系统的硬件设计,主要介绍了硬件的电路图,各模块电路的设计,硬件元器件的结构,特点,引脚功能等。第四章:系统软件局部的设计,主要是对系统的主程序的结构图和流程图的解说。第五章:系统的调试,主要是介绍下系统硬件和软件调试过程中的问题和解决方案,还有调试步骤的细节问题的说明。第六章:论文总结。2方案设
16、计2.1 方案比拟与选择2.1.1 系统方案选择方案一:采用AT89C2051芯片,它具有体积小、功耗小。含有中断、定时/计数器。本次设计需要非常大的编程量,虽然其价钱相对廉价,但IO口数和存储空间相对较少,所以此芯片不利于系统的工作和系统功能的扩展。方案二:采用T89C51芯片,它具有AT89C2051芯片的所有功能,且IO口数相对较多,价钱相对也比拟廉价,但存储空间不是非常大,而本次的设计需要大量的存储空间。方案三:采用AT89C52芯片,它具有AT89C2051和AT89C51芯片的所有功能,且IO口数非常多,比AT89C2051和AT89C51多。价钱虽然比AT89C2051和AT89
17、C51昂贵,但存储空间非常大,可以到达8K。而本次的设计正需要此容量的空间。综上所述,我选择AT89C52芯片作为本次设计的主控芯片。2.1.2 时钟芯片选择方案一:采用DS12C887芯片,它的最大特点是有15种频率可编程方波输出功能,在某些情况下可作为简易的方波发生器,电路板上也设有输出拉环和插针,便于不同场合的连接需求,体积大价格相对较贵。方案二:采用DS1302,它是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进,行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过MPM指示决定
18、采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于ImWo体积小价格廉价功能齐全很适合本次设计。综上所述,我选择DS1302芯片作为本次设计的时钟芯片。2.1.3 1.3显TF模块方案一:采用LED数码管模块,它是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分
19、别由字母a,b,c,d,e,f,g,d,p来表示。它具有结构简单价格廉价可靠性强等特点,但是本次设计需要时钟显示,需要的二极管过多,显示的时间也不够清晰。方案二:采用LCDI602液晶模块,1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比方大写的英文字母“A”的代码是OlOOOOOIB(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。它具有显示字母数字,控制简单,本钱较低,更适合时钟显示。综上所述,我选择LCDI602芯片作为本次设计的显示芯片。2
20、.2 设计方案本设计系统框图如图2-1所示。系统以AT89S52单片机为控制器,通过DS1302来为系统提供标准时间,单片机读取DS1302时间后送LCD1602液晶显示器显示,通过按键来设置打铃时间。当打铃时间到时,系统实现蜂鸣器提示。系统设计框图如下:图21系统设计框图3系统硬件设计3.1 硬件电路图根据系统设计框图,本设计硬件电路主要由时钟电路、按键设定电路、单片机电路、显示电路和打铃电路组成,电路原理图见附录一所示。系统工作原理:系统时间由时钟芯片DS1302来提供,单片机通过P3口读取了DS13O2的时间数据后,经过处理得到时间显示模式的时钟数据,并通过P2口送液晶显示器显示出来。再
21、通过扫描Pl口是否有按键按下,有按键按下时,通过液晶显示器显示来设置定时时间、打铃时间间隔,通过设定、移位、加数来实现。当到达打铃时间时,单片机引脚启动蜂鸣器工作以实现打铃功能。3.2 时钟电路3.2.1 DS1302简介DS1302是由DS1202改良而来增加了以下的特性双电源管脚用于主电源和备份电源供给VeCl为可编程涓流充电电源附加七个字节存储器它广泛应用于便携式仪器以及电池供电的仪器仪表等产品领域,下面将主要的性能指标作一综合实时时钟能计算2100年之前的秒、分、时、日、月、年、日期、星期的能力还有闰年调整的能力318位暂存数据存储RAM串行I/O口方式使得管脚数量最少宽范围工作电压2
22、.05.5V工作电流2.OV时,小于30OnA读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式8脚DIP封装或可选的8脚SOIC封装根据外表装配与TTL兼容Vcc=5V可选工业级温度范围-40+85与DS1202兼容在DS1202根底上增加的特性对VCCI有可选的涓流充电能力双电源管用于主电源和备份电源供给备份电源管脚可由电池或大容量电容输入附加的7字节暂存存储器3.2.2 DS1302的根本组成管脚描述XlX232.768KHz晶振管脚GND地RST复位脚I/O数据输入/输出引脚SCLK串行时钟Vccl,Vcc2电源供电管脚8PlNDIP(300MIL)图3-1DS13
23、02管脚配置3.2.3 DS1302内部存放器CH:时钟停止位CH=O振荡器工作允许CH=I振荡器停止WP:写保护位WP=O存放器数据能够写入WP=I存放器数据不能写入TCS:涓流充电选择TCS=IOlO使能涓流充电TCS=其它禁止涓流充电存放器2的第7位12/24小时标志bit7=l,12小时模式bit7=0,24小时模式存放器2的第5位:AM/PM定义AP=I下午模式AP=O上午模式DS:二极管选择位DS=Ol选择一个二极管DS=IO选择两个二极管DS=OO或11,即使TCS=IO10,充电功能也被禁止RS位电阻典型位00没有没有01Rl2K10R24K11R38K图3-2RS配置表A.时
24、钟图3-3DS1302时钟3.2.4 时钟电路设计时钟电路如图3-4所示。时钟芯片的SCL引脚和SDA引脚分别由单片机的P3.1和P3.2引脚控制,单片机只需按照DS1302的工作时序来控制即可实现时间的写入和读取,其中DS1302的时钟端与数据端需外接上拉电阻,本设计选用5针排阻来充当上拉电阻。DS1302在任何数据传送时必须先初始化,把RST引脚置为高电平,然后把8位地址和命令装入移位存放器,数据在SCLK的上升沿被输入,无论是读周期还是写周期开始8位指定40个存放器中哪个将被访问到,在开始8个时钟周期,把命令字节装入揪位存放器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,
25、时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。=图3-4时钟电路为了提高对32个地址的寻址能力,可以把时钟或RAM存放器规定为多字节方式,在多字节方式中,读或写从地址。的位O开始,必须管按数据传送的次序电先的8个存放器。但是当以多个字节写RAM时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每个字节都将传送至RAM。时钟暂停:秒存放器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时,停止振荡,当它为O时时钟将开始启动。AT89C52通过串口向DS1302写数据的程序框图如
26、图3-5,其中,Px可以是单片机的任何一位I/O口,注意因为DS1302的数据发送或接收时序和AT89C52的串行口不完全一致,因此,需要在TXD的输出端加反相器,另外,接收数据时,不能以串行口的接收方式接收,必须将串行口当作普通I/O口进行数据接收.DS1302的晶振选用32.768KHZ,电容推荐值为6PF,因为振荡频率较低,也可以不接电容,对计时精度影响不大。VcclVcc2AT89C52DS1302PxTXD0SCLKRXDI/OX2图3-5DS1302写数据的程序框图3.3 按键电路键盘是单片机应用中常用的一种输入器件,键盘的按键有触点式和非触点式之分,按接口原理有编码键盘和非编码键
27、盘之分。编码键盘主要用硬件来实现对按键的识别,非编码键盘是由软件来实现键盘的定义与识别。常用的按键一般为触点式按键,根据按键所连接的单片机引脚的电平上下来判断其是否按下。按功能分,键盘有独立按键和矩阵按键之分,独立按键每一路按键就占用单片机的一个控制引脚,单片机直接获取其信息;矩阵按键将按键排成由行和列组成的行列式,通过确认按键的行号和列号来确定每一路按键,利用少的单片机引脚控制更多的按键。本设计中按键电路如图3-6所示,由单片机的PI口控制按键电路。本设计中按键用于设定定时时间、打铃时间间隔,所以只需4路按键即可实现所需功能,采用独立式按键即可。由于按键是机械式触点,所以在断开或闭合时,一般
28、都有抖动产生,虽然这个抖动时间在我们看来非常短,但是单片机执行指令的速度为微秒级别,很容易会读取这个时间而将其判断为真正的工作状态,从而引起误判。因此,在设计中必须考虑到按键抖动的影响。常用的去抖动的方法有两种:硬件方法和软件方法。硬件方法一般是加电容或者RS触发器;软件方法是在单片机在检测引脚所连接的按键的工作状态时加一个延时程序再次确认,通过2次确实认就可以确保按键的工作状态不受机械抖动的影响了。IOU-Q-0-_0Q-9 万13TT TTTT20C O 1, 2 3 4 5 6 7 PEE 7 6 5 4 3 2 I O vcpo.po.po.po.po.po.po.po.vpALpsR
29、2.p2.p2,p2,p2.p2.p2.p2.XDXD4TOT12,RXxza 山产 O I2 34567o.L23456A Ac Pl.Pl,P!.Pl.Pl.Pl.Pl.Pl,RSP3,P3.P3.P3.P3.P3.P3.P3.X/Xr/GNI40 37 38 Tr 3634 3 3T 3o 至 28 互 26 2? TTTT 2TU1006图3-6按键电路3.4 单片机电路3.4,1单片机简介AT89C52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚
30、相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚说明:VCC:供电电压。PO0:PO口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当Pl口的管脚第一次写1时,被定义为高阻输入。PO能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,PO口作为原码输入口,当FIASH进行校验时,PO输出原码,此时PO外部必须被拉高。Pl口:Pl口是一个内部提供上拉电阻的8位双向I/O口,Pl口缓冲器能接收输出4TTL门电流。Pl口管脚写入1后,被内部上拉为
31、高,可用作输入,Pl口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,Pl口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址力”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八
32、位地址信号和控制信号。P3D:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入力”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INTO(外部中断0)P3.3/INTl(外部中断1)P3.4TO(记时器0外部输入)P3.5Tl(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验
33、接收一些控制信号。AT89C52各局部引脚图如下:T2/P1.0T2EX/P1. 1Pl. 2Pl. 3Pl. 4Pl. 5Pl. 6Pl. 7RSTRXD/P3.0TXD/P3.1INT0/P3. 2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTALlVSSPDIPI4。09876 543 210987 43333333 3332226 5 4 3 2 12 2 2 2 2 2VCCPO.0AD0PO.1AD1PO.2AD2PO.3AD3PO,4AD4PO.5AD5PO.6AD6PO.7AD7EAALE/PROGPSENP2.7/Al5P2.6/Al
34、4P2.5A13P2.4A12P2.3A11P2.2A10P2.1A9P2.0A8图3-7AT89C52引脚图RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是AL
35、E才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。为使该模块化自动打铃系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。硬件电路包括七段式数码管驱动模块、蜂鸣器驱动模块、按钮控制模块等三大模块。3.4.2单片机最小系统电路单片机最小系统由晶振电路和复位电路组成。晶振电路用于产生单片机工作时所需要的时钟信号,单片机的指令必须在时钟信号下按照时序执行。晶振电路通常用两种设计方式:内部振荡方式和外部振荡方式。内部振荡方式是在单片机的XTALl和XTAL2引脚外接一个晶体振荡器,与单片机内部的振荡器组成时钟信号;外部振荡方式是在外部将已有的脉冲信号引入单片机内,
36、一般用于使单片机的时钟与外部信号保持同步。本设计选用内部振荡方式,在XTAlJ和XTAL2引脚之间连接一个12MHZ的晶振,再分别外接30p的对地电容。单片机在启动时需要复位,使系统各器件处于初始状态。复位引脚为RST,当系统上电后晶振电路稳定后,RST引脚有一个高电平且持续2个机器周期以上,单片机系统就可以实现复位功能。复位一般有手动复位和上电复位功能。手动复位是在RST引脚设置按键,当按键按下时,RST引脚会有高电平,即可实现复位功能;上电复位是在RST引脚连接一个电解电容接至电源,再接一个电阻接地,系统上电时,电容充电,只要电源的上升时间不超过1ms,就可以实现复位功能。本设计选用按键复
37、位。图3-8单片机最小系统电路显示电路1.CDl602为字符型液晶显示器,分为带背光和不带背光两种,主要技术参数:显示容量,16X2个字符;芯片工作电压,4.5V-5.5V;工作电流,2.0mA;模块最正确工作电压,5V;字符尺寸,2.954.35mmo1.CDI602共有16个引脚,引脚说明如下:1脚,VSS,电源地;2脚,VDD,电源正极,接+5V;3脚,VL,液晶显示偏压,接正电源时比照度较弱,接地时比照度最高;4脚,RS,数据/命令选择,高电平时选择数据存放器,低电平时选择指令存放器;5脚,R/W,读/写选择,高电平时进行读操作,低电平时进行写操作,当RS和R/W共同为低电平时可以写入
38、指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据;6脚,E,使能信号,当E端由高电平跳变为低电平时,液晶块执行命令;7-14脚,D0-D7,8位双向数据线;15脚,BLA,背光源正极;16脚,BLK,背光源负极。本设计中显示电路如图3-9所示。单片机的P2口作为LCDl602的数据线端口,P3口控制LCD1602的使能端。单片机读取数据后,通过控制LCD1602的读写端、复位端和使能端将其设置为写入数据状态,再将数据通过P2口送入LCD1602实现显示功能。PlflVCC11.lFOD112K)Ip3r02r4r03.P0411arojH
39、?06ST07”HXDMTnIrXDAUi2IS:Jtrajt!n7P34P26P3525.-P57I2JXrAlJmXTAU2IKo图3-9显示电路3.5 打铃电路打铃电路一般用声音或音乐作为提醒,本设计选用蜂鸣器和LED灯实现声光双重打铃功能,电路如图3-7所示。打铃时间到时,单片机P3.3引脚置高,三极管9013导通,继而蜂鸣器和LED灯导通,实现蜂鸣和灯亮打铃功能。系统蜂鸣器的工作原理如下:当单片机端口输出高电平时,三极管B极(三极管的各个参数如3.6节所示)处于高电平,三极管不导通,蜂鸣器不响。当单片机端口输出低电平时,三极管B极处于低电平,三极管导通,蜂鸣器鸣响。在本系统中如果要运
40、用到实际中的话本来是要把单片机端口P3.4口接上继电器再控制220V电源的电铃的,但由于各种原因,在这次设计中我是用蜂鸣器来显示出打铃的效果的,蜂鸣器与单片机的连接图如图3-10所示。VCC3STiPl .0 Pl I P!l RJ P. ,Pl 5 PlA Pl 7 RSTVCC W W I FOl N 3 PU 4PO .6 ro739:33n :)RXiJ v, 13 1 IXD ALfc l,32l ) ISh R3 INI i P2? R4 P2.6 IBS P2S ft P24 13 T l,: 3 XTALI P22 XAL2 P2 I GD P2图3-10蜂鸣器连接图4系统软件
41、设计4.1 软件设计流程图系统软件设计流程图如图4-1所示。判断是否到达打铃时间蜂鸣器响(结束)图4-1软件设计流程图程序设计过程:首先要定义单片机的引脚,然后初始化器件,再利用DS1307的读写时序读取时间数据。再利用按键进入时间设定状态,设定完时间后单片机通过比拟时间是否到达设定的时间来确定是否到打铃时间,如果到达打铃时间,那么控制蜂鸣器响LED灯亮。4.2 读取DS1302时间程序设计DS1302中的时间存放器地址编码为00H-07H,而具有掉电保护的RAM存放器的地址编码为08H-3FH。当地址指针指向RAM的最后一个地址3FH时,假设进行多字节操作,那么地址指针将会复位而指向00H,
42、这样原来存在OOH的数据将会丧失。DS1302的各类时间数据均以BCD码的格式存储在相应的时间存放器中,具体分配如表4-1所示:表4TDS1302存放器分配OOHOlH02H03H04H05H06H07H秒分时星期0月年控制数取DS1302相应的存放器字节,可以获取时钟和日历信息。时钟和日历信息以BCD码的形式存放在存放器中,存放器。的第7位为时钟停止位,振荡器停止工作。由于在初次上电时,所有存放器的状态是不确定的,所以在初始化时必须将存放器0中的第7位设为0。DS1302可运行在12/24小时模式下,并由时间控制器中的相应位来进行控制。根据小时存放器的第6位是0还是1,置为1时,是工作于12
43、小时模式下,此时,小时存放器的第5位为AM/PM标志。在24小时模式中,小时存放器的第5位和第4位共同组成小时的十位数。时钟模块设计流程:单片机按如下顺序将数据写入到DS1302存放器或内部RAM中:1、START信号2、写SLA+W(OxdO)字节,DS1307应答(ACK);3、写1字节内存地址(在以下第四步写入的第一字节将存入到DS1302内该地址处,DS1307应答);4、写数据(可写多个字节,每一字节写入后DS1302内部地址计数器加一,DS1307应答);5、STOP信号单片机读取DS1302子程序流程图如图4-2所示:图4-2单片机读取DS1302子程序流程图显示程序设计1.CD
44、1602的根本操作时序:读状态:输入:RS=L,RW=H,E=H;输出:DO-D7二状态字。写指令:输入:RS=L,RW=L,D(三)7=指令码,E二高脉冲;输出:无。读数据:输入:RS=H,RW=H,E=H;输出:D(三)7二数据。写数据:输入:RS=H,RW=L,D0-D7=数据,E=高脉冲;输出:无。1.CDI602初始化过程:延时15ms;写指令38H(不检测忙信号);延时5ms;写指令38H(不检测忙信号);延时5ms;写指令38H(不检测忙信号);以后每次写指令、读/写数据操作均需要检测忙信号;写指令38H,显示模式设置;写指令08H,显示关闭;写指令01H,显示清屏;写指令06H
45、,显示光标移动设置;写指令OCH,显示开及光标设置。1.CD有11条控制指令,如表4-2所示。表4-2LCD1602控制指令表序指令RSR/WD7D6D5D4D3D2DlDO1清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存储器地址0001字符发生存储器地址8置数据存储器地址001显示数据存储器地址9读忙标志或地址01BF计数器地址10向CGRAM或DDRAM写数10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1.CD1602内部自带有80X8位的RAM缓冲区,RAM地址映射如表4-3所示。表4-3LCD1602的RAM地址映射表00Ol020304050607080940414243444546474849OAOBOCODOEOF10274A4B4C4D4E4F50671.CD1602写操作时序如图4-3所示。图4-3LCD1602 写操作时序向IXD1602写数据程序子程序流