毕业设计论文:基于单片机电铃控制器系统设计_第1页
毕业设计论文:基于单片机电铃控制器系统设计_第2页
毕业设计论文:基于单片机电铃控制器系统设计_第3页
毕业设计论文:基于单片机电铃控制器系统设计_第4页
毕业设计论文:基于单片机电铃控制器系统设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理与应用技术课程设计报告题目:基于单片机控制的电铃控制器专业班级: 姓名: 时 间: 指导教师: 基于单片机控制的电铃控制器一 设计要求一根本功能1. 显示: 可以显示 星期、时、分和秒2. 打铃:每天可设置20次,打铃持续时间每次1-90秒可调,每次打铃的间隔时间1-99分钟可调。3. 铃声: 内置蜂鸣器可以发出监控声音 三扩展功能1可设定单/双休息日不打铃2随季节变化,每天自动调整开与关的时间二方案完成时间 三周1第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。2第二周完成软件的具体设计和硬件的制作。3第三周完成软件和硬件的联合调试。三编写设计报告 写出设计的全过程,附

2、上有关资料和图纸,有心得体会。四辩论 在规定时间内,完成表达并答复下列问题。目录1引言12总体设计方案11总体设计框图1设计方案13设计原理分析222224程序流程框图333445心得与体会5参考文献5附录6基于单片机控制的电铃控制器摘要:该设计介绍了一种以AT89S51单片机为核心,以七段数码管显示星期、时、分和秒,发光二极管作为指示灯标志及按键较时、定时的自动打铃器。关键词:单片机 电铃 自动 数码管 1引言当今社会,随着科学技术的快速开展,自动控制在人们的生活中可以说“无孔不入,小到遥控儿童玩具,大到冰箱空调的智能化,都表达了科学技术的进步。特别是单片机SingleChip Microc

3、omputer SCM技术的应用,不但降低了生产本钱,同时也方便了消费者,使操作简洁、平安。单片机的应用使许多复杂的事情,都能够简单、方便的实现了。用单片机控制的自动打铃器,充分发挥单片机体积小,价格廉价,功耗低,可靠性好等特点,充分发挥了单片机的控制优势。本打铃器可用于作息时间控制,方便了广阔师生。2总体设计方案设计思路利用单片机及其定时器设计的一个时钟,在每次毫秒加1的计时过程中,都与设定的打铃时间作比拟,如果相等就输出打铃信号,不等那么返回。如此反复运行。总体设计框图图1 总体设计框图设计方案 根据设计任务的根本要求,设计了由单片机AT89S51作为主控器件,七段数码管作为显示电路,七个

4、按键组成的按键操作电路,七个发光二极管组成的状态指示电路,以及三极管、蜂鸣器组成的报警提示电路和继电器组成的打铃信号输出电路构成的自动打铃器。除了以上的硬件电路外,还充分利用软件、硬件相结合,充分发挥单片机设计的优势。使设计更具特色。系统可分成三局部,即时钟电路、时间显示电路、控制电路,而时钟电路起控制主导作用。时钟电路的构成由单片机及其定时器完成,时间显示电路那么由单片机串口输出,送到外部集成芯片74LS164,最后由七段数码管显示出来。控制电路主要控制着复位电路、校时以及设置打铃点等操作,并配以状态指示电路辅助操作。3设计原理分析初步设计了由六个按键来完成所有的操作,它们的功能分别是:复位

5、键、设置键、存储键、加一键、减一键、确认键,具体操作方法由软件设计为菜单式操作,使所有的操作更加的简洁,方便。状态指示电路由硬件局部六个发光二极管,结合软件使操作状态一目了然。第一个发光二极管亮时候,说明当前状态为时间显示;第二个发光二极管亮时候,说明此状态为时间调整状态;第三个发光二极管亮时候,说明此状态为时间加一状态;第四个发光二极管亮时候,说明此状态为时间减一状态;第五个发光二极管亮时候,说明此状态为定时时间设定存储状态。打铃控制比拟所存储的打零时间点,到打铃时间时进行打铃。图2 总体电路图图2中,S1为确认键,S2为设置键,S3为加一键,S4为减一键,S5为存储键,S7为复位键。当S2

6、按下时L2亮,S3按下时L3亮,S4按下时L4亮,S5按下时L5亮。L1为正常运行指示。S5,L6暂无使用。蜂鸣器在每个操作时给予报警提示。继电器电路作为打铃信号输出电路,对外提供打铃信号。4程序流程框图总体程序流程图根据硬件设计结果,为满足要求,程序应有主程序、按键处理程序、中断效劳程序和显示程序等局部构成。主程序中主要是程序各局部的初始化;按键处理程序处理五个按键的操作,包括各个按键的响应程序以及按键指示、闪烁指示、报警输出等;显示程序显示星期、时、分、秒,主要是时钟显示。图3 总体程序流程图该局部程序主要是对程序中所用到的数据单元进行初始化,以及定时器的赋初值。图4 主程序流程图该局部的

7、键盘扫描为程序扫描方式,CPU不停的对P1口进行扫描,当任何一个键按下时,与之相连的输入数据线即被清0低电平,而平时该线为1高电平。这种键盘扫描方式的优点是电路简单:缺点是当键数较多时,要占用较多的I/O线。由于按键的机械特性,在闭合及断开的瞬间均伴随有一连串的抖动,键抖动会引起一次按键被误读屡次。为了确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。该程序使用10ms延时程序作为去抖动程序去除键抖动。图5 校时程序流程图时钟打铃程序使用单片机T0、T1两个定时器中断,两个定时器均为方式一,初值为10ms,当定时器T0溢出时响应中断,使毫秒单元加1,当毫秒单元满100时分单元加1,依此类推

8、。当定时器T1溢出时响应中断,依次比拟存储的打铃点,条件符合就输出打铃信号。中断均需保护现场,返回时恢复现场。图6 时钟打铃中断程序流程图5心得与体会经过将近三周的单片机实习,在指导老师和同学的帮助下,我确实学到了不少平时在课堂上所学不到的知识。这样的实习不管是对我们的理论知识还是实践能力都有很大的帮助,经过这些实习可以使我们能更快更准确的掌握专业方面的理论知识。总之,通过这次实习,我真正学到了很多东西,体会到了理论联系实际的重要性。充分认识到实践的重要性,只有在实践中才能更好的验证理论知识。虽然也遇到一些问题,但在老师及同学的帮助下,各种问题迎刃而解。最后,衷心感谢辅导老师的指导和同学的帮助

9、!参考文献1周航慈.单片机应用程序设计根底M.北京:电子工业出版社,1997年7月2朱承高.电工及电子技术手册M.北京:高等教育出版社,19903阎石.数字电子技术根底第三版M.北京:高等教育出版社,19894廖常初.现场总线概述J.电工技术,1999.65 李朝青.单片机原理及接口技术第三版M.北京;北京航空航天大学出版社,2005年10月附录1程序分为五局部2程序清单 ORG 0000H LJMP MAIN ORG 000BH LJMP TOINT ORG 001BHLJMP DLBJ;*主程序* ORG 30HMAIN:MOV IE,#8AH ;开T0,T1中断 MOV TMOD,#11

10、H ;定时器方式1 MOV TH0,#0D8H MOV TL0,#0F0H ;初值 MOV A,#0 MOV 59H,A MOV 60H,A MOV 61H,A MOV 62H,A MOV 63H,A MOV 64H,A MOV 65H,A MOV 66H,A;清零 m_sec EQU 20H ;毫秒单元 sec EQU 21H ;秒单元 min EQU 22H ;分单元 hour EQU 23H ;时单元 week EQU 24H ;星期单元 MOV 30H,#12 SETB TR0 SETB TR1 CLR A MOV R0,A MOV R1,A MOV R2,A MOV R3,A MOV

11、 R5,A MOV R6,A MOV R7,A MOV m_sec ,#00 ;毫秒单元清零 MOV sec ,#00 ;秒单元清零 MOV min ,#00 ;分单元清零 MOV hour ,#00 ;时单元清零 MOV week ,#00 ;星期单元清零 MOV 70H,A MOV 71H,A MOV 72H,A MOV 73H,A MOV 74H,A LCALL xs ;调用显示程序;*;*数字钟按键程序*;*;*调时钟按键*NET1:JB P1.0,NET2 LCALL YS10MS JB P1.0,NET2 JNB P1.0,$ SETB TR0 ;开中断 SETB TR1 CLR

12、P0.0 ;正常运行 MOV 59H,#00 MOV R7,#00;*整时间局部切换键*NET2:MOV A ,59H CJNE A ,#00 ,NET3JB P1.1 ,NET9 ;数字钟调整时间局部切换键 LCALL YS10Ms JB P1.1 ,NET9 INC 59H JNB P1.1 ,$ INC R7 CLR TR0 CLR TR1 SJMP NET4NET3: JB P1.1 ,NET4 LCALL YS10ms JB P1.1 ,NET4 INC 59H JNB P1.1 ,$ INC R7NET4: CJNE R7 ,#1 ,NET5 LCALL SSH ;秒闪烁 SJMP

13、 NET9NET5: CJNE R7 ,#2 ,NET6 LCALL MSH ;分闪烁 SJMP NET9NET6: CJNE R7 ,#3 ,NET7 LCALL HSH ;时闪烁 SJMP NET9NET7: MOV R7 ,#0 LCALL WSH ;星期闪烁 SJMP NET9NET8: LCALL XS ;*调整时间加1键*NET9: JB P1.2 ,NET115 ;数字钟调整时间键 LCALL YS10ms JB P1.2 ,NET13JB P0.1 ,NET13 CJNE R7 ,#1 ,NET10 SETB p2.2 LCALL YS200ms INC sec ;秒单元加1

14、MOV A ,sec CJNE A ,#60 ,NET8 ;不等60时跳转显示,等60时将秒单元清零 MOV sec ,#00 LCALL XS JB P1.2 ,NET13 LJMP NET9NET115: LJMP NET15NET10: CJNE R7 ,#2 ,NET11 LCALL YS200ms INC min ;分单元加1 MOV A ,min CJNE A ,#60 ,NET8 ;不等60时跳转显示,等60时将分单元清零 MOV min ,#00 LCALL XS JB P1.2 ,NET13 LJMP NET9NET11: CJNE R7 ,#3 ,NET12 LCALL Y

15、S200ms INC hour ;时单元加1 MOV A ,hour CJNE A ,#24 ,NET8 ;不等24时跳转显示,等24时将时单元清零 MOV hour ,#00 LCALL XS JB P1.2 ,NET13 LJMP NET9 LCALL YS200ms INC week ;星期单元加1 MOV A ,week CJNE A ,#08 ,NET8 ;不等7时跳转显示,等7时将星期单元清零 MOV week ,#01 LCALL XS JNB P1.2 ,NET13 LJMP NET9NET13: SJMP NET15 NET14: LCALL XS;*调整时间减1键*NET1

16、5: JB P1.3 ,NET19 ;数字钟调整时间键 LCALL YS10ms JB P1.3 ,NET19JB P0.1 ,NET19 CJNE R7 ,#1 ,NET16 LCALL YS200ms DEC sec ;秒单元减1 MOV A ,sec CJNE A ,#0FFH ,NET14 ;不等60时跳转显示,等60时将秒单元清零 MOV sec ,#59 LCALL NET14 JB P1.3 ,NET19 LJMP NET15NET16: CJNE R7 ,#2 ,NET17 LCALL YS200ms DEC min ;分单元减1 MOV A ,min CJNE A ,#0FF

17、H ,NET14 ;不等60时跳转显示,等60时将分单元清零 MOV min ,#59 LCALL NET14 JB P1.3 ,NET19 LJMP NET15NET17: CJNE R7 ,#3 ,NET18 LCALL YS200ms DEC hour ;时单元减1 MOV A ,hour CJNE A ,#0FFH ,NET14 ;不等24时跳转显示,等24时将时单元清零 MOV hour ,#23 LCALL NET14 JB P1.3 ,NET19 LJMP NET15 LCALL YS200ms DEC week ;星期单元减1 MOV A ,week CJNE A ,#00 ,

18、NET14 ;不等7时跳转显示,等7时将星期单元清1 MOV week ,#07 LCALL NET14 JB P1.3 ,NET19 LJMP NET15NET19: LJMP DSH;*定时程序*DSH: JB P1.4 ,NT11 LCALL YS10ms JB P1.4 ,NT11 JNB P1.4,$ INC R2 CJNE R2,#01,NTA ;第1个打铃点 MOV R0,#30H LCALL CUNNT11: LJMP NT1NTA: CJNE R2,#02,NTB;第2个打铃点 LCALL CUNNTB: CJNE R2,#03,NTC ;第3个打铃点 LCALL CUNNT

19、C: CJNE R2,#04,NTD ;第4个打铃点 LCALL CUNNTD: CJNE R2,#05,NTE ;第5个打铃点 LCALL CUNNTE: CJNE R2,#06,NTF ;第6个打铃点 LCALL CUNNTF: CJNE R2,#07,NTG ;第7个打铃点 LCALL CUNNTG: CJNE R2,#08,NTH ;第8个打铃点 LCALL CUNNTH: CJNE R2,#09,NTI ;第9个打铃点 LCALL CUNNTI: CJNE R2,#10,NTJ ;第10个打铃点 LCALL CUNNTJ:CJNE R2,#11,NTK ;第11个打铃点 LCALL

20、CUNNTK:CJNE R2,#12,NTL ;第12个打铃点 LCALL CUNNTL: CJNE R2,#13,NTM ;第13个打铃点 LCALL CUNNTM: CJNE R2,#14,NTN;第14个打铃点 LCALL CUNNTN:CJNE R2,#15,NTO;第15个打铃点 LCALL CUNNTO:CJNE R2,#16,NTP ;第16个打铃点 LCALL CUNNTP:CJNE R2,#17,NTQ ;第17个打铃点 LCALL CUNNTQ:CJNE R2,#18,NTR ;第18个打铃点 LCALL CUNNTR:CJNE R2,#19,NTS ;第19个打铃点 LC

21、ALL CUNNTS:CJNE R2,#20,NT1 ;第20个打铃点 LCALL CUNNT1: LJMP NET1;*打铃点存储子程序*CUN: MOV R0,hour INC R0 MOV R0,min INC R0 RET;*时钟中断程序*TOINT: PUSH PSW PUSH ACC ;保护现场 MOV TH0 ,#0D8H MOV TL0 ,#0F0H ;重新赋计数初值 INC m_sec ;毫秒单元加1 MOV A ,m_sec CJNE A ,#100 ,NEXT1 MOV m_sec ,#00 INC sec ;秒单元加1 MOV A,7FH CJNE A,#0,XYG I

22、NC 7EH MOV A,7EH CJNE A,#65H,XYG MOV 7EH,#0 MOV 7FH,#1 SETB P2.2 XYG: MOV A ,sec CJNE A ,#60 ,NEXT1 MOV sec ,#00 INC min ; MOV A ,min CJNE A ,#60 ,NEXT1 MOV min ,#00 INC hour ; MOV A ,hour CJNE A ,#24 ,NEXT1 MOV hour ,#00 INC week MOV A ,week CJNE A ,#08 ,NEXT1 MOV week ,#01NEXT1: LCALL XS POP ACC P

23、OP PSW ;恢复现场 RETI ;中断返回;*打铃中断程序*DLBJ:PUSH PSW PUSH ACC MOV TH0,#0D8H MOV TL0,#0F0H MOV R0,#30HFH: MOV A,R0 CJNE A,hour,LOP1 INC R0 MOV A,R0 CJNE A,min,LOP2 CLR P0.4 ;铃声响 CLR A MOV 7FH,A LCALL XS POP PSW POP ACC RETI INC R0LOP2: INC R0 CJNE R0,#58H,FH LOP3: LCALL XS POP PSW POP ACC RETI;*数字钟显示程序*XS: MOV A ,sec;将秒送A MOV B ,#10 DIV AB MOV 60H ,B ;秒的个位 MOV 61H ,A ;秒的十位 MOV A ,min;将分送A MOV B ,#10 DIV AB MOV 62H ,B ;分的个位 MOV 63H ,A ;分的十位 MOV A ,hour;将时送A MOV B ,#10 DIV AB MOV 64H ,B ;时的个位 MOV 65H ,A ;时的十位 MOV A ,week;星期的送A MOV B ,#10 DIV AB MOV 66H ,B ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论