资源描述
(完整版)题目基于51单片机定时控制系统设计
题 目:基于51单片机的定时控制系统设计
专 业: 计算机技术与基础
班 级: 2010年春季班
学 号: 11030107110001
姓 名: 姚小海
指导教师: 王爱民
目 录
一. 摘要…………………………………………………………………………………………………1
二. 第一章方案设…………………………………………………………………………………2—-3
三. 第二章硬件设计……………………………………………………………………………。..4—-23
2。1.单片机最小系统AT89C51的基本结构及外部引脚……………………………………….4--10
2.2。DS1302时钟电路………………………………………………………………………….11-18
2.3按键电路………………………………………………………………………………………19 2。4中断触发电路…………………………………………………………………………….20-21
2.5LCD1602液晶显示电路……………………………………………………………………22—23
2。6继电器控制电路………………………………………………………………………….。。24—25
2。7报警电路………………………………………………………………………………………。.25
2。8整机工作原理………………………………………………………………………………….。26
四. 第三章软件设计………………………………………………………………………………27
五。 第四章系统仿真设计…………………………………………………………………………28
六。 总结………………………………………………………………………………………………29
七。 致谢………………………………………………………………………………………………30
八。 参考文献…………………………………………………………………………………………31
I
摘 要
在这个智能社会,对以往的很多设备都进行了智能化改进,比如降温系统等都从手动改进到了自动控制.在这里我们将常见的做饭工具电饭煲也进行了智能化控制,这里主要运用51单片机对原有非智能化电饭煲进行智能化控制,该系统具有定时功能,并且当时间到达定时时间时会自动报警,并且在报警一分钟后如果没有人操作电饭煲,会通过继电器将电饭煲的电源切断让并点亮绿灯提示它的工作完成。本文就以基于51单片机洗碗机控制系统设计的背景而展开。
本设计至力于设计一个多功能、全自动式、高效的电饭煲控制系统。同时兼顾低成本的要求,在基于价格较低廉的51单片机基础上进行一个新的设计.首先,简述电饭煲在国内外的发展状况及其存在的问题。说明本课题的研究范围和意义。其次,深入介绍51单片机系统的架构原理,并指出系统的开发平台。接着,详细描述电饭煲控制系统的功能,阐述其各部分的操作方法,并指出其实现策略。然后,给出系统硬件统结构图及硬件总体设计原理图,详细分析各部分电路的电气特性。在此基础上,给出软件系统功能模块总框图,详细论述各功能模块的设计,给出程序流程图及其源程序。最后,描述系统仿真实验方案,给出各个方案的仿真实验结果,并对其进行详细分析,得出结论。该系统经过仿真调试、演示,证实能稳定安全可靠地工作。在附录中,本文还给出相关系统设计资料,供参考之用。
关键词 AT89C51;DS1302;继电器
第32页
第1章 方案设计
随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。本文所述智能时钟控制系统主要指时钟显示、时间设置、闹铃及家用电器定时开关机(可扩展功能)等控制系统。在现代社会各领域中,广泛需要各种不同的定时系统来完成定时操作功能。用单片机实现定时控制.是当前实时控制的发展方向。而一些定时系统只能满足特定的需要,而定时时间是由研发者根据用户需要输入到系统存储器中的,在使用中用户无法更改。本系统采用通用单片机定时系统,具有很强的通用性,实用性.并且其定时时间可以根据需要,由用户任意更改.并且可以设定多个定时时间,极大地方便了使用者。系统选用单片开发机。具有体积小,电路简单,操作便捷,价格低廉,运用灵活,使用方便等特点
本文采用进入市场时间早、总线开放、仿真开发设备多、芯片及其开发设备价格低廉、速度较快、电磁兼容性较好的MCS—51型单片机为核心实现智能时钟控制。
采用51单片机可以实现一些功能不多的控制环境,即节约经济又达到了我们所需的职能化控制。
本课题主要从以下三个方面入手:一是实现时间显示功能,可以查看日期时间星期;二是实现定时功能,当时间到达设定值时可以报警提示,并通过继电器控制电饭煲的电源,并通过指示灯提示任务的完成;三是考虑时间的准确性,在这里主要使用DS1302芯片进行时间计时。
设计的总体方案如图1—1所示,由单片机最小系统、LCD1602液晶显示、继电器、DS1302时钟电路、报警电路、按键电路及5V直流供电电路组成。为了实现智能控制和简化设计,选用了AT89C52、DS1302等集成芯片。
图1—1 基于51单片机的定时控制系统框图
第2章 硬件设计
2.1 单片机最小系统
1.
AT89C51的基本结构及外部引脚
2。AT89C51的基本结构及外部引脚
3.振荡电路
AT89C51是内部具有振荡电路的单片机,只需在18脚和19脚之间接上石英晶体,给单片机加工作所需直流电源,振荡器就开始振荡起来.振荡电路就为单片机工作提供了所需要的时钟脉冲信号,是单片机的内部电路、单片机的内部程序(若有)开始工作。振荡电路不工作,整个单片机电路都不能正常工作。AT89C51常外接6MHz、12MHz的石英晶体,18脚和19脚分别对地接了一个30pF的电容,目的是防止单片机自激.若从18脚输入外部时钟脉冲,则19脚接地。单片机最小系统电路如图2-1所示。
图2—1 单片机最小系统
4.复位电路
复位电路就是在RST端(9脚)外接的一个电路,目的是使单片机上的电开始工作时,内部电路从初始状态开始工作,或者在工作中人为让单片机重新从初始状态开始工作。在时钟工作的情况下,只要复位引脚高电平保持在两个机器周期以上的时间,AT89C51便能完成系统重置的各项工作,使得内部特殊功能寄存器的内容均被设置成已知状态,并且从地址0000H处读入程序代码而执行程序。
AT89C51的复位电路
5。AT89C51的时钟电路
AT89C51的时钟电路
6。AT89C51的存储器结构
程序存储器
Ø 内部和外部程序存储器统一编址,64KB最大寻址空间;
Ø AT89C51内部集成4KB程序存储器;
Ø /EA接高电平,低4KB选择片内程序存储器,超过部分选择片外程序存储器;
Ø /EA接低电平,64KB寻址空间全部选择片外程序存储器.
Ø PC指针,又叫程序计数器,是一个16位的寄存器,用来存储程序存储器的地址。CPU总是执行PC指针所指程序存储器单元内的程序。
2。2 DS1302时钟电路
1.DS1302简介
芯片引脚功能图如图2—2所示。
图2—2 DS1302引脚功能图
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2。5V~5。5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据.DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源.在主电源关闭的情况下,也能保持时钟的连续运行.DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电.X1和X2是振荡源,外接32。768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC>2。0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向), SCLK为时钟输入端。
2 .DS1302的控制字节
DS1302 的控制字节如图2所示.控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
3。 数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始.同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
2。4 DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1.
此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
4.时钟电路图
时钟电路如图2—3所示,主要由DS1302及32。768KHz晶振组成。通过SPI三线方式可以很好的与51系列单片机进行通信,从内部读出时间,以及设置内部时间.
图2-3 DS1302时钟电路图
3 DS1302实时显示时间的软硬件
DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5).图3示出DS1302与89C2051的连接图,其中,时钟的显示用LCD。
3。1 DS1302与CPU的连接
实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度.只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压为2.4V~3。3V,显示清晰.
3.2 DS1302实时时间流程
图4示出DS1302的实时时间流程。根据此流程框图,不难采集实时时间。下面结合流程图对DS1302的基本操作进行编程:
根据本人在调试中遇到的问题,特作如下说明:
DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。
在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。
DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。
要特别说明的是备用电源B1,可以用电池或者超级电容器(0。1F以上).虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池.可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替.100 μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。
4 结论
DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。
2。3 按键电路
按键电路如图2-4所示.
图2-4 按键电路
当没有按下按键时I/O口为高电平,当按下时I/O口电平会被拉低,通过电平的不同可以很轻松地判别是否有按键按下。计数器输入脉冲最好不要直接接普通的按键开关,因为记数器的记数速度非常快,按键、触点等接触时会有多次接通和断开的现象。我们感觉不到,可是记数器却都记录了下来.例如,虽然只按了1下,记数器可能记了3下。因此,使用按键的记数电路都会增加单稳态电路避免记数错误.
2.4 中断触发电路
中断触发电路主要由与非门及非门构成,主要用于当按键按下之后触发中断,电路图如图2-5所示。
图2—5中断触发电路
完整电路图
当输入Vi保持高电平时,Ci相当于断开.输入Vi’由于Ri的存在而为高电平Vcc。此时,①若定时器原始状态为0,则集电极输出(7脚)导通接地,使电容C放电、Vc=0,即输入6脚的信号低于2/3Vcc,此时定时器维持0不变。
②若定时器原始状态为1,则集电极输出(7脚)对地断开,Vcc经R向C充电,使Vc电位升高,待Vc值高于2/3Vcc时,定时器翻转为0态。
结论:单稳态触发器正常工作时,若未加输入负脉冲,即Vi保持高电平,则单稳态触发器的输出Vo一定是低电平。
①触发翻转阶段:
输入负脉冲Vi到来时,下降沿经RiCi微分环节在Vi’端产生下跳负向尖脉冲,其值低于负向阀值(1/3Vcc).由于稳态时Vc低于正向阀值(2/3Vcc),固定时器翻转为1,输出Vo为高电平,集电极输出对地断开,此时单稳态触发器进入暂稳状态。
②暂态维持阶段:
由于集电极开路输出端(7脚)对地断开,Vcc通过R向C充电,Vc按指数规律上升并趋向于Vcc.从暂稳态开始到Vc值到达正向阀值(2/3Vcc)之前的这段时间就是暂态维持时间tpo 。
③返回恢复阶段:
当C充电使Vc值高于正向阀值(2/3Vcc)时,由于Vi'端负向尖脉冲已消失 ,Vi'值高于负向阀值(1/3Vcc),定时器翻转为0,输出低电平,集电极输出端(7脚)对地导通,暂态阶段结束。C通过7脚放电,使Vc值低于正向阀值(2/3Vcc),使单稳态触发器恢复稳态。
2.5 LCD1602液晶显示电路
液晶显示电路如图2-6所示,如图2 所示,1602 液晶的控制管脚都接到了单片机管脚上,前文提到,在功能设置指令中可以将液晶设为8 位数据接口和4 位数据接口,图中采用的是8位的数据接口,当然也可以当四位数据接口来用。液晶电源正端接5V,负端接地,背光正端接5V,负端接地。此外,液晶的偏压管脚(VO)接到一个电位器的中间抽头,电位器的两端分别接5V 和地,这样就可通过调节电位器来实现对1602 液晶对比度的调节。经实验测试,笔者手里的1602 液晶的偏压管脚的电压调节到0。3~0.4V 时对比度效果最好,也可以将该管脚通过一个1k 的电阻下拉到地。。
图2—6 LCD1602液晶显示电路
继电器控制电路 在对1602 液晶设计程序前,我们先看下其读写时序图,从图3 和图4 可以看出,1602 液晶的读写操作时序可总结成表4 所示。
图3 1602液晶读操作的时序图
图4 1602液晶写操作的时序图
2.6 继电器控制电路
。电路形式如图1,这种形式主要应用于继电器的额定工作电压低于电源电压的电路中。当电路闭合时,继电器线圈由于自感现象会产生电动势阻碍线圈中电流的增大,从而延长了吸合时间,串联上RC电路后则可以缩短吸合时间。原理是电路闭合的瞬间,电容C两端电压不能突变可视为短路,这样就将比继电器线圈额定工作电压高的电源电压加到线圈上,从而加快了线圈中电流增大的速度,使继电器迅速吸合.电源稳定之后电容C不起作用,电阻R起限流作用.
2.继电器并联RC电路:
电路形式见图2,电路闭合后,当电流稳定时RC电路不起作用,断开电路时,继电器线圈由于自感而产生感应电动势,经RC电路放电,使线圈中电流衰减放慢,从而延长了继电器衔铁释放时间,起到延时作用。
3。继电器并联二极管电路:
电路形式见图3,主要是为了保护晶体管等驱动元器件。当图中晶体管VT由导通变为截止时,流经继电器线圈的电流将迅速减小,这时线圈会产生很高的自感电动势与电源电压叠加后加在VT的c、e两极间,会使晶体管击穿,并联上二极管后,即可将线圈的自感电动势钳位于二极管的正向导通电压,此值硅管约0。7V,锗管约0。2V,从而避免击穿晶体管等驱动元器件。并联二极管时一定要注意二极管的极性不可接反,否则容易损坏晶体管等驱动元器件. 继电器是电子电路中常用的一种元件,一般由晶体管、继电器等元器件组成的电子开关驱动电路中,往往还要加上一些附加电路以改变继电器的工作特性或起保护作用。继电器的附加电路主要有如下三种形式:
继电器控制电路如图2—7所示由于单片机I/O口驱动能力有限,从图中可以看出我们利用三极管来控制,通过如图的连接方式,可以提高驱动负载的能力,并且利用三极管截至和饱和导通的性质可以很方便的用于单片机控制。
图2—7 继电器控制电路
2.7 报警电路
报警电路如图2-8所示.
如2.6所述,我们在这里再次利用了三极管作为开关管驱动蜂鸣器发声。蜂鸣器与家用电气上的喇叭在用法上也有相似的地方,通常工作电流比较大,电路上的TTL点评基本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,即此一个管脚很难驱动蜂鸣器发出声音,所以增加了一个三极管来增加通过蜂鸣器的电流。
首先定一上限,一分钟计算一次速度,在行驶过程中看速度是否会达到标准速度。蜂鸣器的正极性的一端联接到5V电源上面,另一端接到三极管的集电极,三极管的基极由单片机的P1.5管脚通过一个与门来控制,当P1。5管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音.当P1。5管脚为高时,与非门输出低电平,三极管截至,蜂鸣器不发出声音。
图2—8报警电路
2。8 整机工作原理
整机仿真电路图如附录2所示,开启仿真开关后,我们可以看到时间和日期显示的界面,通过设置按钮,我们可以很方便的调节时间、日期、星期等。我们调整好时间后,并定时报警时间,后按确认键,当界面显示有大写字母A时,说明我们开启了定时报警系统,通过确认键我们还可以查看当前我们设定的报警时间,当时间到达所定时时间是,就会通过蜂鸣器报警提示,当提示1分钟后,就会启动继电器控制通断系统,将电路断开,并点亮绿灯告之电饭煲工作完成。
第3章 软件设计
整套系统的运行都是基于8051内核指令控制运行的,主要程序见附录1。
工作流程如图3—1所示。
图3-1流程图
第4章 系统仿真测试
4.1 仿真测试方法
系统测试内容包括能否正常设定日期时间、是否能正常定时、报警电路及继电器电路是否正常工作,具体测试方法如表4—1所示。
表4-1 系统测试项目与测试方法
序号
测试项目
测试方法
1
是否能正常设置日期时间
1、打开仿真开关,通过设置键进入时间设置;2分别设置时间日期,保存后观察是否正常。
2
是否能准确定时
1、通过时间设置按钮进入定时设置;2、等待时间到点,观察是否报警。
3
报警电路及继电器电路是否正常工作
1、观察当项目2中定时到点时,是否正常报警,及继电器是否工作,是否点亮绿灯。
4.2 仿真测试结果
表4—2 系统测试结果
序号
测试项目
测试结果
1
是否能正常设置日期时间
能很好的设置和保存所设置的时间,且正常工作。
2
是否能准确定时
能够准确定时.
3
报警电路及继电器电路是否正常工作
蜂鸣器能正常发声工作,报警结束后能断开继电器,且点亮绿灯。
结果:整个系统能按照预定的计划运行,此次制作圆满成功。
总 结
经过几周的辛苦设计,现在终于可以画上一个圆满句号了。回想起来做毕业设计的整个过程,其中有苦也有甜。毕业设计的难度不仅是检验大学所学的深度,也是对自己能力的一种提高.下面我对整个毕业设计的过程简单的做一下总结。
首先,进行选题选定。选题是毕业设计的开端,选择恰当的感兴趣的题目,这对于整个毕业设计是否能够顺利进行关系极大。好比走路,开始的第一步具有决定意义的,第一步迈向何方,需要慎重考虑。否则,就可能走许多弯路、费许多周折,甚至可能做的全是无用功。
致 谢
首先要感谢在大学两年半教育我的老师,没有他们给予我扎实的基础,我想我是不能完成这次毕业设计的。
在这两个多月的毕业设计中,我真诚地感谢老师和同学们的帮助,在他们的帮助下我顺利的完成了此次毕业设计。
在本次设计过程中王爱明老师始终给予了我无私的帮助,在最开始的设计思路的构建、资料的选取等是我能顺利完成这次设计的关键。
参考文献
[1] 戴佳 戴卫.51单片机C语言应用程序设计实例精讲。电子工业出版社,2006
[2] 余宏生.吴建设。电子CAD技能实训.人民邮电出版社,2006
[3] 李贵庭。单片机应用技术及项目化训练。西南交通大学出版社,2009
[4] 刘建清.从零开始学单片机C语言.国防工业,2006
[5] 钟富昭等.8051单片机典型模块设计与应用[M].人民邮电出版社,2007
[6] 李平等.单片机入门与开发[M].机械工业出版社,2008
附录2 整机原理图
展开阅读全文