基于51单片机按时打铃系统毕业设计论文_第1页
基于51单片机按时打铃系统毕业设计论文_第2页
基于51单片机按时打铃系统毕业设计论文_第3页
基于51单片机按时打铃系统毕业设计论文_第4页
基于51单片机按时打铃系统毕业设计论文_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

wordword版本.wordword版本.编号(学号): 5本科学生毕业设计题目: .基于单片机的智能定时打铃系统 DesignofIntellieenttimingbellsystembasedonMCU学院名称:物理与电子信息学院_专业名称: .电子信息工程专业年级: 2009级9班 学生: 钟德超 学号: 5 _指导教师:_唐正明_ 职称/学历:一讲师/硕士一教务欠制目录TOC\o"1-5"\h\z摘要 3ABSTRACT 4\o"CurrentDocument"第1章绪论 5选题背景及研究意义 5课题设计的主要容 6\o"CurrentDocument"笫2章系统总体设计 7设计要求 72功能特点 7\o"CurrentDocument"第3章方案的论证 9主控芯片的选择 9显示模块 93时钟模块的选择 10\o"CurrentDocument"第4章系统硬件设计 11硬件件介绍 11单片机技术简介 11系统主要芯片和元器件的介绍及应用 11\o"CurrentDocument"L3DS1302时钟模块介绍 14LCD液晶显示模块介绍 16蜂鸣器模块 184.2单片机最小系统的设计 19.2.1时钟脉冲电路 19.2.2复位电路 203硬件设计总图 21\o"CurrentDocument"第5章软件程序设计 22软件程序整体设计 22程序流程图 222程序模块设计 23\o"CurrentDocument"DS1302时钟显示与调节程序设计 23LCD1602显示程序设计 245.2.3蜂鸣器程序设计 25\o"CurrentDocument"第6章系统测试及分析 26系统测试 26各模块初始化现象 26时钟芯片模块 26参考文献 28附录A 30.系统整体电路图 30.系统整体PCB图 31附录B作品实物图 32附录C程序 33 42基于单片机的智能定时打铃系统钟德超物理与电子信息学院电子信息工程专业2009级指导教师:唐正明摘要:单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。同时,单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。基于上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等方面,而51单片机是各单片机中最为典型和最有代表性的一种。本设计以AT89S52芯片为核心,利用DS1302作时钟芯片,具有实时显示当前时间,按设定时间报时,能修改当前时钟等功能。关键词:定时打铃;DS1302时钟;LCD1602液晶显示DesignofIntelligenttimingbellsystembasedonMCUZhongDechaoPhysicsandElectronicInformationInstituteofElectronicsand

InformationEngineeringProfessional2009Instructor:TangZhengmingABSTRACT:Monolithicintegratedcircuit,sinceitsadventinthe1970ofthe20thcentury,withitsextremelyhighperformancepriceratio,embracedtheattentionandconcern,developsverybroadandrapidly.Atthesametime,ithavemanyadvantages,suchassinglechipsmal1size,1ightweight,stronganti-interferenceability,lowenvironmentalrequirements,lowprice,reliability,flexibility,andeasilydevelop.Basedontheaboveadvantages,inourcountry,themicrocontrollerhasbeenwidelyusedinindustrialautomationandcontrol,automaticdetection,intelligentinstruments,householdelectricalappliances,electricandelectronic,electromechanicalequipment.51monolithicintegratedcircuitisasingle-chipinoneofthemosttypicalandrepresentative.AT89S52chipatthecoreofthedesign,usedforclockchipDS1302,withrealtimedisplayofthecurrenttime,pressthetimesettingthetime,modifythecurrentclockandotherfunctions.Keyword:Timingbell;DS1302clock;LCD1602LCD第1章绪论选题背景及研究意义随着现代科技的发展,管理水平的完善,具有自动提示功能的打铃器能够为企业节省人力资源,减少开支,这对做到一体化管理具有很大的帮助。而且自动打铃系统不断影响着我们的学习和生活,它已被广泛应用于各个学校中,既能实现学校的办公自动化,又便于学校的管理。用单片机控制的自动打铃器,充分发挥了体积小,价格便宜,功耗低,可靠性好等特点,而且具有可改性,将之用于学校作息,方便了广大师生。目前自动打铃系统的研究和使用已经非常普及,之所以选这个课题就是看在它的成熟性和普遍性上。在学校生活中,每天上下课都离不开打铃器的使用,打铃器可以为上下课的学生和老师们提供时间提醒。同时,也可作为一个提醒学生们作息时间的时间表,让大家有一个时间意识,形成规律的生物钟,对自身的健康也有很大的好处的。对于那些上课精力过于集中、知识面拓展比较广的老师的拖堂现象也给了一个下课时间提醒,以免耽误学生们下一节课的上课时间。打铃器作为一个提醒人们时间的设备,自然离不开提供时间的系统,最原始的打铃器是人工根据时间通过敲钟来提醒。陵着技术的发展,开始有了机械时打铃器。随着二十世纪电子技术的发展和二十一世纪半导体技术和集成电路的发展,电子技术开始渗入到各行各业,以电子表为主要基础提供时间基准的打铃器自然也是更新换代较快的,现在各种功能更多、使用更先进的打铃器层出不穷,有的迁可以以音乐响铃代替传统的“吟吟”声,打铃器更多的向着智能型转变。设备的智能化离不开单片机的使用,单片机简单的说就是一款微型的计算机,包含中央处理器CUP、F道机存取存储器RAM'只读存储器ROM、I/O口、串行口等部分,可以作为一个系统的主控制器,将其他部分电路整合到一起组成一个系统,为控制提供智能化。基于以上原因,本课题设计了一款基于单片机的自动打铃系统,使用简单方便、功能齐全。本次的设计重点在于实现自动打铃系统的基本功能之外,争取设计出亮点,设计出新意,这对我本身是个不小的挑战,因此对这个课题的研究不管是对于我本身还是对此项目在科技方面的发展都具有很重要的意义。随着电子行业技术的发展和电子元器件工艺的精进,电子技术开始应用于各行各业,应用电子元器件设计的智能电子时钟也开始流行起来。人们利用电子元器件和微控制器,根据使用要求可以设计出各种功能齐全、使用方便的多功能时钟,使其应用国更广,实用价值更高。例如AT89c51,从开始的无人问津到现在的随处可见。红绿灯,记分牌,电子秒表,遥控器,电饭煲,电视等只要是电子产品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些编好的程序而己。而自动打铃系统是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化。当今时代是一个新技术层出不穷的时代,在电子领域(尤其是自动化智能控制领域),传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。对于本课题的研究与发展来说,不管是国或者国外都已经发展的很成熟了,毕竟相对于单片机的飞速发展来说,自动打铃系统的设计并不算什么太难,而且可以算是很基本的东西,目前市场上各种类型的自动打铃系统层出不穷,大部分的打铃系统都是基于单片机开发的,而且是结合各种设备的综合应用系统,能实现的功能更强大也更便捷,例如基于校园网的自动打铃系统,自动广播打铃系统,音乐打铃系统等等,但是基本功能都相差不大,区别在于表现的形式有所不同。不过就目前而言打铃系统的功能由单一型发展成多功能多花样的通用型,而且核心技术不再局限于单片机,这更好的刺激了单片机行业的进步和革新,要想不被时代的脚步所抛弃就必须不断研究出新的东西,保持自身的优势。课题设计的主要容本设计就是利用Atmel公司生产的单片机AT89s52,芯片DS1302用作时钟芯片(具有实时显示当前时间,按设定时间用蜂鸣器报时,能修改当前时钟(闹钟)等功能)。在以单片机为核心的基础上加上其外围设备实现的小的系统——自动打铃系统。所谓的单片机小系统从系统的角度来定义就是完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。硬件设计部分分别从各个功能电路进行阐述,包括电源电路、复位电路、时钟电路及显示电路。软件部分分成了四个模块:初始化模块、时间显示模块、蜂鸣器模块、以及定时打铃模块。初始化模块主要是p对定时计数器的方式及初值的设定,时间显示模块负贲正确的显示当前时间,按键设定模块主要是对时间的校准及设定,定时打铃模块负责到时响铃功能。也就是说系统的功能是由硬件和软件两大部分共同合作完成。第2章系统总体设计设计要求系统设计主要包括硬件和软件两大部分,根据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,达到设计要求。硬件电路采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使设计的系统既经济又高性能。硬件电路设计包括输入射出接口设计,画出详细电路图,标出芯片的信号、器件参数值,根据电路图在仿真机上进行调试、修改,最终达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择C语言,进行代码设计等;最后对软件进行调试、测试,达到所需的功能要求。2功能特点a、时钟功能:能显示年、月、日、时、分、秒。b、键盘功能:能校正年份、日期、时间。c、打铃功能:按指定时间打铃印播放音乐。多功能校园打铃控制系统是由微处理器单片机、键盘模块、时钟模块、复位电路、打铃电路和时间显示模块组成。本系统采用AT89S52作为中央欠理单元来自动控制蜂鸣器自动响铃,控制时间显示。采用DS1302时钟芯片来为系统提供可靠的时间,尽量减少时间积累误差。时间显示模块采用LCD1602来实时显示当前的年、月、日、时、分、秒时间,系统还设有输入键盘,可以校正实时时钟。复位电路使CPU及系统各部件欠于确定的初始状态,并从初态开始工作。系统总体设计图如图2.1所示。图2.1系统总体设计图第3章方案的论证主控芯片的选择方案一:采用AT89C2051芯片,它具有体积小、功耗小。含有中断、定时/计数器。本次设计需要非常大的编程量,虽然其价钱相对便宜,但10口数和存储空间相对较少,所以此芯片不利于系统的工作和系统功能的扩展。方案二:采用AT89C51芯片,它具有AT89C2051芯片的所有功能,且10口数相对较多,价钱相对也比较便宜,但存储空间不是非常大,而本次的设计需要大量的存储空间。方案三:采用AT89S52芯片,它具有AT89C2051和AT89C51芯片的所有功能,且10口数非常多,比AT89c2051和AT89c51多。价钱虽然比AT89c2051和AT89C51昂贵,但存储空间非常大,可以到达8K。而本次的设计正需要此容量的空间。综上所述,我选择AT89s52芯片作为本次设计的主控芯片。显示模块方案一:采用LCD1602液晶模块,1602液晶模块部的字符发生存储器(CGR0M)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。方案二:采用LCD2402液晶模块,用LCD显示一个字符时比较复杂,因为一个字符由6x8或8x8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。由于LCD1602液晶显示模块只能显示16*2个字符,而LCD2402液晶显示模块能够显示24*2个字符,在本设计中要显示的字符比较多,综上所述,我选择LCD2402作为本设计的显示模块。3时钟模块的选择在通过各种的考虑后,时钟芯片我选用的是DS1302,DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5〜5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。第4章系统硬件设计硬件模介绍单片机技术简介单片机又称为单片微型计算机(singlechipmicrocomputer),也称为微控制公理器或嵌入式微控制处理器。它是将计算机的部分基本组成部件做到微型化,使之集成在一块芯片上的微型计算机。其上集成了包括中央欠理器CPU、片含有随机存储器RAM、程序存储器ROM或者EOROM、并行的8位I/O口,定时器与计数器,中断控制欠理器及支持总线模式等。它是工业设备控制、工业流程检测控制和智能化电器设备控制系统中应用程度最广泛的一种欠理器。这种火理器的最大特点是设计开发人员可以根据自己的想法和实际需要进行开发研究,设计一个基于单片机电子设备系统,因此更加的方便,更加的灵活,成本所需更低。设计基于单片机电路系统的基本方法是在单片机的基础上扩展一些I/O接口,如用于模/数转换的A/D芯片,D/A芯片,用于人机对话的键盘欠理信息接口,LED灯和LCD接口,数码管显示接口等电子器件,可用于对输出控制的按键接口等。然后在此硬件基础上在开发一些应用软件就可以组成完整的单片机控制系统,经过软件调试就可以应用在实际生活中。单片机有着体积小,功耗低,运算速度快,功能多,性价比高,容易推广应用等显著性特点,在自动化控制装置,智能化显示仪器仪表,对于过程控制和在家用电器等众多领域中获得了广泛的应用。针对于国开发应用单片机的发展情况来看,自从80年代初起步以来,以Intel公司的MCS-48系列的单片机为主导机种以来,单片机已有70多个系列,近500多个机种,许多电子公司率先渗入到微机控制的各个领域,并且取得了一定的应用成果。现在国际知名的公司有Intel公司、Atemel公司、Philips公司、Winbond公司、LG公司、Cygnal公司'Motorola公司、Zilog公司、Microchip公司、。80年代中期以来,陵着单片机的性能更强,运算速度更快的MCS-51系列的单片机加入,单片机在应用中得到了更为迅速的推广和更为广泛的应用。系统主要芯片和元器件的介绍及应用AT89S52单片机芯片AT89S52单片机是ATLEM公司推出的一种高速、低功耗、超强抗外界干扰微型单片机处理器,其编译的指令代码和C语言源程序完全兼容传统8051单片机,其为40引脚的双列直插封装形式的8位通用微型计算机火理器,采用工业上规定的标准的C51核处理器,在其部的功能及其引脚排布上与现在市场上或者工业上通用的8xc51是相同,其主要功能包括对会聚主IC部的寄存器、数据的RAM及外部接口等功能部件的初始化,支持会聚调整控制,支持会聚测试图的有效控制,可以进行红外遥控信号IR的接收解码及与计算机主板CPU的通信等。主要特性如下:工作额定电压:5.5V〜3.3V(5V单片机)/3.8V〜2.0V(3V单片机)工作的频率围:0〜40MHz,其相当于普通8051单片机的2倍,在实际测试中,其的最高工作频率可达48MHz。32个双向I/O口,256x8bit部RAM,复位后为:P0/P1/P2/P3是准双向口/弱上拉,P0口部是漏极开路形式输出,当其作为总线形式扩展I/O口用时,不用加上拉电阻,但是作为普通I/O口使用时,需加上拉电阻,否则无法使用P0口作为数据传输。ISP模式(在系统中可编程使用)/IAP模式(在应用可编程使用),无需专用程序编程器,无需专用程序仿真器,就可通过串口通信(Rxl)/P3.0口,TxD/P3.1口)直接下载用户所编写的程序,只需花费很少的时间便可以下载完程序,速度十分快、效率十分高。AT89S52具有EEPROM功能,可进行掉电保护,电源有复位端口接入,具有看门狗功能,一共2个16位定时器/计数器。即定时器TO、T1和外部中断4路,下降沿中断或低电平触发电路,掉电模式可由外部中断低电平触发中断方式唤醒,通用型的异步串行口(UART),还可用定时器软件实现多个UART。以下是AT89s52的引脚参数及其封装说明AT89S52引脚功能说明:VCC(40引脚):电源电压(+5V)RST(9引脚):复位输入端口。ALE/(30引脚):地址锁存控制信号(ALE)。PSEN(29引脚):外部程序存储器选通信号/VPP(31引脚):访问外部程序存储器控制信号。XTAL1(19引脚):振荡器反相放大器和部时钟发生电路的输入端口。XTAL2(18引脚):振荡器反相放大器的输入端口。AT89S52的各个引脚如图4.1所示。

7T2/P1.0[ 140VCCT2EX/P1.11_239P0.0/AD0P1.21_338P0.1/AD1P1.3| 4.37P0.2/AD2P1.4匚536二P0.3/AD3P1.5|_635P0.4/AD4P1.61_734P0.5/AD5PL.7|_833P0.6/AD6RST匚932P0.7/AD7RXD/P3.0I_1031EATXD/P3.1|_1130ALE/PROGINTO/P3.2|_1229PSENINT1/P3.3|_1328P2.7/A15TO/P3.4|_1427P2.6/A14T1/P3.51_1526P2.5/A13W/P3.61_1625P2.4/A12RD/P3.7[_1724P2.3/A1LXTAL2| 1823P2.2/A10XTAL1|_1922P2.1/A9VSS1_2021P2.0/A8图4.1AT89S52各个引脚图P0口是一组8位漏极开路型双向I/O口,即可以作为地址或者数据总线的两用I/O口。作为输出口使用时,每一位能吸收电流的方式用以驱动8个TTL逻辑门电路,让其进行输入口使用时必须对其写“1”,在对端口P0写“1”时,可作为高阻抗状态的输入端口使用。在其访问外部芯片的数据存储器或程序存储器时,这组I/O口线可以分时进行转换地址(低8位)和数据总线的复用,在访问外部数据期间必须激活部的上拉电阻才可以。在Flash编程时,P0口接收指令代码字节,而在程序进行校验时候,输出指令代码字节,在进行校验时,要求在P0口外接上拉电阻。P1口是一个其部自带上拉电阻的8位双向I/O口,即具有通用的输入/输出功能,每一位都能独立地设定为输入口或输出口使用,P1口的输出缓冲级可用来驱动(吸收或者输出电流)4个TTL电平的逻辑门电路。在对其端口写“1”时,即对其部的锁存器写“1”,通过其部自带的上拉电阻可以把其端口拉到高电平,此时可以用作输入口。在作数据输入口使用时,因为其部存在的上拉电阻,它的某个引脚会被外部信号拉低时会输出一个电流(IIL)。与8xC51不同之处是,PLO和P1.1还可分别作为定时/计数器2的外部计数输入(PL0/T2)和输入(Pl.1/T1EX),在进行Flash的编程和程序校验期间,P1口用以接收数据的低8位地址。P2口是一个部自带有上拉电阻的8位双向I/O口,即可用作输入/输出口的使用,也可作为扩展系统的地址总线,输出高8位地址,与P0□一起组成16位地址总线oP2口的输出缓冲级可用以驱动(吸收或输出电流)4个HL逻辑门电路。这里和P1□是一样,可以对其端口P2写“1”,通过部自带的上拉电阻把端口拉到高电平,此时可作输入口,作输入口进行输入数据或者信号使用时,因为其部存在上拉电阻,在其某个引脚被外部输入的信号拉低时会对外输出一个电流(IIL)。因P3口的功能繁多,可用作双向数据传输和串口输入输出(RxD/P3.口,TxD/P3.1口),故在这里把P3口的引脚复用功能以表格形式展示出来,如表4.1所示。表4.1P3□引脚复用功能引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)3DS1302时钟模块介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5〜5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图4.1所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。

DS1302是由DS1202改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vccl为可编程涓流充电电源附加七个字节存储器它广泛应用于传真便携式仪器以及电池供电的仪器仪表等产品领域。Ds1302主要的性能:a.对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。318位暂存数据存储RAMc.串行I/O口方式使得管脚数量最少d.宽困工作电压2.05.5Ve.工作电流2.0V时,小于300nAf.读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式g.8脚DIP封装或可选的8脚S0IC封装根据表面装配h.简单3线接口j.与TTL兼容Vcc=5Vk.可选工业级温度围-40+851.与DS1202兼容in在DS1202基础上增加的特性对Vccl有可选的涓流充电能力,双电源管用于主电源和备份电源供应,备份电源管脚可由电池或大容量电容输入附加的7字节暂存存储器。DS1302时钟模块设计电路如图4.2所示。YI3_4Voc2VcclXYI3_4Voc2VcclXISCLKX2I/OGNDCEDS1302图4.2DS1302时钟模块设计电路图LCD液晶显示模块介绍在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机系统中应用晶液显示器作为输出器件有显示质量高、数字式接口、体积小、重量、轻、功耗低等优占0液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。如果根据驱动方式来分»可以分为静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)和主动矩阵驱动(ActiveMatrix)三种。在本系统中我们采用的是字符型液晶显示模块,它是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以太阳人电子的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图4.3所示。

图4.31602字符型液晶显示器实物图LCD1602引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表4.2所示。表4,2引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极SD1数据16BLK背光源负极读操作时序图如图4.4所示;写操作时序图如图4.5所示;LCD1602实际应用电路如图4.6所示o

RS图4.4读操作时序图4.5写操作时序

BIST?llTF12PDM4PISPl5M*BIST?llTF12PDM4PISPl5M*图4.6LCD1602实际应用电路图蜂鸣器模块系统蜂鸣器的工作原理如下:当单片机端口输出高电平时,三极管B极欠于高电平,三极管不导通,蜂鸣器不响。当单片机端口输出低电平时,三极管B极火于低电平,三极管导通,蜂鸣器鸣响。在本系统中如果要运用到实际中的话本来是要把单片机端口P3.4口接上继电器再控制220V电源的电铃的,但由于各种原因,在这次设计中我是用蜂鸣器来显示出打铃的效果的,蜂鸣器与单片机的连接图如图4.7所示。GND图4.7蜂鸣器连接图4.2单片机最小系统的设计4.2.1时钟脉冲电路AT89S52单片机有一个用于构成部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和瓷谐振器都可以用来一起构成自激振荡器,晶振电路如图4.8所示。C2jopr|30PFGNDY1

12MX2图4.8晶振电路石英晶振(利用12MHz晶振)Cl,C2=30PF。一谐振器Cl,C2=40PFoXTAL1:振荡器反相放大器和部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。4.2.2复位电路AT89S52的复位引脚(RESET)是第9脚,当此引脚连接高电平超过2个机器周期,即可产生复位的动作。以12MHz的时钟脉冲为例,每个时钟脉冲为S,两个机器周期为2pS,因此,在第9脚上连接一个2〃S的高电平脉冲,即可产生复位动作。最简单的就是只有一个电阻跟一个电容就可组成一个可靠复位的电路,电阻一般选择10K,电容一般选择10uF,复杂一点的就加个按键,可以进行手动复位。复位电路如图4.9所示。图4.9复位电路I-GND4.3硬件设计总图 !►*=1HI7图4.10硬件设计总图5.5.2程序模块设计wordword版本.wordword版本.第5章软件程序设计5.1软件程序整体设计单片机校园打铃控制系统的主控程序采用循环调用显示、键盘处理程序、电铃判断子程序,控制子程序。显示子程序将最新的时、分、秒的数据在液晶上显示。在主控程序循环中主要的工作就是扫描是否有按键,若有按键按下则应做相应的功能欠理,转入相应的程序,执行相应的功能。判断子程序检查当前时间是否相等,如果相等,就执行相应程序,根据设计要求画出程序主流程图05.L1程序流程图循环循环图5.1程序流程图5.2.1DS1302时钟显示与调节程序设计/*************************读地址中的数据*******************/ucharread_dsl302(ucharadd)〃读地址中的数据uchari,value;rst=0;_nop_();sck=0;_nop_();rst=l;_nop_();write_dsl302_byte(add)"/写单字节地址for(i=0;i<8;i++)〃读一帧数据value=value»l;sck=O;〃开始读数据if(io==l)//if(io)value=value10x80;sck=l;)rst=0;_nop_();sck=0;_nop_();sck=l;io=l;returnvalue;)i51/51/51/51/51/51/51/^1/^1/51/51/51/51/51/^1/^1/^1/^1/51/51/ •I।•dj/t^1/^1/%l/51/^1/^1/>1/>1/^1/^1/^1/^1/^1/ ^1/>1/^1/51/^1/51/^1/51/51/51/>1///不不不不不不不不不不不不不不不不不不不不不不六2工it不。及工彳伤不不不不不不不不不不不不不不不不不不不不不不不不不不不不不/voidset_rst(void)〃写地址和数据uchari,j;for(i=0;i<7;i++){j=time_data[i]/10;time_data[i]=time_data[i]%10;time_data[i]=time_data[i]+j*16;)write_dsl302(0x8e,0x00);〃去除写保护for(i=0;i<7;i++)(write_ds1302(write_add[i],time_data[i]);)write_dsl302(0x8e,0x00);〃加上写保护)2LCD1602显示程序设计/ 51/ 51/ 51/ ^1/ 51/ ^1/ ,4一, f54/51Z^1/51/ ^1/51/51/^1/ ^1/51/yi^^1/51/51/^1/ ^1/51/yi^^1/51/51/^1/ ^1/51/yL^/f/T^//T^/T*/r^/T^//Tv//T^/T*/r^/T^//Tv7j^//T^/T*/r^/T^/r^一 /T^ /r^/T^/T^/T^/T' /T^ /r^/T^/T^/T^/T' /T^ /r^/T^/T^/T^/T' /T^ /r^/T^/T^fvoidwrite_(uchar)//写命令rs=0;〃把rs拉低,写命令rw=0;lcden=0;//把使能拉低P2;; 〃把指令给POddelay(5);lcden=l;〃拉高使能端delay(5);cden=0;//拉低使能端)/Q/51/5I/^1/^1/^1/51X5I/^1/5I/^1/^1/^1/51X5I/^1/5I/ >小f1,>jAjf^1/^1/^1/5)x^1/51/^1/4/^1/^1/5)x^1/51/^1/4/^1/^1/5)x^1/51/^1/4/^1/^1/5)x^1/51/// /j*/p /j*/p /j*/p ]:」■] /j*/p /j*/p /(* /j*/p /(* /j*/p /voidwriterate(uchardate)〃写数据(rs=l;〃把rs拉高。写数据rw=0;wordword版本.wordword版本.lcden=O;〃把使能拉低P2=date;//把数据给P0口delay(5);lcden=l;〃拉高使能端delay(5);lcden=0;〃拉低使能端)/ 士_I> >1•f //不不不不不不不不不不不不不不不不不不不不不不不不力女台//妥攵不不不不不不不不不不不不不不不不不不不不不不不不不不不不不/voidlcdl602_init(void)〃初始化(rw=0;lcden=0; 〃把使能拉低write_(0x38);〃显示设置write_(0x0c);〃不显示光标write_(0x06);〃显示光标移动设置(右移)write_(0x01);〃显示器清零}5.2.3蜂鸣器程序设计/*************************每个音符的发声******************/voidtimerK)interrupt1(TH0=yin[2*line];TL0=yin[2*line+l];speaker=!speaker;第6章系统测试及分析系统测试系统运行稳定,各部分模块都能够按照预期的要求正常工作,总体能够达到设计的要求。在上电状态下,LCD2402显示当前时间,容包括日期,和具体时间,并且在每隔固定一个小时过后,蜂鸣器播放音乐模拟打铃,当按键能符合菜单按下时,屏幕能够显示菜单里说明的功能,调试结果如图6.1所示。图6.1调试结果各模块初始化现象6.2.1时钟芯片模块当系统通电后,检测时钟芯片是否未被初始化,如是则设置1302的初始时间,所以系统刚通上电时,要是DS1302芯片工作正常,则显示屏会显示2013年1月27日时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于ImM因为在设计板上我加了一个3v的电池,所以保证了系统在掉电时再上电后可以不要调时间了,在调试时,DS1302芯片能运行的很好,并且屏幕显示和理想中的一样。当断电后过段时间再通电时»系统显示的时间和一直通电时是保持一致的。时钟初始化如图6.2所示。图6.2时钟初始化我所选论文题目是“单片机自动定时打铃系统”,之所以选择这个题目,是因为我自己感觉它具有挑战性,越是自己薄弱的环节越要去尝试。在设计课题过程中,有时感觉很辛苦,有时还会产生放弃的念头,但是最终坚持了下来,出色的完成了我的毕业设计,为了自己的目标,更为了自己的选择。开始是搜集资料时,通过各种渠道开始准备工作一通过网络、图书馆搜集相关学术论文、核心期刊、书籍等。通过两个月的深入学习,搜集了一大堆与毕业设计相关的资料,在唐老师的指导下,摒弃了一些无关紧要的容,保留了有参考价值的资料作为备用。在中国知网上,我搜索了一些学术论文和期刊文章;在Springer上,我搜索了外文文献资料;在常见的搜索引擎中,我了解到一些相关的知识,同时特意浏览了大量的外文,并将这些容列成提纲,便于以后查询,以减少后期工作量。接下来,我开始对所搜集的资料进行整理、分析研究,并制作了课题研究的方案及设计规划,开题报告完成之后随即进入紧而有序的写作及创作之中。根据取其精华,去其糟粕的原则,我撰写了初稿,并加入了自己新颖的见解,特别是在设计的过程中,吸取其它大铃系统设计的优点,并加入自己的创新点。在此期间,我多次与好成绩的同学或短信以及利用E-mai1进行沟通,听取他们好的建议,积极采纳。但完成之后通过修改又发现了很多漏洞,我想,要干好一件事并非那么简单,但也不是很难,敷衍了事是万万不可的,对待任何事情都要认真去思考,用思想来完成任务。一篇优秀的论文不是写出来的,而是修改出来的,这需要的是耐心,迁要用心。在做过程中,我遇到的问题很多,有些是在自己技术所在困之外,每当无法实现自己的想法或者运行不下去的时候,我就会出现浮躁的情绪,但是我没有放弃,而是适时地调节自己的心态,在同学老师的帮助下,完成了初次的设计。越是不懂的东西才要去学,在学习的过程中你会收获很多,其中一点就是互相学习是最好的学习途径,在学习之后你会感觉到很有成就感,这也是我在完成制作之后体会到的。在整个毕业论文设计的过程中我学到了做任何事情所要有的态度和心态,首先我明白了做学问要一丝不苟,对于出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题的。在工作中要学会与人合作的态度,认真听取别人的意见,这样才能更好的提高自己。参考文献[1]建华,艳琴,MSP430系列16位超低功耗单片机原理与实践[M].:航空航天大学,2008.7[2]广弟,朱月琴,王秀山,单片机基础[M]。:航空航天大学,2005[3]康华光,大钦,电子技术基础模拟部分[M]。:高等教育,2004[4]自美,电子线路设计•测试(第二版)[M].:华中理工,2006[5]戴佳,戴卫恒,51单片机C语言应用程序设计实例精讲[M]。:电子工业,2003[6]徐爱钧,秀华。KeilCx51V7.0单片机高级语言编程与〃Vision2应用实践[M]。:东安子工业,2002[7]褚振勇,翁木云.FPGA设计及应用[M].:电子科技大学,2002:7.[8]立民,于海雁,胡庆,庞杰.可编程逻辑器件[M].:机械工业,2003:4〜5.[9]白中英,主编数字逻辑与数字系统[M].科学,2007 [10]雷波主编,电子控制及仿真[D].理工大学,2008.[11]士雄、丁康源主编,数字集成电子技术教程[M].,高等教育,1993[12]杰华主编,电子技术指导[M].,高等教育,1997[13]振声主编,电子技术基础教程[M].,国防工业,2001ThomasConnollyCarolynBegg.DatabaseSystems[M].:电子工业,2004.7RogerBate,SandyShrum,CMMIntegrationFramework[J],CMU/SEIspotlight,1998.9JPKuilboer,NAshrafi,SoftwareProcessandProductImprovement[J].AnEmpiricalAssessment,2004.4附录A1.系统整体电路图■=b-H3为QCDol2.系统整体PCB图J二JJ二JJ“:J”;■在、*KZ'4KS'WA'*N\II 1]Ji•二二oooaoaoooooooooo■二000000=ueoooooe=附录B作品实物图附录C程序#include<reg52.h>#include"dsl302.h"#include"lcdl602.h"#include"1ingsheng.h"ucharline;ucharcode*datasong;uchar codeyin[30]={0xFF,OxFF,OxFB,0x90,OxFC,OxOC,OxFC,0x44,OxFC,OxAC,OxFD,0x09,OxFD,0x34,OxFD,0x82,OxFD,0xC8,OxFE,0x06,OxFE,0x22,OxFA,0X15,OXFB,0x04,OxFA,0x67,OxFE,0x85);ucharcodesongl[46]={0x12,0x52,0x52,0x52,0x56,0x42, 〃<<兰花草》0x32,0x42,0x32,0x22,0x18,0x82,0x82,0x82,0x82,0x86,0x72,0xB2,0x72,0x72,0x62,0x58,0x52,0x82,0x82,0x72,0x56,0x42,0x32,0x42,0x32,0x22,0x16,0xB2,0xB2,0x32,0x32,0x22,0x16,0x52,0x42,0x32,0x22,0xC2,0x88,OxFF);externuchardisp[14];sbitkey_duishi=P(TO;sbitkey_miao=P0'1;sbitkey_fen=P0'2;sbitkey_shi=P(T3;sbitkey_ri=PO'4;sbitkey_yue=P3M;voiddisplay(void);//显示函数//voiddelay_50us(uintt);〃延迟函数voidkey_init(void);〃按键初始化voidanjiansaomiao(void);//按键扫描voiddui_shijian(uinta);〃a判断是小时还是分钟uintshi,fen,miao,ri,yue,shi_jishu,fen_jishu,miao_jishu,ri_jishu,yue.jishu■uintflag_duishi,fen_bijiao,miao_bijiao;uintnian;voidde1ay.shengyin(uintd);voiddelayl87nls(void);〃延时函数voiddaling(void);〃打铃函数voidbijiao_shijian(void);〃比较时间voidmain(void)(flag_duishi=1;fen_bijiao=1;miao_bijiao=1;lcdl602_init();set_rst();〃对时间,也就是给的第一个时间key_init();for(;;)(if(flag_duishi==1){shi=0;fen=0;miao=0;ri=0;yue=0;red_rtc();〃读地址time_pros();//把读的BCD码转化成十进制display();〃显示时间if(fen_bijiao==0&&miao_bijiao==0)(dalingO;)bijiao_shijianO;anjiansaomiao();〃按键扫描)if(flag_duishi==0){if(key_miao==0){while(key_miao==0);dui_shijian(0);red_rtc();〃读地址tiine_pros();//把读的BCD码转化成十进制display。"/显示时间)if(key_fen==0)while(key_fen==0);dui_shijian(l);red_rtc();〃读地址time_pros();//把读的BCD码转化成十进制display();〃显示时间)if(key_shi==0)(while(key_shi==0);dui_shijian(2);red_rtc();〃读地址time_pros();〃把读的BCD码转化成十进制display();〃显示时间)if(key_ri==0)(while(key_ri==0);dui_shijian(3);red_rtc();〃读地址time_pros();//把读的BCD码转化成十进制display。;//显示时间)if(key_yue==0)fwhile(key_yue==0);dui_shijian(4);red_rtc();〃读地址time_pros();//把读的BCD码转化成十进制display。"/显示时间)if(key_duishi==0){uinti;nian=13;i=nian/10;nian=nian%10;nian=i*16+nian;while(key_duishi==0);write_dsl302(0x8e,0x00);〃去除写保护write_dsl302(0x8c,nian);〃更改小时write_dsl302(0x8e,0x00);〃加上写保护flag_duishi=1;)voidanjiansaomiao(void)〃按键扫描(if(key_duishi==0)(while(key_duishi==0);set_rst0();red_rtc();〃读地址time_pros();〃把读的BCD码转化成十进制display();〃显示时间flag_duishi=0;))voidbijiao_shijian(void)〃比较时间(miao_bijiao=disp[13]*10+disp[12];fen.bijiao=disp[ll]*10+disp[10];voidkey_init(void){key.duishi=1;key.fen=1;key_shi=1;key.ri=1;key_yue=1;keyjniao=1;)/*voiddelay_50us(uintt)〃延迟函数(ucharj;for(;t>0;t—)for(j=19;j>0;j-);)*/voiddisplay(void)//显示函数write_(0x80);〃写命令write_date(disp[l]+0x30);〃写数据write_date(disp[0]+0x30);write_date('Y');〃年(year)write_date(0x20);//write_date(disp[3]+0x30);//write_date(disp[2]+0x30);//write_date('W');〃周(week)write_date(0x20);write_date(disp[5]+0x30);write_date(disp[4]+0x30);write_date('M');〃月(month)write_date(0x20);〃空格write_date(0x20);write_date(disp[7]+0x30);write_date(disp[6]+0x30);write_dateCD,);//a(day)write_(0x80+0x40);〃写命令write_date(0x20);write_date(0x20);〃空格write_date(0x20);write_date(disp[9]+0x30);write_date(disp[8]+0x30);write_date(0x3a);//冒号write_date(disp[ll]+0x30);write_date(disp[10]+0x30);write_date(0x3a);//W号write_date(disp[13]+0x30);write_date(disp[12]+0x30);

温馨提示

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

评论

0/150

提交评论