【文本】
题目:电子万年历设计报告 课程名称 微控制器课程设计 物理与光电工程学院 专业09班 电子科学与技术5班 学号 3109008790 姓名 王周英 联系方式 陈国定老师 2011年12月12日 电子万年历设计报告 1)设计题目:电子万年历设计 2)设计任务及要求 1、显示年、月、日、时、分、秒、周信息。 2、具有可调日期时间功能。 3、增加闰年计算功能。 4、实现语音报时。 3)原理电路及程序设计: (1)方案比较; 1:控制MCU 方案一:STM8,STM公司推出的新型MCU。
性能高,外设资源丰富,具有12位AD、12位DA、脉宽调制PWM、最大机器周期16MHz等。而且其功耗很小,价格便宜,性价比高非常高。 缺点是只能用官方开发的SLink下载器下载,价格比较昂贵,普通学习者无法使用。 方案2:AT89S52,AT的51单片机。 优点是支持ISP在线下载; 缺点是价格比较高。 方案三:STC89C52,宏晶的51系列单片机,价格便宜,国内用户较多。 支持串口下载,使用非常方便,并且具有很大的价格优势。 缺点是只支持串口下载,不支持在线下载,使用起来可能有些不方便。 由于本设计对控制芯片要求不高,因此选择方案三。 2:时钟模块方案一:利用单片机的定时器产生1S时基信号。
然后用一个程序实现时钟的时、分、秒,用一个程序生成年、月、日。 该方案的优点是减少外围芯片的使用; 缺点是采用单片机模拟时钟,增加了编程量,且采用定时器产生时基信号,精度较低。 方案2:使用时钟芯片DS12C887。 优点是8位数据线并行控制,控制简单; 它内置锂电池,当外部电源丢失时,其内部时间信息可保持10年。 缺点是并行控制占用太多IO口,而且价格很高,不适合一般电子生产。 方案3:使用时钟芯片DS1302。 优点是同步串行通信,仅使用3个IO口,占用单片机资源最少; 其内部功能非常强大。 更重要的是,它价格便宜,非常划算。 缺点是串行通信和控制比较复杂。 综上,选择本设计方案三。 三:语音报时模块方案一:使用语音芯片BLA902。
优点是录音容量大,最大支持1GB MP3格式语音数据,支持FAT文件格式,音质好,32KHz采样,内置功放。 缺点是价格较高,需要自己进行语音合成,使用不方便。 方案2:使用专用OTP时钟语音芯片NY3P035AP8。 OTP时钟和语音芯片是专为时钟和语音电路设计的。 内置32段语音数据,包括各种时钟报时语音,并内置功放。 更重要的是,它价格低廉,由单根信号线控制,使用方便。 综上,选择本设计方案2。 (二)系统框图; (3)单元电路设计; 1、单片机最小系统控制芯片采用STC89C52,控制部分最小系统如下图所示。 主控芯片采用STC89C52,最小系统包括晶振电路、复位电路、下载接口。
2、时钟芯片模块 时钟芯片采用DS1302。 该模块的电路原理图如下。 时钟电路采用ds1302芯片。 DS1302是美国DALLAS公司推出的高性能、低功耗带RAM实时时钟电路。 它可以计时年、月、日、星期日、时、分、秒。 ,具有闰年补偿功能,工作电压2.5V~5.5V。 采用三线接口与CPU同步通信,可一次突发传输多个字节的时钟信号或RAM数据。 工作电压更适合单片机的输入电压。 以上是对其一些基本应用的介绍。 下面是其引脚的描述。 下面是DS1302的时钟寄存器。 我们要读取的时间数据是从下面的数据寄存器中读取的。 当我们想要调整时间时,
只需将时间数据写入相应的寄存器即可。 DS1302和单片机之间的连接非常简单。 只需要一根复位线、一根时钟线和一根数据线。 同时还需要外接32.768KHz晶振来提供时钟源。 可以在晶振两端接一个6PF左右的电容,以提高晶振的精度。 同时,8脚可连接3.6V充电电池,系统正常运行时可对电池进行涓流充电。 当系统断电时,DS1302 使用该电池提供的能量继续运行。 3、时钟语音芯片 本电路采用久奇科技的NY3P035AP8。 一次性烧录OTP语音IC,只需在VDD和GND之间加一颗104(0.1UF)电容即可。 语音芯片通过微控制器接口进行控制。 工作原理图:
您只需将对应语音的段选脉冲信号发送到语音芯片即可编排所需的语音。 本设计中,通过单片机发送的脉冲来控制芯片,可以任意组合以上数字,实现语音播报时间、周、年、月、日等。例如:今天是2012年12月21日,当前时间是 0:00:00。 4、液晶显示模块 显示模块采用LCD 12864,电路原理图如下。 显示模块采用12864。低供电电压(VDD:+3.0+5.5V)。 显示分辨率:12864点。 内置汉字库,提供8192个1616点阵汉字(简体、繁体可选)。 内置128×168点阵字符。 在12864的2脚和3脚连接一个10k可调电阻,通过调节可调电阻的阻值来调节12864的对比度。 使用单片机写入指令并向12864写入数据。
完成12864的显示操作。 5、温度传感器通过1820读取数据,将读取的数据转换成十进制,然后发送到12864进行显示。 工作原理介绍: DS18B20是一款单总线数字温度传感器。 其与微控制器的接口仅需要一根数据线。 当然,简单的接线意味着软件处理可能会麻烦一些。 我们来看看它的优点和它的美照吧。 外观与我们常用的三极管没有什么区别。 DS18B20的内部存储器分为以下部分: ROM:存储器件的代码。 前8位是单行系列代码(DS18B20的代码是19H),后48位是芯片的唯一序列号。 它在发布时就已设置,用户无法更改。 最后8位是上面的56位CRC码。 RAM:DS18B20内部临时寄存器共有9个字节。
第一和第二字节存储转换后的温度值。 第二和第三字节分别存储高温和低温报警值。 (可以使用RAM指令将其复制到EEPROM)第四个字节是配置寄存器。 第 5 至 7 个字节被保留。 第9个字节是前8个字节的CRC码。 DS18B20的温度存储如上图所示。 S 位是符号位。 当温度值为负时,S=1,否则S=0。 我们将获得的温度数据乘以相应的分辨率即可得到转换后的温度值。 DS18B20的通讯协议:在对DS18B20进行编程读写时,必须严格保证读写的时序。 否则,将无法读取温度测量结果。 根据DS18B20的通信协议,主机必须经过三个步骤来控制DS18B20完成温度转换: DS18B20在每次读写之前必须复位。
复位成功后,发送ROM命令,最后发送RAM命令。 这样就可以进行DS18B20的定时操作了。 复位需要主机拉低数据线500us,然后释放。 DS18B20收到信号后,等待16~160us,然后发出60~240us的低脉冲。 主机收到此信号表明复位成功。 上图是DS18B20的复位时序图。 下面是读操作的时序图。 这是写操作的时序图(4)电路工作原理; 该电路包括基本时钟电路模块、液晶显示模块、语音报时模块、温度传感器模块。 各功能模块通过控制芯片连接,完成设计要求。 该电路实现的基本功能是电子万年历。 通过液晶LCD12864,可以显示年、月、日、时、分、秒、星期等基本信息。
增强功能是时钟语音报时功能。 即每隔整点,系统会自动报时,时间信息包括日期和时间。 它还具有显示环境温度的功能。 具体工作流程如下: 主程序:LCD显示按键扫描,每三秒读取一次温度并启用ds1302。 初始化 LCD 和定时器 Ds18b20 子程序:提取百位、十位、个位以及读取的小数点后的数字并将其转换为整数,写入数据到 ds1820,跳过 rom,读取数据,复位并初始化 Ds1302 子程序:Dnum=?Dnum = ?发送到12684并显示 1: 小时减一 2: 分钟减一 3: 秒减一 4: 年减一 5: 月减一 6: 日减一 7: 周减一 计算要显示的数据 1:时加一 2:分加一 3:秒加一 4:年加一 5:月加一 6:日加一 7:周加一 Flag=1? 初始化并设置LCD光标的显示和关闭。
判断是否忙的功能完成并显示12864LCD子程序:初始化LCD设置,调用其他子程序的值,第四行显示状态信息,第三行显示温度,第二行显示时间和日期星期几,第一行显示日期和闰年计时 定时器设置子程序:设置每 3 秒调整一次的时间周期,累计调用 设置每 0.5 秒调整一次的时间周期,累计调用并设置工作在定时器0工作模式1TMOD=0x01; 打开总中断 在年份显示中设置闰年判断语句: //判断闰年,leap=1表示闰年leap=(nian%4==0&
&nian0!=0)||(nian%400==0)?1:0;//自动整点报时 if((fen1==0&&fen2==0&&miao1==0&&miao2==0)&&kaiguan==1)(5 ) 组件列表。 序列号 型号 序列号 型号 OTP 语音芯片 NY3P035AP81 温度传感器 DS18201 晶振 12Mhz1 电阻 10k5 时钟晶振 32.768k1 开关 5 陶瓷电容 30pf10422 时钟芯片 DS13021 电阻 10k1 液晶显示屏 128641 电源插座 5.
4mm1排针,几个自锁开关1单片机芯片Stc89c5214)电路及程序调试过程及结果: 本设计已经完成了设计任务的全部要求。 单片机采用STC89C52,编译环境为keil,程序采用C语音编写。 电路设计采用proteus仿真软件进行仿真和调试,并在AltiumDesigner上设计原理图并绘制PCB图。 设计和硬件制作都比较顺利,PCB板很快就完成了。 接下来主要是调试程序。 程序调试的难点在于设计中功能模块过多,程序结构相对复杂,导致调试耗时。 调试结果: 1、完成设计任务1的要求:显示年、月、日、时、分、秒、周信息。 2、完成设计任务要求2:具有可调整日期和时间的功能。
3、完成设计任务要求3:闰年计算功能,液晶显示平年和闰年。 4、完成设计任务需求4:实现语音报时。 5.新增功能:实时显示环境温度。 5)总结本次课程设计,我们组四人分工合作。 从最初的选题,到确定方案、采购零部件,再到最终的设计和调试,我们的团队成员一起研究和讨论。 经过这次设计,我们四人收获很大,对单片机编程控制有了更多的了解。 本设计涉及单片机的时序控制。 数据接口包括并行数据接口和串行通信接口。 它还使用了控制按钮、环境信息检测、数据显示处理等。本设计基本上涉及了单片机的所有控制功能模块。 因此,通过这样的设计,我们可以完全掌握单片机的所有基本控制。 这也是我们课题组选择这个课题的一个重要原因。