智能时钟控制系统设计 完整版.docx

上传人:b****5 文档编号:6516473 上传时间:2023-01-07 格式:DOCX 页数:39 大小:251.22KB
下载 相关 举报
智能时钟控制系统设计 完整版.docx_第1页
第1页 / 共39页
智能时钟控制系统设计 完整版.docx_第2页
第2页 / 共39页
智能时钟控制系统设计 完整版.docx_第3页
第3页 / 共39页
智能时钟控制系统设计 完整版.docx_第4页
第4页 / 共39页
智能时钟控制系统设计 完整版.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

智能时钟控制系统设计 完整版.docx

《智能时钟控制系统设计 完整版.docx》由会员分享,可在线阅读,更多相关《智能时钟控制系统设计 完整版.docx(39页珍藏版)》请在冰豆网上搜索。

智能时钟控制系统设计 完整版.docx

智能时钟控制系统设计完整版

 

智能时钟控制课程设计

 

题目:

基于单片机的智能时钟控制系统设计

东华理工大学

姓名:

学院:

班级:

学号:

得分:

指导教师:

2011年10月08日

 

摘要

ABSTRACT

前言··································································

1.方案设计与论证······················································

1.1主控模块·························································

1.2计时模块··························································

1.3键盘模块··························································

1.4显示模块··························································

1.5数据通讯模块······················································

1.6各模块的最终方案··················································

2.系统硬件设计························································

2.1时钟电路模块设计··················································

2.2复位电路模块设计·················································

2.3键盘电路模块设计·················································

2.4显示模块模块设计·················································

2.5数据通信模块设计·················································

2.6电源电路模块设计················································

3.系统软件设计························································

3.1系统主程序设计···················································

3.2系统子程序设计···················································

3.2.1显示程序设计···················································

3.2.2调时功能程序设计···············································

3.2.3秒表功能程序设计···············································

3.2.4定时器T0中断服务程序设计······································

3.2.5定时器T1中断服务程序设计······································

3.2.6单片机与PC机数据通信程序设计··································

总结·································································

参考文献·····························································

致谢·································································

 

摘要:

基于单片机的智能时钟系统设计

时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。

从古代的水漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显示了时间的重要,同时也代表着科技的进步。

致力于计时器的研究和充分发挥时钟的作用,将有着重要的意义。

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

单片机具有体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

在单片机构成的装置中,数字时钟是必不可少的部件。

它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱。

随着人类科技文明的发展,人们对于时钟的要求在不断地提高。

时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。

高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。

在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。

多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。

单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。

但是却很少知道它的内部结构以及工作原理。

由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行定时、校时功能。

输出设备显示器可以用液晶显示技术和数码管显示技术。

基于MCS-51单片机的智能时钟系统具有显示准确、直观、易于调整等特点。

单片机自诞生以来给全世界人类的生活和工作起到了剧烈的变化,而MCS-51单片机是我国使用最早、最易掌握和应用的一款单片机。

通过该系统的设计,对单片机的原理和功能有个较系统和全面的掌握,初步学习到有关工程设计的方法和思路。

这样以后的就业面会更加宽广,也可以满足当今社会对单片机开发人才的大量需求。

纵观传统的电路设计,大部分是采用分立元件进行设计,既复杂成本又高。

随着集成化的发展,现在系统的设计都是在模块化的基础上设计系统的。

本课题是基于智能化和模块化的前提下设计智能数字时钟的,通过对设计目标的分析,分立出各个模块,然后根据各个模块的功能,选择适当的芯片进行设计的。

本课题的研究,对智能化、模块化设计具有较强的推广应用价值。

本文的主要内容是利用51单片机设计一个智能数字时钟系统,使其实现以下功能:

1:

具有时间显示和报时、校时功能,24小时制;2:

具有定时功能定时闹铃;3:

具有查询功能,4具有跑表功能。

正文:

智能时钟系统设计

1.方案设计与论证

1.1主控模块的选择

方案一:

用可编程逻辑器件设计。

可采用ALTERA公司的FLEX10K系列PLD器件。

设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。

但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。

从成本上来讲,用可编程逻辑器件来设计也没有什么优势。

方案二:

用凌阳16位单片机设计。

凌阳16位单片机有丰富的中断源和时基,方便本实验的设计。

它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。

I/O口功能也比较强大,方便使用。

用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录制播放和识别。

这些都方便对设计进行扩展,使设计更加完善。

成本也相对低一些。

但是,在控制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高。

方案三:

主控芯片使用51系列AT89C51单片机。

AT89C51算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。

综观上述两种方案的论证与比较,我们采用AT89C51作为主控模块芯片。

1.2计时定时方案

方案一:

采用实时时钟芯片

实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计S时数据的更新每秒自动进行一次,不要程序干预。

计算机可通过中断或查询方式读取计时数据进行显示,因此计时功能的实现无需占用CPU的时间,程序简单。

此外,实时时钟芯片多数带有锂电池做后备电源,具备永不停止的计时功能;具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性RAM,可用来存放需长期保存但有时也需变更的数据。

由于功能完善,精度高,软件程序设计相对简单,且计时不占用CPU时间,因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。

[1]

方案二:

软件控制

利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时及秒表计时。

该方案节省硬件成本,且能使设计者对单片机的指令系统能有更深入的了解,从而掌握单片机应用技术MCS-51汇编语言设计方法,因此,本系统设计采用此种软件控制方法来实现计时。

而由于AT89C51单片机片内的Flash可允许在线重新编程,也可使用通用非易失性存储器编程。

它将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性价比的微控制器。

本系统采用方案二,使用AT89C51单片机,它的功能强大,而且也较容易购买。

1.3键盘方案

方案一:

采用独立式按键电路

每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。

但是当按键较多时占用单片机的I/O数目较多。

方案二:

采用阵列式键盘

此类键盘是采用行列扫描方式,当按键较多时可以降低占用单片机的I/O口的数目。

因本系统用到的按键比较少,采用独立式键盘不会浪费I/O口线,所以本系统采用独立式键盘。

1.4显示方案

方案一:

静态显示

静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出去后,数码管始终显示该数据(不变),CPU不再控制LED。

到下一次显示时,再传送一次新的显示数据。

静态显示的接口电路采用一个并行口接一个数码管,数码管的公共端按共阴极或共阳极分别接地或接VCC。

这种接法,每个数码管都要单独占用一个并行I/O口,以便单片机传送字形码到数码管控制数码管的显示。

显然其缺点就是当显示位数多时,占用I/O口过多。

方案二:

动态显示

动态扫描用分时的方法轮流控制每个显示器的COM端,使每个显示器轮流电亮。

在轮流点亮过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的余辉效应,给人的印象就是一组稳定的显示数据。

动态驱动一般用于多位LED数码管显示,主要是节省驱动管脚,减少器件。

由于静态显示法需要数据锁存器等硬件,接口复杂一些,又考虑到时钟显示只有6位,且系统没有其他复杂的处理任务,所以决定采用动态扫描法实现LED的显示

1.5数据通信方案

方案一:

利用RS-232连接PC机实现数据通信

我们采用89c51单片机作为下位机运行windows98的PC机作为上位机,两者通过RS-232串行口进行通信。

传输介质为二芯屏蔽电缆。

由于RS-232信号电平和单片机串行口信号电平不一致,必须进行两者之间的电平转换。

我们可以通过采用集成电平转换芯片MAX232进行RS-232/TTL电平转换

1.6各模块的最终方案

经过方案论证与比较,本设计主要由单片机电路来实现,选择AT89C51作为主控,采用独立式按键控制,LED数码管动态扫描显示,并利用RS-232连接PC机实现数据通信。

2.系统硬件设计

2.1时钟电路模块设计

如图2-2所示为时钟电路原理图,在AT89C51芯片内部有一个高增益反相放大器

其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成了一个稳定的自激振荡器。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

[3]

图2-2时钟电路原理图

AT89C51单片机内部包括一个8位CPU,片内振荡器和时钟电路,由4KB闪存组成的程序存储器,128字节的数据存储器,四个8位并行I/O口,一个全双工串行口,两个16位定时/计数器,5个中断源,提供两个中断优先级,21个特殊功能寄存器,可寻址各64KB的外部程序存储器和数据存储器,有位寻址功能及较强的布尔数据处理能力,有两种软件可选的低功耗运行方式(空闲和掉电方式)。

2.1.1AT89C51单片机的外形和引脚、

图2-3AT89C51引脚图

管脚说明:

AT89C51的引脚除了VCC(供电电压)和GND(接地)之外,按其功能可分为以下三类:

1)时钟电路引脚XTAL1和XTAL2;

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入

XTAL2:

来自反向振荡器的输出。

AT89C51内部有一个高增益的反相放大器,XTAL1和XTAL2分别为反向放大器的输入和输出端,在这两段之间接入晶体或陶瓷振荡器,即可构成一个高稳定度的片内振荡器作为单片机的时钟。

也可以加一个外部振荡信号到它的输入端作为时钟源,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

2)I/O端口引脚:

P0口:

为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:

为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3引脚的第二功能,如表2-1所示:

表2-1P3引脚的第二功能

引脚

第二功能

P3.0

RXD串口数据输入

P3.1

TXD串口数据输出

P3.2

INT0外部中断0输入

P3.3

INT1外部中断1输入

P3.4

T0外部计数脉冲输入

P3.5

T1外部计数脉冲输入

P3.6

WR外部RAM写选通

P3.7

RD外部RAM读选通

3)控制类引脚:

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取址期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:

程序存储器选择/编程电压输入端。

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

由于AT89C51内部有4KB的闪存作为程序存储器,因此在实际使用时该引脚直接连到电源正端;而编程闪存时则接12V电源正端。

2.1.2AT89C51的工作方式

AT89C51在上电后,通过复位电路的作用进入复位状态,复位后内部各特殊功能寄存器恢复到表2-2所列的值。

表2-2特殊功能寄存器复位值

SRF

复位值

SRF

复位值

PC

0000H

TMOD

00H

ACC

00H

TCON

00H

B

00H

TH0

00H

PSW

00H

TL0

00H

SP

07H

TH1

00H

DPTR

0000H

TL1

00H

P0-P3

0FFH

SCON

00H

IP

XXX00000

SBUF

不变

IE

0XX00000

PCON

0XXXXXXX

接着,单片机就开始执行程序存储器中的程序,进入“程序运行”方式。

此外,单片机还有两种软件可编程的节电模式,它是由电源控制寄存器PCON中的IDL和PD来控制的。

1)空闲节电模式。

当IDL=1时,进入该模式,单片机进入睡眠状态,片上RAM和特殊功能寄存器中的内容保持不变,单片机外设仍处于激活状态。

有两种情况可以使单片机终止空闲节电模式:

①任何被允许的中断。

当中断产生时,IDL被硬件清零,空闲节电模式被终止,单片机进入中断服务程序,中断服务处理完成后,单片机执行使其进入空闲节电模式的那条指令后面的指令。

②硬件复位也可使单片机终止空闲节电模式。

空闲节电模式被终止后,同样也是执行使其进入空闲节电模式的那条指令后面的指令。

2)掉电模式。

当PD=1时,单片机进入掉电模式,振荡器停止工作,RAM和SFR的内容保持不变。

只有硬件复位可以使单片机终止掉电模式,这时SFR的内容被重新定义,RAM不变。

2.1.3AT89C51单片机的存储器

AT89C51有片内程序存储器和片内数据存储器,片内程序存储器是4KB可反复擦写的闪存,其地址范围为0000H~0FFFH。

片内数据存储器包括四部分:

①通用寄存器组。

每组由R0~R7八个通用寄存器组成,共四组,可以通过程序状态字PSW的RS0和RS1位来选用其中的某一组。

地址00H~1FH。

②位地址空间。

用于存储布尔逻辑数据,可位寻址,地址是20H~2FH。

③数据存储区。

用于存储字节数据,也可以当做运算时的寄存器,地址是30H~7FH.

④SFR特殊功能寄存器。

功能见表2-3;

表2-3特殊功能寄存器

名称

功能

地址

名称

功能

地址

ACC

累加器

0E0H

IE

中断允许

0A8H

B

乘法寄存器

0F0H

TMOD

定时计数器方式

89H

PSW

程序状态字

0D0H

TCON

定时计数器控制

88H

SP

堆栈指针

81H

TH0

T0高字节

8CH

DPH

数据指针高字节

83H

TL0

T0低字节

8AH

DPL

数据指针低字节

82H

TH1

T1高字节

8DH

P0

8位并行口0

80H

TL1

T1低字节

8BH

P1

8位并行口1

90H

SCON

串口控制字

98H

P2

8位并行口2

0A0H

SBUF

串口数据缓冲

99H

P3

8位并行口3

0B0H

PCON

电源控制

87H

IP

中断优先

0B8H

2.1.4AT89C51单片机的串口

AT89C51单片机有一个全双工的串行数据接口,可以将单字节的8位数据,一位一位地串行发送或接收。

在单片机中这项功能是由接收数据引脚RXD和发送数据引脚TXD来实现的。

SBUF是收发共用的数据缓冲器(地址为99H),收发使用不同的读写指令来区分。

该串口具有不同的工作方式和传输速率等,还能产生发送或接收中断,这些都可以通过串口控制寄存器SCON设定或根据其值来判断,方法见表2-4;

表2-4串口控制寄存器SCON

名称

功能

用法

0

RI

接收中断标志

产生中断时为1

1

TI

发送中断标志

产生中断时为1

2

RB8

方式2,3时收到的第9位数据

3

TB8

方式2,3时发送的第9位数据

4

REN

接收允许

软件置1

5

SM2

方式2,3时的多机通信协议允许

6

SM1

方式选择

见表2-5

7

SM0

表2-5串口工作方式选择

方式

M1

M0

功能

0

0

0

同步移位寄存器方式

1

0

1

8位波特率可变

2

1

0

9位波特率可变,波特率为f/64(或32)

3

1

1

9位波特率可变

2.1.5AT89C51单片机的中断

AT89C51有五个中断源,两个外部中断(IE0和IE1),两个定时/计数器中断(TF0和TF1),一个串口中断(RI和TI合为一个中断源)。

前四个中断源的中断标志位在TCON的相应位中,串口的中断标志位在SCON中。

各中断源均可通过中断允许寄存器IF单独允许或禁止,IF可按位寻址设定,各位的意义见表2-6:

表2-6中断允许寄存器IF

名称

功能

用法

0

EX0

外部INT0中断允许

1:

允许中断

0:

禁止中断

1

ET0

定时器0中断允许

2

EX1

外部INT1中断允许

3

ET1

定时器1中断允许

4

ES

串口中断允许

5

ET2

定时器2中断允许

6

保留位

7

EA

总中断允许

0:

禁止所有的中断

各中断源可以有不同的优先级别,优先级别由中断优先级寄存器IP确定,见表2-7:

表2-7中断优先级寄存器IP

名称

功能

用法

0

PX0

外部INT0中断优先级

 

1:

中断优先

1

PT0

定时器0中断优先级

2

PX1

外部INT1中断优先级

3

PT1

定时器1中断优先级

4

PS

串口中断优先级

5

PT2

定时器2中断优先级

中断产生后即转入相应的中断服务子程序处理中断。

各中断服务子程序的入口地址如表2-8所列:

表2-8中断服

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

当前位置:首页 > 医药卫生

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

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