.常熟理工学院电气与自动化工程学院《单片机设计与应用》课程设计题目: 51单片机多功能电子时钟姓名:邓才明学号: 040111102班级: 1601112指导教师:起止日期:51单片机多功能电子时钟邓才明常熟理工电气与自动化工程学院,20130922摘要:本设计开发了一款具有日期、时间、星期和气温同步显示功能的电子时钟,并且能设置闹钟、转换农历、显示相关节日.工作原理是主控MCU(AT89C52)读取实时时钟芯片DS12CR887,获取时间信息,由全数字单总线结构温度传感器DS18B20读取温度信息,经MCU处理,送LCD12864显示;利用三线串口控制语音模块WT-588D-20SS可定时读出时间和响应闹铃。
关键字: DS12CR887 DS18B20 WT-588D-20SS 128641.方案比较与论证当下,日历芯片很多,万年历实现方案很多,我们根据自己实际情况,提出如下方案.1.1时间部分:方案一、利用单片机内部定时器产生秒信号,通过软件处理得到时间信息,送LCD 显示.方案二、利用通用串行实时时钟芯片DS1302产生时间信息,利用MCU读取时间信息,送LCD 显示.方案三、通过实时时钟芯片DS12CR887,获取时间信息,经MCU处理,送LCD显示.方案一电路结构简单,可控性强,但断电后时间数据完全消失,再次上电后需重新设定,且由于电路本身缺陷和附加干扰较多,时间误差较大.方案二电路结构简单,时间精度较高,由于使用串行数据传输,节省MCU资源,但DS1302无内置电池,掉电后,数据丢失,重新上电后需对时.方案三采用实时时钟芯片DS12CR887,其内部具有内置锂电池,在掉电的情况下可以正常工作10年以上,且带有非易失性RAM,可以保证在掉电的情况下,用户的定时信息不会丢失;带有温度补偿,保证时间数据的准确.经过综合考虑,我们认为方案三满足设计需求.1.2温度部分由于只是测量气温,用数字温度传感器单总线结构DS18B20即可满足要求,该器件采用单总线结构,且数字传输,可以与CPU直接接口,电路结构简便,可靠性好.1.3主控部分选用单片微控制器AT89C52作为主控.系统方案方框图如图2.1所示图1.1 系统方案2.方案实现2.1器件简介(1)AT89C52AT89C52是ATMEL公司生产的通用低功耗8位CMOS微控器,具有8051内核和8KB的可编程Flash程序存储空间以及256字节RAM.有32个通用IO口线和全双工串口,两个数据指针、两个16位可编程计数器/定时器、8个2级优先级中断源,具有片内时钟电路,通过简单的外接器件即可实现时钟电路.(2)DS12CR887引脚结构及其功能如图3.1.图2.1 DS12CR887引脚结构AD0-AD7:地址/数据总线NC :空脚MOT :总线模式选择CS :片选信号AS :地址锁存信号R/W :写信号(intel总线模式下)DS :读信号(intel总线模式下)RESET :复位信号IRQ : 中断请求输岀VCC :+5V电源GND :电源地DS12CR887是美国DALLAS半导体公司生产的实时时钟芯片.采用24 引脚双列直插式的封装形式.芯片的晶体振荡器、振荡电路、充电电路和可充电锂电池等一起封装在芯片内部,组成一个加厚的集成电路模块.电路通电时,其内部充电电路便自动对其内部电池充电.可保证时钟数据10 年内不会丢失.DS12C887内部设有方便的接口电路,接口设计简便,使其与各种微处理器的接口大大简化.使用时无需外围电路元件,通过对MOT引脚的电平控制,可以实现与不同的计算机总线连接.DS12C887 能够自动存取并更新当前的时间,CPU 可通过读取DS12CR887 的内部时标寄存器得到当前的时间和日历,也可通过选择二进制码或BCD 码初始化芯片的10 个时标寄存器.其中114 字节的非易失性静态RAM 可供用户使用,可以在控制器掉电的情况下,保存一些重要的数据.DS12C887 的4 个状态寄存器用来控制和指出DS12CR887 模块当前的工作状态,除数据更新周期外,程序可随时读写这4 个寄存器.其内部结构如下图3.2.图2.2 DS12CR887内部结构(3)DS18B20DS18B20是美国DALLAS半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-B0ARD)专利技术.全部传感元件及转换电路仅集成在形如三极管的一个集成电路内.DS18B20采用单总线接口方式,与微处理器连接时仅需要一条总线即可实现微处理器与DS18B20的双向通讯;支持多点组网功能,多个DS18B20可以并联在一条总线上,即可实现多点测温;在使用中不需要任何外围元件.测温范围为-55℃~+125℃,结果以9位数字量方式串行传送.DS18B20测温原理如图3.3所示.图2.3 DS18B20内部结构图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1.高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入.计数器1和温度寄存器被预置在-55℃所对应的一个基数值.计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1 ,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶体振荡器产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度.其内部带有非线性修正,确保温度数据的准确性.DS18B20的测温分辨率为0.5℃以9位数据格式表示,其中最低有效位(LSB)由比较器进行0.25℃比较,当计数器1中的余值转化成温度后低于0.25℃时,清除温度寄存器的最低位(LSB),当计数器1中的余值转化成温度后高于0.25℃,置位温度寄存器的最低位(LSB),DS18B20温度数据格式如表3.1所示.表2.1 DS18B20温度数据格式DS18B20采用12位二进制数据表示温度,分成两个字节,低字节低四位为小数位,低字节高四位和高字节低四位组成温度信息的8位整数位,其中第一位为符号位,为0表示温度为正值,为1表示温度为负值.当温度为负值时,数据采用补码存放.高字节高四位无效,与符号位保持一致.温度与数据对应关系如表3.2所示.表2.2 部分温度对应数据(4)WT588D-20SSWT588D 语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。
WT588D 让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。
配套 WT588D VoiceChip 上位机操作软件可随意更换 WT588D语音单片机芯片的任何一种控制模式,把信息下载到 SPI-Flash 上即可。
软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。
完全支持在线下载,即便是 WT588D 通电的情况下,一样可以通过下载器给关联的 SPI-Flash 下载信息,给 WT588D。
语音芯片电路复位一下,就能更新到刚下载进来的控制模式。
支持插入静音模式,插入静音不占用 SPI-Flash 内存的容量,一个地址位可插入 10ms~25min 的静音。
三线串口控制模式和三线串口控制控制端口扩展输出模式之间可通过发码切换,三线串口控制模式下,能控制语音播放、停止、循环播放和音量大小,或者直接触发 0~219 地址位的任意语音,三线串口控制控制端口扩展输出可以扩展输出8 位,在两种模式下切换,能让上一个模式的最后一种状态保持着进入下一个模式。
图2.4 WT588D-20SS引脚2.2硬件电路设计(1)电源部分LM2596开关电源芯片是降压型电源管理单片集成电路,能够输出3A的驱动电流,同时具有很好的线性和负载调节特性。
固定输出版本有 3.3V、5V、12V,可调版本可以输出小于37V的各种电压。
图2.5-LM2596转电压源+5V(2)AT89C52最小系统电路图2.6AT89C52单片机最小系统电路由震荡电路,复位电路和单片机构成最小系统.震荡电路为单片机提供工作时钟,由石英晶体和补偿电容构成.由于语音部分需要1200bps波特率,石英晶体选取11.0592MHz,保证波特率零误差,补偿电容选取30pF瓷片电容.复位电路在上电时为单片机提供复位信号,由10uF电容和10K电阻构成的RC充电电路构成,当系统复位上电瞬间,电源通过电阻R为电容充电,在电阻上得到下降的指数充电电压,由高电平经过一段时间到达低电平,提供单片机需要的高脉冲复位信号.电源部分电容为去耦电容.EA拉高,MCU上电后,从内部程序存储器开始执行.(3)DS12CR887与AT89C52接口电路设计.图2.7DS12CR887与AT89C52接口电路DS12C887的AD0-AD7为地址\数据复用总线,与控制器地址\数据总线(P0口)直接连接,R2为上拉电阻;MOT为总线模式选择引脚,接地选择INTEL总线连接方式;R/W在INTEL总线模式下位写使能,接控制器读信号WR(P3.6)端;DS在INTEL 总线模式下为读使能信号,接控制器读信号RD(P3.6)端;AS为地址锁存,接控制器地址锁存信号ALE(30脚)端;RST接电源拉高,片选CS直接接地使能。
(4) WT588D-20SS与AT89C52接口电路设计图2.8 WT588D-20SS与AT89C52接口电路软件设置:三线串口控制模式。
控制端口定义:P01为DATA,P02为CS,P03为CLK。
由MCU发送信息对WT588D进行控制。
BUSY输出:P17为BUSY忙信号输出端,可从上位机软件端设置为播放状态输出为高电平或低电平。
高电平时电压接近VDD供电电压。
用于接发光二极管做放音状态指示或忙信号判断。
供电电压:VDD=DC2.8~5.5V,VCC=DC2.8~3.6V。
采用DC3.3V供电时,可以直接短接VDD跟VCC,采用DC5V供电时,VDD端接5V,VCC端需要从VDD端串接两个二极管以提供工作电压。
VDD1为MCU工作电压。
如果VDD1跟VDD存在压差,需要在MCU跟WT588D-20SS的通信线DATA、CS、CLK上串接电阻。
音频输出:PWM输出方式,直接接扬声器。
此种输出方式下,PWM+、PWM-均不能短接到地或者接电阻电容到地。
(4) LCD12864与AT89C52接口电路设计图2.9 LCD12864与AT89C52接口电路带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。