黑龙江信息技术职业学院
毕业设计(论文)说明书
系 部自动控制工程系 专 业 电气自动化 年 级 08电气 姓 名 于奇 指导教师 艾铁伟
年 月 日
--精品
精品-----
黑龙江信息技术职业学院
毕业设计(论文)任务书
题目:
学生姓名 于奇 系部名称 自动控制工程系 专 业 电气自动化 学 号
指导教师 艾铁伟 职 称
--精品
精品-----
一、原始依据(包括设计或论文的工作基础、研究条件、应用环境、工作目的等)
二、参考文献
[1] 李叶紫.王喜斌.胡辉.孙东辉.编著MCS_51单片机应用教程清华大学出版社.2008.6. [2] 陆剑.单片机应用技术指导书 河南工业职业技术学院2005.12. [3] 汪道辉.单片机系统设计与实践.电子工业出版社
( 50页 时、分、秒计时器设计,59页 键盘及接口技术).
[4] 第二版.51系列单片机设计实例.北京航空航天大学出版社(81—89页 数码管时钟电路
的设计).
[5] 辛友顺、胡永生、薛小玲.单片机应用系统设计与实现.福建科学技术出版社(184-186页
LED显示接口,190-193页 键盘接口).
[6] 黄庆华、张永格.单片机开发 与实例.电子工业出版社(127-162页 数字式电子时钟的设
计).
[7] 闫玉德、俞红.MCS-51单片机原理与应用(C语言版).机械工业出版社(49-104页 单
片机的C程序设计).
--精品
精品-----
[8] 求是科技.单片机典型模块设计实例导航.人民邮电出版社(85-90页 单片机数字时钟). [9] 刘守义,王静霞。《单片机应用技术》.西安电子科技大学出版社,2002.
三、设计(研究)内容和要求(包括设计或研究内容、主要指标与技术参数,并根据课题性质对学生提出具体要求)
电子科技日新月异,人们对现代电子设备的智能化和微型化及其精度提出了更高的要求,而单片机因其具有稳定可靠、 体积小、 价格低廉等特点,成为设计智能化仪器仪表的首选微控制器,因此本次我们没有选用传统的专用的时钟芯片,而是采用了AT89S51芯片,此款单片机可以使用软件对其进行在线编程,其灵活性和可靠性都相对提高
--精品
精品-----
指导教师(签字)
年 月 日
审题小组组长(签字)
年 月 日
黑龙江信息技术职业学院
毕业设计(论文)开题报告
课题名称 单片机电子时钟 学院名称 黑龙江信息技术职业学院 专业名称 学生姓名 于奇 指导教师 艾铁伟 --精品
精品-----
(内容包括:课题的来源及意义,国内外发展状况,本课题的研究目标、研究内容、研究方法、研究手段和进度安排,实验方案的可行性分析和已具备的实验条件以及主要参考文献等。) --精品
精品-----
选题是否合适: 是□ 否□ 课题能否实现: 能□ 不能□ 指导教师(签字) 年 月 日 --精品
精品-----
选题是否合适: 是□ 否□ 课题能否实现: 能□ 不能□ 审题小组组长(签字) 年 月 日 摘 要
单片机 即单片微型计算机。(Single-Chip Microcomputer ),是 集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于工业自动化上和智能产品。时钟,自从它被发明的那天起,就成为了人类的好朋友,但随着时间的推移,科学技术的不断发展,时钟的应用越来越广范,人们对时间计量的精度要求也越来越高。怎样让时钟更好的为人民服务,怎样让我们的老朋友再次焕发青春呢?这就要求我们不断设计出新型的时钟,来不断满足人们的日常生活需要。然而市场上的时钟便宜的比较笨重,简单实用的又比较昂贵。那么,有没有一款既简单实用价格又便宜的时钟呢?
我们课程设计小组设想:可不可以利用单片机功能集成化高,价格又便宜的特点设计一款结构既简单,价格又便宜的单片机电子时钟呢?
基于这种情况,我们课程设计小组成员多方查阅资料,反复论证设计出了这款既简单实用,又价格便宜的——单片机电子时钟。
关键词:单片机 ; 时钟 ; 计时
--精品
精品-----
目□□录
(三号、黑体、居中、目录两字空两格、与正文空一行)
□□第一章(空两格)☆☆☆(小三号、宋体)………………×□□□1.1☆☆☆☆(四号宋体)……………………………………× □□□1.2☆☆☆☆……………………………………………………× □□□1.3☆☆☆☆……………………………………………………× ………………
□□第四章(空两格)☆☆☆(小三号、宋体)………………×□□□4.1☆☆☆☆……………………………………………………× □□□4.2☆☆☆☆……………………………………………………× ………………
□□参考文献(小三号、宋体)…………………………………×□□附录(小三号、宋体)………………………………………×□□外文资料(小三号、宋体)…………………………………×□□中文译文(小三号、宋体)…………………………………×□□致谢(小三号、宋体)………………………………………×
--精品
精品-----
不标页码--精品
精品-----
绪 论
1.1课题背景
单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。其功能和市场竞争力更强,不该把它们直接称呼为MCS-51系列单片机,因为MCS只是Intel公司专用的单片机系列型号。MCS-51系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。
1.2课题来源
在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,
--精品
精品-----
可以构造各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。
--精品
精品-----
第二章 MCS-51单片机的结构
MCS-51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器(SFR)的集中控制方式。
2.1 控制器
控制器是单片机的指挥控制部件,控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。
单片机执行指令是在控制器的控制下进行的。首先从程序存储器中读出指令,送指令寄存器保存,然后送至指令译码器进行译码,译码结果送定时控制逻辑电路,由定时控制逻辑产生各种定时信号和控制信号,再送到单片机的各个部件去进行相应的操作。这就是执行一条指令的全过程,执行程序就是不断重复这一过程。控制器主要包括程序计数器、程序地址寄存器、指令寄存器IR、指令译码器、条件转移逻辑电路及时序控制逻辑电路。
2.2 存储器的结构
MCS-51单片机存储器采用的是哈佛结构,即程序存储器空间和数据存储器空间截然分开,程序存储器和数据存储器各有自己的寻址方式,寻址空间和控制系统。
这种结构对于单片机面向控制的实际应用极为方便,有利.在8051/8751弹片击中,不仅在片内集成了一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有极强的外存储器的扩展能力,寻址能力分别可达64KB,寻址和操作简单方便.MCS-51的存储器空间可划分为如下几类:
1. 程序存储器
单片机系统之所以能够按照一定的次序进行工作,主要是程序存储器中存放了经调试正确的应用程序和表格之类的固定常数。程序实际上是一串二进制码,程序存储器可以分为片内和片外两部分。8031由于无内部存储器,所以只能外扩程序存储器来存放程序。
MCS-51单片机复位后,程序存储器PC的内容为0000H,故系统必须从0000H单元开始取指令,执行程序.程序存储器中的0000H地址是系统程序的启动地址.一般在该单元存放一条绝对跳转指令,跳向用户设计的主程序的起始地址。
2. 内部数据存储器
MCS-51单片机内部有128个字节的随机存取存储器RAM,作为用户的数据寄存器,它能满足大多数控制型应用场合的需要,用作处理问题的数据缓冲器。
--精品
精品-----
MCS-51单片机的片内存储器的字节地址为00H-7FH.MCS-51单片机对其内部RAM的存储器有很丰富的操作指令,从而使得用户在设计程序时非常方便。地址为00H-1FH的32个单元是4组通用工作寄存器区,每个区含8个8位寄存器,编号为R7-R0。用户可以通过指令改变PSW中的RS1,RS0这二位来切换当前的工作寄存器区,这种功能给软件设计带来极大的方便,特别是在中断嵌套时,为实现工作寄存器现场内容保护提供了极大的方便。
3. 特殊功能寄存器(SFR-Special Function Register)
特殊功能寄存器反映了MCS-51单片机的状态,实际上是MCS-51单片机各功能部件的状态及控制寄存器.SFR综合的,实际的反应了整个单片机基本系统内部的工作状态及工作方式.SFR实质上是一些具有特殊功能的片内RAM单元,字节地址范围为80H-FFH.特殊功能寄存器的总数为21个,离散的分布在该区域中,其中]有些SFR还可以进行位寻址.128个字节的SFR块中仅有21个字节是由定义的.对于尚未定义的字节地址单元,用户不能作寄存器使用,若访问没有定义的单元,则将得到一个不确定的随机数.
2.3 并行I/O口
MCS-51单片机共有4个双向的8位并行I/O端口(Port),分别记作P0-P3,共有32根口线,各口的每一位均由锁存器、输出驱动器和输入缓冲器所组成。实际上P0-P3已被归入特殊功能寄存器之列。这四个口除了按字节寻址以外,还可以按位寻址。由于它们在结构上有一些差异,故各口的性质和功能有一些差异。
P0口是双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。P1口是8位准双向I/O口,可驱动4个LS 型负载。P2口是8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。P3口是8位准双向I/O口,是双功能复用口,可驱动4个LS型TTL负载。P1口、P2口、P3口各I/O口线片内均有固定的上拉电阻,当这3个准双向I/O口做输入口使用时,要向该口先写“1”,另外准双向I/O口无高阻的“浮空”状态,故称为双向三态I/O 口。
2.4 时钟电路与时序
时钟电路用于产生MCS-51单片机工作时所必需的时钟信号。MCS-51单片机本身就是一个复杂的同步时序电路,为保证同步工作方式的实现,MCS-51单片机应在唯一的时钟信号控制下,严格地按时序执行进行工作,而时序所研究的是指令执行中各个信号的关系。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两类,一类用于片内对各个功能部件的控制,这列信号很多。另一类用于片外存储器或I/O端口的控制,这部分时序对于分析、设计硬件接口电路至关重要。这也是单片机应用系统设计者普遍关心的问题。
--精品
精品-----
2.5 单片机的应用领域
单片机应用领域可以归纳为以下几个方面。 1.智能仪表
用单片机系统取代老式的测量、控制仪表,实现从模拟仪表向数字化、智能化仪表的转化,如各种温度仪表、压力仪表、流量仪表、电能计量仪表等。 2. 测控系统
用单片机取代原有的复杂的模拟数字电路,完成各种工业控制、数据采集系统等工作。 3.电能变换
应用单片机设计变频调速控制电路。 4.通信
用单片机开发通信模块、通信器材等。 5.机电产品
应用单片机检测、控制传统的机械产品,使传统的机械产品结构简化,控制智能化,提高了机电产品的可靠性,增强了产品的功能。 6.智能接口
在数据传输中,用单片机实现外部设备与微机通信。
--精品
精品-----
第三章 系统设计要求
3.1基本功能
(1)能够显示时分秒 (2)能够调整时分秒
3.2 扩展功能
(1)能够任意设置定时时间 (2)定时时间到闹铃能够报警 (3)实现了秒表功能
--精品
精品-----
第四章 硬件总体设计方案
用一扬声器来本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单
片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。
4.1系统功能实现总体设计思路
如图4-10 所示为AT89S51芯片的引脚图
图4-10 AT89S51芯片外部引脚图
此设计原理框图如图4-11所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。
--精品
精品-----
独立键盘 AT89C51 数码管显示 闹铃电路 图4-11 设计原理框图
经多方论证硬件我们小组采用AT89C51单片机和7SED八位共阳极数码管等来实现单片机电子时钟的功能。
详细元器件列表如表4.12所示:
表4.12 详细元器件列表 AT89c51 7SED八位共阳极数码管 NPN三极管 104p电容 30p电容 10K电阻 560欧姆电阻 200欧姆电阻 100欧姆电阻
1片 1片 1个 6个 2个 6个 8个 1个 6个 4.2各部分功能实现
(1) 单片机发送的信号通过程序控制最终在数码管上显示出来。 (2) 单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
(3) 为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数
码管上显示的时间。
单片机通过控制闹铃电路来完成 定时闹钟的功能
--精品
校正电路。
4.3系统工作原理
详细电路功能图如图4-30:
精品-----
单片机对数据进行处理同时在数码管上显示。
设计的电路主要由四模块构成:单片机控制电路,显示电路、闹铃电路以及
详细电路功能图如图4-30
本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计
翻0”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当
数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23
计时发生误差的时候可以用校时电路进行校正。设计采用的是时、分、秒显示,
--精品
精品-----
4.4时钟各功能分析及图解 (1) 时钟运行图
仿真开始运行时,或按下key4键时,时钟从12:00:00开始运行,其中key2键对分进行调整,key3对小时进行调整,key6可以让时钟暂停。
时钟运行图如图 4-41 所示: (2)秒表计时图
当按下key1键进入秒表计时状态,key6是秒表暂停键,可按key4键跳出秒表计时状态。
秒表计时图如图 4-42所示:
单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧
图4-41 时钟运行图
--精品
精品-----
单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧图4-42 秒表计时图
(3)闹铃设置图及运行图
当按下key5,开始定时,分别按key2调分,key3调时设置闹铃时间,然后按下key4键恢复时钟运行状态(图4-43)当闹铃设置时间到时,蜂鸣器将发出10秒中蜂鸣声(图4-44)。
--精品
精品-----
单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧 图4-43 闹铃时间设置图
该数字钟是用一片AT89C51单片机通过编程去驱动8个数码管实现的。通过6个开关控制,从上到下6个开关KEY1-KEY6的功能分别为:KEY1,切换至秒表;KEY2,调节时间,每调一次时加1;KEY3, 调节时间,每调一次分加1;KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停.控制键分别与P1.0~P1.5口连接.其中:
A通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.
B从P0.0输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实现。
--精品
精品-----
单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧 图4-44 闹铃运行图
4.5电路功能使用说明
(1) 各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。
(2) AT89C51单片机,通过编写程序对数码显示进行控制。 (3) 八个7段数码管显示时钟和秒表信号
--精品
精品-----
第五章 软件总体设计方案
5.1 主程序流程图
软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。如图5-10:
开始
图3-1 主程序流程图 是否设定参数 执行时钟秒表 闹铃设定程序 定时器及中断定时器初始化
--精品
N Y 执行显示程序 精品-----
5.2总中断程序流程
Tcount加1
恢复初值保护 Tount1=100? 秒数值time1.second加1second归零 判断时间与闹钟时Time1.second=60?
实数值time1.boun加Time.minute=60? 闹钟程序是否行完全 执行闹钟程序p0.0=1 分数值time..minute加1time.second归零
返回主程序 1time1.mintet归零 Time1.bour>23
时数值time1.hour归零 --精品 精品-----
图5-20 中断流程图
--精品
精品-----
时间的显示通过此中断程序来控制,并且通过与设定的时间进行比较来判断是否让闹铃工作。程序中包含时间的设定,如设定tcount来使秒等工作,进而来控制分和时。如上图图5-20。 A. 秒表中断程序流程
秒表功能通过另一个程序来实现。通过保护主程序的数据来进行秒表功能。程序中需要设置秒表的具体显示方法。如图5-3:
10ms 计数器加 1 恢复初值保护
Ms>100? N
秒计数器加 1 , 10ms计数器归零,即sec++,ms=0
N
分计数器加1,秒计数器归零,即minit++,sec=0
输出字码,中断结束,返回上级主程序 Sec>60? 恢复初值保护
--精品
精品-----
图5-3秒表中断程序流程图
B.按键程序流程
图5-4为时钟和闹钟的调节,程序中通过扫描来判断按键是否按下进行时间和闹钟的调节。 判断时i加键判断标志输出时钟十个位加一 程序初始化 Dat1[6]>9 是否按下 位是否为 判断标志是输出闹钟时十位输出闹钟分个位加一,加一 否为零 Dat1[7] 判断分加键是否按下 输出时钟时十输出闹钟时个位加一,延时 Alarms[6]>9 位加一 Alarms【3】>0 输出时钟分个位加一,延时 Alarms[7]>2 时十位归零 输出闹钟时分位加一 Dat1[3]>9 时十位归零alarms【7】=0 Alarms[4]>2 输出时钟十位加一 Dat1[4]>2 分十位归零 分时位归零alarms[4]=0 --精品
精品-----
图5-4按键程序流程图
图5-5为进入中断和清零图,程序中通过扫描来判断按键是否按下进行执行相应的中断来事实现相应的功能。
判断分加键
tminute是否按下,P1.1=0 判断秒表
miaobiao1 是否按下按下,P1.0=0 进入秒表中断,执行秒表中断程序 返回上级主程序 判断清零键
miaobiao2是否按下,P1.3=0 清零所有的计数器,各个显示的字码。 --精品 精品-----
图5-5 中断和清零程序流程图
--精品
精品-----
5.3控制电路的C语言源程序
根据流程图,经过认真分析得出控制电路的源程序如下: #include uchar dat1[]={0,0,0,0,0,0,2,1}; uchar dat2[]={0,0,0,0,0,0,0,0}; uchar alarms[]={0,0,0,0,0,0,0,0}; uchar dis_bit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; unsigned char code sbit P1_6=P1^6; sbit P1_7=P1^7;/*端口定义*/ uchar ms=0; uchar flag=0; uchar sec=0; uchar minit=0; struct time{uchar second;uchar minute;uchar hour;}time1; uchar n,i; void delay(n) {while(n--) { for(i=120;i>0;i--); } SEG7[11]={0xC0,/*0*/ } 0xF9,/*1*/ 0xA4,/*2*/ /*延时子程序*/ 0xB0,/*3*/ void modify(void) 0x99,/*4*/ { 0x92,/*5*/ EA=0; 0x82,/*6*/ if(thour==0) 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0xBF,/*-*/ };/*数字显示数组*/ sbit miaobiao1=P1^0; sbit tminute=P1^1; sbit thour=P1^2; sbit miaobiao2=P1^3; sbit alarm=P1^4; sbit P0_0=P0^0; sbit P1_5=P1^5; { if(flag==0) dat1[6]++;delay(280); if(dat1[6]>9) { dat1[6]=0; dat1[7]++; } else {dat1[7]=0; dat1[6]=0; if((dat1[7]>1)&&(dat1[6]>3)) { --精品 精品----- } } if(flag==1) { alarms[6]++;delay(300); if(alarms[6]>9) { alarms[6]=0;alarms[7]++; if(alarms[7]>2) { alarms[7]=0; } } dat[6]=alarms[6]; dat[7]=alarms[7]; } } if(tminute==0) { if(flag==0) { dat1[3]++;delay(280); if(dat[3]>=9) { dat1[4]++;dat1[3]=0; if(dat1[4]>5) { dat1[4]=0; } } } if(flag==1) { alarms[3]++; delay(300); if(alarms[3]>9) { alarms[4]++;alarms[3]=0; if(alarms[4]>5) { alarms[4]=0; } } dat[3]=alarms[3]; dat[4]=alarms[4]; } } if(miaobiao1==0) {TR0=0;ET0=0;TR1=1;ET1=1; } if(miaobiao2==0) { TR0=1;ET0=1;TR1=0;ET1=0; dat2[0]=0; dat2[1]=0; dat2[3]=0; dat2[4]=0; dat2[6]=0; dat2[7]=0; ms=0; sec=0; minit=0; } if(P1_5==0) { TR0=0;ET0=0;TR1=0;ET1=0; } if(alarm==0) { --精品 精品----- TR0=0;ET0=0;TR1=0;ET1=0;flag=1P2=SEG7[dat[k]]; delay(1); ; dat[0]=0; dat[1]=0; dat[2]=10; dat[3]=0; dat[4]=0; dat[5]=10; dat[6]=0; dat[7]=0; } EA=1; }/*按键扫描*/ void init(void) { TMOD = 0x11; TH0 = 0xDB; TL0 =0xFF; TH1=0xDB; TL1=0xFF; ET0 = 1; ET1=1; // TR1=1; TR0=1; tcount=0; ms=0; sec=0; minit=0; EA = 1; }/*初始化*/ void test(void){ for(k=0;k<8;k++) { P3=dis_bit[k]; //10msP3=0X00; } }/*数字显示*/ void main() {init(); delay(10); while(1) { modify(); test(); } }/*主函数*/ Void diplay() interrupt 1 { ET0=0; TR0=0; TH0 = 0xDB; TL0 = 0xff; TR0=1; tcount++; if(tcount==100) { time1.second++; tcount=0; dat1[0]=(time1.second)%10; dat1[1]=(time1.second)/10; } if(time1.second==60) { dat1[0]=0; dat1[1]=0; time1.second=0; time1.minute++; dat1[3]=(time1.minute)%10; dat1[4]=(time1.minute)/10; --精品 精品----- } if(time1.minute==60) { time1.minute=0; time1.hour++; dat1[6]=time1.hour%10; dat1[7]=time1.hour/10; TH1=0xDB; TL1=0xFF; TR1=1; ms++; dat2[0]=ms%10; dat2[1]=ms/10; if(ms>=100) } if(time1.hour>23) { time1.hour=0; } dat[5]=10; dat[2]=10; dat[0]=dat1[0]; dat[1]=dat1[1]; dat[3]=dat1[3]; dat[4]=dat1[4]; dat[6]=dat1[6]; dat[7]=dat1[7]; flag=0; P0=0x01; if((alarms[7]==dat1[7])&&(alarms[6]==d at1[6])&&(alarms[4]==dat1[4])&&(alarms [3]==dat1[3])&&(dat1[1]<1)) { P0=0x00; } ET0=1; } void time_2(void)interrupt 3 { EA=0; TR0=0; --精品 { ms=0; sec++; dat2[3]=sec%10; dat2[4]=sec/10; if(sec>=60) { sec=0; minit++; dat2[6]=minit%10; dat2[7]=minit/10; } } dat[5]=10; dat[2]=10; dat[0]=dat2[0]; dat[1]=dat2[1]; dat[3]=dat2[3]; dat[4]=dat2[4]; dat[6]=dat2[6]; dat[7]=dat2[7]; EA=1 精品----- 第六章 课程设计结果分析 此时钟设计是利用protues仿真软件进行仿真,基本上实现了课程设计要求实现的功能。 硬件部分设置了的六个按键。当按键一按下时,进入秒表显示状态,秒表开始计时,当按键六按下时,秒表暂停;当按键四按下时恢复到时间显示功能;当按键二按下时,进入调分状态,按一次,分加一,60一循环;按键三按下时,进入调时状态,按一次,时加一,60一循环;按键五按下时,进入闹铃设置功能,紧接着按下按键二和按键三进行时和分的设置,再按下按键4恢复显示时间,当显示的时间和定时设置的时间一致时,蜂鸣器发出蜂鸣声,蜂鸣时间我们设置为10秒。 另外,闹铃电路有音乐闹钟的扩展的功能(可以将蜂鸣器换成扬声器再加一段音乐程序即可实现)。 调试阶段,出现一些问题。比如,实际小时显示到29才归零,分钟显示到60才进一……经过软件调试,以上问题均一一排除,结果达到预期目标。但时间有限,部分扩展功能不能 及时实现,比如音乐闹铃。 --精品 精品----- 第七章 结论与展望 7.1 结论 单片机多功能定时系统理论上能很好的达到了学校教学要求,发挥了单片机在智能化方面的应用。该系统的设计很好的满足当前学校教学的需要,是一个理想的智能化的设计。它具有一个走时精确的实时钟,可以任意设置时间,可以控制时间表的转换,时钟的显示功能等。可以通过按键操作和数字显示。该系统规模小,但是功能较多,操作简单,造价低,应用非常广泛。该系统的设计为向家庭数字化方向发展又前进了一步。同时又扩大了单片机的应用领域。 7.2 单片机的发展趋势 自单片机出现至今,单片机技术已走过了几十年的发展路程。纵观几十年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,拉动广泛的应用领域,表现出比微处理器更具个性的发展趋势: 1.采用先进结构以实现高性能 在过去的一段时间内,单片机的指令运行速度一直在10MIPS以下,这对于应用在工业控制领域内的单片机来说是足够了,但当单片机被应用在通讯及DSP领域作为高速运算、编码或解码时,就会出现因指令运行速度不够而限制单片机应用的情形,因此提高单片机指令运行速度已经成为迫切需要解决的问题。 2.进一步降低功耗、 基于80C51的飞利浦低功率、低系统成本微控制器51LPC系列是业界推动单片机向低功耗方向发展的主导单片机系列之一。51LPC系列单片机采用以下三种方法降低功耗: (1)使系统进入空闲模式,在空闲模式下,只有外围器件在工作,任意的复位及中断均可结束空闲模式; (2)使系统进入低功耗模式,在低功耗模式下,振荡器停止工作,是功耗降到最小 (3)使系统进入低电压EPROM操作;EPROM包含了模拟电路,当Vcc高于4V时,可通过软件使这些模拟电路掉电以降低功耗,在上电情况下可使系统退出该模式。 3.采用Flash Memory 随着半导体工艺技术的不断进步,MPU的Flash版本逐渐替代了原有的OTP版本。Flash MPU具有以下优点:与多次可编程的窗口式EPROM相比,Flash MPU的成本要低得多;在系统编程能力以及产品生产方面提供了灵活性,因为Flash MPU可在编程后面再次以新代码重新编程;可减少已编程器件的报废和库存; --精品 精品----- 有助于生产厂商缩短设计周期,使终端用户产品和、更具有竞争力。 4.集成更多功能及兼容性 目前单片机的另一个发展趋势是在芯片上集成更多的功能。如模拟功能,包括模拟比较器、A/D和D/A转换器等。具体表现在:兼容性作为设计的第一考虑;额外的新的特点是透明的;使用同一种编程器;OTP使器件快速提升及标准化成为可能。 5.强抗干扰能力 不断加强抗干扰能力是单片机进一步发展的必然趋势。ST Microelectronics公司推出的ST62系列单片机在这方面是佼佼者,其优良的抗干扰能力使得许多大公司将其应用在系统中的关键部件上。许多单片机开发商也正朝着这个方向努力。 6.朝系列化、全面化方向发展 各大单片机开发商在增加产品功能的同时效力于形成产品的系列化=全面化,以满足各种控制领域的要求,这也是单片机发展的趋势之一。日本TOSHBA公司开发了从4位到64位的多系列单片机,日立公司也有从4.位到32位的单片机,目前还没有哪个厂家生产的单片机比东芝公司的种类多。 随着单片机性能的不断提高,不断的克服和弥补自身的不足。在各种控制领域,单片机将拥有更加广阔的使用天地。在很长的一段时间内,它将一直是工程设计人员的首选控制芯片之一。 --精品 精品----- 致谢 本课题在选题及进行过程中得到了席东河老师的悉心指导。在硬件电路设计当中席老师帮助分析思路,开拓视角;在软件设计中席老师帮助调试及修改程序。席老师严谨求实的治学态度,踏实坚韧的工作精神将使我们终身受益。再多华丽的言语也显得苍白。在此,谨向 席东河老师致以诚挚的谢意和崇高的敬意! --精品 精品----- 参考文献 [1] 李叶紫.王喜斌.胡辉.孙东辉.编著MCS_51单片机应用教程清华大学出版社.2008.6. [2] 陆剑.单片机应用技术指导书 河南工业职业技术学院2005.12. [3] 汪道辉.单片机系统设计与实践.电子工业出版社 ( 50页 时、分、秒计时器设计,59页 键盘及接口技术). [4] 第二版.51系列单片机设计实例.北京航空航天大学出版社(81—89页 数码管时钟电路 的设计). [5] 辛友顺、胡永生、薛小玲.单片机应用系统设计与实现.福建科学技术出版社(184-186页 LED显示接口,190-193页 键盘接口). [6] 黄庆华、张永格.单片机开发 与实例.电子工业出版社(127-162页 数字式电子时钟的设 计). [7] 闫玉德、俞红.MCS-51单片机原理与应用(C语言版).机械工业出版社(49-104页 单 片机的C程序设计). [8] 求是科技.单片机典型模块设计实例导航.人民邮电出版社(85-90页 单片机数字时钟). [9] 刘守义,王静霞。《单片机应用技术》.西安电子科技大学出版社,2002. --精品 因篇幅问题不能全部显示,请点此查看更多更全内容