微控制系统原理设计报告题目:基于S08的万年历设计专业班级:自动1304学生姓名:张慢慢学号:201323020426成绩:目录摘要........................................................................11、概述......................................................................11.1课题的背景、研究意义.................................................11.2功能介绍.............................................................22、硬件电路的设计与实现......................................................22.1硬件总体设计框图.....................................................22.3主要单元电路的设计...................................................32.3.1单片机主控制模块的设计.........................................32.3.2温度测量模块...................................................42.3.3时钟电路.......................................................52.3.4复位电路.......................................................62.3.5按键电路.......................................................62.3.6时钟芯片电路...................................................72.3.7LCD显示电路...................................................83、系统的软件设计............................................................83.1系统软件设计概述.....................................................93.2S08和DS12C887之间数据传输.........................................103.3LCD显示程序设计....................................................133.4温度测量模块程序设计................................................133.5按键程序设计........................................................144、系统的软件调试...........................................................154.1CodeWarrior简介....................................................154.2程序调试............................................................16总结.......................................................................18参考文献....................................................................18附录.......................................................................19附录A主程序..........................................................19附录B温度测量程序....................................................20附录CLCD显示程序.....................................................24附录CDS12C887程序....................................................26附录D按键程序........................................................29附录E整体电路图......................................................331摘要电子万年历是一种非常广泛日常计时工具,在现代社会越来越流行。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。用单片机来控制的小型家电产品具有便携实用,操作简单的特点。当今的电子万年历不仅可以显示年、月、日、时、分、秒、星期,有些万年历还可以显示当时当地的温度,附带功能还包括整点闹铃、定时闹铃等。安全性也越来越能得到保障,部分电子万年历具有防爆、防震、防火、防水的特性。显示屏的选择也更加丰富,可以选择LED显示或LCD显示。本文设计的电子万年历属于小型智能家用电子产品。利用MC9S08AW60单片机进行控制,实时时钟芯片采用DS12C887,外加掉电存储电路、显示电路和18B20温度测量电路,可实现时间的调整、显示以及温度的显示。关键词:MC9S08AW60DS12C887时钟芯片万年历1、概述1.1课题的背景、研究意义现市场的电子钟具有低功耗的实时时钟电路,它们可以对年、月、日、周日、时、分、秒进行计时,还具有润年补偿等功能,且使用寿命长、误差小、使用方便。电子万年历的出现给人们的生活带来的诸多方便。目前,国际上的电子万年历正从模拟式向数字式、由集成化向智能化的方向飞速发展。综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低2廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1.2功能介绍本次设计主要用单片机控制程序让它在液晶上显示年、月、日、时、分、秒及星期。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所有计数器清零。还有温度测量的设计,通过温度测量电路测得温度经过单片机处理显示在液晶显示屏上,设计采用的是年、月、日和时、分、秒、星期和当时温度同时显示,另外本次设计还具有闹钟的功能。2、硬件电路的设计与实现2.1硬件总体设计框图此设计在液晶上显示年、月、日、时、分、秒及星期,其原理框图如下图所示,电路一般包括以下几个部分:单片机模块、时钟模块、键盘模块及显示模块、测温模块、、闹钟模块、电源模块。主控芯片采用飞思卡尔的MC9S08AW60单片机,时钟芯片采用DS12C887。S08AW微处理器最小系统DS18B20温度测量DS12C887时钟芯片电源模块LCD显示蜂鸣器闹钟按键设置32.2硬件系统概述本电路是由MC9S08AW60单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS12C887提供,它是一种高性能、低功耗、带RAM的实时时钟电路,可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿,自带晶体振荡器和锂电池,在没有外部电源的情况下可工作10年。工作电压为3.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,;温B度的采集由DS18B20构成;显示部份由LCD1602个液晶屏组成。测温模块由DS18B02组成。键盘模块用来校准日期和时间,还可以进行定时。2.3主要单元电路的设计2.3.1单片机主控制模块的设计本设计的主控芯片采用飞思卡尔的MC9S08AW60单片机,其是低成本、高性能8位微处理器S08家族中的成员。Freescale的S08系列8位MCU由于其稳定性高、开发周期短、成本低、型号多样、兼容性好而被广泛应用。MCU的最小系统是指可以使内部程序运行所必需的外围电路。一般情况下,MCU的硬件最小系统由BDM下载器接口、晶振及复位等电路组成。如图一所示。4图一MCU硬件最小系统电路图2.3.2温度测量模块根据DS18B20中文资料典型测温电路,设计电路如下:图二温度测量模块(1)GND为电源地;(2)DQ为数字信号输入/输出端;(3)VDD为外接供电电源输入端;DS18B20与S08通信分析:当程序运行时,首先将DS18B20初始化,设置好要求的初始值,再调用温度读取子程序读取温度测量值,当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单5线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。DS18B20暂存寄存器分布寄存器内容字节地址温度值低位0温度值高位1高温限值TH2低温限值TL3配置寄存器4保留5保留6保留7CRC检验8。温度数据的计算处理方法:从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。因为DS18B20的转换精度为9~12位可选项的,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.625,就是实际的二进制温度值。一个十进制值和二进制值之间有很明显的关系,就是把二进制的高字节的低半字节和低字节的低半字节化成十进制后,就是温度值的小数部分。小数部分因为是半个字节,所以二进制值范围是0~F,转换成十进制小数值就是0。0625的倍数(0~15)。采用1位显示小数,可以精确到0.1℃。2.3.3时钟电路S08AW的时钟信号外部震荡接外部晶振,其电路图如图二所示。电容器C1、C2起稳定震荡频率、快速起振的作用,电容值一般为5-30pF,晶振通常选用6MHZ、12MHZ、24MHZ。内部震荡方式所得的时钟信号比较稳定。图三时钟振荡电路62.3.4复位电路复位操作是为了完成S08AW内部电路的初始化,使S08AW从一种确定的状态开始运行。当S08AW的复位引脚RST出现2个机器周期以上,S08AW就完成了复位操作。如果RST持续为高电平,S08AW就处于循环复位状态。复位通常有2种基本形式:上电复位和开关复位。上电复位要求要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在S08AW运行期间,用按钮开关操作使S08AW复位。本次采用的是常用的上电且开关复位电路,如图四所示图四复位电路上电后,由于电容充电,使RST持续一段高电平时间。当S08AW已在运行之中时,按下复位键也能使RST持续一