基于单片机的作息时间系统精品.docx
- 文档编号:9703780
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:52
- 大小:2.06MB
基于单片机的作息时间系统精品.docx
《基于单片机的作息时间系统精品.docx》由会员分享,可在线阅读,更多相关《基于单片机的作息时间系统精品.docx(52页珍藏版)》请在冰豆网上搜索。
基于单片机的作息时间系统精品
毕业设计(论文)
题 目:
基于单片机的作息时钟系统
专 业:
电子测量技术与仪器
班 级:
09251班
学 号:
19号
姓 名:
尹林
指导老师:
高燕
成都电子机械高等专科学校
二〇一二年六月
论文摘要
本设计是作息时钟系统设计,由单片机最小系统、按键模块、数码管显示模块、闹钟模块组成。
采用单片机AT89C52与12MHZ晶振相连;通过按键K1、K2、K3、K4、K5控制时间的显示、校正、闹钟时间设定。
数码管显示模块用来显示时间,显示格式为“时分”,并能够根据需要显示年、月、日,由数码管小数点闪动作为秒计数;闹钟模块进行到时提醒并作出相应动作:
发光二极管闪亮,同时播放一段音乐。
本设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0定时器溢出中断来实现,工作在模式1方式下,定时50ms,则连续中断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语言则比较灵活。
许多子函数都可以直接移植过去。
关键词:
单片机AT89C52C语言作息时间系统
Abstract
Thedesignoftherestoftheclocksystemdesign,fromthesmallestsingle-chipsystem,keymodule,digitaltubedisplaymodule,alarmmodule.Usingsingle-chipAT89C52and12MHZcrystalconnectedthroughkeys;K1,K2,K3,K4,K5controltimedisplay,correction,alarmtimesetting.Digitaltubedisplaymoduletodisplaythetime,thedisplayformatfor"time",andaccordingtotheneedsofdisplayyear,month,day,bythedigitaltubedecimalpointflashingcountsasasecondalarmmodule;thenremindandmakecorrespondingaction:
theLEDflashes,whileplayingapieceofmusic.
Thisdesign,usesinglechiptimerdesigntimeprocessing,usingSCMinternaltimertoachieveT0,workinginT1mode,timing50subtle,continuouslyinterrupted20timesasecond,iswhatweneedthesmallestunitoftimeinseconds,60secondsforabranch,isdividedintoa60hours,24hoursaday,1,3,5,7,8,10,Decemberfor31days,4,6,9,Novemberfor30days,aleapyearinFebruaryfor29days,aleapyearinFebruaryfor28days,12monthsforayear.Bythistimedesignideastosetuptime.
Inthedesignoftheentiresystem,SCMP0portoutputdisplaysignal;P1exportkeyinputcontrol;P2portusedtoscan,dynamicdisplay;P3alarmmodule.
ThedesignusingC51programming,duetothelessportableassemblylanguage,Clanguageismoreflexible.Manyfunctionscanbetransplanteddirectlypast.
KeyWords:
SCMAT89C52languageCschedulesystem
目录
论文摘要I
AbstractII
目录III
第一章引言-1-
第二章概述-2-
2.151单片机-2-
2.24位数码管的驱动方式-5-
2.3设计要求-6-
2.4设计实现的功能-6-
第三章系统总体方案及硬件设计-7-
3.1系统总体方案框图-7-
3.2单片机最小系统-8-
3.3按键控制模块-8-
3.4时间显示模块-9-
3.5闹钟模块-10-
第四章软件设计-11-
4.1keil软件介绍-11-
4.2系统软件设计思想-12-
4.3系统主程序-12-
4.4中断子程序-13-
4.5按键扫描子程序-14-
4.6系统程序(见附录3)-15-
第五章Proteus软件仿真-16-
5.1Proteus软件简介-16-
5.2Proteus软件仿真-17-
5.3系统原理图(见附录1)-20-
5.4硬件实物图(见附录2)-20-
5.5原件清单-20-
第六章硬件调试-21-
6.1STC-ISP软件介绍-21-
6.2焊接及程序下载-23-
6.3硬件调试-23-
第七章毕业设计体会-26-
第八章致谢-27-
参考文献-28-
附录1-29-
附录2-30-
附录3-31-
第一章引言
时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?
这就要求人们不断设计出新型时钟。
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替显示器、指针显示,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:
DS1302,DS12887,X1203等都可以满足高精度的要求。
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计通过对它的学习、应用,由单片机AT89S52、LED数码管及闹钟模块为核心,辅以必要的电路,设计了一个简易的电子时钟,它能够准确显示时间,调整时间,以及闹钟的设定。
第二章概述
本章主要介绍51单片机的基本概念,数码管的驱动方式,设计要求和设计实现的功能。
2.151单片机
1、51单片机简介
51单片机是对目前所有兼容Intel8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。
51单片机是基础入门的一个单片机,还是应用最广泛的一种。
需要注意的是52系列的单片机一般不具备自编程能力。
当前常用的51系列单片机主要产品有:
*Intel的:
80C31、80C51、87C51,80C32、80C52、87C52等;
*ATMEL的:
89C51、89C52、89C2051等;
*Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品
目前,国产宏晶STC单片机以其低功耗、廉价、稳定性能,占据着国内51单片机较大市场。
2、主要功能
·8位CPU
·4kbytes程序存储器(ROM)(52为8K)
·256bytes的数据存储器(RAM)(52有384bytes的RAM)
·32条I/O口线·111条指令,大部分为单字节指令
·21个专用寄存器
·2个可编程定时/计数器
·5个中断源,2个优先级(52有6个)
·一个全双工串行通信口
·外部数据存储器寻址空间为64kB
·外部程序存储器寻址空间为64kB
·逻辑操作位寻址功能
·双列直插40PinDIP封装
·单一+5V电源供电
CPU:
由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
RAM:
用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
ROM:
用以存放程序、一些原始数据和表格;
I/O口:
四个8位并行I/O口,既可用作输入,也可用作输出;
T/C:
两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
五个中断源的中断控制系统;
一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;
片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。
最高振荡频率为12M。
图2-151单片机实物图图2-251单片机管脚图
3、51单片机仿真
1、主要功能和特性
(1)可以仿真63K程序空间,接近64K的16位地址空间;
(2)可以仿真64Kxdata空间,全部64K的16位地址空间;
(3)可以真实仿真全部32条IO脚;
(4)完全兼容keilC51UV2调试环境,可以通过UV2环境进行单步,断点,全速等操作;
(5)可以使用C51语言或者ASM汇编语言进行调试;
(6)可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某变量上就会立即显示出它此的值;
(7)可选使用用户晶振,支持0-40MHZ晶振频率;
(8)片上带有768字节的xdata,您可以在仿真时选使用它们,进行xdata的仿真;
(9)可以仿真双DPTR指针;
(10)可以仿真去除ALE信号输出.;
(11)自适应300-38400bps的所有波特率通讯;
(12)体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;
(13)仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座.;
(14)仿真时监控和用户代码分离,不可能产生不能仿真的软故障;
(15)RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。
2、功能限制
仿真器占用单片机串口及定时器2,与KeilC(PC)通讯,故不支持串口及定时器2的仿真功能。
全速运行时单片机串口及定时器2可供用户使用。
3、仿真器使用方法
(1)将仿真器插入需仿真的用户板的CPU插座中,仿真器由用户板供电;
(2)将仿真器的串行电缆和PC机接好,打开用户板电源;
(3)通过KeilC的IDE开发仿真环境UV2下载用户程序进行仿真、调试。
2.24位数码管的驱动方式
1、静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,而一个89S52单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
2、数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
图2-34位数码管实物图
图2-44位数码管管脚图
2.3设计要求
本设计是作息时间控制器,其设计实现的功能主要有:
使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED闪动作为秒计数表示。
可以设定时间和闹钟时间,当现在时间与闹钟设定时间相同时,闹钟响起,此时播放一段音乐。
2.4设计实现的功能
本设计实现的功能为:
使用七段显示器显示时间,显示格式为“时分”,并可显示日期,显示格式为“月日”,年份单独显示。
可以设定作息时间,进行到时提示,并作出相应动作:
发光二极管闪亮,同时播放音乐。
第三章系统总体方案及硬件设计
这一章主要介绍本设计的系统总体方案和硬件设计图,这是设计的主体。
3.1系统总体方案框图
系统总体方案由四个模块构成:
即单片机最小系统、按键控制模块、闹钟模块、数码管显示模块。
图3-1系统方案方框图
本次设计实现的功能主要有:
使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED小数点闪动作为秒计数表示。
可以设定作息时间,并进行到时提示。
由按键输入控制设置年月日以及当前时间、并可设置闹钟定时,时间到由蜂鸣器发出响声并作出相应动作:
二极管闪亮,同时播放一段音乐。
3.2单片机最小系统
图3-2单片机最小系统
单片机最小系统由复位电路,一个晶振,两个瓷片电容构成。
当复位引脚(RESET)连接高电平超过2个机器周期,即可产生复位的操作。
3.3按键控制模块
图3-3按键控制模块
按键控制模块主要有由五个按键组成:
K1、K2、K3、K4、K5。
其中K1的功能是模式切换键;K2的作用是加一;K3的作用是闹钟使能;K4的作用是减一;K5的作用是显示年月日及时间。
当需要校正时间或是设定闹钟时间时,即可按下模式切换键来进行。
校正时间:
按第一次K1键,进入小时校正状态,通过按K2、K4键进行小时校正,按一下K2键则加一,按一下K3键则减一;按第二次K1键,进入分校正状态,通过按K2、K4键进行分钟校正;按第三次K1键,进入闹钟小时设定状态,此时若不需要设置则不操作;按下第四次K1键,进入闹钟分钟设定状态,若此时不需要设置则不操作;按下第五次K1键进入月份校正状态,通过按K2、K4键进行月份校正;按下第六次K1键,进入日校正状态,通过按K2、K4键进行日校正;按下第七次K1键进入年份校正状态,通过按K2、K4键来进行年份校正;校正完毕后,再按一次K1键,则退出时间校正状态,并显示当前校正后的准确时间。
设定时间:
按第一次K1键进入小时校正状态,此时若不需要设置,则不操作;以此类推,到第三次按下K1键,进入闹钟小时设定状态,通过按K2、K4键进行小时设定;按下第四次K1键,进入闹钟分钟设定状态,通过按K2、K4键进行分钟设定,设定完毕后,按一下K3键(闹钟使能);继续按K1键,若不需要设置,则不操作,以此类推,到按最后一次K1键则退出时间设定状态并显示当前时间,当时间与我们设定的时间一致时,通过闹钟电路响声提示,若要关闭闹钟,此时再按一次K3键即可停止响声。
3.4时间显示模块
图3-4显示模块
时间显示模块主要由四位数码管来显示,配合按键控制模块的校正与设定时间,相应的显示。
时间正常显示时,LED小数点每闪动60次,分钟自动加一;每六十分钟小时自动加一;每24小时天自动加一。
3.5闹钟模块
图3-5闹钟音乐模块
闹钟模块的主要功能:
闹铃及二极管闪烁。
当设定时间与当前时间一致时,则闹钟自动闹铃进行提示,同时二极管闪亮一分钟后,自动退出响铃状态,若按K3键,闹钟退出响铃状态。
第四章软件设计
4.1keil软件介绍
Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。
1.系统概述
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.KeilC51单片机软件开发系统的整体结构
C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项
*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
4.2系统软件设计思想
本系软件设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0定时器溢出中断来实现,工作在模式1方式下,定时50ms,则连续中断20次即为一秒,得到了我们所需时间的最小单位。
由公式TX初值=2n-(fosc/12)*t,对于本设计中的初值,TX0初值=216-(12*106/12)*50*10-3=15536,所以TH0=ox3c,TL0=oxb0.
该设计用C51编写程序,由于汇编语言的移植性比较差,而C语言则比较灵活。
许多子函数都可以直接移植过去。
在程序中除了有主函数外还包含许多子函数,如延时函数、按键扫描函数、初始化函数、时间显示函数、设定闹钟显示函数、设定日期显示函数、设定年份显示函数、月份选择函数、年份显示辅助函数。
4.3系统主程序
在主控程序循环中主要工作为扫描是否有按键,若有按键则做相应的功能处理,同时也扫描显示器显示时间数据,并检查所设置的时间是否到了。
时间计时处理程序是等过了1s后,则更新时间数据,将最新的时、分的数据转换为数字数据并显示在七段显示器上。
主程序流程图见图4-1。
图4-1主程序流程图
4.4中断子程序
中断子程序的主要功能:
提供时间基准。
当连续中断20次时,即为一秒,此时秒加一;当秒值为60时,分钟加一,同时秒清零;当分钟值为60时,小时加一,同时分钟值清零;当小时为24时,天值加一,同时小时清零;由于每月天数不定,1、3、5、7、8、10、12月为31天,当计数到此类月份时,天值为32时,月值加一,同时天值为1;4、6、9、11月为30天,当计数到此类月份时,天值为31时,月值加一,同时天值为1;如果是闰年,则2月为29天,当计数到此类月份时,天值为30时,月值加一,同时天值为一;如果不是闰年,则2月为28天,当计数此类月份时,天值为29时,月值加一,同时天值为一;当月值为13时,则年值加一,同时月值为一。
如图4-2所示:
图4-2定时器中断函数
4.5按键扫描子程序
按键扫描子程序是程序计中相当重要的一部分。
按键扫描子程序的功能是:
扫描是否有按键按下,若有键按下,则执行相应功能。
如图4-3所示:
图4-3按键扫描子程序
4.6系统程序(见附录3)
第五章Proteus软件仿真
5.1Proteus软件简介
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 作息 时间 系统 精品