基于单片机的打铃器硬件设计毕业论文_第1页
基于单片机的打铃器硬件设计毕业论文_第2页
基于单片机的打铃器硬件设计毕业论文_第3页
基于单片机的打铃器硬件设计毕业论文_第4页
基于单片机的打铃器硬件设计毕业论文_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

CHANGZHOU INSTITUTE OF TECHNOLOGY科研实践题目:基于单片机的打铃器设计二级学院(直属学部): 延陵学院 专业:电气工程及其自动化 班级: 10电Y3 学生姓名: 学号: 指导教师姓名: 范力旻 职称: 副教授 2013年12月30日至2014年1月10日摘 要单片机自1976年由Inter公司推出MCG-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已经从面相工业控制、通讯、交通。智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。按照内部数据通道的宽度,单片机可分为4位、8位、16位及32位等。单片机的中央处理器(CPU)和通用微处理器基本相同,只是增设了“面向控制”的处理功能。例如:位处理、查表、多种地址询问方式、多种跳转、乘除法运算、状态监控、中断处理器,强了实时性。本设计以AT89S52芯片为核心,利用DS1302作时钟芯片,具有实时显示当前时间,按设定时间报时,能修改当前时钟等功能。关键词: 定时打铃;DS1302时钟; LCD1602液晶显示目 录第一章 绪论41.1 选题背景及研究意义41.2 课题研究的主要内容4第二章 打铃器总体设计52.1系统设计要求52.2 系统的主要功能5第三章 打铃器各部分组成及功能63.1单片机模块63.2按键模块73.3时钟模块73.4显示模块8第四章 硬件设计84.1总体设计结构图84.2最小系统电路设计94.2.1时钟脉冲电路的设计94.2.2复位电路图设计94.3输入电路设计104.3.1功能键系统设计104.3.2电源的设计104.4输出电路设计114.4.1 蜂鸣器的设计114.4.2 LCD液晶显示设计12第五章 硬件的仿真与调试135.1 proteus软件的介绍135.1 打铃器proteus软件的仿真13第六章 实物的制作156.1电路板焊接156.2电路板调试16第七章 总结和展望167.1科研实践总结167.2对未来的展望17附 录181.参考文献182.元器件清单193.原理图204.程序代码(C语言)205.实物图29第一章 绪论1.1 选题背景及研究意义随着科技的不断发展,各种芯片都得到了很好的发展,89S52同样如此,从开始的无人问津到现在的随处可见,红绿灯,记分牌,电子秒表,遥控器,电饭 煲,电视等只要是电子产品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些己编好的程序而己而自动打铃系统是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化,总之,一个需要时间系统的机构实现自动提醒功能。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。对于本课题的研究与发展来说,不管是国内或者国外都已经发展的很成熟了,毕竟相对于单片机的飞速发展来说,自动打铃系统的设计并不算什么太难,而且可以算是很基本的东西,目前市场上各种类型的自动打铃系统层出不穷,大部分的打铃系统都是基于单片机开发的,而且是结合各种设备的综合应用系统,能实现的功能更强大也更便捷,例如基于校园网的自动打铃系统,自动广播打铃系统,音乐打铃系统等等,但是基本功能都相差不大,区别在于表现的形式有所不同。不过就目前而言打铃系统的功能由单一型发展成多功能多花样的通用型,而且核心技术不再局限于单片机,这更好的刺激了单片机行业的进步和革新,要想不被时代的脚步所抛弃就必须不断研究出新的东西,保持自身的优势。 1.2 课题研究的主要内容本设计就是利用Atmel公司生产的单片机AT89S52,芯片DS1302用作时钟芯片(具有实时显示当前时间,按设定时间用蜂鸣器报时,能修改当前时钟(闹钟)等功能)。在以单片机为核心的基础上加上其外围设备实现的小的系统自动打铃系统。所谓的单片机小系统从系统的角度来定义就是完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。硬件设计部分分别从各个功能电路进行阐述,包括电源电路、复位电路、时钟电路及显示电路。软件部分分成了四个模块:初始化模块、时间显示模块、蜂鸣器模块、以及定时打铃模块。初始化模块主要是p对定时计数器的方式及初值的设定,时间显示模块负责正确的显示当前时间,按键设定模块主要是对时间的校准及设定,定时打铃模块负责到时响铃功能。也就是说系统的功能是由硬件和软件两大部分共同合作完成。第二章 打铃器总体设计2.1系统设计要求系统设计主要包括硬件和软件两大部分,根据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,达到设计要求。硬件电路采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使设计的系统既经济又高性能。硬件电路设计包括输入射出接口设计,画出详细电路图,标出芯片的信号、器件参数值,根据电路图在仿真机上进行调试、修改,最终达到设计要求。2.2 系统的主要功能a、时钟功能:能显示年、月、日、时、分、秒。b、键盘功能:能校正年份、日期、时间。c、打铃功能:按指定时间打铃即播放音乐。多功能校园打铃控制系统是由微处理器单片机、键盘模块、时钟模块、复位电路、打铃电路和时间显示模块组成。本系统采用AT89S52作为中央处理单元来自动控制蜂鸣器自动响铃,控制时间显示。采用DS1302时钟芯片来为系统提供可靠的时间,尽量减少时间积累误差。时间显示模块采用LCD1602来实时显示当前的年、月、日、时、分、秒时间,系统还设有输入键盘,可以校正实时时钟。复位电路使CPU及系统各部件处于确定的初始状态,并从初态开始工作。系统总体设计图如图2.1所示。图 2.1 系统总体设计图第三章 打铃器各部分组成及功能3.1 单片机模块AT89S52单片机是ATLEM公司推出的一种高速、低功耗、超强抗外界干扰微型单片机处理器,其编译的指令代码和C语言源程序完全兼容传统8051单片机,其为40引脚的双列直插封装形式的8位通用微型计算机处理器,采用工业上规定的标准的C51内核处理器,在其内部的功能及其引脚排布上与现在市场上或者工业上通用的8xc51是相同,其主要功能包括对会聚主IC内部的寄存器、数据的RAM及外部接口等功能部件的初始化,支持会聚调整控制,支持会聚测试图的有效控制,可以进行红外遥控信号IR的接收解码及与计算机主板CPU的通信等。如果采用AT89C2051芯片,它具有体积小、功耗小。含有中断、定时/计数器。本次设计需要非常大的编程量,虽然其价钱相对便宜,但IO口数和存储空间相对较少,所以此芯片不利于系统的工作和系统功能的扩展。如果采用AT89C51芯片,它具有AT89C2051芯片的所有功能,且IO口数相对较多,价钱相对也比较便宜,但存储空间不是非常大,而本次的设计需要大量的存储空间。如果采用AT89S52芯片,它具有AT89C2051和AT89C51芯片的所有功能,且IO口数非常多,比AT89C2051和AT89C51多。价钱虽然比AT89C2051和AT89C51昂贵,但存储空间非常大,可以到达8K。而本次的设计正需要此容量的空间。 综上所述,我选择AT89S52芯片作为本次设计的主控芯片。3.2按键模块6个按键,分别对应年、月、日、时、分、秒。功能:确认信号是否输入。3.3时钟模块在通过各种的考虑后,时钟芯片我选用的是DS1302, DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时 时钟芯片,附加31字节静态RAM,采用SPI 三线接口与CPU进行 同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5 5.5V 。采用双电源供电(主电源和备用电源),可设置备用电源充电 方式。功能:对年、月、日、时、分、秒进行计时。3.4显示模块在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机系统中应用晶液显示器作为输出器件有显示质量高、数字式接口、体积小、重量、轻、功耗低等优点。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。功能:显示时间数值。第四章 硬件设计4.1总体设计结构图 打铃器的总体设计结构见图4-1:图4-1打铃器总体结构图4.2最小系统电路设计4.2.1时钟脉冲电路的设计 AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。石英晶振:(利用12MHZ晶振) C1,C2=30PF。陶瓷谐振器 C1,C2=40PF。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。时钟脉冲电路见图4-2:图4-2时钟脉冲电路图4.2.2复位电路图设计 AT89S52的复位引脚(RESET)是第9脚,当此引脚连接高电平超过2个机器周期,即可产生复位的动作。以12MHz的时钟脉冲为例,每个时钟脉冲为1S,两个机器周期为2S,因此,在第9脚上连接一个2S的高电平脉冲,即可产生复位动作。最简单的就是只有一个电阻跟一个电容就可组成一个可靠复位的电路,电阻一般选择10K,电容一般选择10F,复杂一点的就加个按键,可以进行手动复位。复位电路见图4-3所示:图4-3复位电路图4.3输入电路设计4.3.1功能键系统设计在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。由于使用独立式键盘编程相较于矩阵键盘比较简易,所以本实验我们采用的是独立式键盘,一个按键占用单独的一个I/O口,图中K1至K6分别代表年、月、日、时、分、秒。按键电路图见图4-4:图4-4按键电路图4.3.2电源的设计7805三端稳压集成电路,顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。用7805三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。7805三端稳压IC中的78后面的数字代表该三端集成稳压电路的输出电压,如7805表示输出电压为正5V。如图4-5电源电路图所示将220V交流电压经过调压、整流、滤波以后变成5V直流电压。外接220V电源接口,经过TRAN1变压成为9V电源。9V的直流电源经过7805稳压电路调节和滤波电路后输出稳定的+5v直流电源。 图4-5 电源电路图4.4输出电路设计4.4.1 蜂鸣器的设计系统蜂鸣器的工作原理如下:当单片机端口输出高电平时,三极管B极处于高电平,三极管不导通,蜂鸣器不响。当单片机端口输出低电平时,三极管B极处于低电平,三极管导通,蜂鸣器鸣响。在本系统中如果要运用到实际中的话本来是要把单片机端口P3.4口接上继电器再控制220V电源的电铃的,但由于各种原因,在这次设计中我是用蜂鸣器来显示出打铃的效果。其蜂鸣器发声电路如图4-5所示:图4-5蜂鸣器发声电路图:4.4.2 LCD液晶显示设计LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。LCD2402液晶模块用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。因为LCD1602型液晶中存储有所需要显示日期和时间阿拉伯数字和英文字母,并且可以显示16*2个字符,足够显示本设计中要显示的字符。所以,综上所诉,我选择LCD1602作为本设计的显示模块。在我的LCD1602液晶显示屏上第一行显示的是年、月、日,第二行显示的是时、分、秒。其电路如图4-6所示:图 4-6 LCD1602实际应用电路图第五章 硬件的仿真与调试5.1 proteus软件的介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如按键、LED、数码管等等。通过Proteus仿真软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。 我使用的Protues软件是7.10版本的,仿真时只需在AT89S52单片机中加载Keil软件生成的.HEX格式文件,即可启动仿真。 5.1 打铃器proteus软件的仿真绘制抢答器的软件仿真图步骤分一下四步:(1)查找所需要的元器件;(2)根据电路图进行连线; (3)加载所写完的C程序生成的.HEX文件即可以仿真。通过以上步骤,来实现打铃器设计的仿真实现,仿真如下图所示:仿真开始时的仿真如图5-1:图5-1开始时的proteus仿真图调时初始状态下的仿真如图5-2:5-2调时初始状态下的仿真图打铃时的仿真如图5-3:5-3打铃时的仿真图复位时的仿真如图5-4:5-4 复位时的仿真图第六章 实物的制作6.1电路板焊接(1)焊接材料:尖嘴钳,斜口钳,平头钳,电烙铁,吸锡器,螺丝起子,镊子。(2)焊接方法:右手持电烙铁。左手用手或镊子夹持元件或导线。焊接前,电烙铁要充分预热。烙铁头刃面上要吃锡,即带上一定量焊锡。将烙铁头刃面紧贴在焊点处。电烙铁与水平面大约成60角。以便于熔化的锡从烙铁头上流到焊点上。烙铁头在焊点处停留的时间控制在23秒钟。抬开烙铁头。左手仍持元件不动。待焊点处的锡冷却凝固后,才可松开左手。用镊子转动引线,确认不松动,然后可用偏口钳剪去多余的引线。(3)焊接注意事项:防止触电,勿要烫伤人、电源线及衣物等。电烙铁的温度和焊接的时间要适当,焊锡量要适中,不要过多。烙铁头要同时接触元件脚和线路板,使二者在短时间内同时受热达到焊接温度,以防止虚焊。不可将烙铁头在焊点上来回移动。也不能用烙铁头向焊接脚上刷锡。焊接二极管、三极管等怕热元件时应用镊子夹住元件脚,使热量通过镊子散热,不至于损坏元件。焊接集成电路时,一定等技术熟练后方可进行,注意时间要短,同时在焊接电路板的时候要断开烙铁电源。板子和元件腿应该先处理干净,再涂一层松香酒精溶液,烙铁应该接地。烙铁温度不应过高(最好采用恒温烙铁),每个腿的焊接时间应该控制2秒之内,以防止高温烧坏元器件和使铜箔脱离,焊点应小、圆而且有光泽,注意不要使相邻两焊点之间短路。焊接完毕用硬刷子刷一遍板子,以防止有锡粒掉落在板子上,再用万用表电阻档检查电源接入端及单片机电源和地之间有无短路,最好用放大镜仔细检查一遍板子,看看有无因焊点过大而使相邻焊点短路。6.2电路板调试 最小系统的电路不工作,首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否符合电源电压,常用的是5V左右。接下来就是检测复位引脚的电压是否正常,EA引脚的电压要正常为5V左右。 如果补焊电源后最小系统还是不能工作,有可能是AT89C52单片机坏掉了,重新选择一个AT89C52单片机焊接。如果是工作但是不能按需要的功能执行,也可用更换AT89C52单片机方法调试,但在此之前可以选择检查对应的模块是否有焊接问题,若没有再进行更换。第七章 总结和展望7.1科研实践总结 过这次的实习我发现,只有理论水平提高了,才能够将课本知识与实践相结合,理论知识服务于教学实践,以增强自己的动手能力。这次实习十分有意义,这次实习我们知道了理论和实践的距离,也知道了理论和实践相结合的重要性。回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,不仅对键盘的识别技术这一章节的知识点有了深刻的认识,而且对这学期开设的单片机这门课程有了更全面的了解。通过这次单片机课程设计,还使我懂得了实践的重要性。同时在调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。同时,对给过我帮助的所有同学和指导老师表示忠心的感谢。7.2对未来的展望 经过两周的科研实践,我深刻明白了理论知识与社会实践相结合的道理,也得到了以前书本知识所不曾得到的知识,更加明白了如今信息时代电子技能知识的重要性。 本设计增强了我对单片机、C语言等技能方面的认识,掌握了分析、处理问题的方法、逻辑思维能力等基本技能的训练,具有了一定程度的实际工作能力。 面对如此激烈的市场竞争体系,只有努力掌握好单片机知识方可在竞争中立于不败之地,我对从事电子设计、C语言编程和研究产生了浓厚的兴趣。希望自己以后能通过自己的不懈努力取得更大的进步。 附 录1.参考文献1 沈建华,杨艳琴,MSP430系列16位超低功耗单片机原理与实践M.北京:航空航天大学出版社,2008.72 李广弟,朱月琴,王秀山,单片机基础M。北京:航空航天大学出版社,20053 康华光,陈大钦,电子技术基础模拟部分M。武汉:高等教育出版社,20044 谢自美,电子线路设计测试(第二版)M.武汉:华中理工出版社,20065 戴佳,戴卫恒,51单片机,C语言应用程序设计实例精讲M。北京:电子工业出版社,20036 徐爱钧,彭秀华。Keil Cx51V7.0单片机高级语言编程与Vision2应用实践M。北京:东安子工业出版社,20027 褚振勇,翁木云. FPGA设计及应用M. 西安:西安电子科技大学出版社,2002:7.8 赵立民,于海雁,胡庆,庞杰. 可编程逻辑器件M. 北京:机械工业出版社,2003:45.9白中英, 主编数字逻辑与数字系统M. 科学出版社,2007 10 雷波主编, 电子控制及仿真D. 武汉理工大学,2008.11 李士雄、丁康源主编,数字集成电子技术教程M.北京,高等教育出版社,199312 彭杰华主编,电子技术指导M.北京,高等教育出版社,199713 李振声主编,电子技术基础教程M.北京,国防工业出版社,20012.元器件清单序号文字标号名称数量规格型号备注1U1单片机1AT89S522LS1蜂鸣器1GPC1407YB3U2时钟芯片1DS13024LCD液晶显示器1LCD16025R1电阻110K6C1、C2电容21047X1晶振112MHZ8C3、C4电容230P97805稳压芯片1L7805CV10NPN三极管1SS855011C5电容1470uf12 C6电容1220uf13C7电容110uf14SW1-SW7按钮7TD-03B15KEY1开关1控制电源16万用板190*1517电池盒118VCC电源15V19焊锡丝若干3.原理图4.程序代码(C语言)#include#include ds1302.h#include lcd1602.h#include lingsheng.huchar line;uchar code * data song;uchar code yin30=0xFF,0xFF,0xFB,0x90,0xFC,0x0C,0xFC,0x44,0xFC,0xAC,0xFD,0x09,0xFD,0x34,0xFD,0x82,0xFD,0xC8,0xFE,0x06,0xFE,0x22,0xFA,0X15,0XFB,0x04,0xFA,0x67,0xFE,0x85;uchar code song146=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, 0xFF;extern uchar disp14;sbit key_duishi = P00;sbit key_miao =P01;sbit key_fen = P02;sbit key_shi = P03;sbit key_ri = P04;sbit key_yue = P34;void display(void); /显示函数/void delay_50us(uint t);/延迟函数void key_init(void);/按键初始化void anjiansaomiao(void);/按键扫描void dui_shijian(uint a);/a判断是小时还是分钟uint shi,fen,miao,ri,yue,shi_jishu,fen_jishu,miao_jishu,ri_jishu,yue_jishu;uint flag_duishi,fen_bijiao,miao_bijiao;uint nian ;void delay_shengyin(uint d);void delay187ms(void);/延时函数void daling(void);/打铃函数void bijiao_shijian(void);/比较时间void main(void) flag_duishi = 1; fen_bijiao = 1; miao_bijiao = 1; lcd1602_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) daling(); bijiao_shijian(); anjiansaomiao();/按键扫描 if(flag_duishi = 0) if(key_miao = 0) while(key_miao = 0);dui_shijian(0);red_rtc();/读地址 time_pros();/把读的BCD码转化成十进制 display();/显示时间 if(key_fen = 0) while(key_fen = 0);dui_shijian(1);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) while(key_yue = 0);dui_shijian(4);red_rtc();/读地址 time_pros();/把读的BCD码转化成十进制 display();/显示时间 if(key_duishi = 0) uint i;nian = 13;i = nian/10;nian = nian%10;nian = i*16 + nian;while(key_duishi = 0);write_ds1302(0x8e,0x00);/去除写保护 write_ds1302(0x8c,nian); /更改小时 write_ds1302(0x8e,0x00);/加上写保护flag_duishi = 1; void anjiansaomiao(void)/按键扫描 if(key_duishi = 0) while(key_duishi = 0); set_rst0(); red_rtc();/读地址 time_pros();/把读的BCD码转化成十进制 display();/显示时间 flag_duishi = 0; void bijiao_shijian(void)/比较时间 miao_bijiao = disp13*10 + disp12;fen_bijiao = disp11*10 + disp10;void key_init(void) key_duishi = 1; key_fen = 1; key_shi = 1; key_ri = 1; key_yue= 1; key_miao = 1;/*void delay_50us(uint t)/延迟函数 uchar j; for(;t0;t-) for(j=19;j0;j-);*/void display(void) /显示函数 write_com(0x80);/写命令 write_date(disp1+0x30);/写数据 write_date(disp0+0x30); write_date(Y);/年(year) write_date(0x20);/ write_date(disp3+0x30);/ write_date(disp2+0x30);/ write_date(W);/周(week) write_date(0x20); write_date(disp5+0x30); write_date(disp4+0x30); write_date(M);/月(month) write_date(0x20); /空格 write_date(0x20); write_date(disp7+0x30); write_date(disp6+0x30); write_date(D);/日(day) write_com(0x80+0x40);/写命令 write_date(0x20); write_date(0x20); /空格 write_date(0x20); write_date(disp9+0x30); write_date(disp8+0x30); write_date(0x3a);/冒号 write_date(disp11+0x30); write_date(disp10+0x30); write_date(0x3a);/冒号 write_date(disp13+0x30); write_date(disp12+0x30); /delay_50us(1); void dui_shijian(uint a)/a判断是小时还是分钟,b判断是加还是减 uint i,j,k;if(a = 2)/改变小时的值 shi+; if(shi = 24) shi = 0; i = shi/10; shi_jishu = shi%10; shi_jishu = shi_jishu + i*16;/把十进制转化成16进制 write_ds1302(0x8e,0x00);/去除写保护 write_ds1302(0x84,shi_jishu); /更改小时 write_ds1302(0x8e,0x00);/加上写保护if(a = 1)/改变分钟的值 fen+; if(fen = 60) fen = 0; j = fen/10; fen_jishu = fen%10; fen_jishu = fen_jishu + j*16;/把十进制转化成16进制 write_ds1302(0x8e,0x00);/去除写保护 write_ds1302(0x82,fen_jishu); /更改小时 write_ds1302(0x8e,0x00);/加上写保护if(a = 0) /改变秒的值 miao+; if(miao = 60) miao = 0; k = miao/10; miao_jishu = miao%10; miao_jishu = miao_jishu + k*16;/把十进制转化成16进制 write_ds1302(0x8e,0x00);/去除写保护 write_ds1302(0x80,miao_jishu); /更改小时 write_ds1302(0x8e,0x00);/加上写保护if(a = 3)/改变 日 的值 ri+; if(ri = 32) ri = 0; k = ri/10; ri_jishu = ri%10; ri_jishu = ri_jishu + k*16; write_ds1302(0x8e,0x00);/去除写保护 write_ds1302(0x86,ri_jishu); /更改小时 write_ds1302(0x8e,0x00);/加上写保护if(a = 4)/改变 月 的值 yue+; if(yue = 13) yue = 0; k = yue/10; yue_jishu = yue%10; yue_jishu = yue_jishu + k*16; write_ds1302(0x8e,0x00);/去除写保护 write_ds1302(0x88,yue_jishu); /更改小时 write_ds1302(0x8e,0x00);/加上写保护 void delay_shengyin(uint d) /延时d微秒,最大延时65536微妙 while(d-); /*延时1/4拍时间即187ms*/void delay187ms(void) uchar t;for(t=0;t4; /取出音 TH0=yin2*line; TL0=yin2*line+1; TR0=1; if (yin2*line=0xFF)&(yin2*line+1=0xFF) TR0=0; for(i=k;i0;-i) delay187ms(); red_rtc();/读地址 time_pros();/把读的BCD码转化成十进制 display();/显示时间 TR0=0; j+; red_rtc();/读地址time_pros();/把读的BCD码转化成十进制display();/显示时间 void timer1(void) interrupt 1TH0=yin2*line;TL0=yin2*line+1;speaker = !speaker;5.实物图 附件毕业学位论文结构与格式规范 毕业学位论文是一种严肃的科学研究文体,其逻辑结构与写作格式必须要符合学术的规范化要求。毕业学位论文必须是作者在充分占有第一手研究资料的基础上的实证的原创性研究,综述和思考感想之类不能作为毕业学位论文。学士毕业论文字数要求10000字以上,硕士毕业论文字数要求30000字以上。一、论文的基本结构毕业论文通常由论文标题、作者署名、原创性声明、摘要、关键词、正文(包括引言、本论、结论)、鸣谢、参考文献、注释、附录等部分构成。(一)标题 标题即文章的题目,标题通常概括性地表达了文章的主题。标题的主题要明确、严谨、简练,最多不超过20个字。一篇论文只能有一个主题,一般不设副标题。(二)作者单位和署名 作者是论文的创作者,是著作权和文责自负的标志。毕业论文要求一人一题。导师指导的论文应同时标明由谁指导。单位名称要署全称(含大学名称、学院名称、专业名称),不能省写。 (三)论文内容目录 目录是为了让读者在阅读论文前,对整个文章的内容与结构有一个大概的了解和初步的印象。在封面后必须要有目录并独占一页。硕士论文和博士论文的目录要列出章、节以及一、二级观点,本科毕业论文的目录不用章节标注,只用中文序号标注到二级观点即可,目录页中要标明相应的页码。 (四)摘要 摘要就是对论文内容的概括性陈述,一般包括研究课题和撰写论文的目的、研究对象与方法、研究结果和结论等。本科论文摘要一般在200-300字,硕士论文摘要字数为800-1000字。英文摘要可以是中文摘要的翻译,也可以是意译。 (五)关键词 关键词又叫主题词,是从论文中选出的最能代表论文中心内容特征的名词和术语。关键词一般为3-5个,每词间要用空格间隔开。 (六)引言 写引言,目的在于引出论题。引言主要说明本课题的缘由、任务及预期达到的目标。有时,作者还可以把国内外同行对本课题研究情况略作回顾和展望,指出存在的问题,从而说明本课题研究的必要性和创新性。引言应写得言简意赅,一般在200-500字内。 (七)研究对象与方法 介绍纳入本研究对象或数据的来源、选择标准、原因、数量、分布;介绍研究的方法有哪些?自己作了何种改进?常见的方法有问卷调查、现场访谈、文献研究、实验研究、数学模型等。如有计量研究就应介绍所使用的统计学方法和软件。 (八)研究的结果 习惯上用表格将研究的结果表达出来,研究结果的表达一般与调查研究或实验研究的要点相对应起来,分点或分图表进行表述。在这一部分作者只需要客观地表达研究数据和结果,无需加以分析和评价。 (九)分析与讨论讨论主要是针对研究结果所进行的充分的、全面的分析和有说服力的论述,提出自己有创见性的见解。一般包括对研究结果原因的解释、与国内外同类研究结果的比较、有什么新的发现等。(十)结论结论又叫结束语,是作者对论文全文的论点作总结性的说明。一般包括本研究得出的主要观点、强调自己的新发现和重要论点、及有待进一步研究的内容或方法改进等。(十一)建议作者可就研究现象的某些问题和需要改进的方面,提出如何改进的措施和思路。这一部分并非每篇论文都需要。 (十二)鸣谢 鸣谢主要是作者对在课题研究和写作过程中给予自己具体帮助的导师和其他老师、同学、同事等公开表示谢意的文字。致谢词可以短至一句话,长可以是一篇小的短文。 (十三)参考文献参考文献应是正式出版或公开发表过的著作或文章。参考文献的排序要与论文中被引用的顺序相对应,并且论文中应该标明序号。参考文献的内容应按作者、论文或著作的题目、出版社或杂志社的城市名、出版社或杂志社的全称、出版日期、卷、期数、页码、依序排列。硕士

温馨提示

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

评论

0/150

提交评论