1、基于单片机的多功能电子钟课程设计毕业设计论文南 昌 工 程 学 院课 程 设 计(论 文)机械与电气工程学院 系(院) 自动化 专业论 文 题 目 基于单片机的多功能电子钟 班 级 07自 动 化 完成日期 2011年 01月 07 日课程设计(论文)任务书I、课程设计(论文)题目:多功能数字电子钟II、课程设计(论文)使用的原始资料(数据)及设计技术要求:基本要求:1、电子钟具有显示年、月、日、时、分、秒功能。2、能借助键盘设置日期、时间及闹钟等信息。3、闹钟蜂鸣时,可通过手动按键消除蜂鸣。附加要求(下面要求,满足其一即可):1、实时温度显示,测温范围:-4050误差小于0.5。2、闹钟设置
2、的信息能够自动保存(掉电保护)。III、课 程 设计(论文)工作内容及完成时间:设计一个多功能数字电子钟。 1、12月27至29日查找资料,方案对比。2、12月30日至31日完成多功能电子钟系统总体设计,并绘制出原理图。3、1月1日至1月5日给出流程图,编写并调试程序。4、1月6日至1月7日撰写设计报告。 主 要参考资料:1、陈梓城实用电子电路设计与调试中国电力出版社20062、曹薇单片机原理及应用 中国实力水电出版社 2004.83、高吉祥全国大学生电子设计大赛培训教程电子工业出版社2007.54、DS12887 DATASHEET 5、DS18B20 DATASHEET 机械与电气工程学院
3、 07自动化 专业类 班学生:方结云 日期: 自2010 年 12 月 27 日至2011 年 1 月 7 日指导教师:于祯助理指导教师(并指出所负责的部分): 教研室主任:附注:任务书应该附在已完成的课程设计说明书首页。第一章 前言单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(Microcon
4、troller),它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。STC单片机完全兼容51单片机,并有其独到之处,其抗干扰性强,加密性强,超低功耗,可以远程升级,内部有专用复位电路,价格也较便宜,由于这些特点使得 STC 系列单片机的应用日趋广泛。本文设计了一种基于STC公司的STC89C52单片机,使用Dallas的一线制数字温度计DS18B20作为温度传感器,实时时钟芯片DS1302提供当前日期和时间
5、数据,并将实时的日期和温度数据字符型液晶显示器LCD1602上显示,本次设计的多功能数字钟采用数字电路对日期和温度进行控制设置,我们采用LCD液晶显示,以24小时的计时方式,根据LCD显示原理进行显示,定时器计数。在本次设计中,电路具有显示日期、时间、温度的基本功能,还可以实现对它们的调整。本次设计要达到的目的是:具有时间显示和手动校对功能,24小时制;具有年、月、日显示和手动校对功能;具有显示当前星期的功能;具有闹铃功能;具有环境温度采集功能;掉电后无需重新设置时间和日期;系统不但接口设计简单、便于控制,而且具有很好的人机界面,可以对当前的时间进行调整。第二章 总体方案设计2.1 设计内容完
6、成基于LCD液晶显示的多功能数字钟的设计。要求该电路具有显示日期、时间、温度的基本功能,还可以实现对它们的调整。本次设计要达到的目的是:具有时间显示和手动校对功能,24小时制;具有年、月、日显示和手动校对功能;具有显示当前星期的功能;具有闹铃功能;具有环境温度采集功能;掉电后无需重新设置时间和日期;2.2 设计内容方案一:利用QuartusII软件设计一个数字钟,对设计电路进行功能仿真,并下载SOPC实验系统中,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。能进行正常的时、分、秒计时功能;锁死功能-锁死状态下时钟保
7、持不变;清零功能-时钟计时电路和万年历电路;闹表功能闹钟蜂鸣器先鸣响5秒,然后停2秒,如果无人干预,蜂鸣器再鸣响5秒。蜂鸣过程中,按任意键,本次闹钟结束;相应的电路图如下图2.1所示:图2.1 QuartusII软件设计数字钟电路图方案二:采用单片机STC89C52RC芯片以及相关的芯片来实现多功能的数字钟。该设计选用一线制温度计DS18B20 作为温度传感器,实时时钟芯片DS1302提供当前日期和时间数据,并将实时的日期和温度数据在字符型液晶显示器LCD1602上显示出来。本文设计了一种基于STC公司的ST89C52单片机,使用Dallas的一线制数字温度计DS18B20作为温度传感器,实时
8、时钟芯片DS1302提供当前日期和时间数据,并将实时的日期和温度数据字符型液晶显示器LCD1602上显示,本次设计的多功能数字钟采用数字电路对日期和温度进行控制设置,我们采用LCD液晶显示,以24小时的计时方式,根据LCD显示原理进行显示,定时器计数。在本次设计中,电路具有显示日期、时间、温度的基本功能,还可以实现对它们的调整。本次设计要达到的目的是:具有时间显示和手动校对功能,24小时制;具有年、月、日显示和手动校对功能;具有显示当前星期的功能;具有闹铃功能;具有环境温度采集功能;掉电后无需重新设置时间和日期。系统不但接口设计简单、便于控制,而且具有很好的人机界面,可以通过几个按键对当前的时
9、间进行调整,对闹钟进行随意设置,以及温度超过上下限会自动进行报警(LED亮)等功能。其原理框图如下图2.2所示: 图2.2 数字钟原理框图2.3 方案论证我们可以看到,方案一使用的基于Altera公司出品QuartusII软件以及相应的实验平台完成的多功能数字计时器,由于时钟的计时范围是00:00:00-23:59:59,所以我们需要设计模六十和模二十四的计数器组成时钟计时电路。校分、校时、清零电路需要输入一些控制信号给时钟计时电路,当然这些控制信号是由开关提供的。要实现整点报时功能,一个报时控制电路是必不可少的。万年历电路需要由计时电路提供计时脉冲,脉冲输送给一个由模30、模12、模100级
10、联而成计时电路。整个过程不仅涉及到的分频计数器较多,还要用到大量的开关控制显得相当复杂且容易出错。而方案二是采用最近几年比较普遍的STC89C52RC单片机芯片实现。基于STC公司的ST89C52单片机,使用Dallas的一线制数字温度计DS18B20作为温度传感器,实时时钟芯片DS1302提供当前日期和时间数据,并将实时的日期和温度数据字符型液晶显示器LCD1602上显示。之所以选择这个芯片,是因为STC 单片机降低成本,提升性能,原有程序直接使用,硬件无需改动。并且其抗干扰性强,加密性强,超低功耗,可以远程升级,内部有专用复位电路,价格也较便宜,一般的利用STC系列的单片机芯片加上一些外围
11、的供电电路,复位电路,下载电路,特定功能电路等就能实现特定的功能。由于这些特点使得 STC 系列单片机的应用日趋广泛。2.4 方案选择在现代SOC技术的引领下,人们对低故障、高实时、高可靠、高稳定的性能更加青睐,其抗干扰性强,加密性强,超低功耗,可以远程升级,内部有专用复位电路,价格也较便宜,结合本设计的要求及综合以上比较的情况,我们选择用STC89C52RC单片机芯片来实现本次设计。第三章 单元模块设计3.1各单元模块功能介绍及电路设计3.1.1 温度采集电路DS18B20是美国Dallas半导体公司生产的一线制数字温度传感器。测量范围为- 55 + 125,在-108范围内,精度为0.5,
12、不需A /D 转换电路,直接将温度值转换成数字量。温度数据的传输,只需要一根数据线,直接将数据线与单片机的P3.6口相连接。其图如下3.1所示:图3.1温度采集 3.1.2 DS1302时钟电路DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。DS1302提供2个电源引脚:一个(VCC2)接主电源;另一个(VCC1)接备用电源。图3.2 DS1302时钟电路3.1.3 串行通信接口电路MAX232是电压转换芯片
13、,将TTL电平转换成可以和电脑串口匹配的电压。DB9通过下载线缆与电脑连接,可以将程序下载到单片机上。图3.3 RS232串行通信3.1.4 USB连接电路 USB接口通用性好、实时性强、传输方式多样、成本低、支持即插即用、易于扩展且便于使用。本次设计的USB连接线路,为单片机提供5V电压。图3.4 USB连接线路3.1.5 按键电路本次设计中用到了4*4的矩阵键盘列阵,通过赋低电平选中其中一列,以便来控制时,分,秒,年,月,日,以及闹钟的调整。其电路如图所示:图3.5 按键控制电路键盘处理针对二级以上任务,该最小系统共设有8个按键:运行键、暂停键、上升键、下降键、切换健、定闹键、校准键及保留
14、功能键。下面分别说明各键功能。(1)运行键:当系统上电、暂停键按下过、校准键按下过或定闹键按下过等上述情况之一发生时,只有按下运行键,时钟才能正常显示。否则,显示内容与上述各键功能相关。当系统上电,需从0点0分0秒开始显示;暂停和闹钟定时,须从实际时间开始显示;时间校准时,需从校准时间开始显示。(2)暂停键:当按下暂停键,时钟显示固定在当前值,但内部软件定时正常累计。(3)上升、下降键:用于时间校准和闹钟定时,对于时、分、秒的调整。(4)切换键:用于时间校准和闹钟定时,用于选择时、分、秒哪个被调整。按第一下时,选择小时被调整;按第二下时,选择分钟被调整;按第三下时,选择秒被调整;按第四下时,重
15、复第一下的选择,以此类推。选择小时,按第二下;选择分钟,按第三下;选择秒,按第一下;重复按下标准键:用于对时间的校准。该键只要被按下,则时间固定显示,由切换键选择时、分、秒,选定后,用上升、下降键调整相应值。(6)定闹键:用于闹钟定时功能。该键只要被按下,则时间固定显示,但内部继续定时,由切换键选择时、分、秒,选定后,用上升、下降键调整相应值。(7)保留功能键:用于以后功能扩展。3.1.6液晶显示显示电路本设计中会将时分秒,年月日周以及闹钟的设置,温度全部都会显示到液晶LCD1602上面,其具有162能够显示所有英文大小写字母,0到9十个数字以及一些常用的符号。该液晶在4.5V到5.5V电压范
16、围内都能正确工作,平均工作电流为2mA。液晶HS162共16个管脚。但是由于原理图中电路很简单并且只用到接插件所以此处没有给出原理图。3.2 特殊器件介绍3.2.1 STC89C52单片机芯片STC89C52是STC公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,可灵活应用于各种控制领域。其主要功能有:与MCS-51产品指令系统完全兼容;4k字节可重
17、擦写Flash闪速存储器;1000次擦写周期;全静态操作:0Hz24MHz;三级加密程序存储器;1288字节内部RAM;32个可编程IO口线;2个16位定时计数器;6个中断源;可编程串行UART通道;低功耗空闲和掉电模式。其引脚图如下图所示: 图3.6 STC89C52引脚图3.2.2 DS1302介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月、年,一个月小于31天时可自动进行调整,且具有闰年补偿功能。工作
18、电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力,因此广泛应用于测量系统中。DS1302是由DS1202改进而来的,增加了以下的特性:双电源管脚用于主电源和备份电源供应,Vcc1为课编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。其外部引脚分配如图所示:图3.7 DS1302的外部时钟引脚分配3.2.3 温度传感器DS18B20采用独特的一线接口,可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源。测量温度范围为-55至+125 ,-10 C至+85
19、 C范围内精度为0.5。温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。该装置信号线高的时候,内部电容器储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。图3.8 DS18B20的管脚3. 2. 4 报警模块 报警模块为单片机P2.0驱动蜂鸣器,用于温度上限到达时,单片机驱动,提供报警。蜂鸣器驱动,成本低
20、,效率高,反映直观。其电路图如下:3.2.5液晶显示LCD1602HS1602是目前最常用的字符液晶之一。具有162能够显示所有英文大小写字母,0到9十个数字以及一些常用的符号。该液晶在4.5V到5.5V电压范围内都能正确工作,平均工作电流为2mA。液晶HS162共16个管脚.RS为寄存器选择信号,RW为读写选择信号,通过这两种信号的不同组合可对液晶进行读写命令和读写数据的操作。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个HS162是目前最常用的字符液晶之一。具有162能够显示所有英文大小写字母,0不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号
21、等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。在操作液晶时,先要对液晶进行初始化,即进行最初是的命令设置。要设置液晶的工作方式设置,显示状态设置,输入方式设置等。最后再向液晶写入数据,即写入想要显示字符的ASCII码。第四章 软件设计4.1 软件选择本次设计选择的软件主要是Keil uVision3。 Keil公司成立于1986年,主要开发、制造和销售嵌入式8051、251、ARM、XC16x/C16x/ST10等微控制器软件开发工具,提供ANSI C编译器、宏汇编程序、实
22、时管理、调试和模拟器、综合评估板等。Keil公司的uVision把编辑、编译、链接和仿真等模式打包成集成开发环境,当然其集成的C51编译器肯定跟Franklin公司的相关模块肯定有交叉性,uVision还包含项目管理和调试器等非常有用的功能。而软件仿真部分就用的是仿真软件PROTUES。PROTUES软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐,是目前世界上唯一将电路仿真软件、PCB设计软件
23、和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。 PROTUES 是单片机课堂教学的先进助手。 PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到
24、实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 4.2软件设计流程本次设计的系统软件设计主要包括主程序设计和温度采集子模块程序设计、日历日期数据子模块程序、按键控制子模块程序和LCD液晶显示子模块程序设计等。主程序主要完成器件的初始化,并判断有无按键按下,并根据判断的结果调用相应的子模块程序;而温度采集子模块程序和日历日期数据子模块程序完成相应的数据采集、处理和保存,按键处理子模块程序完成日期和闹钟的设置,而液晶显
25、示子模块只要把上述子模块储存的数据送去显示即可。系统总的流程图如下图所示: 图4.1 主程序流程4.2.1 温度采集流程DS18B20在进行温度采集时,必须首先进行初始化,然后发ROM操作指令,再发存储器操作指令,最后才能传输数据。每次对器件进行读写操作时, 必须严格按照DS18B20 的时序要求。因为温度数据在DS18B20中是以2的补码形式存放的,且低4位为小数部分, 4位到10位为整数部分,其余为符号位,因此在读出2个字节的温度数据后,首先求一次补码得到原码,再将数据分离为整数温度值和小数温度值,整数部分的值可通过数据交换指令得到,而小数温度值部分可通过查表得到。因为在液晶显示器上显示的
26、是字符的ASCII码,因而还要转换为BCD,在加30H转换为ASC码。其流程图如下所示:图4.3 温度采集流程4.2.2 日期数据处理流程对时钟芯片的操作主要包括2个方面:一是将芯片中的日期等数据读出来,二是在进行日期等设置时将设置的数据写入芯片,这也是按键处理时的主要内容。无论是读数据还是写数据,都要满足DS1302 对时序的要求。而对芯片各个数据部分的访问是通过地址进行的,且读和写的地址不一样。读出的数据同样要转为ASC II码,然后储存起来,等待送去显示。其流程图如下图所示:图4.4 日期数据处理第五章 系统的仿真及调试5.1 系统仿真 软件的仿真部分采用的是仿真软件PROTUES,前面
27、已经作过介绍。整个设计的仿真效果如下图所示。 此时显示的时间日期是实时的时间。显示的温度是DS18B20上面所示的温度。按键第三列为设计中所涉及到的按键。我们只用到这个矩阵键盘中的4个按键。第一个按键按下时可调节液晶所在的第二行所示的时间。按1,2,3,下,光标分别到秒,分,时处闪动。第二个按键是控制液晶显示的第一行的日期显示。也是一次按下1,2,3,4可分别设置年月日以及周。最上面的LED是用于温度超过所设置的温度门限值报警,此时LED亮是代表温度超过了下限温度值。图5.1 系统仿真图5.2 硬件调试单片机系统调试之前首先应该确认电源电压是否正常。用万用表测量接地引脚跟电源引脚之间的电压,看
28、是否是电源电压,常用的5V。接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。然后再检查晶振是否起振了,一般用示波器来看晶振引脚的波形。另一个办法是测量复位状态下的IO口电平,按住复位键不放,然后测量IO口(没接外部上拉的P0口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。经过上面几点的检查,一般即可排除故障了。显示电路的调试:在这里主要是HS1602液晶显示器。检查它与单片机的连线:设计是RS接的P07口,要保证它为高电平。EN接口接单片机的P05端,也要保证它为高电平;读写信号低电平有效;编写一段显示程序,烧录到单片机看是
29、否能正常显示。DS1302电路调试:该电路包含DS1302芯片,主电源、备用电源、晶振等部分。在与单片机连接的过程中需要注意以下几点:1.清楚DS1302与单片机连接的管脚,本设计定义为:DS1302的SCLK连接P1.0,I/O口连接P1.1,RST连接P1.2;2.注意电源正负极的连接;3. DS1302接32.768KHZ的晶振,该晶振体型比较小,在焊接时要小心,同时也要尽量使晶振离DS1302是X1、X2引脚近距离焊接。4.编写DS1302的时钟程序看是否能够正确显示时间。按键电路调试:按键电路比较简单,故调试起来也很容易。如果确保按键焊接正确,只需把DS1302的程序写进单片机,再按
30、下P3.0,如果在秒的位置有光标出现,则说明P3.0可用,如果按下P3.1,在日的位置有光标闪烁,则说明P3.1的按键可用,同时按下P3.2,如果日的位置有加的操作,则P3.2按键可用如果按P3.3有减的操作则也可用。温度传感器的调试:温度传感器的调试只需在确保电路焊接正确的情况下,把显示温度的程序写进单片机,然后看液晶显示器上显示的温度是否是当前的室温,如果能够正确显示当前室温,那么说明电路一切完好。我们在硬件调试的过程中遇到很多问题。首先是按键扫描加入程序的时候按键会光标乱飞。针对这个问题我们在按键程序中加入while语句以及标志位控制,解决了这个问题。然后就是按键只能加一减一,后来在一步
31、一步屏蔽一比一部调试过后发现了问题,原来是DS1302这个头文件周写数据部分写错了。还遇到一个问题,就是18B20温度传感器加上以后,只会出现一个初始值,检查后发现写温度的头文件中出现一点小错误。然后整个板子就在我们不停地出现错误然后慢慢调试改正中实现了我们初步的功能。5.3 软件调试软件调试一般是在仿真图上进行,这样比较方便,可以及时发现错误,分析错误,以便快捷的在程序上进行修改,再进行仿真,直到结果正确了,才把程序下到开发板上去看是否符合我们的要求,有时虽然仿真完全正确了,但到开发板上就不一定了,有时是因为仿真图和开发板的端口不对,所以需要检查后修改端口,有时是因为开发板上需要连线的端口连错了,也造成不能正确显示,这些虽然看似小问题,但检错起来一点都不容易,需要反复的分析,不断的试验。就这样不断的试验,再修改,在试验,直到程序完全正确,可以显示出我们想要的答案为止。本次设计在刚开始调试的时候,会发现液晶显示器上显示的位置不对,或者干脆不显示,通过找原因发现是从DS1302上读出的字符在液晶显示器上的对应位置写错了,造成不能正常显示,相应的改过之后就可以了;有时显示正确了,但按键的加减没作用,不能进行正常的加或减,这时又得修改程序中相
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1