毕业设计(论文)基于单片机的数字秒表设计.doc

上传人:laozhun 文档编号:4149752 上传时间:2023-04-07 格式:DOC 页数:27 大小:330KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的数字秒表设计.doc_第1页
第1页 / 共27页
毕业设计(论文)基于单片机的数字秒表设计.doc_第2页
第2页 / 共27页
毕业设计(论文)基于单片机的数字秒表设计.doc_第3页
第3页 / 共27页
毕业设计(论文)基于单片机的数字秒表设计.doc_第4页
第4页 / 共27页
毕业设计(论文)基于单片机的数字秒表设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的数字秒表设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的数字秒表设计.doc(27页珍藏版)》请在三一办公上搜索。

1、 2011届学士学位论文 基于单片机的数字秒表设计学院 、 专业 物理与电子信息学院 电子信息工程 研 究 方 向 单板微型计算机 学 生 姓 名 学 号 20071342139 指导教师姓名 指导教师职称 2011年4月29日基于单片机的数字秒表设计摘要 单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计内容为以AT89C51单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和PCB板制作三部分来设计。21世纪,单片机的发展非常的迅速。单片机是把主要计算机功能部件都集成在一块芯片

2、上的微型计算机。它是一种集计数和多种接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。本设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及独立键盘来设计秒表,将软、硬件有机地结合起来。本设计的软件系统是用C语言编写的.包括一个定时器中断,4个独立键盘及软件消抖等。最后做成一个具有开始、暂停、复位、清零功能的数字秒表,在现实生活中应用广泛。关键字 单片机;数字电子秒表;仿真;定时器;ATC89C51目 录1 引言11.1 单片机的背景11.2 单片机的应用22

3、整体设计方案42.1 单片机的基本结构42.2 单片机的选择93.秒表的硬件设计123.1 LED显示电路123.2 键盘控制电路153.3 译码器的使用163.4 单片机晶振和复位电路174 秒表的软件设计194.1 C程序整体设计思路194.2 主程序设计204.3 中断设计215 软件调试和结果265.1软件调试与烧写265.2 硬件仿真27结 论30参考文献31附 录31致 谢381 引言1.1 单片机的背景1.第一阶段(1976-1978):单片机的控索阶段。以Intel公司的MCS48为代表。MCS48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 等,都取得了满

4、意的效果。这就是SCM的诞生年代,“单机片”一词即由此而来。2.第二阶段(1978-1982)单片机的完善阶段。Intel公司在MCS48基础上推出了完善的、典型的单片机系列MCS51。它在以下几个方面奠定了典型的通用总线型单片机体系结构:1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有很多机通信功能的串行通信接口。2)CPU外围功能单元的集中管理模式。3)体现工控特性的位地址空间及位操作方式。4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。3.第三阶段(1982-1990):8位单片机的巩固发展及16位单片机的推

5、出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。4.第四阶段(1990):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。1.2 单片机的应用目前单片

6、机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹,单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。1在智能仪器仪表上的应用。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2在工业控制中的应用用单片机可以构成形式多样的控制系统、数

7、据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。此外

8、,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。2设计方案论证2.1 设计要求:1)秒表显示值为00-99秒。2)两位数码管显示。3)拥有开始和复位。2.2 方案论证:方案1:可以用分立元件来做,成本高、反而来的复杂些。方案2:可以用单片机来做,只要一块心片编写程序就可以,利用单片机来的简单。为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些,但显示只有2位,且系统没有其他复杂的处理任务,所以决定采用静态扫描法实现LED的显示。单片机用AT89C51系列。硬件系统的总体构成框架如图2.1所示。AT89C51

9、 P0单片机控制器P2 P0ppp23 系统硬件设计方案3.1 AT89C51芯片结构AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C5

10、1是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示主电源引脚GND和VCC GND接地 VCC正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2 XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。图1.2 8051单片机引脚图控制或与其它电源复用引脚RST/VPD,ALE/,和/Vpp RST/VPD 当振荡器运行时,在此引脚上出现两个机器周

11、期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。 ALE/正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(功能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,在每个机器周期内两次有效。同样可以驱动八LSTTL输入。 /Vpp、/Vpp为内部程序存储器和外部程序存储器选择端。当/

12、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位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。 P1口(P1.0 - P1.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载。 P2口(P2.0 -

13、 P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LSTTL负载。 P3口(P3.0 - P3.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个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(外部

14、数据存储器读选通)3.2 LED显示电路单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(58、88点阵等)。这里我们采用的是发光二管LED。发光二极管简称为LED。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。如图

15、3所示,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。1共阳数码管共阳极数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。2共阴数码管共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。本次设计中,采用的是共阳极数码管。将共阳极数码管一端接VCC,

16、一端接在单片机上,通过操纵单片机的高低电平,去控制数码管。LED显示器工作方式有两种:静态显示方式和动态显示方式。1静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89C51单片机可用的I/O端口才32个呢,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保

17、持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。如表1,为数码管显示的16进制代码。表1 8段数码管显示数表0x3f00x06 10x5b 20x4f 30x66 40x6d 50x7d 60x07 70x7f 80x6f 90x77 A0x7c B0x39 C0x5e D0x79 E0x71 F0x00无显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位

18、数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。3.3 键盘控制电路1) 键盘设置KEY1是开始按键:按下,数码管运行数字KEY2是停止按钮, 按下、数码管停止数字KEY3是清零按钮,按下、数码管全部初始化还有个复位按钮当数码管运行数字的时候,不能直接按清零按钮,只能按停止按钮才能停止,在按清零按钮全部显示初始化0。2) 键盘输入分析键盘输入部分由三个按键直接接单片机I/O口,哪个键按下,对应的I/O口由高电平变成底电平,经单片机读键处理后,由对应的执行I/O口输出信号来控制整个系统的工作。3.4 单片机晶振对于单片机来说,想让单片机运行必须

19、要有:电源、晶振和复位电路。如果没有这几个必备条件,单片机无法正常运行。1. 晶振单片机系统里都有晶振。全称叫做晶体振荡器,如图4所示,他结合单片机内部电路产生所需的时钟频率,单片机晶振提供的时钟频率越高,哪儿单片机运行的速度就越快,单片机接的一切指令的执行都是建立在单片机晶振提供的时钟频率。单片机晶振的作用是为系统提供基本的时钟信号,晶振通常和锁相环电路配合作用,以提供系统所需的时钟频率。对于AT89C51来说,片内设有一个由反向放大器所构成的振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,AT89C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。电容

20、器C1、C2起稳定振荡频率、快速起振的作用,电容值一般为533pF。但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。本设计中采用大小为30pF的电容和12MHz的晶振。3.5复位电路关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现,如图5所示。当AT89C51

21、单片机的复位引脚RST出现2个机器周期以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而本系统选用的是12MHz的晶振,因此一个机器周期为1s,那么复位脉冲宽度最小应为2s。本设计采用上电且开关复位电路,如图5所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=1030F,R=10K,本设计采用的电容值为10F的电容和电阻为10K的电阻。3.6芯片擦除整个PEROM阵列和三个锁定位的电擦除可

22、通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器, 计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.7 系统总电路的设计系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路图附录B所示。

23、AT89C51单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。AT89C51单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键分别接单片机的P1.1- P1.3,均设为低电平有效。而另外的开始键、清零键和暂停键连接到单片机的P1.1、P1.2和P1.3,设置为

24、位低电平有效。显示电路由两位数码管组成,采用静态显示方式,因此有8位段控制端和VCC,八位段控制接P0口和P2口,P0.0P0.7和P2.0P2.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,AT89C51的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。当P0.0P0.7和P2.0P2.7端口任意一个端口为低电平时,与其相对应的三极管就导通,对应的数码管导通显示。通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。4 秒表的软件设

25、计4.1 C程序整体设计思路一个程序应该包括两方面的内容。一个是对数据的描述,一个是对操作的描述。对数据的描述是指在程序中要指定数据的类型和数据的组织形式,即数据结构;对操作的描述即操作步骤,也就是算法。数据是操作的对象,操作的目的是对数据进行加工处理,已得到期望的结果。一个程序除了以上两个主要要素之外,还应当采用结构化程序设计方法进行程序设计,并且某一种计算机语言表示,在设计一个程序的时候要综合运用这几方面的知识。对于一个算法应该包括以下特点:1.有穷性一个算法应包含有限的操作步骤,而不能是无限的。当然,比如一个程序让计算机计算1000年也是不合理的,不能当做是有效地算法。究竟什么是有限合理

26、的,并没有严格标准,由人们的常识和需要而定。2确定性算法中的每一个步骤都应当是确定的,而不应该是含糊、模棱两可的。不能出现有歧义的语句。3有零个或多个输入所谓输入是指在执行算法的时候需要从外界取得必要的信息。一个算法也可以没有输入。4有一个或多个输出算法的目的是为了求解,求解就是解出。但算法的输出不一定就是计算机的打印输出,一个算法得到的结构就是算法的输出。没有输出的算法是没有意义的。5有效性算法的每一个步骤都应当能够有效地执行,并且得到确定结果的。简单介绍下计算机语言。计算机的发展规律是离硬件越来越远,离人类的自然语言越来越近。计算机语言的发展是:机器语言,汇编语言,高级语言,第四代语言,和

27、自然语言。对于机器语言,只能识别二进制。而二进制就是0和1,0和1代表的是开关。比如1代表关闭,0代表打开。那么每一台进算计的开关都不一样,也就是硬件都不一样,所以机器语言没有移植性。对于汇编语言,就是把机器语言用助记符来代替。比如,机器语言,如果是个8位的,11001010,都很难记。更别说16位的了。那么用助记符来代替他们,会容易些。比如用add,表示加,那么不用记那么长的数了。其他的两者并没有什么太大的区别。也没有移植性。对于高级语言,比如说C语言,他具有很强的可移植性。因为他有专门的编译器。可以把C语言编译成机器语言。所以对于高级语言,只有在编译的时候才去操作硬件。第四代语言,就是面向

28、问题的语言了。就是指需要告诉电脑需要怎么做,不需要告诉电脑应该怎么做,离硬件更远了。第五代语言,就是自然语言。自然语言顾名思义,就是我们人类说得语言。这也是最高级的语言。我们在这个设计中,采用的就是C语言。4.2 主程序设计在本软件设计中,用到了2个数码管,3个独立键盘,一个定时器中断,还有一些复位电路等等。对于本程序设计的结果;首先,当硬件上电后在数码管上显示了2个零,最右边的一位数码管为秒位,。程序定义的3个独立键盘,第一个是启动秒表,按下去后,经过软件判断,秒表开始启动。第二个按键是停止按键,按下后,秒表停止,此刻显示的时间就是停止的时候的时间。第三个按键是清零按键,按下后,秒表显示的数

29、为零。最后一个按键是复位按键,按下后,时间归零,再按下第一个按键可以从新开始计时。以上是程序的大概要求。那么对于程序设计思路是:首先,开始,运行程序,接着进入主函数。第一步就是对程序的初始化了,对刚开始的数码管显示以及定时器的打开,定时器的高八位和第八位的复制,定时器的启动等进行初始化。完成了这个工作后,进入一个无限大循环,在该循环里,就是本程序的主要部分了。因为我是同时亮2个数码管,就采用的是静态显示;因为有一个定时器中断,则必然有一个中断程序,由于采用的是T0定时器,所以优先级别是1.在主程序中,主要部分就是对按键的判别,因为有3个按键,所以要判别3次。对第一个按键,首先判定按键有没有按下

30、,如果按下,什么也不做,直接判断有没有松开按键,一旦松开后,则立刻启动定时器,此刻定时器开始运行。对于第二个按键,还是首先判断有没有按下,一旦按下,立刻停止定时器,同时对16位定时计数器的高八位和第八位再赋值一次,和以前的赋值是一样的。此刻,数码管上的数字不再改变,秒表停止。对于第三个按键,还是首先判断有没有按下,一旦按下,数码管显示的值清零。接着是最后一个按键,还是判断有没有按下按键,一旦按下,对数码管运行的数全部清零,清零后,数码管再次显示4个零。如果此时再按下第一个按键,秒表从新开始运行,以此类推如图6所示。开始赋初值判断key0是否按下判断key1是否按下判断key2是否按下判断key

31、3是否按下显示数码管开启定时器关闭定时器数码管复位存储此刻的数值是是是是否否否否图6 程序流程图 4.3 中断设计中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序。 中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。对于51单片机内部一共有5个中断源,也就是说,有5中情况发生的时候,会使单片机去处理中断程序。而对于52

32、单片机,多了一个T2定时器中断。对于单片机来讲,中断是指CPU在处理某一件事情A时候,突然发生了另外一件事B,请求CPU迅速去处理;CPU暂时停止当前的工作,转而去处理事件B;待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A。引起CPU中断的根源,称为中断源,如表3所示,该过程就叫做中断系统。中断的开启和关闭,设置启用那一个中断等都是由单片机内部的一些特殊功能寄存器决定的。同时,与中断有关的还有一个中断嵌套:单片机在处理事件A,此刻有了一个中断B,程序接着执行B,这个时候,又有了一个中断C,那么如果该C中断优先级高于B中断的话,可以先去执行C中断,执行完后再返回B,接着把

33、B执行完,然后再返回A程序,继续执行以下内容。对于51单片机可以实现2级中断嵌套,对于52单片机可以实现4级中断嵌套。表3 单片机中断源中断源中断标志中断服务程序入口优先级顺序外部中断0IE00003H0 定时/计数器TF0000BH 1外部中断1IE10013H2定时/计数器1TF1001BH3串行口EI或TI0023H4如表3就是关于中断的优先级。这里介绍5个中断源。最高的为外部中断0,这个是P3.2口的第二功能引脚,低电平或者下降沿有效;其次为定时/计数器0,此为P3.4口得第二功能引脚有T0计数器计数满回零引起;第三位是外部中断1,此为P3.3口的第二功能引脚,低电平或者下降沿有效;第

34、四是定时/计数器1,此为P3.5口得第二功能引脚,有T1计数器计满回零引起。TI/RI串行口中断,串行口完成一系字符发送/接收后引起。对于AT89C52来说,还多了一个T2定时/计数器2中断,是由T2计数器计满回零引起。对于单片机的中断来说,有4个寄存器至关重要,分别是中断允许寄存器IE;中断优先级寄存器IP;定时/计数器工作方式寄存器TMOD;定时/计数器控制寄存器TCON。1.IE该IE中断允许存器,用来设定各个中断源的打开和关闭,IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8HAFH,该寄存器可以进行位寻址,可以对该寄存器的每一位进行单独操作,如表4所示。表4

35、 IE寄存器位序号D7D6D5D4D3D2D1D0位符号EA-ET2ESET1EX1ET0EX0位地址AFH-ADHACHABHAAHA9HA8H1)对于EA,是全局中断允许位。所有中断的开启都和此位有关。如果该位为低电平,那么所有的中断都不能用,没有开启。除非该位为高电平,开启总中断,其他中断才有可能开启。具体情况要根据具体的程序。2) 对于ET2是定时器/计数器0中断允许位。当EA打开时,如果ET2为高电平,则开启定时/计数器0,如果ET2为低电平,则关闭定时/计数器。3)对于ES,是串口中断允许位。当EA打开后,如果ES为高电平,那么串口中断打开,如果ES为低电平,那么串口中断关闭。4)

36、对于ET1,是定时器/计数器1中断允许位。当EA打开后,如果ET1为高电平,则开启定时/计数器1中断,如果ET1为0, 则关闭该位。5)对于EX1,是外部中断1中断允许位。在EA开启后,如果EX1为高电平,则开启外部中断1,如果EX1为低电平,则关闭外部中断。6)对于ET0是定时器/计数器0中断允许位。当EA打开时,如果ET0为高电平,则开启定时/计数器0,如果ET0为低电平,则关闭定时/计数器。7)对于EX0是外部中断0允许位。当EA打开时,如果EX0为低电平,则开启外部中断0,如果EX0为低电平,则关闭定时/计数器。2.IP对于中断优先级寄存器IP是在特殊功能寄存器中,字节是B8H,位地址

37、从B8H到BFH,IP用来设定各个中断源属于二级中断中的哪一级。该寄存器可进行位寻址,既可以对该位寄存器的每一位进行单独操作,如表5所示。1)PS为串行口中断优先级控制位。如果串行口中断定义为高电平则为高优先级中断,若定义为低电平则为低优先级中断。2)PT1为定时器/计数器1中断优先级控制位。如果PT1为高电平则其为高优先级中断,若为低电平则为低优先级中断。3)PX1为外部中断1中断优先级控制位。若PX1为高电平则为高优先级控制位,若为低电平则为低优先级控制位。4)PT0为定时器/计数器1中断优先级控制位。如果PT0为高电平则其为高优先级中断,若为低电平则为低优先级中断。5)PX0为外部中断1

38、中断优先级控制位。若PX0为高电平则为高优先级控制位,若为低电平则为低优先级控制位。表5 IP寄存器位序号D7D6D5D4D3D2D1D0位符号-PSPT1PS1PT0PS0位地址-BCHBBHBAHB9HB8H3.TMODTMOD为定时器/计数器的工作方式寄存器,确定工作方式和功能。定时器/计数器工作方式寄存器在特殊功能寄存器中,字节地址为89H,不能位寻址,MOD用来确定定时器的工作方式及功能选择。由表6可以看出,TMOD的高四位用于设置定时器1,第四位用于设置定时器0,下面直说下后四位。表6 TMOD寄存器TMOD位D7D6D5D4D3D2D1D0字节地址GATEC/M1M0GATEC/

39、M1M01)GATE为门控制位。当GATE为0时,定时器/计数器启动与停止仅受TCON寄存器中的TRX来控制。如果GATE为高电平,则其启动与停止由TCON寄存器中的TRX何外部中断引脚共同控制位。2)C/为定时器模式和计数器模式的选择位。如果为高电平,则为计数器模式,如果为低电平则为定时器模式。3)MIM0为工作方式选择位。当M1=0且M0=0的时候,为方式0,是13位定时/计数器;当M1=0且M0=1的时候,为方式1,是16位的定时/计数器。M1=1且M0=0的时候,为方式2,是8位初值自动重装的8位定时器/计数器;当M1=1且M0=1的时候,为方式3,是仅适用于T0,分成两个8位计数器,

40、T1停止计数。4.TCONTCON为定时/计数器控制寄存器,也在特殊功能寄存器中,字节地址为88H,位地址分别是从88H到8FH,该寄存器可以进行位寻址。TCON寄存器用来控制定时器的启动、停止、标志定时器的溢出和中断情况,如表7所示。表7 TCON寄存器TCON位76543210字节地址TF1TR1TF0TR0IE1IT1IE0IT0 1)TF1为定时器1溢出标志位。当定时器1计满溢出时,由硬件使TF1置1,并申请中断。进入中断服务程序后,由硬件自动清零。 2) TR1为定时器1运行控制位。由软件清0关闭定时器1.当GATE为1时,且INT1为高电平时,TR1置1启动定时器1;当GATE=0

41、时,TR1置1启动定时器。3)TF0为定时器1溢出标志位。当定时器0计满溢出时,由硬件使TF0置1,并申请中断。进入中断服务程序后,由硬件自动清零。4)TR0为定时器0运行控制位。由软件清0关闭定时器1.当GATE为1时,且INT0为高电平时,TR0置1启动定时器1;当GATE=0时,TR0置1启动定时器。5)IE1外部中断1请求标志。6)IT1为外部中断1触发方式选择位。如果为高电平,则是电平触发方式,引脚INT1上低电平有效。如果为低电平,则为跳变沿触发方式。7)IE0外部中断0请求标志。8)IT0为外部中断1触发方式选择位。如果为高电平,则是电平触发方式,引脚INT0上低电平有效。如果为

42、低电平,则为跳变沿触发方式。5 软件调试和结果根据方案设计的要求,调试过程共分三大部分:硬件调试、软件调试和软硬件联调。电路按模块调试,各模块逐个调试通过之后再联调。单片机软件先在仿真器上调试,确保工作正常之后,再与硬件系统联调。5.1 硬件调试 在硬件调试时,先检查电路板及焊接的质量情况,在检查无误后,通电检查LED显示器的点亮状况。亮度不理想,可调整P0口的排阻大小,一般情况下,取1K电阻即可获得满意的亮度效果,在第一块板子的错误,就是数码管管脚接错了,在试板子的时候发现小数点亮了,但是g段没有亮,经过自己查找和用万用表检查每段数码管的管脚,发现没有问题,而是PCB连线的时候数码管连倒了,

43、这个问题小,可是烧入程序到芯片中,按键一个都没有反应,直到最后原来是原理图,复位电路是错的,纠正之后,第二块板子的时候,所有的功能都出来了。5.2 软件调试 在软件调试时,用编译软件进行程序的编写。程序检查无误后,把程序烧到AT89C51芯片里。弄到硬件上进行调试。看有没有达到预期的设计要求,如果没有达到,进行进一步的修改。有就最好不过了,证明软件方面已经成功。 5.3 软硬件联调软硬接连上后,用软件仿真来调试。一个一个对AT89C51的端口输出电压后,看各口连的显示电路等的变化。只到毕设题目要求的功能能完成。遇到不同时分析软硬件,在一个一个的调试,结合后改好。从发现问题到分析问题,最后得出解

44、决方法,实现我们的目的。5.4 性能分析按照设计程序分析,LED显示器静态扫描的频率为167HZ实际使用观察时完全没有闪烁。由于计时中断程序中加了中断延时误差处理,所以实际计时的走时精度很高,可满足多种场合的应用需要。我制作的是一个秒表,在体育方面很实用,几乎都有。硬件做起来很简单,做的也很快。它的主要一些要求与功能:显示两位、最大计时值为99秒,具有正确的计时、暂停、清零功能。 结 论单片机可以应用于各个领域,而单片机本身也是融合了各个领域的知识。我们可以通过单片机去实现很多的电子产品,因为它的应用领域非常的广泛,所以发展很迅速。本次设计,先通过KEIL软件对软件进行编辑、调试、编译,通过此

45、次长达数天的编辑,对单片机C语言编写应用的更加熟练;然后通过STC-ISP软件学习如果在单片机种下载程序代码;通过proteus软件,对数字秒表的硬件进行仿真。本次设计时以单片机为中心进行设计,但是仅仅有单片机的知识还不够,同时还需要具有硬件的知识和软件的知识,并将它们有机的结合起来。首先要通过硬件知识去设计整个电路,然后通过C语言去写数字秒表的C语言设计。同时,由于STC89C52单片机的ROM只有8KB,所以还要注意内存的应用;还要注意如何设计硬件和软件,去增加运行速度和计数精度。本次设计的数字秒表结构简单,但是在设计原理和设计步骤上仍具有参考价值。参考文献1阎石.数字电子技术基础M.北京:高等教

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号