ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:673.80KB ,
资源ID:6108454      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6108454.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可调式定时器的设计与制作.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

可调式定时器的设计与制作.docx

1、可调式定时器的设计与制作 可调式定时器的设计与制作 姓 名: 姜梦琦 专 业: 电子信息工程 班 级: 093253 学 号: 09325313 指导老师: 王晓荣摘 要本次设计在以STC89C52单片机为核心的系统板上利用C语言设计电子定时器。该电子定时器能定时给电器供电或断电,最大定时时间可以长达六十分钟且可以再一分钟到六十分钟之间任意调节时间长短,操作使用方便。采用STC89C52单片机控制,5位共阳数码管显示时间,蜂鸣器提示,继电器作电器电源输出控制。该定时器可预置定时时间,可通过矩阵键盘上的四个按键来选定定时器预定时间和开始和暂停,然后结合继电器对电器进行供电和断电;利用单片机内部的

2、定时器T0,成功实现了计时器的计时功能;本电子定时器会在定时时间到达零时通过蜂鸣器进行报警,以此提醒用户电器即将断电,方便用户对电器进行其它的操作。关键词:电子定时器;供电或断电;继电器;60分钟;数码显示;8255电子定时器设计要求利用单片机为核心,设计并制作电子定时器,具有以下功能:(1) 电子定时器能定时给电器供电或断电;(2) 给电最大时间可以长达30min;(3) 四位数码管显示时间; (4) 继电器作电器电源输出控制。1 方案论证与对比1.1 方案一该方案由待命状态、预定定时时间、定时器开始与暂停系统、系统处理、DS1302处理时间、蜂鸣器报警、数码显示等模块组成。系统的计时部分采

3、用了一块时钟芯片DS1302,用其实现系统通过继电器对电器供电的计时工作。原理框图如图1所示:图 1 方案一系统方框图1.2方案二该方案仅由待命状态、预定时间、定时器开始与暂停系统、系统处理、继电器供电或断电、蜂鸣器报警、数码显示四个模块组成。整个系统的计时功能皆由STC89C52内部自带的定时器T0来实现。同样,结合继电器给电器供电,并利用蜂鸣器进行断电报警。原理框图如图2所示:图 2 方案二系统方框图1.3 方案对比与选择以上两个方案在原理上显然都可以完成该电子定时器的设计。但方案一中利用DS1302时钟芯片进行计时,虽然可达到题目的计时要求,但题目要求最大计时需达到30分钟,而该芯片的计

4、时周期规定了为24小时制,所以如果采用该方案的话,程序的设计处理复杂度将会大大增加。在方案二中,利用STC89C52单片机内部的定时器T0循环溢出中断,从而完成定时器的计时功能,5位共阴数码管显示时间,继电器作电器电源输出控制,其电路简单,操作使用方便,大大减轻了设计的工作量。所以选定该方案来进行本次课程设计。2 单元电路设计与计算2.1 STC89C52与8255路设计在本次设计中,需用到多个输出端口,所以熟悉单片机的接口也是至关重要的。本系统采用8255I/O扩展,P0、P2口为总线控制I/O扩展;在扩展的IO口中,PA口作为数码管的位选端口;PB作为数码管的段选端口;P12口连接继电器,

5、P3口分别用以控制各个中断、蜂鸣器等各个模块的控制。在XTAL2引脚和XTAL1引脚之间接有一块12M的晶振,从而使芯片内部的定时器能实现计时功能。单片机接口分配电路如图3所示:图 3 STC89C52与8255电路设计2.2 矩阵键盘电路的设计根据设计要求,需要通过按键来选择系统的工作方式,所以我从44矩阵键盘上定义了四个按键,可以通过按键S4、S8来设定定时时间;通过按键S12、S16来控制系统工作的开始和暂停。矩阵键盘电路如图4所示:图 4 矩阵键盘电路原理图在程序中,先将第一列的公共线拉高,即给PC4口赋一个值(如0x10)。然后如果这一排有键被按下的话,PC3口的值就会发生改变,例如

6、按下S4号键,PC3口的值就会由低电平变成高电平,依次类推,我们就可以根据PC3-PC0口值的变化来获得各个键值。2.3 继电器电路的设计由P12 引脚输出高低电平经S2控制三极管的通断,从而控制继电器的吸合与释放,继电器的输出端采用分离方式,即输出端不与内电路连接,直接连接端子,这样会增加更多利用功能,可控制更高电压设备的开和关,图上的S2单刀双掷开关控制继电器电路的电源。继电器电路原理图如图5所示:图 5 继电器电路原理图2.4 蜂鸣器电路的设计为了提醒用户对电器供电或断电后的其它工作,设计中用到了蜂鸣器的报警功能。定时器1用来控制蜂鸣器响应的频率。在电路中蜂鸣器由P3.3 脚控制,当将所

7、预置的时间倒数完毕后数码管进行模拟警报器声发出警报。蜂鸣器设计电路如图6示: 图 6 蜂鸣器电路原理图2.5 数码管显示电路设计由于该设计需用到五位数码管来显示时间,所以必须要有一个数码管显示电路。电路数码管为共阳型。数码管位的选择由8255 PA口来处理,每次只选择其中一位数码管显示。用动态扫描技术对五个数码管进行扫描,由PA控制位选。利用快速的循环显示,人眼看到的就是多位了。用PB口控制数码管的段选,根据不同的显示时间选择不同的段码。每显示一位数码管都进行消隐,消除暗瘾。数码管连接图如下:图 7 数码管显示电路原理图3系统软件工作流程图3.1 系统工作流程程序采用模块化、结构化设计,并采用

8、了软件抗干扰技术,其软件的可靠性较好,可维护性强。在本主程序中有3个状态:待命状态、计时工作状态和到点工作状态。当系统进入待命状态时,数码管上会显示“3000”样符号;通过按键S4和S8来预置定时时间,时间可调范围是0到59分59秒。只要按下S12定时器打开开始倒计时。在工作中如果按下S16就可以暂停倒计时。在工作中,都结合数码管显示时间,继电器给电器供电,当时间显示到0000时蜂鸣器就会报警,表示继电器给电器断电了。系统程序流程图如下图所示:图 8 系统程序流程图3.2 定时器T0中断工作分析定时器T0用于时间计时。定时溢出中断周期设为50ms,中断进入后先进行定时中断值校正,当中断累计20

9、次(即50ms201s)时,对秒计数单元进行减1操作;当到了0s时,分计数单元减1操作;直到计时完毕。4 系统调试及性能分析先检查印制板及焊接的质量情况,在检查无误后通电检查数码管的点亮状况。至于矩阵键盘的调试,关键是把握好按键的去抖效果。当出现按键“不灵”情况,一般是由于程序中用于按键去抖的延时时间不够。将程序编辑编译完成后,将生成的hex文件通过串口下载软件下载到STC89C52单片机芯片中去。在进行调试之前,还应注意操作的顺序:先进行定时时间的预置,然后选定工作方式。下表所列的是系统定时功能测试结果。 表1系统计时测试结果 测量序号理论值测量值1分钟1分钟1分钟5分钟5分钟4分59秒10

10、分钟10分钟9 分58秒15分钟15分钟14分57秒30分钟30分钟29分56秒误差分析:由于程序中使用了一些延时语句,所以如果计时时间过长的话,就会在时间上产生一定的误差。因为我们的计时完全是通过单片要内部的计时器来完成的,所以该误差是不可避免的。5 详细仪器清单表2 仪器清单仪器名称数量STC89C52开发板1块串口下载线1根电源线1根万用表1块6 总结与思考及致谢课程设计是针对某一理论课程的要求,对学生进行综合性实践训练的实践教学环节,可以提高学生运用课程中所学的理论知识与实践紧密结合,独立地解决实际问题的能力。在这次课程设计过程中使我从中学到许多以前在课本和课堂上所无法学到的,特别是在

11、课程设计过程中查找资料的过程中从中学到了许多东西并从中体会到许多的乐趣,从而丰富了自己,使自己无论是上课时还是在课余都感到很充实。在本次课程设计的过程中,曾得到过老师与几位同学的悉心指导与帮助,才使得我的设计非常圆满的完成,在此对他们表示我们最衷心的感谢,谢谢你们!因学习知识的能力和时间有限,并且此次单片机原理及应用课程设计对于我们来说还只是初体验,因此在本次的课程设计过程中,难免存在错误,恳请老师给以批评和指正,并再次感谢曾帮助过我的老师和同学。参考文献1 楼然苗,李光飞编著.单片机课程设计指导M.北京:北京航空航天大学出版社,20072 朱定华,戴汝平编著.单片微机原理与应用M.北京:清华

12、大学出版社,20033 胡汉才编著.单片机原理及接口技术M.北京:清华大学出版社,20044 谭浩强编著.C程序设计(第三版)M.北京:清华大学出版社,20055 李大友.姜秀芳主编.单片微型硬件.软件及应用M.北京:高等教出版社,20036 沈红卫编著.单片机应用系统设计实例与分析M.北京:北京航空航天大学出版社,2002附录一:单片机系统板原理图 附录二:详细系统源程序#include#include #define PA XBYTE0xD1FF /*PA口地址*/#define PB XBYTE0xD2FF /*PB口地址*/#define PC XBYTE0xD5FF /*PC口地址*

13、/#define CON XBYTE0xD7FF /*控制字地址*/#define uint unsigned int#define uchar unsigned charsbit RELAY=P12; /*定义继电器接口*/sbit been=P33;/*数码管段*/uchar code TAB_CODE=0XA0,0XBB,0X62,0X2A,0X39,0X2C,0X24,0XBA,0X20, 0X28,0X30,0X25,0XE4,0X23,0X64,0X74;uchar num,t,s,m=30;/*小延时函数*/void delay(uint a) while(a-);void Ti

14、me();void Start();void keyscan();void main() TMOD=0x21;/定时器工作方式设置 TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; ET0=1; ET1=1; CON=0x81;/控制字设置 while(1) keyscan(); Time(); Start();/*数码管显示函数*/void Start() PB=0xff;/*消影*/ delay(100); PA=0xfe; /*位选通*/ PB=TAB_CODEm/10;/*分十位显示*/ delay(150); PB=0xff; d

15、elay(150); PA=0xfd; PB=TAB_CODEm%10;/*分个位显示*/ delay(150); PB=0xff; delay(150); PA=0xfb; PB=0x7f; /*时间分隔-显示*/ delay(150); PB=0xff; delay(150); PA=0xf7; PB=TAB_CODEs/10;/*秒十位显示*/ delay(150); PB=0xff; delay(150); PA=0xef; PB=TAB_CODEs%10;/*秒个位显示*/ delay(150); PB=0xff; delay(50); while(s=0&m=0)/*判断时间是否走

16、完*/ TR0=0;/*定时器关闭*/ TR1=1;/*定时器1打开*/ RELAY=1;/*继电器断电*/ delay(350); PA=0; PB=0xa0; num+=2; /*键盘扫描函数*/void keyscan() uchar k,j=0x10; CON=0x81;/*初始化8255控制器*/ PC=0x10;/*把PC.4口拉高*/ k=PC; k=k&0x0f;/*判断是否有键按下*/ if(k!=0) delay(50);Start();if(k!=0) while(PC!=0x10)/*松手检测*/ Start(); k=k+j; if(k=0x18) m+; if(m=

17、60) m=0; if(k=0x14) if(m=0) m=60; m-; if(k=0x12)/开始键 TR0=1; RELAY=0; if(k=0x11)/暂停键 TR0=0; RELAY=1; P1=PC; /*倒计时控制函数*/void Time() if(t=20) t=0; if(s=0) s=60; if(m=0) m=60; m-; s-; void Ser0() interrupt 1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; t+;/定时器中断1设计蜂鸣器响应的频率void Ser1() interrupt 3 TH1=0x01; TL1=num; been=!been;/*END*/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1