智能定时器毕业设计

毕 业 设 计 (论 文)

课题名称: 基于51单片机的智能定时控制器系统设计

指导教师:

系 别:专 业: 应用电子技术

班 级: 10电子(2)班

姓 名:

毕业设计(论文)任务书

课题名称 基于51单片机的智能定时控制器系统设计

课题性质 工程应用

专 业 应用电子技术 班级 10电子(2)班

指导教师 教研室主任 系部主任

发放日期

一、 课题条件:

随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,各种各样的电子产品也正在日新月异地向着高精尖技术发展。数字电子时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

二、 毕业论文(设计)主要内容:

1、 时间显示:用4位数码管显示当前小时和分钟,秒功能用两LED 灯代替(每秒闪烁一次)。

2、 可手动设定时间。

3、 开机流程:系统有红色和蓝色指示灯,上电10S 内,每秒红色指示灯闪烁一次,并伴有蜂鸣声,作为开机/重启提醒,此时绿色指示灯灭。10S 后红色指示灯灭,若光线较强则绿色指示灯亮,若光线较弱则绿色指示灯亮度减半进入节能模式。

3、 具有整点报时功能(四短一长),可自行设定报时时间段;

三、 计划进度:

1. 资料的收集撰写开题报告 6月20日至9月8日

2. 方案设计 9月9日至9月15日

3. 电路的设计指标分析与确定;后期的电路优化元器件的选择与参数确定9月16日至11月2日

4. 毕业设计论文的修改、完善 11月3日至11月10日

5. 毕业设计答辩11月15 日至11月20日

四、 主要参考文献:

a) 康光华主编. 电子技术基础. 北京:高等教育出版社,1999.6

b) b) 何宏主编. 单片机原理与接口技术. 北京:国防工业出版社.2006.07

c) c) 杨西明, 朱骐主编. 单片机编程与应用入门. 北京:机械工业出版社.2004.06

d) d) 先锋工作室编著. 单片机程序设计实例. 北京:清华大学出版社.2003.01

指导教师 (系)教研室主任

年 月 日 年 月 日

摘 要

本次设计以AT89C51芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟,它由5V 直流电源供电。在硬件方面,除了CPU 外,使用四个七段LED 数码管来进行显示,LED 采用的是动态扫描显示。通过LED 能够比较准确显示时、分。三个简单的按键实现对时间的调整。软件方面采用汇编语言编程。整个电子钟系统能完成时间的显示,调时,定时闹钟,报警等功能。

本设计是以ATMEL 公司的AT89C51单片机芯片为系统核心的智能定时控制器设计,论文具体描述了设计的系统硬件和软件的具体实现过程。智能定时控制器在硬件、软件设计上均采用模块化的方法,使得在设计 和调试方面取得很大的方便。论文重点阐述了数字钟硬件中MCU 模块、按键模块、显示模块等相关模块的模块化设计及制作;软件同样采用模块化的设计,包括中断模块、时间调整模块等设计,并采用简单流通性强的C 语言编写实现。本设计实现 了年、月、日及时、分、秒的显示和时间修改的功能。通过对比实际的智能定时控制器,查找出误差的来源,确定调整误差的方法,尽可能的减少误差,使得系统可以达到实际智能定时控制器的允许误差范围内,取得了设计的预期效果。

关键词:AT89C51 数码管 模块化 数字钟

目 录

摘 要 . .......................................................................................................................................... 4

1概 述............................................................................................................................................ 6

2设计方案 ........................................................................................................................................ 6

2.1. 要求功能………………………………………………………………………………..6

2.2. 单片机芯片……………………………………………………………………………..7

2.3显示模块………………………………………………………………………………...7

2.4时钟芯片的选择………………………………………………………………………...7

2.5电路设计方案确定……………………………………………………………………...8 3单片机内部结构概述…………………………………………………………………………………………8

3.1AT89C51单片机………………………………………………………………………….8

3.2单片机的定时/中断系统………………………………………………………………10

3.3显示系统………………………………………………………………………………..12

4硬件电路设计………………………………………………………………………………………………..12

4.1硬件系统设计的概述…………………………………………………………………..12

4.2报警电路………………………………………………………………………………..13

4.3按键电路………………………………………………………………………………..14

4.4电源设计……………………………………………………………………………......15

4.5单片机最小系统………………………………………………………………………..16

4.5.1单片机的复位电路 ....................................................................................................16

4.5.2单片机系统的晶振电路 .............................................................................................17

4.6主电路设计……………………………………………………………………………..18

5 主程序和中断程序设计 . .................................................... 19

5.1主程序…………………………………………………………………………………..19

5.2中断程序………………………………………………………………………………..21

6系统调试 .......................................................................................................................................22

6.1软件调试概述…………………………………………………………………………..22

6.2软件调试………………………………………………………………………………..22

结 论 . .........................................................................................................................................24

致 谢 . .........................................................................................................................................25

参 考 文 献 . .................................................................................................................................26

1概 述

随着产业结构的不断调整、生产工艺的飞速发展、人们生活水平的不断提高及家用电器的逐渐普及, 市场对定时控制系统的需求越来越大. 如, 定时自动报警、定时自动打铃、定时开关烘箱、定时通断动力设备以及各种电气的定时启动等都属于定时控制系统[ 1] . 定时控制系统的实现方法很多, 本文主要介绍以80C51 系列单片机中的AT89C51 为核心的智能定时控制系统的设计实现方式. 80C51 系列单片机进入市场时间早, 总线开放, 仿真开发设备多, 芯片及其开发价格低廉、速度较快、电磁兼容性较好. 本文所述智能时钟控制系统主要包括时钟显示、时间校正、闹铃设置及各种设备定时开关机( 可扩展功能) 等功能. 实时日历和时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89S52单片机,LED 显示电路,以及调时按键电路等组成,系统通过LED 显示数据,所以具有人性化的操作和直观的显示效果。软件方面主要包括时钟程序、键盘程序,显示程序等。

本系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,以便更简单地实现调整时间及日期显示功能。所有程序编写完成后,在keil2软件中进行调试,确定没有问题后,在Proteus 软件中嵌入单片机内进行仿真在日新月异的21世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU 控制器或者是单品具有便携实用,操作简单的特点。

2设计方案

2.1. 要求功能

1、 时间显示:用4位数码管显示当前小时和分钟,秒功能用两LED 灯代替(每秒闪烁一次)。

2、 可手动设定时间。

3、 开机流程:系统有红色和蓝色指示灯,上电10S 内,每秒红色指示灯闪烁一次,并伴有蜂鸣声,作为开机/重启提醒,此时绿色指示灯灭。10S 后红色指示灯灭,若光线较强则绿色指示灯亮,若光线较弱则绿色指示灯亮度减半进入节能模式。

4、具有整点报时功能(四短一长),可自行设定报时时间段;

2.2. 单片机芯片

方案一:

采用89C51芯片作为硬件核心,采用Flash ROM ,内部具有4KB ROM 存储空间, 能于3V 的超低压工作, 而且与MCS-51系列单片机完全兼容, 但是运用于电路设计中时由于不具备ISP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:

采用AT89c51, 片内ROM 全都采用Flash ROM ;能以3V 的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S52作为主控制系统.

2.3显示模块

方案一:

采用LED 液晶显示屏, 液晶显示屏的显示功能强大, 可显示大量文字, 图形, 显示多样, 清晰可见, 但是价格昂贵, 需要的接口线多, 所以在此设计中不采用LED 液晶显示屏。

方案二:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合, 如采用在显示数字显得太浪费, 且价格也相对较高, 所以也不用此种作为显示。

方案三:

采用LED 数码管动态扫描,LED 数码管价格适中, 对于显示数字最合适, 而且采用动态扫描法与单片机连接时, 占用的单片机口线少。

所以采用了LED 数码管作为显示。

2.4时钟芯片的选择

方案一:采用实时时钟芯片

直接采用单片机定时计数器提供秒信号,使用程序实现、时、分、秒计数。采用此种方案虽然减少

芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。

方案二:软件控制:

利用AT89s51内部定时进行中断,配合软件延时实现时、分、秒的计时,该方案节约成本,且能综合运用知识

2.5电路设计方案确定

综上各方案所述, 对此次作品的方案选定: 以单片机AT89C51为主控制器,采用单片机内部定时、行列式键盘和动态LED 显示

3单片机内部结构概述

3.1AT89C51单片机

AT89C51是一种低功耗、性存储器技术制造, 8k字节Flash ,256字节RAM ,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

80C51:40个引脚双排直插DIP 封装, 大致可分为3类:电源及时钟、控制和I/O引脚。

图3.1 89C51单片机引脚图

图3.2 单片机片内结构图: 由如下功能部件组成:

对图3.2中的片内各部件做简单介绍。

1.CPU (微处理器)

2. 数据存储器(RAM ) 片内为128个字节(52子系列的为256个字节)

3. 程序存储器(ROM/EPROM) 89C51/89C52/89C55:4K/8K/20K 字节闪存。

4. 4个并行可编程的8位I/O口 P1口、P2口、P3口、P0口

5. 串行口1个全双工的异步串行口,具有四种工作方式。

6. 定时器/计数器

7. 中断系统

8. 特殊功能寄存器(SFR )共有21个,是一个具有特殊功能的RAM 区。CPU 对各种功能部件的控制是采用特殊功能寄存器(SFR ,Special Function Register)的集中控制方式。

图3.3 89C51单片机功能结构

3.2单片机的定时/中断系统

51内部集成定时/计数器的基本特征:

❑ 51系列单片机内部提供2个16位的递增定时/计数器T0和T1。 可以设置为定时或者计数器工作。 有多种可选的工作模式,通过SFR-TMOD 选择使用。 对应两个中断源,可用中断处理。 主要作用: 对外部脉冲计数、产生精确定时时间、作串行口的波特率发生器。

图3.5 T0、T1的结构

TMOD 寄存器的M1,M0位设置四种工作方式

模式0:13位定时/计数器 计数寄存器:THx 和TLx 低5位 最大计数值:213: 模式1:16位定时/计数器 计数寄存器:THx 和TLx 最大计数值:216 模式2: 8位自动重载定时/计数器 计数寄存器:TLX

计数初值重载寄存器:THX 最大计数值28 模式3:仅T0可用,将T0拆为两个独立8位定时器 80C51的中断源 外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI 或TI ) 触发方式设置及中断标志

外部中断标志IE1、IE0(用IEx 表示)

电平方式(ITX=0),INTx 引脚低电平时IEx=1,响应中断后IEx 不自动清0(INTx 引脚状态)。 边沿方式(ITx=1),INTx 引脚负跳变时IEx=1,响应中断后IEx 自动清0。

同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:

3.3显示系统

LED 显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。控制相应的管导通,就能显示出对应字符。各段LED 显示器需要由驱动电路驱动。在七段LED 显示器中,通常将各段发光二极管的阴极或阳极连在一起作为公共端。将各段发光二极管连在一起的叫共阳极显示器,用低电平驱动;将阴极连在一起的叫共阴极显示器,用高电平驱动。

静态显示就是每一个显示器各笔画段都要独占具有一个锁存功能的输出口线,CPU 把要显示的字形代码送到输出口上,就可以使显示器上显示所需的数字或符号,此后,即使CPU 不在去访问它,因为各笔画段借口具有锁存功能,显示的内容也不会消失。

动态显示是指显示器显示某一字符时,相应段的发光二极管恒定地导通或截止。静态显示有并行输出和串行输出两种方式。在本系统中数码管使用共阴极接法而且是用动态显示。本设计利用一个4位七段数码管显示时钟结果。

4硬件电路设计

4.1硬件系统设计的概述

本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V 超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM

的实时时钟电路,它可以对年、月、日、周日、

时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V ~5.5V 。采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302内部有一个31*8的用于临时性存放数据的RAM 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由15个数码管,74Hs138、74ls244构成。使用动态扫描显示方式对数字的显示。硬件的结构和可靠性直接影响着整个系统的可靠性,所以合理的安排电路能提高电子产品的性能。

整体电路设计框图

图4.1电路设计框图

框图介绍了智能定时控制器系统设计的主要组成部分,系统主要分成核心芯片A T89C51单片机、电源模块、时钟模块、报警模块、复位电路模块、键盘输入模块以及LED 数码管显示模块等七大模块,很好的实现了智能定时控制器的一些主要功能。

本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V 超低压工作。采用内部时钟的驱动方式来驱动AT89C51单片机工作,内部复位的方式使系统的外围电路更加简单,减少了硬件的损耗,利用俩个不同颜色的发光二极管来表示秒钟,其他的显示电路部分由一个4位7段数码管构成,使用动态扫描显示方式对数字的显示,整个系统具有使用寿命长,精度高和低功耗等特点,实现了智能定时控制器的一些主要功能:

4.2报警电路

蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO 引脚输出的电流较小,单片机输出的TTL 电平基本上驱动不了蜂鸣器,

因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图4.6:

图4.2 蜂鸣器驱动电路

如图3.6所示,蜂鸣器的正极接到VCC (+5V )电源上面,蜂鸣器的负极接到三极管的发射极E ,三极管的基级B 经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平则可以控制蜂鸣器的声音大小,这些我们都可以通过实验来显示报警器电路模块。

4.3按键电路

按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应 的I/O端口形一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定。 这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动的持续时间长 短与开关的机械特性有关,一般在5—10ms 之间。为了避免CPU 多次处理按键的一 次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单 个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。

图4.3 按键电路

4.4电源设计

在这里因设计分工和侧重点不同,电源模块用通用的5v 变压器。

从图上看220V 交流电经过一个变压器进行降压,变压器后面由四个二极管组成一个桥式全波整流电路,整流后就得到一个电压波动很大的直流电,所以在这里接一个330u/F的电解电容。

变压器输出端的9V 电压经过桥式整流并电容滤波,在电容C1两端大约会有11V 多一点的电压,如果电容两端直接接负载,当负载变化或者交流电波动时会使C1两端的电压变化很大,为得到一个比较稳定的电压因此在此处接一个三端稳压器元件。

三端稳压器是一个集成电路元件,内部有三极管和电阻构成当负载电流大时内部电阻变小,当负载电流小时内部电阻变大,这样能保持稳压器的输出电压保持基本不变,

本设计要+5V电压,因此选用LM7805,LM7805最大可以输出1A 的电流,内部有限流式短路保护,可以很稳定的进行电流输出

图4.4 电源电路

4.5单片机最小系统 4.5.1单片机的复位电路

图4.5.1 手动复位电路

二、复位电路的工作原理

在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2US 就可以实现,那这个过程是如何实现的呢?

在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。 开机的时候为什么为复位

在电路图中,电容的的大小是10uF ,电阻的大小是10k 。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V ,所以充电到0.7倍即为3.5V ),需要的时间是10K*10UF=0.1S。 也就是说在电脑启动的0.1S 内,电容两端的电压时在0~3.5V增加。这个时候10K 电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S 内,RST 引脚所接收到的电压是5V~1.5V。在5V 正常工作的51单片机中小于1.5V 的电压信号为低电平信号,而大于1.5V 的电压信号为高电平信号。所以在开机0.1S 内,单片机系统自动复位(RST 引脚接收到的高电平信号时间为0.1S 左右)。 按键按下的时候为什么会复位

在单片机启动0.1S 后,电容C 两端的电压持续充电为5V ,这是时候10K 电阻两端的电压接近于0V ,RST 处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电

压在0.1S 内,从5V 释放到变为了1.5V ,甚至更小。根据串联电路电压为各处之和,这个时候10K 电阻两端的电压为3.5V ,甚至更大,所以RST 引脚又接收到高电平。单片机系统自动复位。

在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。如图4-2所示。这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST 端就会出现一定时间的高电平信号,从而使单片机实现复位。

4.5.2单片机系统的晶振电路

单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部都有一个时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。图4-3就是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外界振荡源,本设计就采用这种外接晶振的方法。电路中的两个电容的作用有两个:一是帮助振荡器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是对振荡器的频率起到微调的作用(C1 C2的值大,频率略有减少,反之,频率略有提高)。C1 C2的值采用30pF 。

图4.5.2 单片机内部晶振电路连接图

内部时钟原理图 (就是一个自激振荡电路)

在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF ,晶振的频率取值在1.2MHz ~12MHz 之间。对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz 即可。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S ,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU 就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。

2. 指令时序

我们将单片机的基本操作周期称作机器周期,一个机器周期由6个状态组成,每个状态由两个时相P1和P2构成,故一个机器周期可依次表示为S1P1,S1P2,…,S6P1,S6P2,即一个机器共有12个振荡脉冲。为了大家便于分析CPU 的时序,在此先对以下几个概念作一介绍。

(1)振荡周期 振荡周期指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。 (2)时钟周期 时钟周期又称作状态周期或状态时间S ,它是振荡周期的两倍,它分为P1节拍和P2节拍,通常在P1节拍完成算术逻辑操作,在P2节拍完成内部寄存器之间的传送操作。

(3)机器周期 一个机器周期由6个状态组成,如果把一条指令的执行过程分作几个基本操作,则将完成一个基本操作所需的时间称作机器周期。单片机的单周期指令执行时间就为一个机器周期。

(4)指令周期 指令周期即执行一条指令所占用的全部时间,通常为1~4个机器周期。 在图2.12中给出了MCS -51单片机的典型取指、执行时序。由图可知,在每个机器周期内,地址锁存信号ALE 两次有效,一次在S1P2与S2P1之间,另一次在S4P2和S5P1之间。

从图2.12我们可以看出,对于单周期指令,当操作码被送入指令寄存器后,指令的执行从S1P2开始。若对于双字节单周期指令,则在同一机器周期的S4期间读入第二个字节。如果是单字节单周期指令,则在S4期间仍然保持读操作,但所进行的读操作为无效操作,同时程序计数器PC 并不加1。在图2.12(a )和(b )给出了单字节单周期和双字节单周期指令的时序,这些操作都在S6P2结束时完成指令操作。在图2.12(c )中给出了单字节双周期指令时序,在两个机器周期内进行了四次读操作,由于是单字节指令,故后面的三次读操作是无效的。 在图2.12(d )中给出了访问外部数据存储器指令MOVX 的时序,它是一条单字节双周期指令。在执行MOVX 指令期间,外部数据存储器被访问且选通时跳过两次取指操作,其中在第一个机器周期S5开始送出片外数据存储器的地址后,进行读、写数据,在此期间并无ALE 信号,故第二周期不产生取指操作。

4.6主电路设计

系统设计如下图:单片机的P0口作为6位LED 数码管显示的位选口,其中P0.0~P0.5分别对应相应的端口,P1作为位选口,由于采用共阴极数码管,因此P0口输出低电平选中相应的位,而P1口输出高电平选中相应的段。

图4.6主电路图

5 主程序和中断程序设计

5.1主程序

主程序主要有main ()组成通过对相关子程序的调用,实现对时间的设置与修改、LCD 等主要功能。相关的调整是靠对功能键的判断来实现的。我们用流程框图来表示,如下图

显示

图5.1 主程序框图

void main() //主函数 {

TMOD|=0X11;

TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;

shi=12;fen=59;miao=0;green=0;beep=0; //十分秒的初始值 handle_1(shi); handle_2(fen);

display_1(); //显示时钟初始值 display_2(); //显示分钟初始值 while(1) {

scan_key(); //调用按键扫描函数 time_1(); //调用时钟函数 handle_1(shi); //对小时拆分 handle_2(fen); //对分钟拆分 display_1(); //显示小时 display_2(); //显示分钟 }

5.2中断程序

//函数名:clock

//函数功能:定时器T0定时中断,interrupt 1 //形式参数:无 //返回值:无

void clock() interrupt 1 {

EA=0; //关中断 if(msec1!=0x28)

msec1++; //到10毫秒否,不到则msec1加1 else { msec1=0;

if(msec2!=100)msec2++; //到1秒否,不到则msec2加1

else

{if(rtimbit==1)count++; msec2=0; if(clockbuf[2]!=59)

clockbuf[2]++; //到1分否,不到则clockbuf[2]加1 else

{ clockbuf[2]=0; if(clockbuf[1]!=59)

clockbuf[1]++; // 到1小时否,不到则clockbuf[1]加1 else

{ clockbuf[1]=0; if(clockbuf[0]!=23)

clockbuf[0]++; // 到24时否,不到则clockbuf[0]加1 else clockbuf[0]=0; }

} } }

EA=1; //开中断}

6系统调试

6.1软件调试概述

单片机系统经过总体设计,完成了硬件和软件设计开发。通过软件和硬件相结合系统即可运行。但编制好的程序或焊接好的线路不能按预计的那样正常工作是常见的事,经常会出现一些硬件、软件上的错误,这是软件和硬件开发者经常遇见的,这就需要通过调试来发现错误并加以改正。调试可分为硬件调试和软件调试。本设计系统的已经在PC 机上用模拟开发软件进行了检测和调试,并运行成功,最后进行实物图的硬件组装与调试,这样就给开发者在提供了方便。

6.2软件调试

本设计是在Proteus 软件和Keil2软件相结合调试的,完全用仿真软件在PC 机上对目标电路原理图和程序进行检测和调试。调试过程中单片机相应输入端由通用键盘和鼠标设定,运行状态、各寄存器状态、端口状态等都可以在指定的窗口区域显示出来,以确定程序运行有无错误。

目标程序纠错:该阶段工作通常在目标程序编辑时就完成。一般来说,仿真软件能为用户输入的程序指令纠错,包括书写格式、标号未定义或多重定义、转移地址溢出等错误。

整体程序调试:即把各子程序整体连起来进入到综合电路调试,看是否能实现预计的功能显示。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,数据缓冲单元是否发生冲突,标志位的建立和清除在设计上是否失误,堆栈是否溢出,输入输出状态是否正常等。

图6.2 定时器调试的结果

图6.2 定时器调试的结果

硬件系统关系到所要设计的电子产品好怀,如系统抗干扰性等,所以要合理的安排尽量减少干扰提高性能。单片机是很容易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机减少对其干扰,防止程序乱飞现象。同时还可以采用隔离等方式减少干扰,硬件系统设计的好坏很大部分来源于经验,所以我们要有动手的好习惯。

软件设计是核心部分,具有多样化,灵活性高,易移植等优点,要深深理会各指令的含义才能更加熟练应用,中断的合理利用可以减少CPU 利用资源,具有执行效率高等优点,本设计用到定时器中断以减少对CPU 的占用,更好的处理其他功能。软件的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更改和移植。

不知不觉,十二周的毕业设计结束了。我的毕业论文已整理完毕,电路调试进展良好。毕业设计的完成意味着我的大学学习生活即将结束,从此我将进入一个新的人生旅途、开始一段崭新的生活——工作。在此,我衷心地感谢所有在我做毕业设计期间帮助过我的人。

首先我要感谢XX 老师、XX 老师XX 老师的大力帮助和支持。在整个设计过程当中,为我的毕业设计带来了很大方便。同时在我完成毕业设计的过程中提供了很多指导性的意见,使我受益匪浅。在此,我衷心感谢老师们给予我的帮助和教育。

此外,还要衷心感谢其他所有对本课题的研究和论文撰写有过帮助的同学。

最后,我要感谢我的母校——XXXXXXX ,在校期间,这里给我留下了美好的回忆。特别是在我即将踏上工作岗位的同时,毕业设计整个过程给了我这样一个锻炼的机会,使我加深了对以前知识的理解和巩固,拓宽了知识面,也提高了我对所学知识的综合应用能力。祝愿母校的将来更美好!

参 考 文 献

[1]王静霞主编 单片机应用技术(C 语言版) 北京电子工业出版社 2012.5 [2]胡辉. 主编 单片机应用系统设计与训练 北京中国水利水电出版社 2004.9. [3]丁亚涛主编C 语言程序设计 高等教育出版社 2006.8

[4]王幸之主编 AT89系列单片机原理与接口技术 高等教育出版社 2004.7 [5]王迎旭主编单片机原理与应用 北京机械工业出版社 2004.3 [6]何宏主编单片机原理与接口技术 北京国防工业出版社 2006.7 [7]李光 单片机基础. 北京:北京航空航天大学出版社,1994 [8]廖常初. 现场总线概述. 电工技术,1999.

[9]倪晓军. 单片机原理与接口技术教程. 北京:清华大学出版社,2009 [10]姚年春 向华Protel99SE 基础教程. 北京. 人民名邮电出版社,2009

[11]韩颖; Proteus 在单片机技术实训中的应用[J];中国科教创新导刊;2008年31期 [12]周灵彬PROTEUS 的单片机教学与应用仿真[J].单片机与嵌入式系统应用。 [13]爱问资料共享网。

毕 业 设 计 (论 文)

课题名称: 基于51单片机的智能定时控制器系统设计

指导教师:

系 别:专 业: 应用电子技术

班 级: 10电子(2)班

姓 名:

毕业设计(论文)任务书

课题名称 基于51单片机的智能定时控制器系统设计

课题性质 工程应用

专 业 应用电子技术 班级 10电子(2)班

指导教师 教研室主任 系部主任

发放日期

一、 课题条件:

随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,各种各样的电子产品也正在日新月异地向着高精尖技术发展。数字电子时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

二、 毕业论文(设计)主要内容:

1、 时间显示:用4位数码管显示当前小时和分钟,秒功能用两LED 灯代替(每秒闪烁一次)。

2、 可手动设定时间。

3、 开机流程:系统有红色和蓝色指示灯,上电10S 内,每秒红色指示灯闪烁一次,并伴有蜂鸣声,作为开机/重启提醒,此时绿色指示灯灭。10S 后红色指示灯灭,若光线较强则绿色指示灯亮,若光线较弱则绿色指示灯亮度减半进入节能模式。

3、 具有整点报时功能(四短一长),可自行设定报时时间段;

三、 计划进度:

1. 资料的收集撰写开题报告 6月20日至9月8日

2. 方案设计 9月9日至9月15日

3. 电路的设计指标分析与确定;后期的电路优化元器件的选择与参数确定9月16日至11月2日

4. 毕业设计论文的修改、完善 11月3日至11月10日

5. 毕业设计答辩11月15 日至11月20日

四、 主要参考文献:

a) 康光华主编. 电子技术基础. 北京:高等教育出版社,1999.6

b) b) 何宏主编. 单片机原理与接口技术. 北京:国防工业出版社.2006.07

c) c) 杨西明, 朱骐主编. 单片机编程与应用入门. 北京:机械工业出版社.2004.06

d) d) 先锋工作室编著. 单片机程序设计实例. 北京:清华大学出版社.2003.01

指导教师 (系)教研室主任

年 月 日 年 月 日

摘 要

本次设计以AT89C51芯片为核心,辅以必要的外围电路,设计了一个简易的电子时钟,它由5V 直流电源供电。在硬件方面,除了CPU 外,使用四个七段LED 数码管来进行显示,LED 采用的是动态扫描显示。通过LED 能够比较准确显示时、分。三个简单的按键实现对时间的调整。软件方面采用汇编语言编程。整个电子钟系统能完成时间的显示,调时,定时闹钟,报警等功能。

本设计是以ATMEL 公司的AT89C51单片机芯片为系统核心的智能定时控制器设计,论文具体描述了设计的系统硬件和软件的具体实现过程。智能定时控制器在硬件、软件设计上均采用模块化的方法,使得在设计 和调试方面取得很大的方便。论文重点阐述了数字钟硬件中MCU 模块、按键模块、显示模块等相关模块的模块化设计及制作;软件同样采用模块化的设计,包括中断模块、时间调整模块等设计,并采用简单流通性强的C 语言编写实现。本设计实现 了年、月、日及时、分、秒的显示和时间修改的功能。通过对比实际的智能定时控制器,查找出误差的来源,确定调整误差的方法,尽可能的减少误差,使得系统可以达到实际智能定时控制器的允许误差范围内,取得了设计的预期效果。

关键词:AT89C51 数码管 模块化 数字钟

目 录

摘 要 . .......................................................................................................................................... 4

1概 述............................................................................................................................................ 6

2设计方案 ........................................................................................................................................ 6

2.1. 要求功能………………………………………………………………………………..6

2.2. 单片机芯片……………………………………………………………………………..7

2.3显示模块………………………………………………………………………………...7

2.4时钟芯片的选择………………………………………………………………………...7

2.5电路设计方案确定……………………………………………………………………...8 3单片机内部结构概述…………………………………………………………………………………………8

3.1AT89C51单片机………………………………………………………………………….8

3.2单片机的定时/中断系统………………………………………………………………10

3.3显示系统………………………………………………………………………………..12

4硬件电路设计………………………………………………………………………………………………..12

4.1硬件系统设计的概述…………………………………………………………………..12

4.2报警电路………………………………………………………………………………..13

4.3按键电路………………………………………………………………………………..14

4.4电源设计……………………………………………………………………………......15

4.5单片机最小系统………………………………………………………………………..16

4.5.1单片机的复位电路 ....................................................................................................16

4.5.2单片机系统的晶振电路 .............................................................................................17

4.6主电路设计……………………………………………………………………………..18

5 主程序和中断程序设计 . .................................................... 19

5.1主程序…………………………………………………………………………………..19

5.2中断程序………………………………………………………………………………..21

6系统调试 .......................................................................................................................................22

6.1软件调试概述…………………………………………………………………………..22

6.2软件调试………………………………………………………………………………..22

结 论 . .........................................................................................................................................24

致 谢 . .........................................................................................................................................25

参 考 文 献 . .................................................................................................................................26

1概 述

随着产业结构的不断调整、生产工艺的飞速发展、人们生活水平的不断提高及家用电器的逐渐普及, 市场对定时控制系统的需求越来越大. 如, 定时自动报警、定时自动打铃、定时开关烘箱、定时通断动力设备以及各种电气的定时启动等都属于定时控制系统[ 1] . 定时控制系统的实现方法很多, 本文主要介绍以80C51 系列单片机中的AT89C51 为核心的智能定时控制系统的设计实现方式. 80C51 系列单片机进入市场时间早, 总线开放, 仿真开发设备多, 芯片及其开发价格低廉、速度较快、电磁兼容性较好. 本文所述智能时钟控制系统主要包括时钟显示、时间校正、闹铃设置及各种设备定时开关机( 可扩展功能) 等功能. 实时日历和时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89S52单片机,LED 显示电路,以及调时按键电路等组成,系统通过LED 显示数据,所以具有人性化的操作和直观的显示效果。软件方面主要包括时钟程序、键盘程序,显示程序等。

本系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,以便更简单地实现调整时间及日期显示功能。所有程序编写完成后,在keil2软件中进行调试,确定没有问题后,在Proteus 软件中嵌入单片机内进行仿真在日新月异的21世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU 控制器或者是单品具有便携实用,操作简单的特点。

2设计方案

2.1. 要求功能

1、 时间显示:用4位数码管显示当前小时和分钟,秒功能用两LED 灯代替(每秒闪烁一次)。

2、 可手动设定时间。

3、 开机流程:系统有红色和蓝色指示灯,上电10S 内,每秒红色指示灯闪烁一次,并伴有蜂鸣声,作为开机/重启提醒,此时绿色指示灯灭。10S 后红色指示灯灭,若光线较强则绿色指示灯亮,若光线较弱则绿色指示灯亮度减半进入节能模式。

4、具有整点报时功能(四短一长),可自行设定报时时间段;

2.2. 单片机芯片

方案一:

采用89C51芯片作为硬件核心,采用Flash ROM ,内部具有4KB ROM 存储空间, 能于3V 的超低压工作, 而且与MCS-51系列单片机完全兼容, 但是运用于电路设计中时由于不具备ISP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:

采用AT89c51, 片内ROM 全都采用Flash ROM ;能以3V 的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S52作为主控制系统.

2.3显示模块

方案一:

采用LED 液晶显示屏, 液晶显示屏的显示功能强大, 可显示大量文字, 图形, 显示多样, 清晰可见, 但是价格昂贵, 需要的接口线多, 所以在此设计中不采用LED 液晶显示屏。

方案二:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合, 如采用在显示数字显得太浪费, 且价格也相对较高, 所以也不用此种作为显示。

方案三:

采用LED 数码管动态扫描,LED 数码管价格适中, 对于显示数字最合适, 而且采用动态扫描法与单片机连接时, 占用的单片机口线少。

所以采用了LED 数码管作为显示。

2.4时钟芯片的选择

方案一:采用实时时钟芯片

直接采用单片机定时计数器提供秒信号,使用程序实现、时、分、秒计数。采用此种方案虽然减少

芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。

方案二:软件控制:

利用AT89s51内部定时进行中断,配合软件延时实现时、分、秒的计时,该方案节约成本,且能综合运用知识

2.5电路设计方案确定

综上各方案所述, 对此次作品的方案选定: 以单片机AT89C51为主控制器,采用单片机内部定时、行列式键盘和动态LED 显示

3单片机内部结构概述

3.1AT89C51单片机

AT89C51是一种低功耗、性存储器技术制造, 8k字节Flash ,256字节RAM ,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM 、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

80C51:40个引脚双排直插DIP 封装, 大致可分为3类:电源及时钟、控制和I/O引脚。

图3.1 89C51单片机引脚图

图3.2 单片机片内结构图: 由如下功能部件组成:

对图3.2中的片内各部件做简单介绍。

1.CPU (微处理器)

2. 数据存储器(RAM ) 片内为128个字节(52子系列的为256个字节)

3. 程序存储器(ROM/EPROM) 89C51/89C52/89C55:4K/8K/20K 字节闪存。

4. 4个并行可编程的8位I/O口 P1口、P2口、P3口、P0口

5. 串行口1个全双工的异步串行口,具有四种工作方式。

6. 定时器/计数器

7. 中断系统

8. 特殊功能寄存器(SFR )共有21个,是一个具有特殊功能的RAM 区。CPU 对各种功能部件的控制是采用特殊功能寄存器(SFR ,Special Function Register)的集中控制方式。

图3.3 89C51单片机功能结构

3.2单片机的定时/中断系统

51内部集成定时/计数器的基本特征:

❑ 51系列单片机内部提供2个16位的递增定时/计数器T0和T1。 可以设置为定时或者计数器工作。 有多种可选的工作模式,通过SFR-TMOD 选择使用。 对应两个中断源,可用中断处理。 主要作用: 对外部脉冲计数、产生精确定时时间、作串行口的波特率发生器。

图3.5 T0、T1的结构

TMOD 寄存器的M1,M0位设置四种工作方式

模式0:13位定时/计数器 计数寄存器:THx 和TLx 低5位 最大计数值:213: 模式1:16位定时/计数器 计数寄存器:THx 和TLx 最大计数值:216 模式2: 8位自动重载定时/计数器 计数寄存器:TLX

计数初值重载寄存器:THX 最大计数值28 模式3:仅T0可用,将T0拆为两个独立8位定时器 80C51的中断源 外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI 或TI ) 触发方式设置及中断标志

外部中断标志IE1、IE0(用IEx 表示)

电平方式(ITX=0),INTx 引脚低电平时IEx=1,响应中断后IEx 不自动清0(INTx 引脚状态)。 边沿方式(ITx=1),INTx 引脚负跳变时IEx=1,响应中断后IEx 自动清0。

同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:

3.3显示系统

LED 显示器由若干个发光二极管组成,当发光二极管导通时,相应的一个笔画或一个点就发光。控制相应的管导通,就能显示出对应字符。各段LED 显示器需要由驱动电路驱动。在七段LED 显示器中,通常将各段发光二极管的阴极或阳极连在一起作为公共端。将各段发光二极管连在一起的叫共阳极显示器,用低电平驱动;将阴极连在一起的叫共阴极显示器,用高电平驱动。

静态显示就是每一个显示器各笔画段都要独占具有一个锁存功能的输出口线,CPU 把要显示的字形代码送到输出口上,就可以使显示器上显示所需的数字或符号,此后,即使CPU 不在去访问它,因为各笔画段借口具有锁存功能,显示的内容也不会消失。

动态显示是指显示器显示某一字符时,相应段的发光二极管恒定地导通或截止。静态显示有并行输出和串行输出两种方式。在本系统中数码管使用共阴极接法而且是用动态显示。本设计利用一个4位七段数码管显示时钟结果。

4硬件电路设计

4.1硬件系统设计的概述

本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V 超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM

的实时时钟电路,它可以对年、月、日、周日、

时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V ~5.5V 。采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302内部有一个31*8的用于临时性存放数据的RAM 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由15个数码管,74Hs138、74ls244构成。使用动态扫描显示方式对数字的显示。硬件的结构和可靠性直接影响着整个系统的可靠性,所以合理的安排电路能提高电子产品的性能。

整体电路设计框图

图4.1电路设计框图

框图介绍了智能定时控制器系统设计的主要组成部分,系统主要分成核心芯片A T89C51单片机、电源模块、时钟模块、报警模块、复位电路模块、键盘输入模块以及LED 数码管显示模块等七大模块,很好的实现了智能定时控制器的一些主要功能。

本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V 超低压工作。采用内部时钟的驱动方式来驱动AT89C51单片机工作,内部复位的方式使系统的外围电路更加简单,减少了硬件的损耗,利用俩个不同颜色的发光二极管来表示秒钟,其他的显示电路部分由一个4位7段数码管构成,使用动态扫描显示方式对数字的显示,整个系统具有使用寿命长,精度高和低功耗等特点,实现了智能定时控制器的一些主要功能:

4.2报警电路

蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO 引脚输出的电流较小,单片机输出的TTL 电平基本上驱动不了蜂鸣器,

因此需要增加一个电流放大的电路。S51增强型单片机实验板通过一个三极管C8550来放大驱动蜂鸣器,原理图见下面图4.6:

图4.2 蜂鸣器驱动电路

如图3.6所示,蜂鸣器的正极接到VCC (+5V )电源上面,蜂鸣器的负极接到三极管的发射极E ,三极管的基级B 经过限流电阻R1后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机P3.7引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P3.7输出电平则可以控制蜂鸣器的声音大小,这些我们都可以通过实验来显示报警器电路模块。

4.3按键电路

按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应 的I/O端口形一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定。 这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动的持续时间长 短与开关的机械特性有关,一般在5—10ms 之间。为了避免CPU 多次处理按键的一 次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单 个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。

图4.3 按键电路

4.4电源设计

在这里因设计分工和侧重点不同,电源模块用通用的5v 变压器。

从图上看220V 交流电经过一个变压器进行降压,变压器后面由四个二极管组成一个桥式全波整流电路,整流后就得到一个电压波动很大的直流电,所以在这里接一个330u/F的电解电容。

变压器输出端的9V 电压经过桥式整流并电容滤波,在电容C1两端大约会有11V 多一点的电压,如果电容两端直接接负载,当负载变化或者交流电波动时会使C1两端的电压变化很大,为得到一个比较稳定的电压因此在此处接一个三端稳压器元件。

三端稳压器是一个集成电路元件,内部有三极管和电阻构成当负载电流大时内部电阻变小,当负载电流小时内部电阻变大,这样能保持稳压器的输出电压保持基本不变,

本设计要+5V电压,因此选用LM7805,LM7805最大可以输出1A 的电流,内部有限流式短路保护,可以很稳定的进行电流输出

图4.4 电源电路

4.5单片机最小系统 4.5.1单片机的复位电路

图4.5.1 手动复位电路

二、复位电路的工作原理

在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2US 就可以实现,那这个过程是如何实现的呢?

在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。 开机的时候为什么为复位

在电路图中,电容的的大小是10uF ,电阻的大小是10k 。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V ,所以充电到0.7倍即为3.5V ),需要的时间是10K*10UF=0.1S。 也就是说在电脑启动的0.1S 内,电容两端的电压时在0~3.5V增加。这个时候10K 电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S 内,RST 引脚所接收到的电压是5V~1.5V。在5V 正常工作的51单片机中小于1.5V 的电压信号为低电平信号,而大于1.5V 的电压信号为高电平信号。所以在开机0.1S 内,单片机系统自动复位(RST 引脚接收到的高电平信号时间为0.1S 左右)。 按键按下的时候为什么会复位

在单片机启动0.1S 后,电容C 两端的电压持续充电为5V ,这是时候10K 电阻两端的电压接近于0V ,RST 处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电

压在0.1S 内,从5V 释放到变为了1.5V ,甚至更小。根据串联电路电压为各处之和,这个时候10K 电阻两端的电压为3.5V ,甚至更大,所以RST 引脚又接收到高电平。单片机系统自动复位。

在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。如图4-2所示。这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST 端就会出现一定时间的高电平信号,从而使单片机实现复位。

4.5.2单片机系统的晶振电路

单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部都有一个时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。图4-3就是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外界振荡源,本设计就采用这种外接晶振的方法。电路中的两个电容的作用有两个:一是帮助振荡器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是对振荡器的频率起到微调的作用(C1 C2的值大,频率略有减少,反之,频率略有提高)。C1 C2的值采用30pF 。

图4.5.2 单片机内部晶振电路连接图

内部时钟原理图 (就是一个自激振荡电路)

在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF ,晶振的频率取值在1.2MHz ~12MHz 之间。对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz 即可。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S ,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU 就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。

2. 指令时序

我们将单片机的基本操作周期称作机器周期,一个机器周期由6个状态组成,每个状态由两个时相P1和P2构成,故一个机器周期可依次表示为S1P1,S1P2,…,S6P1,S6P2,即一个机器共有12个振荡脉冲。为了大家便于分析CPU 的时序,在此先对以下几个概念作一介绍。

(1)振荡周期 振荡周期指为单片机提供定时信号的振荡源的周期或外部输入时钟的周期。 (2)时钟周期 时钟周期又称作状态周期或状态时间S ,它是振荡周期的两倍,它分为P1节拍和P2节拍,通常在P1节拍完成算术逻辑操作,在P2节拍完成内部寄存器之间的传送操作。

(3)机器周期 一个机器周期由6个状态组成,如果把一条指令的执行过程分作几个基本操作,则将完成一个基本操作所需的时间称作机器周期。单片机的单周期指令执行时间就为一个机器周期。

(4)指令周期 指令周期即执行一条指令所占用的全部时间,通常为1~4个机器周期。 在图2.12中给出了MCS -51单片机的典型取指、执行时序。由图可知,在每个机器周期内,地址锁存信号ALE 两次有效,一次在S1P2与S2P1之间,另一次在S4P2和S5P1之间。

从图2.12我们可以看出,对于单周期指令,当操作码被送入指令寄存器后,指令的执行从S1P2开始。若对于双字节单周期指令,则在同一机器周期的S4期间读入第二个字节。如果是单字节单周期指令,则在S4期间仍然保持读操作,但所进行的读操作为无效操作,同时程序计数器PC 并不加1。在图2.12(a )和(b )给出了单字节单周期和双字节单周期指令的时序,这些操作都在S6P2结束时完成指令操作。在图2.12(c )中给出了单字节双周期指令时序,在两个机器周期内进行了四次读操作,由于是单字节指令,故后面的三次读操作是无效的。 在图2.12(d )中给出了访问外部数据存储器指令MOVX 的时序,它是一条单字节双周期指令。在执行MOVX 指令期间,外部数据存储器被访问且选通时跳过两次取指操作,其中在第一个机器周期S5开始送出片外数据存储器的地址后,进行读、写数据,在此期间并无ALE 信号,故第二周期不产生取指操作。

4.6主电路设计

系统设计如下图:单片机的P0口作为6位LED 数码管显示的位选口,其中P0.0~P0.5分别对应相应的端口,P1作为位选口,由于采用共阴极数码管,因此P0口输出低电平选中相应的位,而P1口输出高电平选中相应的段。

图4.6主电路图

5 主程序和中断程序设计

5.1主程序

主程序主要有main ()组成通过对相关子程序的调用,实现对时间的设置与修改、LCD 等主要功能。相关的调整是靠对功能键的判断来实现的。我们用流程框图来表示,如下图

显示

图5.1 主程序框图

void main() //主函数 {

TMOD|=0X11;

TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;

shi=12;fen=59;miao=0;green=0;beep=0; //十分秒的初始值 handle_1(shi); handle_2(fen);

display_1(); //显示时钟初始值 display_2(); //显示分钟初始值 while(1) {

scan_key(); //调用按键扫描函数 time_1(); //调用时钟函数 handle_1(shi); //对小时拆分 handle_2(fen); //对分钟拆分 display_1(); //显示小时 display_2(); //显示分钟 }

5.2中断程序

//函数名:clock

//函数功能:定时器T0定时中断,interrupt 1 //形式参数:无 //返回值:无

void clock() interrupt 1 {

EA=0; //关中断 if(msec1!=0x28)

msec1++; //到10毫秒否,不到则msec1加1 else { msec1=0;

if(msec2!=100)msec2++; //到1秒否,不到则msec2加1

else

{if(rtimbit==1)count++; msec2=0; if(clockbuf[2]!=59)

clockbuf[2]++; //到1分否,不到则clockbuf[2]加1 else

{ clockbuf[2]=0; if(clockbuf[1]!=59)

clockbuf[1]++; // 到1小时否,不到则clockbuf[1]加1 else

{ clockbuf[1]=0; if(clockbuf[0]!=23)

clockbuf[0]++; // 到24时否,不到则clockbuf[0]加1 else clockbuf[0]=0; }

} } }

EA=1; //开中断}

6系统调试

6.1软件调试概述

单片机系统经过总体设计,完成了硬件和软件设计开发。通过软件和硬件相结合系统即可运行。但编制好的程序或焊接好的线路不能按预计的那样正常工作是常见的事,经常会出现一些硬件、软件上的错误,这是软件和硬件开发者经常遇见的,这就需要通过调试来发现错误并加以改正。调试可分为硬件调试和软件调试。本设计系统的已经在PC 机上用模拟开发软件进行了检测和调试,并运行成功,最后进行实物图的硬件组装与调试,这样就给开发者在提供了方便。

6.2软件调试

本设计是在Proteus 软件和Keil2软件相结合调试的,完全用仿真软件在PC 机上对目标电路原理图和程序进行检测和调试。调试过程中单片机相应输入端由通用键盘和鼠标设定,运行状态、各寄存器状态、端口状态等都可以在指定的窗口区域显示出来,以确定程序运行有无错误。

目标程序纠错:该阶段工作通常在目标程序编辑时就完成。一般来说,仿真软件能为用户输入的程序指令纠错,包括书写格式、标号未定义或多重定义、转移地址溢出等错误。

整体程序调试:即把各子程序整体连起来进入到综合电路调试,看是否能实现预计的功能显示。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,数据缓冲单元是否发生冲突,标志位的建立和清除在设计上是否失误,堆栈是否溢出,输入输出状态是否正常等。

图6.2 定时器调试的结果

图6.2 定时器调试的结果

硬件系统关系到所要设计的电子产品好怀,如系统抗干扰性等,所以要合理的安排尽量减少干扰提高性能。单片机是很容易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机减少对其干扰,防止程序乱飞现象。同时还可以采用隔离等方式减少干扰,硬件系统设计的好坏很大部分来源于经验,所以我们要有动手的好习惯。

软件设计是核心部分,具有多样化,灵活性高,易移植等优点,要深深理会各指令的含义才能更加熟练应用,中断的合理利用可以减少CPU 利用资源,具有执行效率高等优点,本设计用到定时器中断以减少对CPU 的占用,更好的处理其他功能。软件的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更改和移植。

不知不觉,十二周的毕业设计结束了。我的毕业论文已整理完毕,电路调试进展良好。毕业设计的完成意味着我的大学学习生活即将结束,从此我将进入一个新的人生旅途、开始一段崭新的生活——工作。在此,我衷心地感谢所有在我做毕业设计期间帮助过我的人。

首先我要感谢XX 老师、XX 老师XX 老师的大力帮助和支持。在整个设计过程当中,为我的毕业设计带来了很大方便。同时在我完成毕业设计的过程中提供了很多指导性的意见,使我受益匪浅。在此,我衷心感谢老师们给予我的帮助和教育。

此外,还要衷心感谢其他所有对本课题的研究和论文撰写有过帮助的同学。

最后,我要感谢我的母校——XXXXXXX ,在校期间,这里给我留下了美好的回忆。特别是在我即将踏上工作岗位的同时,毕业设计整个过程给了我这样一个锻炼的机会,使我加深了对以前知识的理解和巩固,拓宽了知识面,也提高了我对所学知识的综合应用能力。祝愿母校的将来更美好!

参 考 文 献

[1]王静霞主编 单片机应用技术(C 语言版) 北京电子工业出版社 2012.5 [2]胡辉. 主编 单片机应用系统设计与训练 北京中国水利水电出版社 2004.9. [3]丁亚涛主编C 语言程序设计 高等教育出版社 2006.8

[4]王幸之主编 AT89系列单片机原理与接口技术 高等教育出版社 2004.7 [5]王迎旭主编单片机原理与应用 北京机械工业出版社 2004.3 [6]何宏主编单片机原理与接口技术 北京国防工业出版社 2006.7 [7]李光 单片机基础. 北京:北京航空航天大学出版社,1994 [8]廖常初. 现场总线概述. 电工技术,1999.

[9]倪晓军. 单片机原理与接口技术教程. 北京:清华大学出版社,2009 [10]姚年春 向华Protel99SE 基础教程. 北京. 人民名邮电出版社,2009

[11]韩颖; Proteus 在单片机技术实训中的应用[J];中国科教创新导刊;2008年31期 [12]周灵彬PROTEUS 的单片机教学与应用仿真[J].单片机与嵌入式系统应用。 [13]爱问资料共享网。


相关文章

  • 智能窗帘设计说明书
  • 安防智能电动窗帘 设计说明书 设计者: 指导老师: 地址: 单位:山东劳动职业技术学院 2015年9月21日 目录 一. 作品简介 ...................................................... ...查看


  • 智能的定时器设计
  • 目录 一.课程设计任务书-------------------1 二.智能定时器设计-----------------------1 1. 设计要点.............................................. ...查看


  • 基于单片机智能小车毕业设计(论文)
  • 毕 业 设 计(论 文) 设计(论文)题目: 学 院 名 称: 电子与信息工程学院 专 业: 电子与信息工程 班 级: 姓 名:学 号 指 导 教 师: 胡劲松 职 称 教授 定稿日期:2013 年 5 月 10 日 基于单片机的智能小车 ...查看


  • 智能循迹小车设计.调试报告
  • 2010年湖南省第三期中职教师资培训 -电子技术应用专业 专业方向选修模块 <智能寻迹小车设计与调试报告> 学 员: 杜正国.周伟.凌畅 小 组 号: 第四组 湖南省应用电子技术专业教师水平认证 岳阳职业技术学院培训基地 201 ...查看


  • 新手如何使用立体停车设备
  • 立体车库知识 自从立体车库进入我国市场,很多新手的司机都不喜欢这种停车方式,觉得太不方便,下面由泊鼎为大家总结了以下六个停车出入立体车库的建议,希望对每个因停车烦扰的司机们有所帮助.请看下文: 1.整个进库的过程,是一个缓慢的.不断调整车速 ...查看


  • 智能捕鼠器
  • 摘 要 当今社会,人们的生活水平和生活方式都在不断的提高,智能化已经在我们 生活中得到了实施.随着科学技术的进步和人们生活条件的友好改善,各种智能设备在人们的生活中不断出现,使人们的生活越来越方便和舒适.其中以单片机为核心实现的智能捕鼠器因 ...查看


  • 智能安防窗户控制系统 高博组
  • "居室眼睛"智能窗户控制系统 学院(部):专 业:班 级:指导老师:(毕业论文) 2014年1月 目 录 一. 概述 ................................................ 1 ...查看


  • 电工电子课程设计原版
  • 题目 声光控制节能开关 班级 10热工(2)班 学号 [1**********]8 姓名 龙腾 指导 徐老师 时间 2011年12月18日 景德镇陶瓷学院 电工电子技术课程设计任务书 姓名:龙腾 班级 :10热能与动力工程(2)班 指导老: ...查看


  • 智能变电站
  • 第一章 工程概况 1.1工程名称 天府新街35KV 变电站改建施工安装工程 1.2名词解释 1.2.1招标人:天府新街35KV 变电站改建工程指挥部 1.2.2招标代理人:李龙杰 1.2.3设计单位:李龙杰变电站设计中心 1.2.4监理单位 ...查看


  • 篮球计时器的设计
  • 基于STC12C5A60S2的篮球比赛计时器的设计 目录 第一章 绪论----------------..2 1.1设计选题的发展情况及背景-----------.2 1.2.设计的目的及意义--------------..3 1.3 单片 ...查看


热门内容