基于单片机的作息时间系统精品.docx

上传人:b****8 文档编号:9703780 上传时间:2023-02-05 格式:DOCX 页数:52 大小:2.06MB
下载 相关 举报
基于单片机的作息时间系统精品.docx_第1页
第1页 / 共52页
基于单片机的作息时间系统精品.docx_第2页
第2页 / 共52页
基于单片机的作息时间系统精品.docx_第3页
第3页 / 共52页
基于单片机的作息时间系统精品.docx_第4页
第4页 / 共52页
基于单片机的作息时间系统精品.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

基于单片机的作息时间系统精品.docx

《基于单片机的作息时间系统精品.docx》由会员分享,可在线阅读,更多相关《基于单片机的作息时间系统精品.docx(52页珍藏版)》请在冰豆网上搜索。

基于单片机的作息时间系统精品.docx

基于单片机的作息时间系统精品

毕业设计(论文)

 

题  目:

基于单片机的作息时钟系统

专  业:

电子测量技术与仪器

班  级:

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工具软件,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

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

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