您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 基于AT89S52单片机的校园打铃系统设计
1引言近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。单片机技术起着不可忽视的作用并且在智能控制领域有着举足轻重的地位。本设计就是利用Atmel公司生产的单片机AT89S52芯片和AT24C02芯片(存储芯片),以及利用DS1302用作时钟芯片(具有实时显示当前时间,按设定时间用蜂鸣器报时,能修改当前时钟(闹钟)等功能)。在以单片机为核心的基础上加上其外围设备实现的小的系统——自动打铃系统。所谓的单片机小系统从系统的角度来定义就是完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。硬件设计部分分别从各个功能电路进行阐述,包括电源电路、复位电路、时钟电路、红外遥控及显示电路。软件部分分成了四个模块:初始化模块、时间显示模块、遥控按键设定模块、以及定时打铃模块。初始化模块主要是对定时计数器的方式及初值的设定。时间显示模块负责正确的显示当前时间。按键设定模块主要是对时间的校准及设定。定时打铃模块负责到时响铃功能。也就是说系统的功能是由硬件和软件两大部分共同合作完成。2第1章系统总体设计1.1设计要求设计一个校园打铃系统,使用的是24小时制。要求在掉电状态下数据不丢失,可以设置多个打铃时间点(在本系统中我利用AT24C02芯片存储使系统能够设置25组的打铃时间点),用红外线遥控按键设置同样的打铃时间,数字键输入设置内容,不只上、下键地调时。由于用的不是单片机内部的定时器,定时功能用的是外部时钟DS1302芯片,而DS1302芯片的精度取决于32768HZ晶振的精度,32768HZ晶振的精度小于0.01%,所以整个系统的精确度高于99.99%。1.2功能特点25路掉电不丢失数据的用户定时功能。采用首创的忽略定时新概念,可以设置定时某项为忽略值,再配合多路定时项目使定时的内容自由发挥,千变万化,能够适应各种的定时要求。SAA3010红外线遥控器输入控制,数字键输入数据,方便快捷。全程帮助提示和独立的帮助菜单,易学易用。数字键输入设置内容,不只上、下键地调时了。人性化软件设计,设计时考虑到许多使用细节。1.3总体设计图图1-1系统总体设计图中央处理单元AT89S52存储模块AT24C02红外接收模块打铃电路时钟模块DS1302复位电路红外发送模块时间显示模块LCD24023第2章方案的论证2.1电源模块电源模块是为系统提供电源,本设计中用到的是正5V的直流稳压电源。方案一:采用串联反馈式稳压电路获得直流稳压电源。该电路由比较放大电路、稳压管、三极管、限流电阻及两个取样电路组成,此电路由主回电路式起调整作用的BJTT与负载串联而得名的。但它的输出电源不可能绝对稳定的,只能是基本稳定,且负载电流较大时,调整管的集电极损耗大,电源效率低,有时还要配有庞大的散热装置。方案二:本设计用到的电源为5V,属于中小功率稳压电源,所以可以采用三端稳压芯片LM7805。用其设计的是线性开关,线性稳压电路,具有结构简单、调节方便、输出电压稳定性强、文波电压小等优点,但是,在负载电流较大且输出电压较低时,其自身的功耗很大。但如果给本系统供电,完全满足要求。综上所述,我选择方案二。2.2AT89S52芯片模块方案一:采用AT89C2051芯片,它具有体积小、功耗小。含有中断、定时/计数器。本次设计需要非常大的编程量,虽然其价钱相对便宜,但IO口数和存储空间相对较少,所以此芯片不利于系统的工作和系统功能的扩展。方案二:采用AT89C51芯片,它具有AT89C2051芯片的所有功能,且IO口数相对较多,价钱相对也比较便宜,但存储空间不是非常大,而本次的设计需要大量的存储空间。方案三:采用AT89S52芯片,它具有AT89C2051和AT89C51芯片的所有功能,且IO口数非常多,比AT89C2051和AT89C51多。价钱虽然比AT89C2051和AT89C51昂贵,但存储空间非常大,可以到达8K。而本次的设计正需要此容量的空间。综上所述,我选择AT89S52芯片作为本次设计的主控芯片2.3显示模块在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。方案一:采用LCD1602液晶模块,1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。方案二:采用LCD2402液晶模块,用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。由于LCD1602液晶显示模块只能显示16*2个字符,而LCD2402液晶显示模块能够显示24*2个字符,在本设计中要显示的字符比较多,综上所述,我选择LCD2402作为本设计的显示模块。2.4其他模块在通过各种的考虑后,时钟芯片我选用的是DS1302,DS1302是DALLAS公司推出的涓4流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进,行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1RES复位2I/O数据线3SCLK串行时钟时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。数据存储芯片选用的AT24C02,AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。本设计板上安装的是红外线接收器是HS0038B,可以接收所有载波为38kHz的红外信号,当然由于各个遥控器的通讯协议不同,所采用的芯片也不同,解码方式就有所不同,不管怎样,大多数遥控器都是采用38kHz频率作为载波频率的,所以,只要知道通讯协议,绝大部分遥控器是可以解码的。5第3章系统硬件设计3.1电源模块电路的设计本设计用到的电源为正5V,其主要芯片为LM7805,由于7805的输入端电压为正12V的电压,就少了整流和滤波电路,使电源电路简单化了,虽然输入的是12V的直流电压,但还有可能存在杂波等,所以在7805的输入和输出端各用了一个470UF/16V和104的滤波电容,分别滤除低频和高频干挠.经过7805之后的电压就基本保持在5V左右.具体电路图如图3.1所示.图3-1电源电路3.2单片机系统及外围电路AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。主要性能与MCS-51单片机产品兼容8K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz~33Hz三级加密程序存储器32个可编程I/O口线三个16位定时器/计数器八个中断源6全双工UART串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符3.2.1时钟脉冲电路AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器,如图3.2所示。图3-2晶振电路石英晶振(利用12MHZ晶振)C1,C2=30PF陶瓷谐振器C1,C2=40PFXTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.2.2复位电路AT89S52的复位引脚(RESET)是第9脚,当此引脚连接高电平超过2个机器周期,即可产生复位的动作。以12MHz的时钟脉冲为例,每个时钟脉冲为1μS,两个机器周期为2µS,因此,在第9脚上连接一个2μS的高电平脉冲,即可产生复位动作。最简单的就是只有一个电阻跟一个电容就可组成一个可靠复位的电路,电阻一般选择10K,电容一般选择10µF,复杂一点的就加个按键,可以进行手动复位.如图3.3所示。7图3-3复位电路3.2.3程序及数据存储器设定MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。数据存储器:AT89S52有256字节片内数据存储器。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元,MOV0A0H,#data使用间接寻址方式访问高128字节RAM。例如,下面的间接寻址方式中,R0内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV@R0,#data堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。因为一般单片机内部数据存储器只有128Byte,非常有限,而且程序存储器空间也只有4K,大一点的程序就存储不下,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个
本文标题:基于AT89S52单片机的校园打铃系统设计
链接地址:https://www.777doc.com/doc-3609271 .html