基于51单片机按时打铃系统毕业设计论文.doc
200909340945 编号学号: 本科学生毕业设计题 目:_基于单片机的智能定时打铃系统_ Design of Intelligent timing bell system based on MCU 学院名称:_物理与电子信息学院_ _专业名称:_电子信息工程专业_ _年 级:_2009级9班_ _学生:_钟德超_ _学 号:_200909340945_ _指导教师:_ 唐正明_ 职称/学历:_ 讲师/硕士_教务处 制学习文档 仅供参考目录摘要3ABSTRACT4第1章 绪论51.1 选题背景及研究意义51.2 课题设计的主要内容6第2章 系统总体设计72.1 设计要求7功能特点7第3章 方案的论证9主控芯片的选择93.2 显示模块9时钟模块的选择10第4章 系统硬件设计11硬件模介绍11单片机技术简介11系统主要芯片和元器件的介绍及应用114.1.3 DS1302 时钟模块介绍144.1.4 LCD液晶显示模块介绍164.1.5 蜂鸣器模块18单片机最小系统的设计194.2.1 时钟脉冲电路19复位电路20硬件设计总图21第5章 软件程序设计22软件程序整体设计22程序流程图22程序模块设计235.2.1 DS1302时钟显示与调节程序设计235.2.2 LCD1602显示程序设计24蜂鸣器程序设计25第6章 系统测试及分析266.1 系统测试266.2 各模块初始化现象266.2.1 时钟芯片模块26参考文献28附录A301.系统整体电路图302.系统整体PCB图31附录B 作品实物图32附录C 程序33致 谢42基于单片机的智能定时打铃系统 钟德超物理与电子信息学院电子信息工程专业2009级 指导教师:唐正明摘要 :单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。同时,单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。基于上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等方面,而51单片机是各单片机中最为典型和最有代表性的一种。本设计以AT89S52芯片为核心,利用DS1302作时钟芯片,具有实时显示当前时间,按设定时间报时,能修改当前时钟等功能。关键词: 定时打铃;DS1302时钟; LCD1602液晶显示Design of Intelligent timing bell system based on MCUZhong DechaoPhysics and Electronic Information Institute of Electronics and Information Engineering Professional 2009 Instructor: Tang ZhengmingABSTRACT: Monolithic integrated circuit , since its advent in the 1970 of the 20th century, with its extremely high performance price ratio, embraced the attention and concern, develops very broad and rapidly. At the same time, it have many advantages, such as single chip small size, light weight, strong anti-interference ability, low environmental requirements , low price, reliability, flexibility, and easily develop . Based on the above advantages, in our country, the microcontroller has been widely used in industrial automation and control, automatic detection, intelligent instruments, household electrical appliances, electric and electronic, electromechanical equipment.51 monolithic integrated circuit is a single-chip in one of the most typical and representative. AT89S52 chip at the core of the design, used for clock chip DS1302, with real time display of the current time, press the time setting the time, modify the current clock and other functions.Keyword: Timing bell; DS1302 clock; LCD1602 LCD第1章 绪论1.1 选题背景及研究意义随着现代科技的发展,管理水平的完善,具有自动提示功能的打铃器能够为企业节省人力资源,减少开支,这对做到一体化管理具有很大的帮助。而且自动打铃系统不断影响着我们的学习和生活,它已被广泛应用于各个学校中,既能实现学校的办公自动化,又便于学校的管理。用单片机控制的自动打铃器,充分发挥了体积小,价格廉价,功耗低,可靠性好等特点,而且具有可改性,将之用于学校作息,方便了广阔师生。目前自动打铃系统的研究和使用已经非常普及,之所以选这个课题就是看在它的成熟性和普遍性上。在学校生活中,每天上下课都离不开打铃器的使用,打铃器可以为上下课的学生和老师们提供时间提醒。同时,也可作为一个提醒学生们作息时间的时间表,让大家有一个时间意识,形成规律的生物钟,对自身的健康也有很大的好处的。对于那些上课精力过于集中、知识面拓展比较广的老师的拖堂现象也给了一个下课时间提醒,以免耽误学生们下一节课的上课时间。打铃器作为一个提醒人们时间的设备,自然离不开提供时间的系统,最原始的打铃器是人工根据时间通过敲钟来提醒。随着技术的发展,开始有了机械时打铃器。随着二十世纪电子技术的发展和二十一世纪半导体技术和集成电路的发展,电子技术开始渗入到各行各业,以电子表为主要基础提供时间基准的打铃器自然也是更新换代较快的,现在各种功能更多、使用更先进的打铃器层出不穷,有的还可以以音乐响铃代替传统的“呤呤”声,打铃器更多的向着智能型转变。设备的智能化离不开单片机的使用,单片机简单的说就是一款微型的电脑,包含中央处理器CUP、随机存取存储器RAM、只读存储器ROM、I/O口、串行口等部分,可以作为一个系统的主控制器,将其他部分电路整合到一起组成一个系统,为控制提供智能化。基于以上原因,本课题设计了一款基于单片机的自动打铃系统,使用简单方便、功能齐全。本次的设计重点在于实现自动打铃系统的基本功能之外,争取设计出亮点,设计出新意,这对我本身是个不小的挑战,因此对这个课题的研究不管是对于我本身还是对此项目在科技方面的发展都具有很重要的意义。随着电子行业技术的发展和电子元器件工艺的精进,电子技术开始应用于各行各业,应用电子元器件设计的智能电子时钟也开始流行起来。人们利用电子元器件和微控制器,根据使用要求可以设计出各种功能齐全、使用方便的多功能时钟,使其应用范围更广,实用价值更高。例如AT89C51,从开始的无人问津到现在的随处可见。红绿灯,记分牌,电子秒表,遥控器,电饭煲,电视等只要是电子产品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些编好的程序而己。而自动打铃系统是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化。 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。对于本课题的研究与发展来说,不管是国内或者国外都已经发展的很成熟了,毕竟相对于单片机的飞速发展来说,自动打铃系统的设计并不算什么太难,而且可以算是很基本的东西,目前市场上各种类型的自动打铃系统层出不穷,大部分的打铃系统都是基于单片机开发的,而且是结合各种设备的综合应用系统,能实现的功能更强大也更便捷,例如基于校园网的自动打铃系统,自动广播打铃系统,音乐打铃系统等等,但是基本功能都相差不大,区别在于表现的形式有所不同。不过就目前而言打铃系统的功能由单一型发展成多功能多把戏的通用型,而且核心技术不再局限于单片机,这更好的刺激了单片机行业的进步和革新,要想不被时代的脚步所抛弃就必须不断研究出新的东西,保持自身的优势。1.2 课题设计的主要内容本设计就是利用Atmel 公司生产的单片机AT89S52,芯片DS1302用作时钟芯片具有实时显示当前时间,按设定时间用蜂鸣器报时,能修改当前时钟闹钟等功能。在以单片机为核心的基础上加上其外围设备实现的小的系统自动打铃系统。所谓的单片机小系统从系统的角度来定义就是完成复杂功能的硬件和软件,并使其紧密耦合在一起的电脑系统。硬件设计部分分别从各个功能电路进行阐述,包括电源电路、复位电路、时钟电路及显示电路。软件部分分成了四个模块:初始化模块、时间显示模块、蜂鸣器模块、以及定时打铃模块。初始化模块主要是p对定时计数器的方式及初值的设定,时间显示模块负责正确的显示当前时间,按键设定模块主要是对时间的校准及设定,定时打铃模块负责到时响铃功能。也就是说系统的功能是由硬件和软件两大部分共同合作完成。第2章 系统总体设计2.1 设计要求系统设计主要包括硬件和软件两大部分,根据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,到达设计要求。硬件电路采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使设计的系统既经济又高性能。硬件电路设计包括输入射出接口设计,画出详细电路图,标出芯片的信号、器件参数值,根据电路图在仿真机上进行调试、修改,最终到达设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择C语言,进行代码设计等;最后对软件进行调试、测试,到达所需的功能要求。功能特点a、时钟功能:能显示年、月、日、时、分、秒。b、键盘功能:能校正年份、日期、时间。c、打铃功能:按指定时间打铃即播放音乐。多功能校园打铃控制系统是由微处理器单片机、键盘模块、时钟模块、复位电路、打铃电路和时间显示模块组成。本系统采用AT89S52作为中央处理单元来自动控制蜂鸣器自动响铃,控制时间显示。采用DS1302时钟芯片来为系统提供可靠的时间,尽量减少时间积累误差。时间显示模块采用LCD1602来实时显示当前的年、月、日、时、分、秒时间,系统还设有输入键盘,可以校正实时时钟。复位电路使CPU及系统各部件处于确定的初始状态,并从初态开始工作。系统总体设计图如图2.1所示。图 2.1 系统总体设计图第3章 方案的论证方案一:采用AT89C2051芯片,它具有体积小、功耗小。含有中断、定时/计数器。本次设计需要非常大的编程量,虽然其价钱相对廉价,但IO口数和存储空间相对较少,所以此芯片不利于系统的工作和系统功能的扩展。方案二:采用AT89C51芯片,它具有AT89C2051芯片的所有功能,且IO口数相对较多,价钱相对也比较廉价,但存储空间不是非常大,而本次的设计需要大量的存储空间。方案三:采用AT89S52芯片,它具有AT89C2051和AT89C51芯片的所有功能,且IO口数非常多,比AT89C2051和AT89C51多。价钱虽然比AT89C2051和AT89C51昂贵,但存储空间非常大,可以到达8K。而本次的设计正需要此容量的空间。综上所述,我选择AT89S52芯片作为本次设计的主控芯片。3.2 显示模块方案一:采用LCD1602液晶模块,1602 液晶模块内部的字符发生存储器CGROM已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比方大写的英文字母“A”的代码是01000001B41H,显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A”。方案二:采用LCD2402液晶模块,用LCD 显示一个字符时比较复杂,因为一个字符由6×8 或8×8 点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM 区的8 字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。由于LCD1602液晶显示模块只能显示16*2个字符,而LCD2402液晶显示模块能够显示24*2个字符,在本设计中要显示的字符比较多,综上所述,我选择LCD2402作为本设计的显示模块。在通过各种的考虑后,时钟芯片我选用的是DS1302, DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时 时钟芯片,附加31字节静态RAM,采用SPI 三线接口与CPU进行 同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5 5.5V 。采用双电源供电主电源和备用电源,可设置备用电源充电 方式,提供了对后背电源进行涓细电流充电的能力。DS1302用于数据记录, 特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。第4章 系统硬件设计单片机技术简介单片机又称为单片微型电脑single chip microcomputer,也称为微控制处理器或嵌入式微控制处理器。它是将电脑的部分基本组成部件做到微型化,使之集成在一块芯片上的微型电脑。其上集成了包括中央处理器CPU、片内含有随机存储器RAM、程序存储器ROM或者EOROM、并行的8位I/0口,定时器与计数器,中断控制处理器及支持总线模式等。它是工业设备控制、工业流程检测控制和智能化电器设备控制系统中应用程度最广泛的一种处理器。这种处理器的最大特点是设计开发人员可以根据自己的想法和实际需要进行开发研究,设计一个基于单片机电子设备系统,因此更加的方便,更加的灵活,成本所需更低。设计基于单片机电路系统的基本方法是在单片机的基础上扩展一些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单片机是ATLEM公司推出的一种高速、低功耗、超强抗外界干扰微型单片机处理器,其编译的指令代码和C语言源程序完全兼容传统8051单片机,其为40引脚的双列直插封装形式的8位通用微型电脑处理器,采用工业上规定的标准的C51内核处理器,在其内部的功能及其引脚排布上与现在市场上或者工业上通用的8xc51是相同,其主要功能包括对会聚主IC内部的寄存器、数据的RAM及外部接口等功能部件的初始化,支持会聚调整控制,支持会聚测试图的有效控制,可以进行红外遥控信号IR的接收解码及与电脑主板CPU的通信等。主要特性如下:工作额定电压:5V单片机3V单片机工作的频率范围:040MHz,其相当于普通8051单片机的2倍,在实际测试中,其的最高工作频率可达48MHz。32个双向I/O口,256x8bit内部RAM,复位后为:P0/P1/P2/P3是准双向口/弱上拉,P0口内部是漏极开路形式输出,当其作为总线形式扩展I/O口用时,不用加上拉电阻,但是作为普通I/O口使用时,需加上拉电阻,否则无法使用P0口作为数据传输。ISP模式在系统中可编程使用/IAP模式在应用可编程使用,无需专用程序编程器,无需专用程序仿真器,就可通过串口通信口口直接下载用户所编写的程序,只需花费很少的时间便可以下载完程序,速度十分快、效率十分高。AT89S52具有EEPROM功能,可进行掉电保护,电源有复位端口接入,具有看门狗功能,一共2个16位定时器/计数器。即定时器T0、T1和外部中断4路,下降沿中断或低电平触发电路,掉电模式可由外部中断低电平触发中断方式唤醒,通用型的异步串行口UART,还可用定时器软件实现多个UART。以下是AT89S52的引脚参数及其封装说明AT89S52引脚功能说明:VCC40引脚:电源电压+5VRST9引脚:复位输入端口。ALE/30引脚:地址锁存控制信号ALE。PSEN29引脚:外部程序存储器选通信号/VPP31引脚:访问外部程序存储器控制信号。XTAL119引脚:振荡器反相放大器和内部时钟发生电路的输入端口。XTAL218引脚:振荡器反相放大器的输入端口。AT89S52的各个引脚如图4.1所示。图 4.1 AT89S52各个引脚图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 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2的外部计数输入和输入1EX,在进行Flash的编程和程序校验期间,P1口用以接收数据的低8 位地址。P2口是一个内部自带有上拉电阻的8位双向I/O 口,即可用作输入/ 输出口的使用,也可作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。P2口的输出缓冲级可用以驱动吸收或输出电流4个TTL逻辑门电路。这里和P1口是一样,可以对其端口P2 写“1”,通过内部自带的上拉电阻把端口拉到高电平,此时可作输入口,作输入口进行输入数据或者信号使用时,因为其内部存在上拉电阻,在其某个引脚被外部输入的信号拉低时会对外输出一个电流(IIL)。因P3口的功能繁多,可用作双向数据传输和串口输入输出RxD/P3.口口,故在这里把P3口的引脚复用功能以表格形式展示出来,如表4.1所示。 表 4.1 P3口引脚复用功能引脚号复用功能RXD串行输入口TXD串行输出口外部中断0外部中断1T0定时器0的外部输入T1定时器1的外部输入外部数据存储器写选通外部数据存储器读选通4.1.3 DS1302 时钟模块介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时 时钟芯片,附加31字节静态RAM,采用SPI 三线接口与CPU进行 同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5 5.5V 。采用双电源供电主电源和备用电源,可设置备用电源充电 方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部 引脚分配如图4.1 所示。DS1302用于数据记录, 特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该 数据的时间同时记录,因此广泛应用于测量系统中。DS1302 是由DS1202改良而来增加了以下的特性 双电源管脚用于主电源和备份电源供给 Vcc1为可编程涓流充电电源 附加七个字节存储器 它广泛应用于 便携式仪器以及电池供电的仪器仪表等产品领域。Ds1302主要的性能:a. 对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。b.31 8 位暂存数据存储RAMI/O 口方式使得管脚数量最少d.宽范围工作电压 e.工作电流 2.0V 时, 小于300nA/写时钟或RAM数据时 有两种传送方式 单字节传送和多字节传送 字符组方式g.8 脚DIP 封装或可选的8 脚SOIC封装根据外表装配3 线接口TTL 兼容Vcc=5Vk.可选工业级温度范围 -40 +85DS1202兼容m在DS1202基础上增加的特性对Vcc1有可选的涓流充电能力,双电源管用于主电源和备份电源供给,备份电源管脚可由电池或大容量电容输入附加的7 字节暂存存储器。DS1302时钟模块设计电路如图4.2所示。图 4.2 DS1302时钟模块设计电路图4.1.4 LCD液晶显示模块介绍在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。 在单片机系统中应用晶液显示器作为输出器件有显示质量高、数字式接口、体积小、重量、轻、功耗低等优点。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。如果根据驱动方式来分,可以分为静态驱动Static、单纯矩阵驱动Simple Matrix和主动矩阵驱动Active Matrix三种。在本系统中我们采用的是字符型液晶显示模块,它是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图4.3所示。 图 1602字符型液晶显示器实物图LCD1602引脚功能说明:1602LCD采用标准的14脚无背光或16脚带背光接口,各引脚接口说明如表所示。表 引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极读操作时序图如图4.4所示;写操作时序图如图4.5所示;LCD1602实际应用电路如图4.6所示。图 读操作时序图 写操作时序图 4.6 LCD1602实际应用电路图4.1.5 蜂鸣器模块系统蜂鸣器的工作原理如下:当单片机端口输出高电平时,三极管B极处于高电平,三极管不导通,蜂鸣器不响。当单片机端口输出低电平时,三极管B极处于低电平,三极管导通,蜂鸣器鸣响。在本系统中如果要运用到实际中的话本来是要把单片机端口口接上继电器再控制220V。图 4.7 蜂鸣器连接图4.2.1 时钟脉冲电路AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器,晶振电路如图所示。图 晶振电路石英晶振(利用12MHZ晶振) C1,C2=30PF。陶瓷谐振器 C1,C2=40PF。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。复位电路AT89S52的复位引脚RESET是第9脚,当此引脚连接高电平超过2个机器周期,即可产生复位的动作。以12MHz的时钟脉冲为例,每个时钟脉冲为1S,两个机器周期为2µS,因此,在第9脚上连接一个2S的高电平脉冲,即可产生复位动作。最简单的就是只有一个电阻跟一个电容就可组成一个可靠复位的电路,电阻一般选择10K,电容一般选择10µF,复杂一点的就加个按键,可以进行手动复位。复位电路如图所示。图 4.9 复位电路图 4.10 硬件设计总图第5章 软件程序设计单片机校园打铃控制系统的主控程序采用循环调用显示、键盘处理程序、电铃判断子程序,控制子程序。显示子程序将最新的时、分、秒的数据在液晶上显示。在主控程序循环中主要的工作就是扫描是否有按键,假设有按键按下则应做相应的功能处理,转入相应的程序,执行相应的功能。判断子程序检查当前时间是否相等,如果相等,就执行相应程序,根据设计要求画出程序主流程图。图 5.1 程序流程图5.2.1 DS1302时钟显示与调节程序设计/*读地址中的数据*/uchar read_ds1302(uchar add)/读地址中的数据 uchar i,value; rst=0; _nop_(); sck=0; _nop_(); rst=1; _nop_(); write_ds1302_byte(add);/写单字节地址 for(i=0;i<8;i+)/读一帧数据 value=value>>1;sck=0;/开始读数据if(io=1)/if(io)value=value|0x80;sck=1; rst=0; _nop_(); sck=0; _nop_(); sck=1; io=1; return value; /*写地址和数据*/void set_rst(void)/写地址和数据 uchar i,j; for(i=0;i<7;i+) j=time_datai/10;time_datai=time_datai%10;time_datai=time_datai+j*16; write_ds1302(0x8e,0x00);/去除写保护 for(i=0;i<7;i+) write_ds1302(write_addi,time_datai); write_ds1302(0x8e,0x00);/加上写保护5.2.2 LCD1602显示程序设计/*写命令函数*/void write_com(uchar com)/写命令rs=0; /把rs拉低,写命令rw = 0;lcden=0; /把使能拉低P2=com; /把指令给P0口delay(5);lcden=1; /拉高使能端delay(5);lcden=0;/拉低使能端/*写数据函数*/void write_date(uchar date)/写数据rs=1; /把rs拉高。写数据rw = 0;lcden=0; /把使能拉低P2=date;/把数据给P0口delay(5);lcden=1; /拉高使能端delay(5);lcden=0;/拉低使能端/*初始函数*/void lcd1602_init(void)/初始化rw = 0;lcden=0;/把使能拉低write_com(0x38);/显示设置write_com(0x0c);/不显示光标write_com(0x06);/显示光标移动设置(右移)write_com(0x01); /显示器清零/* 每个音符的发声*/void timer1() interrupt 1TH0=yin2*line;TL0=yin2*line+1;speaker = !speaker; 第6章 系统测试及分析6.1 系统测试系统运行稳定,各部分模块都能够按照预期的要求正常工作,总体能够到达设计的要求。在上电状态下,LCD2402显示当前时间,内容包括日期,和具体时间,并且在每隔固定一个小时过后,蜂鸣器播放音乐模拟打铃,当按键能符合菜单按下时,屏幕能够显示菜单里说明的功能,调试结果如图6.1所示。6.2 各模块初始化现象6.2.1 时钟芯片模块当系统通电后,检测时钟芯片是否未被初始化,如是则设置1302的初始时间,所以系统刚通上电时,要是DS1302芯片工作正常,则显示屏会显示2013年1月27日时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,因为在设计板上我加了一个3V的电池,所以保证了系统在掉电时再上电后可以不要调时间了,在调试时,DS1302芯片能运行的很好,并且屏幕显示和理想中的一样。当断电后过段时间再通电时,系统显示的时间和一直通电时是保持一致的。时钟初始化如图6.2所示。 结 论我所选论文题目是“单片机自动定时打铃系统”,之所以选择这个题目,是因为我自己感觉它具有挑战性,越是自己薄弱的环节越要去尝试。在设计课题过程中,有时感觉很辛苦,有时还会产生放弃的念头,但是最终坚持了下来,出色的完成了我的毕业设计,为了自己的目标,更为了自己的选择。 开始是搜集资料时,通过各种渠道开始准备工作通过网络、图书馆搜集相关学