文档库 最新最全的文档下载
当前位置:文档库 › (最新版)基于单片机的数字秒表毕业设计论文

(最新版)基于单片机的数字秒表毕业设计论文

2011届学士学位论文

基于单片机的数字秒表设计

学院、专业物理与电子信息学院

电子信息工程

研究方向单板微型计算机

学生姓名

学号

指导教师姓名

指导教师职称

I

2011年4月29日

基于单片机的数字秒表设计

摘要单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计内容为以AT89C51单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和PCB板制作三部分来设计。21世纪,单片机的发展非常的迅速。单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多种接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。本设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器计数器定时和记数的原理,结合显示电路、LED数码管以及独立键盘来设计秒表,将软、硬件有机地结合起来。

本设计的软件系统是用C语言编写的.包括一个定时器中断,4个独立键盘及软件消抖等。最后做成一个具有开始、暂停、复位、清零功能的数字秒表,在现实生活中应用广泛。

关键字单片机;数字电子秒表;仿真;定时器;ATC89C51

目录

1 引言 (1)

1.1 单片机的背景 (1)

1.2 单片机的应用 (2)

2 整体设计方案 (4)

2.1 单片机的基本结构 (4)

2.2 单片机的选择 (9)

3.秒表的硬件设计 (12)

3.1 LED显示电路 (12)

3.2 键盘控制电路 (15)

3.3 译码器的使用 (16)

3.4 单片机晶振和复位电路 (17)

4 秒表的软件设计 (19)

4.1 C程序整体设计思路 (19)

4.2 主程序设计 (20)

4.3 中断设计 (21)

5 软件调试和结果 (26)

5.1软件调试与烧写 (26)

5.2 硬件仿真 (27)

结论 (30)

参考文献 (31)

附录 (31)

致谢 (38)

1 引言

1.1 单片机的背景

1.第一阶段():单片机的控索阶段。以Intel公司的MCS–48为代表。MCS–48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 等,都取得了满意的效果。这就是SCM的诞生年代,“单机片”一词即由此而来。

2.第二阶段()单片机的完善阶段。Intel公司在MCS–48基础上推出了完善的、典型的单片机系列MCS–51。它在以下几个方面奠定了典型的通用总线型单片机体系结构:

1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有很多机通信功能的串行通信接口。

2)CPU外围功能单元的集中管理模式。

3)体现工控特性的位地址空间及位操作方式。

4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。

3.第三阶段():8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS–96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS–51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道AD转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。

4.第四阶段(1990—):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位16位32位通用型单片机,以及小型廉价的专用型单片机。

1.2 单片机的应用

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹,单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。

1.在智能仪器仪表上的应用。

单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。

2.在工业控制中的应用

用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

3.在家用电器中的应用

可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。

4.在计算机网络和通信领域中的应用

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本

上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。

2设计方案论证

2.1 设计要求:

1)秒表显示值为00-99秒。

2)两位数码管显示。

3)拥有开始和复位。

2.2 方案论证:方案1:可以用分立元件来做,成本高、反而来的复杂些。

方案2:可以用单片机来做,只要一块心片编写程序就可以,利用单片机来的简单。

为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些,但显示只有2位,且系统没有其他复杂的处理任务,所以决定采用静态扫描法实现LED的显示。单片机用AT89C51系列。硬件系统的总体构成框架如图2.1所示。

3 系统硬件设计方案

3.1 AT89C51芯片结构

AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位

微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL

高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示

主电源引脚GND和VCC

①GND接地

②VCC正常操作时为+5伏电源

外接晶振引脚XTAL1和XTAL2

①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。

②XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。

图1.2 8051单片机引脚图

控制或与其它电源复用引脚RSTVPD,ALE,和Vpp

①RSTVPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。

②ALE正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的16)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(功能)

③外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,在每个机器周期内两次有效。同样可以驱动八LSTTL输入。

④Vpp、Vpp为内部程序存储器和外部程序存储器选择端。当Vpp为高电平时,访

问内部程序存储器,当Vpp为低电平时,则访问外部程序存储器。对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。

输入输出引脚P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。

①P0口(P0.0 - P0.7)是一个8位漏极开路型双向IO口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。

②P1口(P1.0 - P1.7)是一个带有内部提升电阻的8位准双向IO口。能驱动(吸收或输出电流)四个LSTTL负载。

③P2口(P2.0 - P2.7)是一个带有内部提升电阻的8位准双向IO口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LSTTL负载。

④P3口(P3.0 - P3.7)是一个带有内部提升电阻的8位准双向IO口。能驱动(吸收或输出电流)四个LSTTL负载。

④P3口也可作为AT89C51的一些特殊功能口,如下表所示:

口管脚备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INT0(外部中断0)

P3.3 INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 WR(外部数据存储器写选通)

P3.7 RD(外部数据存储器读选通)

3.2 LED显示电路

单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。这里我们采用的是发光二管LED。

发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。

如图3所示,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

1.共阳数码管

共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。

2.共阴数码管

共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

本次设计中,采用的是共阳极数码管。将共阳极数码管一端接VCC,一端接在单片机上,通过操纵单片机的高低电平,去控制数码管。

LED显示器工作方式有两种:静态显示方式和动态显示方式。

1.静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的IO端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用IO端口多,如驱动5个数码管静态显示则需要5×8=40根IO端口来驱动,要知道一个89C51单片机可用的IO端口才32个呢,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。

如表1,为数码管显示的16进制代码。

表1 8段数码管显示数表

0x3f

0 0x06

1

0x5b

2

0x4f

3

0x66

4

0x6d 5 0x7d

6

0x07

7

0x7f

8

0x6f

9

0x77 A 0x7c

B

0x39

C

0x5e

D

0x79

E

0x71 F 0x00 无显示

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

3.3 键盘控制电路

1)键盘设置

KEY1是开始按键:按下,数码管运行数字

KEY2是停止按钮, 按下、数码管停止数字

KEY3是清零按钮,按下、数码管全部初始化

还有个复位按钮

当数码管运行数字的时候,不能直接按清零按钮,只能按停止按钮才能停止,在按清零按钮全部显示初始化0。

2)键盘输入分析

键盘输入部分由三个按键直接接单片机IO口,哪个键按下,对应的IO口由高电平变成底电平,经单片机读键处理后,由对应的执行IO口输出信号来控制整个系统的工作。

3.4 单片机晶振

对于单片机来说,想让单片机运行必须要有:电源、晶振和复位电路。如果没有这几个必备条件,单片机无法正常运行。

1.晶振

单片机系统里都有晶振。全称叫做晶体振荡器,如图4所示,他结合单片机内部电路产生所需的时钟频率,单片机晶振提供的时钟频率越高,哪儿单片机运行的速度就越快,单片机接的一切指令的执行都是建立在单片机晶振提供的时钟频率。

单片机晶振的作用是为系统提供基本的时钟信号,晶振通常和锁相环电路配合作用,以提供系统所需的时钟频率。

对于AT89C51来说,片内设有一个由反向放大器所构成的振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,AT89C51单片机的时钟信号通常用两

种电路形式得到:内部振荡方式与外部振荡方式。电容器C

1、C

2

起稳定振荡频

率、快速起振的作用,电容值一般为5~33pF。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。本设计中采用大小为30pF的电容和12MHz的晶振。

3.5复位电路

关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相

应的外部电路才能实现,如图5所示。

当AT89C51单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHz 的晶振,因此一个机器周期为1μs,那么复位脉冲宽度最小应为2μs。

本设计采用上电且开关复位电路,如图5所示上电后,由于电容充电,使RST 持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=10~30μF,R=10K,本设计采用的电容值为10μF的电容和电阻为10K的电阻。

3.6芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计

数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3.7 系统总电路的设计

系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图附录B所示。

AT89C51单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。

AT89C51单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。

复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。

按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键分别接单片机的P1.1- P1.3,均设为低电平有效。而另外的开始键、清零键和暂停键连接到单片机的P1.1、P1.2和P1.3,设置为位低电平有效。

显示电路由两位数码管组成,采用静态显示方式,因此有8位段控制端和VCC,八位段控制接P0口和P2口,P0.0~P0.7和P2.0~P2.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,AT89C51的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。当P0.0~P0.7和P2.0~P2.7端口任意一个端口为低电平时,与其相对应的三极管就导通,对应的数码管导通显示。

通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。

4 秒表的软件设计

4.1 C程序整体设计思路

一个程序应该包括两方面的内容。一个是对数据的描述,一个是对操作的描述。对数据的描述是指在程序中要指定数据的类型和数据的组织形式,即数据结构;对操作的描述即操作步骤,也就是算法。数据是操作的对象,操作的目的是对数据进行加工处理,已得到期望的结果。

一个程序除了以上两个主要要素之外,还应当采用结构化程序设计方法进行程序设计,并且某一种计算机语言表示,在设计一个程序的时候要综合运用这几方面的知识。对于一个算法应该包括以下特点:

1.有穷性

一个算法应包含有限的操作步骤,而不能是无限的。当然,比如一个程序让计算机计算1000年也是不合理的,不能当做是有效地算法。究竟什么是有限合理的,并没有严格标准,由人们的常识和需要而定。

2.确定性

算法中的每一个步骤都应当是确定的,而不应该是含糊、模棱两可的。不能出现有歧义的语句。

3.有零个或多个输入

所谓输入是指在执行算法的时候需要从外界取得必要的信息。一个算法也可以没有输入。

4.有一个或多个输出

算法的目的是为了求解,求解就是解出。但算法的输出不一定就是计算机的打印输出,一个算法得到的结构就是算法的输出。没有输出的算法是没有意义的。

5.有效性

算法的每一个步骤都应当能够有效地执行,并且得到确定结果的。

简单介绍下计算机语言。计算机的发展规律是离硬件越来越远,离人类的自然语言越来越近。计算机语言的发展是:机器语言,汇编语言,高级语言,第四代语言,和自然语言。

对于机器语言,只能识别二进制。而二进制就是0和1,0和1代表的是开关。比如1代表关闭,0代表打开。那么每一台进算计的开关都不一样,也就是硬件都不一样,所以机器语言没有移植性。

对于汇编语言,就是把机器语言用助记符来代替。比如,机器语言,如果是个8位的,,都很难记。更别说16位的了。那么用助记符来代替他们,会容易些。比如用add,表示加,那么不用记那么长的数了。其他的两者并没有什么太大的区别。也没有移植性。

对于高级语言,比如说C语言,他具有很强的可移植性。因为他有专门的编译器。可以把C语言编译成机器语言。所以对于高级语言,只有在编译的时候才去操作硬件。

第四代语言,就是面向问题的语言了。就是指需要告诉电脑需要怎么做,不需要告诉电脑应该怎么做,离硬件更远了。

第五代语言,就是自然语言。自然语言顾名思义,就是我们人类说得语言。这也是最高级的语言。

我们在这个设计中,采用的就是C语言。

4.2 主程序设计

在本软件设计中,用到了2个数码管,3个独立键盘,一个定时器中断,还

相关文档
相关文档 最新文档