常熟理工电气与自动化工程学院课程设计
控制端口定义: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字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
3.3软件设计
(1)功能分析
根据课题要求,软件应该能实现以下功能: 1)驱动LCD1602显示.
- 9 -
常熟理工电气与自动化工程学院课程设计
2)从DS12C887中读取时间数据,并写入调时信息和闹钟信息. 3)扫描键盘,实现人机交互,满足用户调时、定闹的需求. 4)实现控制器与DS18B20单总线接口,读取温度信息. (2)设计流程
本课题所有程序均由C语言编写.开发环境为keil uvision4. 1)主程序设计
主程序流程图如图所示
图3.1主程序流程图
- 10 -
常熟理工电气与自动化工程学院课程设计
主程序作用是当系统上电后,首先对系统进行初始化(包括MCU的串行通信设置和LCD的初始化)然后读取时间信息和温度信息,检查是否需要更新时间缓冲存储区,如果系统处于正常显示模式,则更新时间缓存区,并同步显示,若系统处于调整时间模式下,则停止对时间缓冲区的更新,显示时间与时间缓存区同步,当退出调时模式时,更新到DS12C887的时标寄存器中.主程序还负责检测当前时间是否为整点或等于设定报时时间,在整点或定时时间调用报时函数,实现整点报时和定时。
2)DS12CR887接口程序.
DS12CR887与控制器通过总线连接,主控器采取读写外部存储器的方法读取时间信息和写入调时和定时信息.DS12CR887的时标寄存器地址为0-13字节,具体分布如图所示.
图3.14 DS12CR887存储器结构
其中10-13字节分别为寄存器A-D.其中寄存器C、D为只读. 寄存器A机构如图所示:
表3.5 DS12CR887寄存器A结构
UIP为更新标志位,标志芯片是否即将进行更新.当UIP为1时,表明更新即将开始;为0时,表示在至少244μs内芯片不会进行更新,此时可以通过读写相应字节获取时间信息和设置信息.UIP位为只读位且不受复位信号影响,通过把B寄存器中的SET位置1将UIP位清零并禁止时间更新.DV0-DV2用来开关晶体振荡器和复位分频器,本课题中不需设置.RS0-RS3用于控制分频器输出,设置成不同的值可以在SQW引脚得到不同的分频输出或得到周期性的中断(通过控制寄存器B实
- 11 -
常熟理工电气与自动化工程学院课程设计
现).由于本设计不涉及,具体设置值与对应频率请参考DS12C887技术文档,不在列举.
寄存器B结构如图所示.
表3.6 DS12CR887寄存器B结构
当SET位为0时,时间正常更新;当SET位置1时,停止更新,此时,MUC可以对DS12C887进行初始化,该位不受复位信号影响.PIE位为周期性中断使能位,该位为1时,周期性中断使能;为0时禁止中断.本课题中此位置0.AIE位为闹钟中断使能位本课题中由于没有使用中断,该位置0.UIE为更新完成中断使能位,本设计中不考虑.SQWE为方波使能信号,本设计不予处理.DM位为数据格式选择位,置1时时间数据以二进制格式存放,清0后,数据以BCD码格式存放.24/12位为时间格式设置位,该位为1时,时间为24小时格式,为0时,时间为12小时格式,该位不受复位信号影响.DSE为夏令时使能位,本设计不予考虑 寄存器C结构如图所示.
表3.7 DS12CR887寄存器C结构
其中4个有效位均为中断标志,本设计不予考虑,但当初始化完成并禁止中断时,应将该寄存器读取清0. 寄存器D结构如图所示
表3.8 DS12CR887寄存器D结构
VRT位指示片内锂电池状态,当为0时,说明内部锂电池耗尽,不能保证内部RAM中数据和时间数据的正确性.该位只读. 3)DS18B20接口程序设计.
DS18B20设置寄存器结构如图3.9所示
- 12 -

