基于单片机的作息时间控制器设计
- 格式:doc
- 大小:73.48 KB
- 文档页数:18
XX三峡学院《基于单片机的作息时间控制器系统设计》学院(系):电子与信息工程学院年级专业:2011级电信(仪器仪表)学号:0112110332学生XX:文静指导教师:谢辉教师职称:教授成绩:制作日期2014年10月29日目录摘要1关键词1第一章引言21.1 课题背景21.1.1 选题背景2第二章设计方案论证22.1 设计要求22.2设计方案选择32.2.1 方案一:数字电路设计的作息时间控制器系统32.2.2 方案二:基于单片机的作息时间控制器系统设计32.2.3 方案确定32.3 基本方案42.3.1 设计课题简要概述42.3.2 系统软硬件划分42.3.3 单片机选型42.4 总体设计框图4第三章硬件电路设计53.1 基本原理概述53.2 主要原件参数及功能简介53.2.1 主控器STC89C5253.2.2 DS130263.3 单元电路的设计73.3.1显示电路设计73.3.2 键盘接口电路设计83.3.3 响铃电路设计83.4 总体运行进程9第四章软件电路设计及流程图94.1 基本原理概述94.1.1 中断服务程序设计104.1.2 显示程序设计和按键判断与按键处理程序设计104.2 流程图114.2.1 系统主程序流程图114.2.2 系统定时中断流程图12第五章系统程序设计135.1 程序设计概要135.2 源程序清单13第六章作息时间器硬件原理图60第七章实训总结61参考文献62附录63附录1 原理电路图63附录2元件清单64附录3 实物图64基于单片机的作息时间控制器系统设计XX三峡学院电子与信息工程学院文静摘要基于单片机的作息时间器系统,是以一片8位单片机为核心的实时时钟及控制系统。
我们知道单片机的外接石英晶体振荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息。
课程设计(论文)题目:作息时间控制器院(系):电子工程与自动化学院专业:测控技术与仪器学生姓名:吉哲学号: 0900820413指导教师:徐翠锋职称:讲师2012年12月27日摘要本次作息时间控制器设计是采用AT89S52单片机作为系统的核心元件,在其最小系统基础上与DS1302时钟芯片配合,四个独立按键控制,六位七段数码管显示,无源蜂鸣器发声。
单片机最小系统作为核心处理和控制单元;时钟芯片用来实现实时时间的精准输出和闹钟信息的存储,并可用纽扣电池供电以保持时间的连续运行;独立按键用于进行时间及闹钟的设定;数码管用于显示时间及闹钟信息;蜂鸣器用于在达到设定的时间后进行及时提醒。
关键词:时间控制;AT89S52;单片机;DS1302;时钟芯片;闹铃;定时报警AbstractThis work and rest time controller design is to use AT89S52 SCM as the core of the system components, in its minimum system with DS1302 clock chip based on coordination, four independent key control, six seven period of digital tube display, passive buzzer sound. Single chip microcomputer minimum system as the core processing and control unit; Clock chip to realize real-time time accurate output and alarm information storage, and use button batteries to keep continuous operation time, Independent key for time and alarm clock Settings; Digital tube is used to display the time and alarm information; Buzzer to reach a set time for timely remind.Key words:Time control; AT89S52 devices; SCM; DS1302; Clock chip; Alarm; Timing alarm目录引言 (1)1 课程设计任务及要求 (1)2 硬件设计 (1)2.1 总体设计思路及系统框图 (1)2.2 中央处理控制器 (2)2.3 晶振电路 (3)2.4 时钟信号产生电路 (3)2.5 显示电路 (4)2.6 控制电路 (6)2.7 闹铃电路 (8)2.8 电源及下载电路 (8)3 程序设计 (9)3.1 主程序流程图 (9)3.2 按键扫描程序流程图 (9)3.3 响铃扫描程序 (10)4 制板、组装与调试 (11)4.1 PCB制作 (11)4.2 制作PCB板流程 (11)4.3 调试 (11)5 方案总结 (11)心得体会 (12)谢辞 (13)参考文献 (14)附录 (15)引言时间是人类生活必不可少的重要元素,从古至今它都扮演着一个非常重要的角色。
基于单片机的作息时间控制器设计参考文献作息时间控制器是一种能够根据人们的作息时间需求自动控制开关的设备,通常用于智能家居系统或办公环境。
在这篇文章中,我将根据您提供的主题——基于单片机的作息时间控制器设计参考文献,从理论和实践两个方面进行全面评估,并撰写一篇有价值的中文文章。
一、引言基于单片机的作息时间控制器设计是智能家居系统中的重要组成部分,它能够根据人们的作息时间需求自动控制照明、电器等设备的开关,提高生活的便利性和舒适度。
本文将从单片机技术、作息时间控制理论与实践等方面进行探讨,旨在为相关领域的设计和研究提供参考。
二、单片机技术在作息时间控制器设计中的应用1. 单片机概述单片机是一种集成了微处理器、存储器和输入输出设备的微型计算机系统,其小巧灵活的特点使其在作息时间控制器设计中得到了广泛的应用。
通过编程控制单片机的输入输出口,可以实现对作息时间控制器的精准控制。
2. 单片机在作息时间控制器设计中的优势(1)精确控制:单片机具有精准的计时和控制功能,能够准确地实现根据时间设定的开关控制。
(2)灵活性:单片机可以根据用户的需求进行编程,实现各种复杂的时间控制模式,满足不同场景下的作息时间需求。
(3)节能环保:通过单片机控制作息时间器,可以有效地节约能源,降低能源浪费。
三、作息时间控制理论与实践1. 作息时间控制理论作息时间控制理论是基于人体生理和心理特点,结合现代生活的节奏和需求,制定出的时间管理原则和方法。
在作息时间控制器设计中,理论的指导作用不可忽视。
2. 作息时间控制器实践案例(1)基于单片机的作息时间控制器硬件设计:通过对各种传感器和执行器的选择与搭配,实现对照明、空调等设备的自动控制;(2)基于单片机的作息时间控制器软件设计:利用单片机的编程功能,实现对时间的准确监测和控制,创建各种时间控制模式。
四、个人观点和总结回顾基于单片机的作息时间控制器设计是一项将理论与实践相结合的工程项目,需要综合考虑单片机技术、作息时间控制理论与实践等多方面的知识。
湖南化工职业技术学院毕业设计说明书题目:基于单片机的作息时间控制系的设计与实现毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:目录一、引言-----------------------------------------------------------------31.1单片机的作息时间控制系统设计的目的和意义------------------------31.2方案比较--------------------------------------------------------3二、整体设计方框图-------------------------------------------------------4三、模块电路设计---------------------------------------------------------53.1.单片机核心控制模块---------------------------------------------53.2键盘模块--------------------------------------------------------73.3实时时钟模块---------------------------------------------------123.4数据存储模块---------------------------------------------------143.5温度传感器模块------------------------------------------------3.6红外模块------------------------------------------------------3.7电机模块------------------------------------------------------3.8显示模块------------------------------------------------------3.9外围驱动模块--------------------------------------------------四、单片机软件系统设计--------------------------------------------------154.1系统实现工作流程-----------------------------------------------4.2系统流程图-----------------------------------------------------4.3系统源程序-----------------------------------------------------五、元件明细表----------------------------------------------------------16六、整机电路图----------------------------------------------------------196.1 整体原理图-----------------------------------------------------196.2 整体PCB图-----------------------------------------------------206.3整体PCB 3D图--------------------------------------------------七、总结与致谢----------------------------------------------------------24八、参考文献------------------------------------------------------------24一、引言1.1单片机作息时间控制系统设计的目的和意义随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力。
内容摘要单片机是为了实现控制功能而设计的一种微型计算机。
由于单片机是在一块芯片上集成了一台微型计算机所需要的CPU、输入/输出部件和时钟电路等,因此,它具有体积小,使用灵活、成本低、易于产品化和抗干扰能力强,可以在恶劣的环境下实现可靠工作的特点。
设计的作息时间系统硬件上采用了AT89C52单片机,并且采用了单片机可以直接驱动的LM016L液晶显示屏,比市场上大部分LED数码显示管提供更多显示内容。
此外系统还设置了5个按钮可以随时调整当前时间,以保证与标准时间相吻合。
在软件设计方面,系统最大的创新点是不仅能够实现显示年、月、日信息外,而且可以自动识别闰年、闰月及每月的天数。
还可以根据学校、工厂等单位的作息时间表按时打铃、播放音乐、广播体操和其他节目等。
以单片机控制作为设计的创新点让整个系统结构简单、体积小巧、可靠性高、操作简单、扩展性强。
关键词作息时间控制;51单片机;LM016L显示屏;供电电路Design Time Clock Based on MCU091307326 Wu Ning tutor Professor Zhou PengAbstractA single-chip microcomputer is designed in order to realize the control function. Because the microcontroller is CPU, memory, input / integrated on a single chip of a microcomputer required output components and clock circuit, therefore, it has the advantages of small volume, flexible use, low cost, easy production and strong anti-interference ability, features can achieve reliable operation in harsh environments.Hardware schedule system design using AT89C52 single chip, LM016L LCD screen and innovation by the single chip can be directly driven, provides more display contents than the market most of the LED digital display. In addition the system also set up 5 buttons can be adjusted at any time to coincide with the current time, to ensure the standard time. In the aspect of software design, innovation system is the biggest can display year, month, day of information, and can automatically identify the leap year, month and monthly. Also according to the schools, factories and other units schedule on time bell, playing music, broadcast gymnastics and other programs.SCM control as a design innovation so that the whole system is simple in structure, small volume, high reliability, simple operation, expansion and strong.KeywordsTime schedule control; 51 microcontroller; LM016Ldisplay;The power supply circuit目录第一章绪论 (1)1.1课题研究意义 (1)1.2 国内外研究现状 (1)1.3 研究内容 (2)第二章核心芯片及元件介绍 (3)2.1 A T89C52简介 (3)2.1.1AT89C52芯片的引脚 (4)2.1.2AT89C52特点 (7)2.2 LM016L显示屏 (8)2.2.1显示屏主要技术参数: (9)2.2.2引脚功能说明 (9)2.2.3显示屏的指令说明及时序 (11)2.2.4显示屏的RAM地址映射 (13)第三章硬件电路设计 (15)3.1总体电路设计: (15)3.2硬件系统各部分电路设计 (15)3.2.1系统复位电路的设计 (15)3.2.2系统时钟电路的设计: (16)3.2.3闹铃电路设计: (17)3.2.4显示电路设计: (18)3.2.5定时调试按键电路设计 (19)3.2.6电源电路设计 (20)第四章软件设计 (21)4.1主模块设计 (21)4.2显示模块设计 (22)4.3时间设定模块设计 (22)4.4闹铃功能的实现 (23)第五章软件仿真及结果分析 (25)5.1单片机仿真图 (25)5.2电源仿真图 (26)5.3响铃实现仿真图 (26)5.4性能及结果误差分析 (27)第六章结论与展望 (28)6.1结论 (28)6.2展望 (28)致谢 (30)参考文献 (31)附录 (32)基于单片机的作息时间钟的设计091307326 伍宁指导老师周鹏教授第一章绪论1.1课题研究意义科技的进步需要技术不断的提升。
基于单片机的校园作息时间系统控制
校园作息时间系统控制可以使用单片机来实现。
具体步骤如下:
1. 设计电路:设计一个电路,通过单片机控制要显示的时间、
切换时间区间、自动切换时间、亮度等功能。
2. 编写程序:使用C、Assembly等编程语言编写单片机程序,
实现校园作息时间系统控制功能。
3. 烧录程序:将编写好的程序通过编程器烧录到单片机芯片中。
4. 测试验证:将芯片插入到实验板中,将开发板与电脑连接,
通过串口调试工具测试程序是否运行正常,验证控制功能是否正确。
5. 改进优化:对程序中出现的问题进行调试和优化,达到更好
的控制效果。
总结:基于单片机的校园作息时间系统控制可以实现自动切换
时间、显示当前时间等功能,是一种便捷、高效的控制方式。
毕业设计(论文)题目:基于单片机的作息时钟系统专业:电子测量技术与仪器班级:09251班学号:19号**:******:**成都电子机械高等专科学校二〇一二年六月论文摘要本设计是作息时钟系统设计,由单片机最小系统、按键模块、数码管显示模块、闹钟模块组成。
采用单片机AT89C52与12MHZ晶振相连;通过按键K1、K2、K3、K4、K5控制时间的显示、校正、闹钟时间设定。
数码管显示模块用来显示时间,显示格式为“时分”,并能够根据需要显示年、月、日,由数码管小数点闪动作为秒计数;闹钟模块进行到时提醒并作出相应动作:发光二极管闪亮,同时播放一段音乐。
本设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0定时器溢出中断来实现,工作在T1方式下,定时50微妙,则连续中断20次即为一秒,得到了我们所需时间的最小单位秒,60秒为一分,60分为一小时,24小时为一天,1、3、5、7、8、10、12月为31天,4、6、9、11月为30天,闰年二月为29天,非闰年二月为28天,12个月为一年。
采用这种时间设计思想来进行时间设置。
在整个系统的设计中,单片机的P0口输出显示信号;P1口按键输入控制;P2口用来扫描,为动态显示;P3口闹钟模块。
该设计用C51编写程序,由于汇编语言的移植性比较差,而C语言则比较灵活。
许多子函数都可以直接移植过去。
关键词:单片机 AT89C52 C语言作息时间系统AbstractThe design of the rest of the clock system design, from the smallest single-chip system, key module, digital tube display module, alarm ing single-chip AT89C52 and 12MHZ crystal connected through keys; K1, K2, K3, K4, K5 control time display, correction, alarm time setting.Digital tube display module to display the time, the display format for "time", and according to the needs of display year, month, day, by the digital tube decimal point flashing counts as a second alarm module; then remind and make corresponding action: the LED flashes, while playing a piece of music.This design, use single chip timer design time processing, using SCM internal timer to achieve T0, working in T1 mode, timing 50 subtle, continuously interrupted 20 times a second, is what we need the smallest unit of time in seconds, 60 seconds for a branch, is divided into a 60 hours, 24 hours a day, 1, 3, 5, 7, 8, 10, December for 31 days, 4, 6, 9, November for 30 days, a leap year in February for 29 days, a leap year in February for 28 days, 12 months for a year.By this time design ideas to set up time.In the design of the entire system, SCM P0 port output display signal; P1 export key input control; P2 port used to scan, dynamic display; P3 alarm module.The design using C51 programming, due to the less portable assembly language, C language is more flexible.Many functions can be transplanted directly past.Key Words:SCM AT89C52 language C schedule system目录论文摘要 (I)Abstract (II)目录........................................................................................................................................... I II 第一章引言........................................................................................................................ - 1 - 第二章概述........................................................................................................................ - 2 -2.1 51单片机简介............................................................................................................ - 2 -2.2 4位数码管的驱动方式.............................................................................................. - 3 -2.3 设计要求..................................................................................................................... - 4 -2.4 本设计实现的功能..................................................................................................... - 4 - 第三章系统总体方案及硬件设计........................................................................................ - 5 -3.1 系统总体方案框图..................................................................................................... - 5 -3.2 单片机最小系统......................................................................................................... - 5 -3.3 按键控制模块............................................................................................................. - 6 -3.4 时间显示模块............................................................................................................. - 7 -3.5 闹钟模块.................................................................................................................... - 8 - 第四章软件设计.................................................................................................................. - 10 -4.1 keil软件介绍............................................................................................................ - 10 -4.2 系统软件设计思想................................................................................................... - 11 -4.3 系统主程序............................................................................................................... - 11 -4.4 中断子程序............................................................................................................... - 12 -4.5 按键扫描子程序....................................................................................................... - 13 -4.6 系统程序(见附录3).............................................................................................. - 14 - 第五章Proteus软件仿真....................................................................................................... - 15 -5.1 Proteus软件简介...................................................................................................... - 15 -5.2 Proteus软件仿真.................................................................................................... - 16 -5.3 系统原理图(见附录1).......................................................................................... - 20 -5.4硬件实物图(见附录2)........................................................................................... - 20 -5.5原件清单...................................................................................................................... - 20 - 第六章硬件调试.................................................................................................................... - 21 -6.1 STC-ISP软件介绍................................................................................................... - 21 -6.2 焊接及程序下载...................................................................................................... - 23 -6.3 硬件调试................................................................................................................... - 23 - 第七章毕业设计体会.......................................................................................................... - 26 - 第八章致谢............................................................................................................................ - 27 - 参考文献.................................................................................................................................... - 28 - 附录1......................................................................................................................................... - 29 - 附录2......................................................................................................................................... - 30 - 附录3......................................................................................................................................... - 31 -第一章引言时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
内部资料注意保存基于单片机的作息控制系统姓名:队别:07402队专业:电子工程指导教员:职称:讲师解放军理工大学训练部制表二〇一一年六月目录摘要 (2)关键字: (2)一、引言: (2)(一)作息时间控制钟概述 (2)(二)单片机概述 (3)1、单片机简介 (3)2、MCS-89C51单片机的特点及功能: (4)二、系统设计 (4)(一)基本设计要求和主要实现功能 (4)(二)设计思路与实现方法 (6)1、设计总体框图 (6)2、主程序流程图: (6)3、设计子模块 (7)(1)计时中断和时间转换模块 (7)(2)显示模块 (8)(3)键盘模块 (10)(4)打铃模块 (11)三、程序运行截图 (11)四、设计体会 (13)五、参考文献 (14)基于单片机的作息控制系统摘要:本文是基于单片机的作息控制系统进行的实验设计, 作品具有实时显示和闹铃定时的功能,同时也具有时钟校准和打铃时间表转换的附加功能。
可以执行不同的时间表(冬季和夏季不同的作息时间)的打铃,可以任意进行实时时间校准。
本设计实现的这些功能,可以给学校及其他机关企业的日常作息安排带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。
关键字:单片机;数字钟;作息;定时;一、引言:(一)作息时间控制钟概述科技的进步需要技术不断的提升。
一块大而复杂的模拟电路也许会花费了您巨大的精力,繁多的元器件增加了您的成本。
而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。
相信您在使用并掌握了单片机技术后,不管在今后开发或是工作上,一定会带来意想不到的惊喜。
本文是以MCS-89C51单片机为核心控制器件的作息时间控制钟,由键盘、开关、LED数码管灯模块和数码指示灯模块四部分组成。
它利用MCS-89C51单片机的11.0592MHz时基计时,进行时钟计算,并利用实验平台的显示模块进行输出显示。
MCS-89C51单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个系统的工作流程。
目录第一章引言 (3)1.1 选题背景及其意义 (3)1.2 877A单片机的介绍 (3)1.3 设计要求及其功能 (4)1.4 本设计实现的功能 (4)第二章系统总体方案 (5)2.1 系统总体方案框图 (5)2.1.1 设计要求 (5)2.1.2 根据设计要求画出系统框图 (5)2.2 控制系统时刻分析表 (6)2.3 处理器的选择 (6)2.4时钟芯片的选择 (7)2.5液晶显示器的选择 (7)第三章硬件部分的设计 (7)3.1 系统部分 (7)3.2 键盘接口电路 (8)3.3 显示部分 (9)第四章控制系统软件部分 (10)4.1 软件介绍 (10)4.2 程序流程图 (11)4.3 按键的扫描子程序 (12)4.4 铃声控制程序 (12)4.5 仿真电路 (13)第五章总结 (15)参考文献 (16)致谢 (16)基于单片机的可编程作息时间控制器的设计何欢(伊犁师范学院电子与信息工程学院电子信息科学与技术09-2班,新疆伊宁市 835000)摘要:本设计是作息时间控制器,由单片机最小系统、按键模块、数码管显示模块、铃声模块组成。
采用PIC16F877A单片机、主频4MHZ晶振,通过按键STATE、TEN、UNIT控制时间的校正时间和铃声设定;数码管显示模块用来显示时间,显示格式为“时分”,并能够根据需要显示年、月、日,由数码管小数点闪动作为秒计数;铃声模块进行到时提醒并出相应动作:发光二极管闪亮,同时播放音乐。
时钟芯片采用的是DS1302,此芯片是DALLAS 公司推出的涓流充电时钟芯片,其内含有一个实时时钟/日历和31 字节静态RAM,并通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。
DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW。
目录一.课程设计目的 (1)二.设计要求 (2)2.1总体要求 (2)2.2具体要求 (2)三.设计内容及方法 (3)3.1设计准备 (3)3.2功能设计及系统总体设计 (3)四.硬件电路总体设计 (3)4.1硬件总框图 (3)4.1.1主控电路 (4)4.1.2 按键控制扫描模块 (5)4.1.3 DS1302实时时钟模块 (6)4.1.4 数码管显示模块 (8)4.1.5 LED显示模块 (9)4.1.6 扬声器模块 (10)4.2 硬件原理图 (12)五.软件流程框图及源程序 (12)5.1 流程框图 (12)5.1.1 主程序流程图 (12)5.1.2 蜂鸣器流程图 (14)5.1.3 流水灯程序流程图 (15)5.1.4 时钟显示流程图 (16)5.1.5 作息时间控制流程图 (17)5.2 源程序代码及注释 (18)六.调试情况及小结 (33)七.课程设计体会 (34)八.参考文献 (35)一、课程设计目的单片机原理及应用?课程设计是一项重要的实践性教育环节,是学生在校期间必须承受的一项工程训练。
在课程设计过程中,在教师指导下,运用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成工作内容和具体的设计方法,了解必须提交的各项工程文件,也到达稳固、充实和综合运用所学知识解决实际问题的目的。
通过课程设计,应能加强学生如下能力的培训:(1)独立工作能力和创造力;(2)查阅图书资料,产品手册和各种工具书的能力;(3)工程绘图的能力;(4)编写技术报告和编制技术资料的能力(5)综合运用专业及根底知识,解决实际工程技术问题的能力;二、设计要求2.1总体要求(1) 独立完成设计任务(2) 绘制系统硬件总框图(3) 绘制系统原理电路图(4) 制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释;(5) 制定编写调试方案,编写用户操作使用说明书(6) 写出设计工作小结。
基于单片机可编程作息时间控制器设计与制作一、引言现代社会人们的生活节奏越来越快,工作压力、学习任务等加大,导致很多人的作息时间不规律。
而良好的作息时间对人的身心健康非常重要。
因此,设计一款基于单片机的可编程作息时间控制器就变得很有必要。
二、设计方案本设计方案采用基于单片机的可编程作息时间控制器,通过预设时间段,控制灯光和蜂鸣器的开关,提醒人们要进行休息或工作。
1.硬件设计(1)主控芯片选择本设计采用单片机AT89C52作为主控芯片,该芯片采用8位的CMOS单片机,并具有丰富的IO口和存储器。
(2)时钟电路设计为了保证控制器的时钟准确性,设计了一个由晶振和电容构成的时钟电路。
晶振的频率暂定为12MHz,电容选择合适的值以满足电路的要求。
(3)人机交互部分该作息时间控制器通过LCD屏幕和按键进行人机交互。
选择了常见的1602液晶屏,并接入按键进行数据输入。
(4)输出部分通过继电器控制灯光和蜂鸣器的开关。
根据设定的时间段,通过电流驱动继电器吸合或断开,控制相应设备的开关状态。
(5)电源部分整个作息时间控制器采用5V电源供电,并设计了稳压电路,保证主控芯片工作电压的稳定。
2.软件设计(1)时钟设置通过单片机的定时器进行时钟设置,包括时钟的启动和停止,时钟的频率调整等。
(2)数据输入通过按键进行数据的输入,包括设定时间段的起始时间和结束时间,以及设定每个时间段的作息状态。
(3)定时器中断使用定时器中断来实现时间的自动循环更新,根据设定的时间段和当前时间,判断当前处于何种作息状态,并控制输出部分的灯光和蜂鸣器。
(4)LCD显示通过LCD屏幕来实现时间的显示和友好的界面交互,便于用户对时间的设置和查看。
三、制作过程1.硬件制作按照设计方案中的硬件部分进行元件的布局和焊接,在焊接时注意保持元件间的间距,避免短路等问题。
2.软件编程根据设计方案中的软件部分,使用C语言进行单片机的编程,实现时钟的设置、数据的输入、定时器的中断、LCD的显示等功能。
基于单片机的作息时间控制江宁校区 09机电一体化刘荣指导老师赵华【摘要】目前,我国单片机的应用领域主要是工业生产过程控制,数据采集与处理、实时控制及优化控制。
单片机应用带来了巨大的经济效益,提高了效率,降低了成本,提高了产品质量,推动着生产力的发展。
本次设计主要介绍单片机的应用实例,加深了对单片机的理解,进一步开拓视野,为今后应用微机解决生产实际问题起了一个入门的作用。
通过本次设计,我掌握了解决问题的思路和方法.使自己分析问题和解决问题的能力大为提高。
关键字:单片机接口芯片寄存器目录1 课题目的意义 (1)1. 1 课题的提出及意义 (2)2 总体方案设计 (3)2. 1总体设计及系统原理………………………………………………………………12-132. 2 芯片比较 (3)2.2.1 单片机选型…………………………………………………………………………3-42.2.2键盘显示器接口芯片8279的使用………………………………………………… 4-72.2.3存储器的选择…………………………………………………………………………7-92.2.4继电器的选择………………………………………………………………………9-123 硬件设计 (13)3.1寄存器部分…………………………………………………………………………22-253.2 电源与复位电路部分 (25)3.2.1电源部分 (25)3.2.2复位电路 (25)3.3 电铃和继电器部分 (26)4 软件设计 (27)4.1 主程序设计 (27)4. 2 子程序设计 (29)5 系统安装与调试 (31)5.1 软件调试 (31)5.2 系统调试 (31)致谢 (31)参考文献 (32)1 课题目的意义1. 1 课题的提出及意义单片机作息时间控制实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校必不可少的设备。
2 总体方案设计2. 1总体设计及系统原理在确定系统的大体形式之后,画出本系统的结构布局,电路原理如图2-2所示。
大学能源与动力工程学院题目:可编程作息时间控制器设计课程:单片机原理及应用课程设计专业:电气工程及其自动化第一部分任务书《单片机原理及应用》课程设计任务书一、课题名称详见《单片机课程设计题目(一)》:主要是软件仿真,利用Proteus软件进行仿真设计并调试;《单片机课程设计题目(二)》:主要是硬件设计,利用单片机周立功实验箱进行设计并调试。
二、课程设计目的课程设计是课程教学中的一项重要容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《单片机原理及应用》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
单片机原理及应用课程设计的目的是让学生在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能将课堂上学到的理论知识与实际应用结合起来,而且能进一步加深对电子电路、电子元器件等知识的认识与理解,同时在软件编程、排错调试、相关软件和仪器设备的使用技能等方面得到较全面的锻炼和提高。
为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。
通过单片机硬件和软件设计、调试、整理资料等环节的培训,使学生初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。
三、课程设计容设计以89C51单片机和外围元器件构成的单片机应用系统,并完成相应的软硬件调试。
1. 系统方案设计:综合运用单片机课程中所学到的理论知识,学生根据所选课题的任务、要求和条件进行总体方案的设计。
2. 硬件电路设计:对方案中以单片机为核心的电路进行设计计算,包括元器件的选择和电路参数的计算,并画出总体电路图。
3. 软件设计:根据已设计出的软件系统框图,用汇编语言或C51编制出各功能模块的子程序和整机软件系统的主程序。
2013~2014学年第2学期之迟辟智美创作《单片机原理与应用》课程设计报告学校:北华航天工业学院题目:可编程作息时间控制器设计专业:惺惺惜惺惺班级:Bxxxxx姓名: xxxxx学号:惺惺惜惺惺信息学、、指导教师: xx电子工程系2013年6月14日《可编程作息时间控制器设计》任务书摘要本课题是应用AT89C52为核心控制器件的作息时间控制钟,由键盘、声音输出模块、电源转换模块和存储模块四部份组成.它利用AT89C52的按时/计数器来计算时间,并用存储器记录数据,保证了系统的可靠性.AT89C52单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个设计的工作流程.整体性好,人性化强,可靠性高,实现了对时间控制的智能化,解脱了传统由人来控制时间的长短的方便,可对一些以24小时为周期的开关量进行自动控制.如上下课打铃及扩音设备的开与关.采纳AT89C52单片机来实现对上述开关量的控制,设有8位数码管、可以实时显示时间、系统还设有输入键盘,用以修改实时实时时钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等特点.首先设计各个模块的屏幕显示,其次是各个模块需要调用的小法式,有PC 机的日期和时钟,响铃声音,按键,屏幕显示以及延时的调用等等,最后是将各个功能模块与其中需要的小法式通过正确的汇编语言组建起来.这样便完成了源文件的建立.再通过.ASM源文件生成的.EXE可执行文件进行仿真.该仿真可以模拟实现:与PC机日期时钟坚持一致的显示功能,仿照已设定的响铃时间进行打铃功能,根据已设定的早晚作息时间灯光控制的功能,键盘输入修正响铃时间,随时手动按键实现响铃的功能.目录摘要- 2 -目录- 4 -第一章绪论- 5 -1.1 课题研究的目的与意义- 5 -1.2 研究内容及采纳方法- 5 -1.2.1 主要研究内容- 5 -1.2.2 主要采纳方法- 5 -1.3课题的研究原理- 6 -第2章可编程作息时间控制器的方案设计- 7 -2.1总体方案组成框图及设计流程图- 7 -2.2具体步伐实施- 9 -2.2.1日期和时钟显示功能的设计- 9 -2.2.2 上下课打铃功能的设计- 11 -2.2.3 灯光显示功能的设计- 14 -2.2.4 修改响铃时间功能的设计- 14 -2.2.5 模拟手动控制功能的设计- 15 -第3章可编程作息时间控制器的protues仿真- 17 -3.1 仿真结果- 17 -3.2性能及误差分析- 19 -附录- 20 -参考文献- 27 -第一章绪论1.1 课题研究的目的与意义20世纪末,电子技术获得了飞速的发展.在其推动下,现代电子产物几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化水平,同时也使现代电子产物性能进一步提升,产物更新换代的节奏也越来越快.时间对人来说总是那么珍贵,工作的忙碌性和繁杂让人容易忘记以后时间.然而遇到重年夜事情的时候,一旦忘记时间,就会给自己或他人造成更年夜的麻烦.对学校来说作息时间尤为重要.如今,在电子计算机基础上发展而来的可编程作息时间控制器,它可以利用电子计算机的内部时间,通过法式判断处置,完成对作息时间的精确控制,而且由于是法式控制,所以可通过改变法式而进而灵活改变作息时间,同时可以实时显示时间,并实现打铃功能.可编程时间控制器可实现对时间控制的智能化,解脱由人控制时间的长短分歧的方便,而且可以在需要时人工切入控制,,完美的满足作息时间控制.1.2 研究内容及采纳方法1.2.1 主要研究内容用C语言编写作息时间控制法式,依照给定的时间模拟控制,上下课打铃、灯光控制(屏幕显示),而且具备日期和时钟显示.给定的时间可修改,可模拟手动控制,用扬声器模拟打铃.1.2.2 主要采纳方法通过汇编语言编程,先在数据段中开几段缓冲区,以寄存需要显示的提示信息以及存储PC机内部时钟日期等等,调用子法式的清屏部份来显示已经设定好的屏幕部份,再调用DOS的日期及时钟调用功能,读取PC机内部日期和时钟,并将数据存入显示缓冲区,然后调用时间和日期显示功能,把法式设计成用刷新的方式来不竭获取系统时间,这样就有了一秒一秒走动的日期时钟显示,在此过程需要用到延时法式,所以把延时法式独自做成一个子法式,然后在需要的时候调用它,使得时间显示法式更加精炼,此时日期和时钟显示功能已经完成;而后设计灯光控制(屏幕显示),采纳比力跳转的方式即可,当达到设定的时间区域时通过比力来判断是亮灯还是灭灯;随后是上下课打铃的模拟,需要调用DOS显示功能,将设定好的时间在屏幕上显示出来,然后调用PC机内部时钟,判断时钟与给按时间是否相同,进而判断是否响铃,若响铃则调用设定好的响铃法式,并实现屏幕模拟显示;给按时间修改是调用键盘I/O 中断功能号,获取键值的方法来进入,先确定应该修改哪个响铃,再将新的响铃时间数据存入要修改时钟的缓冲区,并将其覆盖来实现;模拟手动控制、用扬声器模拟打铃,同样采纳调用键盘I/O中断功能号,获取键值的方法,判断是否与设定的手动按键相同,若相同则进入手动控制,进入后调用响铃法式,而后自动退出响铃,开始其他响应功能.课题的研究原理将按时闹钟改造为4路可调闹钟,从而实现打铃等功能.当四路闹钟中的任一路到时,均会点亮灯、打铃.如有需求,可对法式进行调整,增加闹钟的路数,及到时后的处置方式第2章可编程作息时间控制器的方案设计总体方案组成框图及设计流程图时间作息控制的主体电路应包括秒信号发生器、时间显示电路按键电路、供电电源以及闹铃指示电路等几部份.时间作息控制的系统组成框图如图2-1-1所示:否是日期和时钟设计步伐分析该模块设计中,先在数据段开了两段缓冲区,以存储显示日期和时间的提示Time is以及从PC机读到的日期和时间.而后是调用DOS的日期功能,其功能号是2ah,日期分别存于cx,dx中,在该设计中调用出来的日期时间均是二进制数,如果要在界面中显示必需要转换成ASCII码.每一次数制转换后均要将转换后的数据存储于数据段开辟的存储缓冲区tbuf内,接下来即可调用DOS的的9号显示功能,只需将提示信息、日期及时间的存储缓冲区的偏移地址赋予dx,再使用DOS功能,调用9号的显示功能即可.这样,日期和时间的第一次显示时间完成,由于PC机的日期时间一直在变动,所以需要不竭调用PC机的显示时间并显示,因此需要再回转至最初的调用日期法式,这样,显示日期时间的功能才真正完成.下面是针对数制转换和日期时间的显示做的更为细致的解读.(1)数制转换通常在计算机傍边,从键盘输入的十进制数的每一位数码或者是向CRT输出的十进制的每一位数,均是以它的ASCII码暗示的.而在机器中的一个十进制数,是以相应的二进制数寄存或者是以BCD码的形式寄存.因此,如果我们想将PC机中读取的日期时间显示到.EXE的界面中,必需将从中读取的二进制数转换为ASCII码.本设计是先将二进制数转换为十进制数,再将十进制数转换为ASCII码的,使其在屏幕上显示出来.由于调用该小法式段的显示数值都是十位数或个位数,所以该段小法式的设计思路是使用减法,统计需要转换的数值中有几多10、1,即为十进制数中的十、个位上的数,然后将十进制数转换为ASCII码输出.首先,在数据段中已经设计好了被减数,即const内的数据,用需要数据转换的数据已经在之前的数据中赋值给了ax,使用sub ax,[si]语句实现上述的减法,若不够减,则需要重复减,并累计次数,直至不够减为止,累计的次数即为该数据十位数的数值,此时仍旧通过or dI,30h语句转换为ASCII码,并将转换后的数据都存储于bx 中.(2)日期时钟显示功能9号DOS功能调用可实现日期时钟显示功能,由于需要在.EXE界面显示提示信息mess1中的相关内容,因此调用BIOS功能,置光标于0行0列,将ah赋值2即可置光标,dh的赋值暗示行,dI的赋值暗示列,使用Iea dx,messI 语句,将messI的偏移地址赋予dx,使用mov ah,9和int 21h语句完成DOS的9号功能调用,这样.EXE界面就呈现了mess 1中的相关内容;再使用BIOS功能调用,将光标置于17行21列显示日期时间的提示信息time is,方法与上述介绍的相同,最后即可将光标置于17行37列,显示PC机的日期和时间.2.2.2 上下课打铃功能的设计上下课打铃设计流程图如图是上下课打铃设计的年夜体思路,先于数据段设存储缓冲区,存储设定的响铃时间,将响铃时间由二进制换成ASCII代码,调用DOS的显示功能,显示响铃时间,再调PC机时间与设定的响铃时间比力,相同时响铃,分歧时跳转.响铃提示信息,tbufl timem设和timem中tbufl.这是tbufl中已经号显示功能即可.(1)PCsi和di,随后使用DOS PC机时间的读取,对PC、cl中.接下来便PC.(2IBM PC芯片来提高音频信号,最后通过并行接口芯片8255的PB端口控制驱动电路使系统的扬声器发声.8253/8254芯片共有3个自力的计数通道,其中2号通道分配给系统的扬声器频率控制,它的I/.O端口地址为42H,8253/8254的工作方式与音频频率均由8253/8254的控制寄存器(I/O端口地址42H)控制.而且8253/8254有6种工作方式,对扬声器发声总是选用方式3,因此为了让发生器工作,需要通过mov al,0b6h和out 43h,al来完成音频频率的设置,通过mov al,03h及out 61h,al来开扬声器,实现响铃.灯光显示功能的设计修改响铃时间功能的设计2.2.4.1 修改响铃时间设计流程图图2-2-3介绍了本模块的年夜体思路,首先在数据段设置存储时间的缓冲区,其次是调用键盘输入功能,算的修改响铃的个数和修改的起始位置,最后输入的时间替代原时间完成修改响铃时间的功能.2.2.4.2 码转换成.在模块的(1字符个数,自第三位开始存储输入字符串,取缓冲区内第二个数值将其存于ax 中,由于键盘输入的数据均为00,00这种形式,所以每两个响铃时间均隔五个字符,因此mov cx,06h 和div cx 两语句即可获得修改响铃时间的个数.(2)计算从第几个开始修改调出键盘输入的前两位数字即可但由于键盘扫描的数字是以ASCII 码形式暗示,而计算机中以二进制数形成存储,因此需要通过sub dh,30h 这种类似的语句进行数字转换,并通过地址循环递减的方式,找到需要修正响铃时间的地址.模拟手动控制功能的设计2.2.5.1 模拟手动控制设计流程图图2-2-4介绍了本模块设计的年夜体思路,调用键盘I/O 中断功能号1,进行键盘扫描,判断当扫描到Esc 时,退出界面显示,为S 或s 实现响铃功能,即手动控制响铃.为C 或c 时,跳转至修改响铃时间的法式段.是是否否 .2模拟手动控制主要实现的功能是只要按下键盘的S或s键,便开始响铃,因此在设计时先要调用键盘I/O中断功能号1,获取键值到AL,然后将键值AL与lbh作比力,通过cmp al,lbh和jz quit判断是否按下Esc键,若是,则跳出.EXE的界面,若不是,则将键值AL与S、s分别作比力,通过cmp al,S以及cmp al,s和jz shou判断是否按下S或s键,若是跳转至响铃位置,即实现手动控制响铃的功能,若不是再通过cmp al,C以及cmp al,c和jz correct判断是否按下C或c键,若是则跳转至修改响铃时间的位置.第3章可编程作息时间控制器的protues仿真3.1 仿真结果当K1被按下一次后,“小时”显示的数码管就闪烁,其他位就没有变动,闪烁就说明可以对该位上进行“小时”上调整;当K1被按下两次后,“分钟”显示的数码闪烁并可以调整;当K1被按下三次后,“秒”显示的数码闪烁并可以调整.K2,K3分别作为调整时间时前进和后退把持.P2最后接的引脚到LED发光二极管上,当按键被按下时,该发光二级管就会被点亮.P3上接了一个喇叭和开关,当一按时间到了时,喇叭就会发声,开关可以控制喇叭发声.该作息时间控制器有四个按键: K1, K2,K3.初始加电时数码管显示时钟计数初值并运行.按K1键进行校时,可以分别按K2和K3键进行对时及分进行独自校时,使其校正到标准时间.时钟正常显示运行状态时,按K2键显示闪烁并进行按时时间设置,按K1键和K3进行分和时的按时时间设定.该电路显示的误差主要由晶振自身的误差所造成,晶振的误差约为0. 0001~0. 000001.在软件的编程过程中所发生的误差比力小,另外在中断的过程中,只会在第一次计时时发生时间的偏移,而它所发生累计误差很小,可以忽略.综合以上分析,本次设计时钟误差较小,能获得比力理想结果,性能稳定.课程设计体会在整个设计过程中,充沛发挥人的主观能动性,自主学习,学到了许多没学到的知识.这次课程设计的制作过程是我的一次再学习,再提高的过程.在课程设计中我充沛地运用了年夜学期间所学到的知识.我从资料的收集中,掌握了很多单片机、LED数码管的知识,让我对我所学过的知识有所巩固和提高,而且让我对现今单片机、LED的最新发展技术有所了解.在整个过程中,我学到了新知识,增长了见识.在今后的日子里,我仍然要不竭地充分自己,争取在所学领域有所作为.脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、享乐耐劳的精神是我在这次设计中最年夜的收益.我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很年夜的帮手.在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印.也练就了我的耐心,做什么事都在有耐心.此次课程设计中学了很多很多工具,这是最重要的.参考文献:[1] 胡辉编著. 单片机原理与应用华北水利水电出书社,2008.源法式:#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar num=0; //记录按键KEY1的次数的变量uchar temp=0; //记录按时器0中断次数的变量uchar count=0; //记录按时器1中断次数的变量uchar aa,i,j;uchar hour,min,sec;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; sbit _led=P2^7;sbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit SPK=P3^0;sbit K1=P3^7;void delay(uint z);//延时函数void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa);//显示函数void read_key();//读按键函数void led();//void Alarm(uchar t);/****************** 主函数 *******************/void main(){P2=0xff;hour=6;min=29;sec=50;TMOD=0x11; //同时控制按时器T1和T0采纳模式1工作(16位计数器)TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=1; //运行控制位TR1=1;SPK=0;while(1){if((hour==6)&(min==30)&(sec==0)||(hour==8)&(min==00)&(sec==0)||(hour==9)&(min== 50)&(sec==0)||(hour==10)&(min==00)&(sec==0)||(hour==11)&(min==50)&(sec==0)||(ho ur==14)&(min==00)&(sec==0)||(hour==15)&(min==50)&(sec==0)||(hour==16)&(min==00) &(sec==0)||(hour==17)&(min==50)&(sec==0)||(hour==23)&(min==00)&(sec==0)) { if(K1==1){Alarm(90);Alarm(120);Alarm(90);Alarm(120);}}read_key();if(temp>=20){temp=0;sec++;if(sec>=60){sec=0;min++;if(min>=60){min=0;hour++;if(hour>=24){hour=0;}}}}if(count<=15)display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0xff);if(count>15)display(table[hour/10],table[hour%10],table[min/10],table[min%10],table[sec/10],table[sec%10],0x00);}}/****************** 显示函数 *******************/void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar aa) {if(num==0){P1=0x24&aa;P0=0xbf;delay(2);}else{P1=0x24;P0=0xbf;delay(2);}if(num==1){P1=0x01&aa;P0=a;delay(2);}else{P1=0x01;P0=a;delay(2);} //hourif(num==1){P1=0x02&aa;P0=b;delay(2);}else{P1=0x02;P0=b;delay(2);} //hourif(num==2){P1=0x08&aa;P0=c;delay(2);}else{P1=0x08;P0=c;delay(2);} //minif(num==2){P1=0x10&aa;P0=d;delay(2);}else{P1=0x10;P0=d;delay(2);} //minif(num==3){P1=0x40&aa;P0=e;delay(2);}else{P1=0x40;P0=e;delay(2);} //secif(num==3){P1=0x80&aa;P0=f;delay(2);}else{P1=0x80;P0=f;delay(2);} //sec}/************** 按时器0中断函数 ***************/ void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;temp++;}/************** 按时器1中断函数 ***************/ void timer1() interrupt 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;count++;if(count>=20)count=0;}/****************** 延时子函数 *******************/ void delay(uint z){uint j,k;for(j=z;j>0;j--)for(k=120;k>0;k--);}/****************** 读按键函数 *******************/ void read_key(){if(key1==0){_led=0;delay(50);if(key1==0){num++;if(num>3){num=0;}}while(!key1);delay(10);while(!key1);_led=1;}if(key2==0){_led=0;delay(90);if(key2==0){if(num==1){hour++;if(hour==24)hour=0;}if(num==2){min++;if(min==60)min=0;}if(num==3){sec++;if(sec==60)sec=0;}}while(!key1);delay(700);while(!key1);_led=1;}if(key3==0){_led=0;delay(90);if(key3==0){if(num==1){hour--;if(hour==0)hour=24;}if(num==2){if(min==0){min=60;hour--;}min--;}if(num==3){if(sec==0) {sec=60;min--;}sec--;}}while(!key1);delay(700);while(!key1);_led=1;}}/************* 闹钟 *****************/ void Alarm(uchar t){uchar i,j;for(i=0;i<200;i++){SPK=~SPK;for(j=0;j<t;j++);}}。
单片机原理及系统课程设计专业:电气工程及其自动化班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2014 年1 月13 日单片机原理及系统课程设计报告基于单片机的作息时间控制器设计1. 课程设计目的(1)进一步熟悉和掌握单片机的最小系统结构及其工作原理。
(2)掌握单片机的接口技术和键盘扫描、数码管显示的原理及拓展使用方法。
(3)通过课程设计,提高综合运用所学知识的能力,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。
2. 设计方案及原理本设计是作息时间控制器,设计其实现的功能主要有:使用4位七段显示器来显示当前的时间,由LED闪动作为秒计数表示,显示格式为“时分”,并可显示日期,显示格式为“月日”,年份单独显示。
由4个按键来作功能设置,可以设置现在的日期、时间及定时设置时间,一旦设置的时间到则作出相应动作:发光二极管闪亮,同时播放音乐。
单数码管显示模块片机最按键控制模块小系闹钟模块统系统方框图图13. 硬件设计3.1单片机AT89C52提供以下标准功能:8K字节FLASH闪存,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
3.2 按键控制模块按键设定部分比较简单,因为本系统按键少,所以在设计上采用了独立按键方式,程序的编制上也采用了简单的扫描方式。
按键控制模块主要有由四个按键1单片机原理及系统课程设计报告组成:K1、K2、K3、K4、。
其中K1的功能是模式切换键;K2的作用是加一;K3的作用是闹钟使能;K4的作用是减一。
K1KKK按键控制模23.3 数码管显示模块时间显示模块主要由四位七段数码管来显示,配合按键控制模块的校正与设定时间,相应的显示。
时间正常显示时,LED每闪动60次,分钟自动加一;每六十分钟小时自动加一;每24小时天自动加一。
数码管显示模块图33.4 闹钟模块闹钟模块快的主要功能即闹铃。
当设定时间与当前时间一致时,则闹钟自动闹铃进行提示,同时二极管闪亮一分钟后,自动退出响铃状态,若按K3键,闹钟退出响铃状态。
2单片机原理及系统课程设计报告闹钟模块图4软件设计4.当所设置的时间单片机作息时间控制的动作利用时间计时处理来做秒计数,不会因为按键处理而中单片机定时器负责定时的计数,到了,则发出一阵声响。
秒数据是存在变量内并写入七段显示器的缓冲区内,时,分,断时间秒数的增加,而由显示器扫描程序中定时扫描而显示出时间。
4.1 主程序设计若有按键则应做相应的功能在主控程序循环中主要工作为扫描是否有按键,时间计并检查所设置的时间是否到了,处理,同时也扫描显示器显示时间数据,后,则更新时间数据,将最新的时,分,秒的数据转换时处理程序是等过了1S 为数字数据并显示在七段显示器上。
的:设一旧秒数变量,当新旧秒数变量不一1S程序中是这样判断是否过了,要做相关程序时间处理了。
样时,则表示已过了1S3单片机原理及系统课程设计报告开始蜂鸣器初始化定时器初始按键扫显判断标志X=X=X=1,2时间显示X=3,4校正时间示函X=5,6设定闹钟示函X=7日期显示年份显示数主程序流程图图5中断子程序4.2次时,即为一秒,20中断子程序的主要功能:提供时间基准。
当连续中断时,小时当分钟值为60时,分钟加一,同时秒清零此时秒加一;当秒值为60;时,天值加一,同时小时清零;由于每月加一,同时分钟值清零;当小时为24天,当计数到此类月份时,天值为31、12月为、5、78、10、天数不定,1、3天,当计数到此类月份月为30、69、11;32时,月值加一,同时天值为14、天,当29;如果是闰年,则2月为31时,天值为时,月值加一,同时天值为1时,月值加一,同时天值为一;如果不是闰年,计数到此类月份时,天值为30时,月值加一,同时天值为一。
29月为28天,当计数此类月份时,天值为2则时,则年值加一,同时月值为一。
当月值为134单片机原理及系统课程设计报告开始设置定时器初值N返回主程序是否到下一秒秒变量加是否6秒值清零、分值加是否6分值清零、小时加小2是否小时清零、天值加是否到一天值为一、月值加是否为一月值为一、年值加结束6 中断子程序程序流程图图按键扫描子程序4.3按键扫描子程序是程序计中相当重要的一部分。
按键扫描子程序的功能是:扫描是否有按键按下,若有键按下,则执行相应功能。
系统仿真5.5单片机原理及系统课程设计报告6 系统仿真图图6. 总结在设计的过程中发现了自身本次课程设计是对所学知识的一次综合性运用。
并且对我们所学的东西也体会也很深刻,知识的不足。
这次课程设计收获很多,比如一些仿真软件也学会了很多新的东西,产生了浓厚的兴趣。
在设计过程中,软件的联合使用。
KEIL的应用,最典型的就是PROTEUS 软件的应用,以及与我觉得在除此之外,当然最重要的是学到了关于基本电子设计的一些基本方法。
只有虚心请教别人才能有效的解这次设计的过程中,很多自己解决不了的问题,这样不仅能帮助大家很快的解决问题,我觉得人与人之间的相互帮助很有必要,决问题,还能提高我们每个人的实际水平。
给予了我极在本次设计过程中遇到不少问题,老师在我们做设计的过程中,在人生观上也给了我不仅从知识方面引导了我们的设计思路,同时,大的帮助,们不少的启示。
在此,我对老师表示深深的谢意。
参考文献,2012科学出版社年[M].[1] 王思明,张金敏,苟军年等.单片机原理及应用系统设计北京: 年清华大学出版社北京单片机实践与应用吴金[2] .8051[M].:,20026单片机原理及系统课程设计报告[3] 杨子文.单片机原理及应用[M].西安:西安电子科技大学出版社,2006 年附1 源程序代码#include<reg52.h>#define uint unsigned int7单片机原理及系统课程设计报告#define uchar unsigned charuchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//******************************************************************** *****************sbit K1=P1^4;sbit K2=P1^5;sbit K3=P1^6;sbit K4=P1^7;sbit sd=P3^6;sbit BEEP=P3^7;uchar m=0,h=0,sec=0,cnt=0,x,y,qian,bai,shi,ge;uchar set_h=0;uchar set_m=0;uchar month=1;uchar day=5;uchar th0_f;uchar tl0_f;uint year=2014;void delay(uchar t);//延时函数void scankey(void); //按键扫描函数void init(void); //初始化函数void display(void);//显示函数void set_time(void);//设定时间显示辅助函数void set_day(void); //设定日期显示辅助函数void m_choose(void); //月份选择函数void bianhuan(void); //年份显示辅助函数void bianhuan1(void);//时间显示辅助函数changedata(uchar *song,uchar *diao,uchar *jie);//音乐符号串解释函数void play(uchar *songdata);//奏乐函数//虫儿飞uchar code chongerfei[]={_3_45|3-2-|11_1_23|3.,7_,7_-,632-,632-,6321_1-uchar code freq[36*2]={0xA9,0xEF,//00220HZ ,1 //00x93,0xF0,//00233HZ ,1#0x73,0xF1,//00247HZ ,20x49,0xF2,//00262HZ ,2#0x07,0xF3,//00277HZ ,30xC8,0xF3,//00294HZ ,40x73,0xF4,//00311HZ ,4#0x1E,0xF5,//00330HZ ,50xB6,0xF5,//00349HZ ,5#8单片机原理及系统课程设计报告0x4C,0xF6,//00370HZ ,60xD7,0xF6,//00392HZ ,6#0x5A,0xF7,//00415HZ ,70xD8,0xF7,//00440HZ 1 //120x4D,0xF8,//00466HZ 1# //130xBD,0xF8,//00494HZ 2 //140x24,0xF9,//00523HZ 2# //150x87,0xF9,//00554HZ 3 //160xE4,0xF9,//00587HZ 4 //170x3D,0xFA,//00622HZ 4# //180x90,0xFA,//00659HZ 5 //190xDE,0xFA,//00698HZ 5# //200x29,0xFB,//00740HZ 6 //210x6F,0xFB,//00784HZ 6# //220xB1,0xFB,//00831HZ 7 //230xEF,0xFB,//00880HZ `10x2A,0xFC,//00932HZ `1#0x62,0xFC,//00988HZ `20x95,0xFC,//01046HZ `2#0xC7,0xFC,//01109HZ `30xF6,0xFC,//01175HZ `40x22,0xFD,//01244HZ `4#0x4B,0xFD,//01318HZ `50x73,0xFD,//01397HZ `5#0x98,0xFD,//01480HZ `60xBB,0xFD,//01568HZ `6#0xDC,0xFD,//01661HZ `7 //35};//******************************//音乐符号串解释函数changedata(uchar *song,uchar *diao,uchar *jie){uchar i,i1,j;char gaodi;uchar banyin;uchar yinchang;uchar code jie7[8]={0,12,14,16,17,19,21,23};*diao=*song;for(i=0,i1=0;;){gaodi=0;banyin=0;yinchang=4;if((*(song+i)=='|') || (*(song+i)==' ')) i++;switch(*(song+i))9单片机原理及系统课程设计报告{case ',': gaodi=-12;i++;break;case '`': gaodi=12;i++;break;}if(*(song+i)==0){*(diao+i1)=0;*(jie+i1)=0;return;}j=*(song+i)-0x30; i++;j=jie7[j]+gaodi;yinc: switch(*(song+i)){case '#':i++;j++;goto yinc;case '-':yinchang+=4;i++;goto yinc;case '_':yinchang/=2;i++;goto yinc;case '.':yinchang=yinchang+yinchang/2;i++;goto yinc;}*(diao+i1)=j;*(jie+i1)=yinchang;i1++;}}//****************************************** 10单片机原理及系统课程设计报告//奏乐函数void play(uchar *songdata){uchar i,c,j=0;uint n;uchar diaodata[40];uchar jiedata[40];changedata(songdata,diaodata,jiedata);TR1=1;for(i=0;diaodata[i]!=0;i++){tl0_f=freq[diaodata[i]*2];th0_f=freq[diaodata[i]*2+1];for(c=0;c<jiedata[i];c++){for(n=0;n<24;n++){scankey();if(y==0){TR1=0;return;}display();}}TR1=0;for(n=0;n<500;n++);TR1=1;}TR1=0;}void time0(void) interrupt 1{TH0=0x3c;TL0=0xb0;cnt++;if(y==1&&(set_h==h&&set_m==m))sd=~sd;else sd=1;if(cnt==20){sec++;cnt=0;if(sec==60){sec=0;11单片机原理及系统课程设计报告m++;if(m==60){m=0;h++;if(h==24){h=0;day++;switch(month){case 1:if(day==32){month++;day=1;}break;case 2:if(year%4==0){if(day==30){month++;day=1;}} else{if(day==29){month++;day=1;}}break;case 3:if(day==32){month++;day=1;}break;case 4:if(day==31){month++;day=1;}break;case 5:if(day==32){month++;day=1;}break;case 6:if(day==31){month++;day=1;}break;case 7:if(day==32){month++;day=1;}break;case 8:if(day==32){month++;day=1;}break;case 9:if(day==31){month++;day=1;}break;case 10:if(day==32){month++;day=1;}break;case 11:if(day==31){month++;day=1;}break;case 12:if(day==32){month++;day=1;}break;}if(month==13){month=1;year++;}}}}if(x==0)bianhuan1();}}timer1() interrupt 3{TL1=tl0_f;TH1=th0_f; //调入预定值BEEP=~BEEP; //取反音乐输出IO}void main(void){12单片机原理及系统课程设计报告init();while(1){display();scankey();if(y==1&&(set_h==h&&set_m==m))play(chongerfei);else BEEP=0;}}void init(void){BEEP=0;TMOD=0x11;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;ET1=1;TR1=0;}void display(void){P2=0xfe;P0=a[qian];if(x%2==1&&cnt>=10)P0&=0x00;delay(20);P2=0xfd;P0=a[bai];if(x%2==1&&cnt>=10)P0&=0x00;else if(x==0&&cnt>=10)P0|=0x80;delay(20);P2=0xfb;P0=a[shi];if(((x%2==0&&x!=0)||x==7)&&cnt>=10)P0&=0x00; delay(20);P2=0xf7;P0=a[ge];if(((x%2==0&&x!=0)||x==7)&&cnt>=10)P0&=0x00;delay(20);}13单片机原理及系统课程设计报告void m_choose(void){switch(month){case 1:if(day==32)day=1;else if(day==0)day=31;break;case 2:if(year%4==0){if(day==30)day=1;elseif(day==0)day=29;}else{if(day==29)day=1;elseif(day==0)day=28;}break;case 3:if(day==32)day=1;else if(day==0)day=31;break;case 4:if(day==31)day=1;else if(day==0)day=30;break;case 5:if(day==32)day=1;else if(day==0)day=31;break;case 6:if(day==31)day=1;else if(day==0)day=30;break;case 7:if(day==32)day=1;else if(day==0)day=31;break;case 8:if(day==32)day=1;else if(day==0)day=31;break;case 9:if(day==31)day=1;else if(day==0)day=30;break;case 10:if(day==32)day=1;else if(day==0)day=31;break;case 11:if(day==31)day=1;else if(day==0)day=30;break;case 12:if(day==32)day=1;else if(day==0)day=31;break;}}void set_time(void){qian=set_h/10;bai=set_h_x0010_;shi=set_m/10;ge=set_m_x0010_;}void set_day(void){qian=month/10;bai=month_x0010_;shi=day/10;ge=day_x0010_;}void bianhuan(void){qian=year/1000;bai=year_x0010_00/100;shi=year_x0010_0/10;ge=year_x0010_;}14单片机原理及系统课程设计报告void bianhuan1(void){qian=h/10;bai=h_x0010_;shi=m/10;ge=m_x0010_;}void scankey(void){if(K1==0){delay(20);if(K1==0){while(K1==0);x++;if(x==3)set_time();else if(x==5)set_day();else if(x==7)bianhuan();else if(x==8){x=0;bianhuan1();}}}if(K2==0){delay(20);if(K2==0){while(K2==0);switch(x){case 0:break;case 1:h++;if(h==24)h=0;bianhuan1();break;case 2:m++;if(m==60)m=0;bianhuan1();break;case 3:set_h++;if(set_h==24)set_h=0;set_time();break;case 4:set_m++;if(set_m==60)set_m=0;set_time();break;case 6:day++;m_choose();set_day();break;case 5:month++;if(month==13)month=1;set_day();break;case 7:year++;bianhuan();break;}}}if(K3==0){delay(20);if(K3==0)15单片机原理及系统课程设计报告{while(K3==0);y++;if(y==2)y=0;}}if(K4==0){delay(20);if(K4==0){while(K4==0);switch(x){case 0:break;case 1:h--;if(h==255)h=23;bianhuan1();break;case 2:m--;if(m==255)m=59;bianhuan1();break;case 3:set_h--;if(set_h==255)set_h=23;set_time();break;case 4:set_m--;if(set_m==255)set_m=59;set_time();break;case 6:day--;m_choose();set_day();break;case 5:month--;if(month==0)month=12;set_day();break;case 7:year--;bianhuan();break;}}}}void delay(uchar t) //延时0.1毫秒{uchar i;do{for(i=0;i<23;i++) ;}while(t--);}16。