引言
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。单片机技术起着不可忽视的作用并且在智能控制领域有着举足轻重的地位。本设计就是利用Atmel 公司生产的单片机AT89S52芯片和AT24C02芯片(存储芯片),以及利用DS1302用作时钟芯片(具有实时显示当前时间,按设定时间用蜂鸣器报时,能修改当前时钟(闹钟)等功能)。在以单片机为核心的基础上加上其外围设备实现的小的系统——自动打铃系统。所谓的单片机小系统从系统的角度来定义就是完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。硬件设计部分分别从各个功能电路进行阐述,包括电源电路、复位电路、时钟电路、红外遥控及显示电路。软件部分分成了四个模块:初始化模块、时间显示模块、遥控按键设定模块、以及定时打铃模块。初始化模块主要是对定时计数器的方式及初值的设定。时间显示模块负责正确的显示当前时间。按键设定模块主要是对时间的校准及设定。定时打铃模块负责到时响铃功能。也就是说系统的功能是由硬件和软件两大部分共同合作完成。
1
第1章 系统总体设计
1.1 作息时间控制钟系统概述
设计一个校园打铃系统,使用的是24小时制。要求在掉电状态下数据不丢失,可以设置多个打铃时间点(在本系统中我利用AT24C02芯片存储使系统能够设置25组的打铃时间点),用红外线遥控按键设置同样的打铃时间,数字键输入设置内容,不只上、下键地调时。由于用的不是单片机内部的定时器,定时功能用的是外部时钟DS1302芯片,而DS1302芯片的精度取决于32768HZ晶振的精度,32768HZ晶振的精度小于0.01%,所以整个系统的精确度高于99.99%。
1.2 功能特点
25路掉电不丢失数据的用户定时功能。采用首创的忽略定时新概念,可以设置定时某项为忽略值,再配合多路定时项目使定时的内容自由发挥,千变万化,能够适应各种的定时要求。SAA3010红外线遥控器输入控制,数字键输入数据,方便快捷。全程帮助提示和独立的帮助菜单,易学易用。数字键输入设置内容,不只上、下键地调时了。人性化软件设计,设计时考虑到许多使用细节。
1.3 总体设计图
时钟模块 DS1302 复位电路 存储模块 AT24C02 中央处理单元 AT89S52 时间显示模块 LCD2402 红外发送模块 红外接收模块 打铃电路
图1-1 系统总体设计图
2
第2章 方案的论证
2.1 电源模块
电源模块是为系统提供电源,本设计中用到的是正5V的直流稳压电源。 方案一:采用串联反馈式稳压电路获得直流稳压电源。该电路由比较放大电路、稳压管、三极管、限流电阻及两个取样电路组成,此电路由主回电路式起调整作用的BJTT与负载串联而得名的。但它的输出电源不可能绝对稳定的,只能是基本稳定,且负载电流较大时,调
整管的集电极损耗大,电源效率低,有时还要配有庞大的散热装置。
方案二:本设计用到的电源为5V,属于中小功率稳压电源,所以可以采用三端稳压芯片LM7805。用其设计的是线性开关,线性稳压电路,具有结构简单、调节方便、输出电压稳定性强、文波电压小等优点,但是,在负载电流较大且输出电压较低时,其自身的功耗很
大。但如果给本系统供电,完全满足要求。综上所述,我选择方案二。
2.2 AT89S52芯片模块
方案一:采用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 公司推出的涓
3
流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进,行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。
数据存储芯片选用的AT24C02,AT24C02 是美国ATMEL公司的低功耗CMOS 串行EEPROM,它是
内含256×8 位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000 次)、写入速度快(小于10ms)等特点。
本设计板上安装的是红外线接收器是HS0038B,可以接收所有载波为38kHz 的红外信号,当然由于各个遥控器的通讯协议不同,所采用的芯片也不同,解码方式就有所不同,不管怎样,大多数遥控器都是采用38kHz 频率作为载波频率的,所以,只要知道通讯协议,绝大部分遥控器是可以解码的。
4
第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位定时器/计数器 ??八个中断源
5