




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1 设计题目:加热定时器设计1.2.1 设计目的(1) 掌握可任意预置的定时构成、原理与设计方法;(2) 熟悉集成电路的使用方法。(3) 通过应用单片机系统,培养创新意识,提高动手能力。1.2.2 基本要求(1)设计要求:为系热水器定时加热(2)每天早7:00起加热,晚10:00起加热,保证热水; 周末全天供水。 (3)控制面板设计。1.2.3 基本优点 传统的大容量电热水器的加热时间一般都比较长,如果热水器一直开着,则会一直耗能耗电,而定时开关控制器则可有效解决这些问题,使电热水器使用起来更加舒适省电。这样,电热水器不仅可以充分利用闲置的时间,避免用户使用时长时间的等待,减少不必要的保温,也可以更加节约电能,特别对低谷及高峰用电有差价的地区利用晚间低谷用电开机加热,白天用电高峰关机保温,便能大量节约电费开支。本文中的定时控制器主要是以单片机at89c51作为核心控制元件,通过外围电路来控制热水器的电源,以达到定时开关机的目的。2 设计思路 1 硬件组成 本电热水器控制系统在加电后即可进入正常计时状态,用户可以随时校准时间并设定热水器的开关时间,以便控制器能够在设定的开关时刻通过单片机的输出端口控制输出继电器的动作,进而控制热水器的启闭。该系统的硬件原理图见图1所示。 本系统的核心单片机at89c2051为20脚300mil封装,是一种带有2kb flash e2prom的单片机。该单片机除了少了两个并口外,能兼容mcs-51系列单片机的所有功能,且具备体积小、功能强、运行速度快等特点。该电路可通过单片机的p37口连接一个键盘电路来实现对参数的人工自由设定,同时可通过串口连接8位led数码管,以分别显示小时、分钟和秒。系统定时启动是通过p30口完成的。程序开始时这三个口的输出状态都是低电平,at89c51通过程序查询p30口输出on或off的状态预置时间是否已到,如果已到时间,则改变相应的输出状态,从而完成对外部电路的控制。本设计采用时钟芯片ds1302来控制时间。美国dallas公司推出的具有涓细电流充电能力的低功耗实时时钟电路ds1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。ds1302 是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 1.1 引脚功能及结构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引脚变为高阻态。上电运行时,在vcc2.0v之前,rst必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。i/o为串行数据输入输出端(双向),后面有详细说明。sclk为时钟输入端。1.2 数据输入输出(i/o)在控制指令字输入后的下一个sclk时钟的上升沿时,数据被写入ds1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个sclk脉冲的下降沿读出ds1302的数据,读出数据时从低位0位到高位7。 2.4 ds1302的寄存器ds1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式, 下面重点介绍键盘、显示以及输出控制这三种电路。 11 显示电路 本系统中的显示电路主要由七段共阳显示译码器74ls47、3线8线译码器74thc138、7个pnp型三极管和六个数码管组成。通过at89c2051的p14p17口将要显示字符的bcd码输出到74ls47的四个输人端,然后译码并输出相应的笔段来驱动led数码管(共阳)。led数码管显示采用动态扫描方式,即在某一时刻,只有一个数码管被点亮。数码管的位选信号由at89c2051的p33p35输出,并经74hcl38译码后通过三极管放大,以驱动相应的数码管。 12 键盘电路 键盘电路跟显示电路一样采用扫描方式,并利用动态显示时的数码管驱动位置信号来判断相应按键的状态。单片机的p33p35口输出的bcd码经译码器译码后,相应的y口呈低电平,而at89c205 1的p37口平时为高电平(由于有上拉电阻),只有当某一按键按下时,p37才被下拉为低,这时,单片机将利用程序查询p37是否为低,如果p37为低电平,则读回单片机p33p35口的值(从缓冲区读取),并判断是那个按键按下然后调用相应的处理程序进行处理。 13 输出控制电路 单片机的控制输出是通过p30p32口完成的。当程序开始时,这三个口的输出状态都是低电平,at89c2051通过程序查询三路输出的on或off状态预置时间是否已到,若时间到,则改变相应的输出状态,以完成对外部电路的控制。中断功能申请寄存器ie介绍中断允许寄存器ie(可以打开和屏蔽相应的中断)ex0/ex1 et1/et0 es 位:分别是外部中断、定时中断、串口中断 允许控制位。 =0 :禁止中断; =1 :允许中断。ea:总的中断允许控制位(总开关): =0 :禁止全部中断;=1 :允许中断。模式设置(杯子的大小)工作方式寄存器tmod高四位对于定时器1,低四位对应定时器0m1,m0:工作方式选择位 。工作方式0 =00:13位定时器/计数器;工作方式1 =01:16位定时器/计数器(常用);工作方式2 =10:可自动重装的8位定时器/计数器(常用);工作方式3 =11:t0 分为2个8位定时器/计数器;仅适用于t0。c/t :定时方式/计数方式选择位。 = 0 :内部提供信号脉冲。 = 1: 外部提供信号脉冲。gate:定时器启动控制位 = 0 :程序控制。 = 1 :硬件控制。例如:tmod = 0000 0001 =0x01; /设定时器0为16位模式1 例如:tmod = 0001 0000 =0x10; /设定时器1为16位模式1 如何选择16位内部脉冲计数寄存器,并选择定时器0作为为定时器,且用软件方式实现定时器启动控制。tmod的值为多少?定时0,选择低四位(高四位全为0)16位计数寄存器 选工作方式1 即m1 m0值为01内部脉冲 c/t 值为0软件启动定时器 gate 值为 0tmod=0000 0001 =0x01定时器控制寄存器tcon(高四位与定时器中断有关,低四位与外部中断有关)tr0/tr1:定时器运行启停控制位(可由用户通过软件设置 )。 =0:定时器停止运行; =1:定时器启动运行。tf0/tf1:定时器溢出中断申请标志位(由硬件自动置位)。 =0:定时器未溢出;=1:定时器溢出(由全“1”变成全“0”)时由硬件自动置位,申请中断,中断被cpu响应后由硬件自动清零。7、如何启动定时器和判断是否溢出trx赋值为1,即可启动相应的定时器如果tfx的值为1,即可以判断计数寄存器的值已经溢出。可以用位赋值。tcon=0001 0000 =0x10 代表什么?即tr0的值为1,tf0的值为0。定时器已经启动,并且计数寄存器的计数值还没有溢出。(不能产生有效的内容中断信号)程序1:仿真实现定时器1s led闪烁一次 #include sbit led=p20;int count=0; /50ms次数记录timer_csh() /定时中断初始化函数 ie=0x82; /允许cpu中断和定时计数器0中断开关 1000 0010 tmod = 0x01; /设定时器0和1为16位模式1 th0 = 0x3c; /12m晶振 定时 50ms tl0 = 0xb0; void main() timer_csh(); /定时中断初始化tr0 = 1;/开始计数 while(1); /主程处于无限循环这里可以处理其他的事情/定时器0中断处理void timeint(void) interrupt 1 count+; if(count=20) /1s到 count=0; led=led; th0=0x3c; /定时初始值 tl0=0xb0; 2 软件设计 21 主程序流程 本系统的主程序工作过程是首先循环进行8个数码管的扫描显示(disply段),然后比较所有预置时间(comp段)是否与当前时间相等,如相等则转向相应处理程序。比较完成(或处理完成)后,再判断有无按键(pp2段)按下,没有则返回继续显示、比较、判断;有按键按下则转向相应的处理程序。按键转移采用偏移量加表格跳转转移法(key段)。预置时间比较则采用逐一比较法,即对每一个预设的值都进行比较,如果相等,则进行相应的处理。在具体比较时(comp1段),首先比较th值,如不相等,则直接转出并置时间到标志ccb为0,而如果th、tm、ts全部对应相等,则置该标志为1,其软件流程见图2所示。 此次设计的可预置热水器控制电路,实现对时间和分钟的现实,可以设置热水器的使用时间,使热水器自动加热和停止,并且设置了水位比较电路可以进行报警。由石英晶体振荡器产生频率为1000hz的信号,经过三片74ls160进行分频后,得到1hz的秒脉冲信号,再经过2片74ls90连接成的60进制计数器后得到1/60秒的分脉冲信号。将分信号传输给两片74ls290连成的六十进制计数器进行分的计数,再由分计数的进位驱动二十四进制的时计数器。时间计数器连接七段译码显示器进行时间的现实。预置时间的电路与此相同。预置时间计数器产生的输出进入减法器进行自动减一的设置,减法器的输出信号进入比较器,与正常时间计数器产生的信号进行比较。当两者相等时,自动开始加。由时计数器和分计数器产生的输出接入比较器,与设定时间电路的时计数器和分计数器相比较,当时间相等时热水器停止加热。由传感器感知水位,经由模数转换器转换成八位二进制数,再由二进制bcd码转换器将其转换成8421bcd码,输出的数据经计数器传入七段译码显示器进行水位的显示。从水位计数器引出的信号进入比较器,与比较器中设置的水位进行比较,当其水位低于设定值时,自动停止工作并进行水位报警。其中水位报警电路由555定时器构成的单稳态单路和多谐振荡电路组成。 22 秒脉冲发生器的软件设计 系统中的秒脉冲发生器是由定时器t0和内存空间tt0配合完成的。其中t0工作于l 6位计数器模式,当t0向上计数并由全1变为全0时产生中断。本程序中,t0的初值为0dc00h,大约001秒中断一次。这里使用的晶振频率为110592mhz,由此可计算出日误差约为078 s。其操作流程如图3所示,系统产生中断后,首先保存acc和psw的值,然后为t0重装初值,并判断中断次数是否小于100,若是,则转出中断服务,反之则将秒计数器加1。秒计数器大于59时,则为分计数器加1,同时秒计数器清0。同样,分计数器如大于59,则为时计数器加1,同时分计数器清0。时计数器如大于23时则清0并转出中断服务。td中断100次的时间刚好为1秒钟。 附图 程序#include #include ds1302.h/*端 口 定 义*/sbit hot = p17;sbit add_hour = p30;sbit add_min = p31; unsigned char qiangdanum=0;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f;/unsigned char code duan=;unsigned char ge=0,shi=0; void delay(unsigned int ms) /晶振12m unsigned int i,j;for(j=ms;j0;j-) for(i=0;i120;i+); void display(void) p2=0x7f;p0=tableweek;delay(5);p2=0xbf;p0=0x40;delay(5);p2=0xdf;p0=tableh1;delay(5);p2=0xef;p0=tableh0;delay(5);p2=0xf7;p0=tablemi1;delay(5);p2=0xfb;p0=tablemi0;delay(5);p2=0xfd;p0=tables1;delay(5);p2=0xfe;p0=tables0;delay(5);/*write_ds1302(0x8e,0x00);/写保护寄存器,在对时钟或ram写前wp一定要为0/write_ds1302(0x8c,year);/年/write_ds1302(0x88,month);/月/write_ds1302(0x86,day);/日/write_ds1302(0x8a,week);/星期write_ds1302(0x84,hour);/时write_ds1302(0x82,minute);/分write_ds1302(0x80,second);/秒write_ds1302(0x8e,0x80);/写保护寄存器*/void changtime()unsigned char change_minute,change_hour;change_minute = minute;change_hour=hour; if(0 = add_min)while(0 = add_min)display(); change_minute+; if( change_minute=90) change_minute=0; if( change_minute%16=10) change_minute+=6; write_ds1302(0x8e,0x00);/写保护寄存器,在对时钟或ram写前wp一定要为0/write_ds1302(0x8c,year);/年/write_ds1302(0x88,month);/月/write_ds1302(0x86,day);/日/write_ds1302(0x8a,week);/星期/write_ds1302(0x84,hour);/时write_ds1302(0x82,change_minute);/分/write_ds1302(0x80,second);/秒write_ds1302(0x8e,0x80);/写保护寄存器 if( 0=add_hour) while(0 =add_hour)display(); change_hour+; if( change_hour=0x24) change_hour=0; if( change_hour%16=10) change_hour+=6; write_ds1302(0x8e,0x00);/写保护寄存器,在对时钟或ram写前wp一定要为0/write_ds1302(0x8c,year);/年/write_ds1302(0x88,month);/月/write_ds1302(0x86,day);/日/write_ds1302(0x8a,week);/星期 write_ds1302(0x84,change_hour);/时/write_ds1302(0x82,change_minute);/分/write_ds1302(0x80,second);/秒write_ds1302(0x8e,0x80);/写保护寄存器void main ()hot = 1; initial_ds1302(); while(1)read_time(); /读时间display();/ if()changtime();if(week=0x07 & hour=0x22) hot = 0;elsehot = 1;else hot = 0; 3 结束语 本文通过以at89c2051单片机为核心并辅以外围电路的设计方法实现了低成本的控制要求。该定时时控制器可定时控制并显示有关参数,在满足系统要求的同时,又具备简单、经济之特点。此外,灵活的键盘输入方式来设定参数可增加系统的灵活性。 日前,采用本设计制作的定时控制器已经通过测试并投入使用,实际使用结果证明:该定时控制器运行可靠,操作方便,可用在传统的不带定时功能的热水器上,而且既经济又实用,值得推广。可预置热水器控制电路是一个十分接近于生活的课题,其中采用数字电路实现对时和分的显示计时装置。整个热水器电路只要有晶体振荡电路、分频电路、时间显示电路、译码显示电路、减法器电路、比较电路、模数转换电路、水位控制电路、报警电路组成。热水器电路广泛应用于生活中,为人们的生活提供了便利的条件。经过这次对可预置热水器控制电路的设计,我了解了热水器电路的基本构成和原理,同时也更加了解一直基本电路的实现方法。这次的数字电子课程设计是一次自我检验的机会,我们要将课堂上所学到知识融会贯通到一个设计电路中去,而且,仅仅是教科书上所讲解的知识是完全不够的,设计的过程中,我们需要自己去查找各种各样的资料,将一些陌生的东西用我们学过的知识去理解,再把它们应用到我们设计的电路中去。经过2个星期的课程设计,我对数字电子技术知识的了解更加深刻,我认真研究了几种电路中应用的芯片,将它们与同类的芯片进行比较,选择出最合适我所设置电路的芯片。对于计数器的连接我有了一些掌握,理解了要怎样连接才可以得到需要的进制、将计数器用于分频电路的连接方法。而且在电路我,我还可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全教育最后一课课件
- 安全教育日培训记录课件
- 安全教育教师培训笔记课件
- 牧草育种杂交育意义课件
- 安全教育培训需求制度课件
- 量子科技面试题库及答案
- 粮储公司面试题库及答案
- 考核运营的面试题库及答案
- 安全教育培训课件强化
- 2025年智能仓储物流系统智能化关键技术分析报告
- 工程质量检查制度
- 脑瘫的分类及临床表现
- 风力发电基础施工合同范本
- ktv承包经营合同范文
- 《实战电池性能测试》课件
- 2025年贵州蔬菜集团有限公司招聘笔试参考题库含答案解析
- 2025年1月浙江省高二物理学业水平考试试卷试题(含答案详解)
- 2024年全国职业院校技能大赛高职组(环境检测与监测赛项)考试题库(含答案)
- 实验-大肠杆菌感受态细胞的制备及转化
- 2025年中考语文阅读复习:理解词语含义(含练习题及答案)
- GB/T 44421-2024矫形器配置服务规范
评论
0/150
提交评论