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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

作息时间控制器 1.docx

1、作息时间控制器 1河南理工大学单片机课程设计报告作息时间控制器姓 名: 张春娟 学 号: 320319332320 专业班级: 09级电气工程及其自动化 指导老师: 张宏伟 所在学院: 河南理工大学成人教育学院 2009年9月16日摘要本设计是基于AT89S52单片机的基本功能实现作息时间控制功能,采用了4位七段数码管,扫描键盘,蜂鸣器和相应的电路对当前时间以及定时时间的控制,并在设定的时间进行提醒。本设计使用单片机内的定时器实现计时功能,利用按键分别控制切换当前时间和定时时间、小时+1、分钟+1以及关闭蜂鸣器。试验采用了一个七段LED数码管显示时间,采用一个蜂鸣器进行到时提醒,一个发光二极管

2、闪烁计秒。本设计由2个30p的电容和一个11.0592MHz的晶振构成时钟电路,由一个按键和10uF电容构成上电加按钮复位,单片机、时钟电路和复位电路共同构成单片机最小系统。数码管采用共阴极接法由P0口输出字形,P2口中的高四位输出段选。P1.01.3接入按键对时间按进行操作,由P1.4连接发光二极管闪烁读秒,9013驱动蜂鸣器并由P1.5进行控制。通过对硬件电路的设计和PROTEUS的仿真,本设计基本实现了:1. 使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED闪动作为秒计数表示。2. 可以设定作息时间,并进行到时提示。3. 能够根据预先设定好的作息时间表自动启停控制电路,完

3、成对外部设备的实时控制。4. 可以设置现在的时间及显示定时设置时间。由于单片机的集成度高、功能强、通用性好、体积小巧、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便,使单片机迅速得到了推广应用,所以学好单片机对我们以后的学习和工作有着至关重要的作用。摘要 11.概述 31.1单片机的基本概念 51.2设计任务及要求 51.3设计思路 52.系统总体方案及硬件设计 62.1系统的总体设计方案 62.2各模块功能介绍 62.3各部分电路的硬件设计 72.3.1时钟电路 72.3.2复位电路 82.3.3按键控制电路 82.3.4读秒指示电路 92.3.5提醒模块电路 92.3.6显示模

4、块电路 103.软件设计 113.1程序的总流程图 113.2按键功能子程序流程图 123.3参数计算 124PROTEUS仿真 134.1仿真过程 135.课程设计体会 15参考文献 17附录一 程序 18附录二 PROTEUS图 241.概述1.1单片机的基本概念单片机是一种特殊的计算机,它是在一块半导体芯片上集成了CPU、存储器RAM、ROM以及输入输出接口电路,这种芯片习惯上被称为单片微型计算机,简称单片机。单片机一词是早期Single Chip Microcomputer(SCM)的直译,它忠实的反映了早期单片机的形态和本质。随后,按照面向对象、突出控制功能的要求,在片内集成了许多外

5、围电路及外设接口,如定时器/计数器、串行通信控制器等,部分单片机还集成有A/D、D/A装换器和PMW功能。在硬件结构、指令系统和I/O等设计上有充分考虑了控制的需要,为控制提供了有效的手段,土坯了传统意义上的计算机结构,发展成Micro-controller的体系结构,因此,目前国外已普遍称之为微型控制器MCU(Micro-controller Unit),并以此与微型处理器相区别。1987年以后,它又被一些大的半导体器件公司命名为嵌入式控制器(Embedded Controller)。因采用嵌入技术,即在一片芯片上除了集成CPU外,还嵌入了RAM/ROM或各种I/O功能。微型计算机的硬件部分

6、是由CPU、存储器、定时器/计数器、并行输入/输出接口电路、中断控制器等大规模IC芯片安装在一个电路板上,加上键盘、显示器等构成的。典型的单片机的结构如图1所示。图1(a)AT89S52的PROTUES示意图1图1(b)单片机的结构示意图1.2设计任务及要求(1)设计制作一个单片机数字钟及控制电路。(2)使用4位七段显示器来显示现在的时间。显示格式为“时分”,由LED闪动作为秒计数表示。(3)可以设定作息时间,并进行到时提示。(4)能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控制。(5)可以设置现在的时间及显示定时设置时间。1.3设计思路本设计采用单片机的P0口作为字形

7、输出口,由内部定时器/计数器T0作为计时器,以P2口作为段选,连接七段共阴数码管进行时间显示。通过设置4个按钮分别实现对当前时间和定时时间的切换、对小时加一、对分钟加一以及关闭蜂鸣器的功能。通过P1口连接蜂鸣器实现定时提醒的功能。2.系统总体方案及硬件设计2.1系统的总体设计方案图2 设计原理框图本设计采用AT89S52单片机为核心,加上复位电路和时钟电路组成最小系统,在外部连接读秒指示、提醒模块、按键控制以及显示模块,共同实现作息时间控制的基本功能,如图2所示。2.2各模块功能介绍读秒指示由单片机输出端连接发光二极管组成,可以实现闪烁计秒功能,即两次闪烁之间间隔一秒。提醒模块由单片机的输出端

8、驱动蜂鸣器,实现到时提醒的功能。其中由三极管驱动蜂鸣器,单片机的输出连接三极管的基极。显示模块采用一个七段共阴数码管,由单片机的P0口输出字形,P2口输出段选信号,用以显示当前时间与定时时间。按键控制部分使用了4各按键连接单片机的输出口,用以对当前时间和定时时间的切换、小时加一、分钟加一和关闭蜂鸣器。2.3各部分电路的硬件设计 以下介绍各个部分的电路设计。2.3.1时钟电路单片机内部有一个用于构成振荡器的高增益反响放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2上接外接时钟源即可构成时钟电路,如图3所示。图3 时钟电路参数选取:C1,C2对频率有微调作用

9、,当外接晶振时,C1和C2通常选取1030pF,当外接陶瓷振荡器时,C1和C2的典型值约为2050pF。振荡频率范围一般是1.212MHz2.3.2复位电路图4 复位电路复位电路采用上电+按钮电平复位,其中电阻的选取R1约为0.2k左右R2约为1k左右。保证加载RST引脚上的高电平持续两个机器周期,才能使单片机有效地复位如图4所示。2.3.3按键控制电路图5 按键控制电路本设计中采用了4个按键进行控制,P1.0-P1.3置为低电平,当按键按下后,相应的端口变为高电平,单片机执行相应的动作。按键一为时钟与当前时间的切换键,按键二位分钟加一,按键三为小时加一,按键四为蜂鸣器的关闭按钮。如图5所示。

10、2.3.4读秒指示电路图6 读秒指示电路由P1.4口连接发光二极管接地构成读秒指示电路,由程序实现P1.4端口每秒取反,即一秒输出高电平下一秒输出低电平依次循环,二极管亮一秒,暗一秒从而实现读秒功能。2.3.5提醒模块电路图7 提醒模块电路提醒模块如图7所示,其中三极管基极连接P1.5,当定时时间与当前时间相同时,P1.5由低电平变为高电平,蜂鸣器工作,实现到时提醒功能。2.3.6显示模块电路图8 显示模块电路显示模块由排阻和七段共阴数码管组成,采用动态显示,当要显示信息时,由P0口输出字形段码的低电平,P2口仅一位输出低电平,其余输出高电平,将要显示的字符在LED上显示出来。在这种显示电路中

11、,一个字位一个字位地轮流点亮各LED,每一个字位停留1ms左右,由于人的视觉暂留,不会察觉有闪烁现象。这种显示电路简化了硬件线路,降低了成本。3.软件设计3.1程序的总流程图图9 程序总流程图3.2按键功能子程序流程图该程序除了包括按键功能子程序外,还包括蜂鸣器子程序、显示程序以及延时程序等。按键功能的流程图如图10所示。图10 按键功能程序流程图3.3参数计算计时部分采用了计时器T0,方式一,50ms中断一次,中断20次即为1s,计数器初值的计算应为 4PROTEUS仿真4.1仿真过程做好电路与程序后,通过编译软件编译后倒入单片机中即可进行仿真(由于软件问题并未在图中做出复位)。第一步,图中

12、发光二极管闪烁发光,未到定时时间,三极管基极为低电平,蜂鸣器不工作。如图11所示。第二步,测试各个按键功能,小时加一、分钟加一以及切换当前时间和定时时间均无问题。第三步,图中已到定时时间,发光二极管闪烁,三极管基极为高电平,蜂鸣器工作。如图12所示。第四步,由于蜂鸣器开启之后未增加关闭功能,防止使用者未听到蜂鸣器提醒或无视其存在,故增加一按键关闭蜂鸣器,关闭之后三极管基极为低电平,蜂鸣器停止工作。如图13所示。图11 仿真过程1图12 仿真过程2图13 仿真过程35.课程设计体会两个星期的课程设计结束了,从中我们学到了很多东西且感悟良多,体会到了课本联系实际,学以至用,设计思想,实际动手能力都

13、有所提高. 作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。 初学单片机时觉得它深奥难懂,枯燥无味,通过课程设计我们体会到了编程的灵活性并对它产生了浓厚的兴趣.以前所学过的知识,都得到了充分的利用。课程设计从设计电路到调试结束,我们失败很多次也修改很多次,可谓是屡败屡战,可我们并未气馁,我们坚持到了最后,虽然最后做出的电路板虽然不太让人满意,但总算完成了,总算看到我们的成果了,总算可以高兴一番了.要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设

14、计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。在焊接每个元件的时候一定要注意各个输入、输出引脚,因为每个引脚都是不一样的,只要让各个引脚互相对应,才能得出正确的结果,否则,出现任何一点小的误差就会对整个系统造成毁灭性的打击。这次课程设计使我懂得了同学间的团结合作,懂得了理论联系实际,只有理论知识是远远不够的,只有把所学的理论

15、知识与实践相结合起来,从理论中得出结论,才是正确的理论,从而提高自己实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,并决心在以后的学习中加以改正,努力练习,提高自己的动手能力。在老师的辛勤的指导下,最后我们顺利地完成了这次的课程设计.看见到课本所学知识得以应用,心中满是欢喜,满是激动.这次课程设计让我的实际动手能力得到了大大的锻炼,让我解决实际问题的能力得到了大大的提高,并对本专业的课程充满了浓厚的兴趣,及对以后的学习充满了信心,决定在以后的学习生活中加强练

16、习,端正心态,迎接新的挑战.参考文献1余发山著.单片机原理及应用技术 江苏:中国矿业大学出版社. 2003.97-1182康华光.数字电子技术. 北京: 高等教育出版社,20033陈伟人编著。MSC-51系列单片机实用子程序集锦.北京:清华大学出版社,1993附录一 程序#include#include#define uchar unsigned char#define uint unsigned int/*七段共阴管显示定义*/ uchar code dispcode =0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,

17、0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF;/*定义并初始化变量*/uchar seconde=0;uchar minite=0;uchar hour=0;uchar mstcnt=0;uchar flag;uchar hour1=0;uchar minite1=1;uchar flag1;uchar flag2;uchar count;sbit P1_0=P10; sbit P1_1=P11; sbit P1_2=P12; sbit P1_3=P13; sbit P1_4=P14;sbit P1_5=P15;/*函数声明*/void delay(uchar

18、 k ); /延时子程序void time_pro( ); /时间处理子程序void display( ); /显示子程序void keyscan( ); /键盘扫描子程序void speaker( ); /蜂鸣器/*/*延时子程序*/*/void delay (uchar k) uchar j; while(k-)!=0) for(j=0;j125;j+) ; /*/*时间处理子程序*/*/void time_pro( void) if(seconde=60) /秒钟设为60进制 seconde=0; minite+; if( minite=60) /分钟设为60进制 minite=0; h

19、our+; if(hour=24) /时钟设为24进制 hour=0; /*/* 显示子程序*/*/void display(void) if(flag1=0) P2=0xfe; P0=dispcodehour/10; /显示小时的十位 delay(4); P2=0xfd; P0=(dispcode(hour%10)|0X80; /显示小时的个位 delay(4); P2=0xfb; P0=dispcodeminite/10; /显示分的十位 delay(4); P2=0xf7; P0=(dispcodeminite%10)|0X80; /显示分的个位 delay(4); if(flag1=1

20、) P2=0xfe; P0=dispcodehour1/10; /显示小时的十位 delay(4); P2=0xfd; P0=(dispcode(hour1%10)|0X80; /显示小时的个位 delay(4); P2=0xfb; P0=dispcodeminite1/10; /显示分的十位 delay(4); P2=0xf7; P0=(dispcodeminite1%10)|0X80; /显示分的个位 delay(4); /*/*键盘扫描子程序*/*/void keyscan (void) if(P1_0=1) /切换定时与时钟 delay(80); if(P1_0=1) do delay

21、(3); while (P1_0!=0); flag1=!flag1; if(P1_1=1) /对分调整 delay(80); if(P1_1=1) do delay(4); while (P1_1!=0); if(flag1=0) minite+; if(minite=60) minite=0; if(flag1=1) minite1+; if(minite1=60) minite1=0; if(P1_2=1) /对小时调整 delay(80); if(P1_2=1) do delay(4); while(P1_2!=0); if(flag1=0) hour+; if(hour=24) ho

22、ur=0; if(flag1=1) hour1+; if(hour1=24) hour1=0; if(P1_3=1) /蜂鸣器动作的条件 flag2=!flag2;void timer0(void) interrupt 1 using 0 /定时器0方式1,50ms中断一次 TH0=0x3c; TL0=0xb0; mstcnt+; if(mstcnt=20) seconde+; P1_4=!P1_4; /led闪烁 mstcnt=0; /计数器清零 /*/*蜂鸣器*/*/void speaker(void) if(minite1=minite&hour1=hour) if(flag2=0) P1_5=1; else P1_5=0;/*/*主函数*/*/void main(void) P1=0x00; /初始化p1口,全设为0 TMOD=1; /time0为定时器,方式1 TH0=0x3c; /预置计数初值 TL0=0xb0; EA=1; ET0=1; TR0=1; while (1) keyscan( ); /按键扫描 time_pro( ); /时间处理 display( ); /显示时间 speaker( ); /蜂鸣器 附录二 PROTEUS图

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

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