《毕业论文 毕业设计 单片机控制的多功能秒表系统.doc》由会员分享,可在线阅读,更多相关《毕业论文 毕业设计 单片机控制的多功能秒表系统.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 基于单片机的秒表的设计制作 毕业设计(论文)(2009届) 院 系:电气工程系 专 业:电子信息工程 学生姓名:罗伟 班 级:电信 S2009-1-25 学 号:200932081013 指导老师:刘云芳 职 称:高级教师 2011年6月摘 要 本次设计主要完成具备基本功能的由单片机控制的电子秒表的理论和实践设计,电子秒表是重要的计时工具,广泛与用于各个行业里面。作为一种测量工具,电子秒表跟其他一般的计时工具相比,有着便捷、准确、可比性高等优点。不仅可以提高精确度,而且还大大减轻了操作人员的负担,降低错误率。所以电子秒表常常用于体育竞技及各种其他要求有较精确时间的各领域中。其中开启、停止按键
2、的使用你方法与传统的机械计时器相同,即按一下开启键,启动计时器开始计时,按下停止键终止计时。而复位键可以再任何情况下使用,计时在计时过程中,只要按一下复位键,计时应立马停止,并将计时器清零。本设计是一个利用单片机控制的多功能秒表系统,它是基于51系列的单片机进行的系统设计。它采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合电源电路,晶振电路,复位电路,显示电路、LED数码管,以及一些按键电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现四位LED显示,最大显示时间为秒,每毫秒自动加1,一个开始暂停按键、一个复位按键。其突出的优点:体积小、场外作业、功耗最
3、低、宜用电池作为电源、硬件结构紧凑、简单和软件设计灵活.关键字电子秒表,单片机,定时中断 目 录第一章 绪论1第二章 任务分析与方案确定32.1 设计的目的:32.2 设计的主要内容:3第三章 秒表计数器的系统概述43.1 单片机的概述43.2 单片机的工作过程43.3 单片机的特点43.4 AT89C51单片机简介5第四章 硬件电路设计84.1 总体设计方案84.2 硬件电路设计8第五章 软件程序设计125.1 软件设计概述125.2 程序流程图12总结15参考文献15附1 源程序代码16附2 系统原理图18第一章 绪论近十几年来,单片机在生产过程控制、自动检测、数据采集与处理、科技计算、商
4、业管理和办公室自动化等方面获得了广泛的应用。单片机具有体积小、重量轻、耗能省、价格低、可靠性高和通用灵活等优点,因此也广泛应用于卫星定位、汽车火花控制、交通自动管理和微波炉等专用控制上。近几年来,单片机的发展更为迅速,它已渗透到诸多学科的领域,以及人们生活的各个方面。单片机规模不大,小而完全。厂家在一个芯片上制成了CPU和一定容量的程序存储器和数据存储器以及一定数量的输入/输出接口(Intel)。在一个大规模集成电路芯片上建立了完整的计算机结构,故称之为单片机。MCS-51系列中的一片89C52芯片,内部构造了完整的计算机硬件系统。从CPU、存储器到输入输出端口,一应俱全。只要写入程序,就可完
5、成中央控制或数据采集、处理及通信传输的信息处理,MCS-51单片机指令系统中为适应控制的需要设有极强的位处理功能,具有加、减、乘、除指令;CPU时钟高达12MHz,完成单字节乘法或除法运算仅需要4Ns;具有多机通信功能,可作为多机系统中的一个子系统。近年来,在国际上出现了Mechanics和Electronics复合成Mechtronics这个新词,我国译为“机电一体化”。这种机械和电子技术、信息技术紧密结合的新的学科领域是先进制造技术研究和普及的结果。机电一体化产品要实现电器控制的实时性、高可靠性、可编程和一定的人工智能。同时追求体积小、价格低,甚至低功耗等。正是针对上述种种要求而设计的单片
6、机自然成为机电一体化控制器的最佳选择。单片机出现的历史并不长,它的产生与发展和微处理器的产生与发展大体上同步,也经历了四个阶段:第一阶段:19711974年,4位微处理器Intel 4004及8位微处理器Intel 8008,这些计算机价格便宜、功能有限,只用于消耗类电子产品。 第二阶段:19741978年,初级单片机阶段,以Intel公司的MCS-48为代表,8位单片机。 第三阶段:19781983年,高性能单片机阶段。以Intel公司的MCS-51, Motorola公司的6801和Zilog公司的Z8等为代表。这一阶段推出的单片机普遍带有串行口,有多级中断处理系统、16位定时器/计数器,
7、有的片内还带有A/D转换器接口,片内RAM, ROM容量加大,寻址范围可达64K字节。广泛应用于工业控制、外部设备控制、宏观控制、局部网络及家用计算机中。第四阶段:1983年至今,8位单片机巩固发展及16位单片机推出阶段。例如Mostek公司的MK6800、Intel公司的MCS-96等。MCS-96集成度为12万只品体管/片,寻址范围64K字节、5个8位并行口、一个全双工串行口、4个16位定时器、8通道10位A/D转换器等,另外MCS-96指令能处理位、字节、字,有16位乘16位乘法、32位除16位除法指令,一块单片计算机的功能可以和一台多片系统机相媲美。单片机己经进入一个崭新的阶段。同时随
8、着微电子技术的不断发展,数控系统也在不断地更新换代,先后经历了电子管(1952年)、晶体管(1959年)、小规模集成电路(1965年)、大规模集成电路及小型计算机(1970年)和微处理机或微型计算机(1974年)等五代数控系统。前三代数控系统是属于采用专用控制计算机的硬接线(硬线)数控系统,一般称为普通数控系统,简称NC。70年代初,随着计算机技术的发展,使小型计算机的价格急剧下降,采用小型计算机代替专用控制计算机的第四代数控系统,不仅在经济上更为合算,而且许多功能可用编制的专用程序来实现,将它存储在小型计算机的存储器中,构成所谓控制软件,提高了系统的可靠性和功能特色。这种数控系统又称为软接线
9、(软线)数控,即计算机数控系统,简称CNC。1974年制成以微处理机为核心的数控系统,称为第五代微型机数控系统,简称MNC。单片机控制系统的电子秒表,自动化程度高、成本低、体积小、控制精确等优点,有很好的经济效益和广阔的发展前景。单片机控制系统的研制成功,是电子秒表发展中的一次较大的进步,它表明了目前正在使用的许多控制系统完全可以由单片机控制系统所代替。第二章 任务分析与方案确定2.1 设计的目的:1、通过本次设计加深单片机课程的全面复习和掌握,对单片机应用能有进一步的了解。2、掌握秒表计数器的定时、外部中断设置及编辑原理。3通过此次课程设计能够将单片机软硬件结合起来,通过绘制PCB原理图以及
10、编程来达到秒表的设计要求。4、该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的及时、暂停、清零功能,并同时可以用数码管显示,再现实生活中应用广泛,具有现实意义。2.2 设计的主要内容:一、 设计任务:1、 本课题主要以单片机为基础,具体而全面的完成电子秒表在其上的实现;2、 基于单片AT89C51为核心的语言编程来实现电子秒表的设计;3、 用软件仿真与世界结果对比。二、 设计要求:1、 设计方案具有和理性、科学性;2、 系统工作稳定可靠;3、 系统抗干扰性能强;4、 系统硬件电路简单、程序结构明晰。三、 系统功能1、 又启/停开关,用于开始/结束计时操作;2、
11、设置复位开关,在任何情况下只要按下复位开关,秒表无条件进行复位清零操作;3、 结合51系列单片机微机方正实验系统中的软件,编写能够实现该课题的软件程序,最后将软硬件结合起来,进行有效调试。第三章 秒表计数器的系统概述3.1 单片机的概述 电子计算机是20世界纪40年代发展起来的新技术之一,它的出现是科学技术产生了一场深刻的革命。特别是自1971年以来,随着大规模集成电路的发展,又出现了微型计算机。它对发展现代化的工业、农业、国防和科学技术具有极其巨大的推动作用。作为微型机控制系统的组成,主要分为两大部分,硬件和软件。硬件是指微型计算机本身及其外围设备;件是指管理计算机的程序以及过程控制应用程序
12、。 单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段,单片机的发展是迅速的,迄今为止,仅40年历史,单片机技术已发展成为计算机技术的一个独特分支,在众多领域尤其是在只能话仪器仪表、检测和控制系统中得到了广泛的运用。目前,8位高档机和16位机在单片机应用中占主导地位,产品众多,已有几十个系列、几百个型号,所以形成了多公司、多系列、多型号的局面。到目前为止,再国内的到广泛运用的单片机是Intel公司生产的MCS-48/MCS-51和MCS-96系列,其中又以51单片机使用最为广泛。3.2 单片机的工作过程单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的
13、过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必
14、须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。3.3 单片机的特点1.有优异的性能价格比。2.集成
15、度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。3.控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。4.低功耗、低电压,便于生产便携式产品。2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。6.单
16、片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。3.4 AT89C51单片机简介单片机AT89C51简介AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据序存器(RAM),器件采用ATMEL公司的高密度/非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,AT89C51单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。 主要特性8031 CPU与MCS-51 兼容,性价比高性能稳定,系统配置灵活
17、丶方便 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定,控制能力强 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器6个中断源, 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图31 管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时
18、P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在
19、给出地址“1”时,它利用内部上拉优势,当对 外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚 备选功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4
20、 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输
21、出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。X
22、TAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 震荡特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89
23、C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。第四章 硬件电路设计4.1 总体设计方案电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛运用本设计使用单片机组成电子秒表,力求结构简单、精度高为目标设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计数与显示电路和复位、启动和暂停等。主控制器采用AT89C51单片机,显示电路采用共阴极LED数码管显示计数。4.2 硬
24、件电路设计本系统中本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等,电路图如下(2)电源电路电源电路是系统最基本的部分,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。(3)晶体振荡电路MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线 XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。这里,我们选用51单片机12MHZ的内部
25、振荡方式,电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要使晶体振荡器X1尽可能接近单片机。(4)复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,可以随时使电路复位。(5)显示电路 显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用4个共阳极LED显示,LED是七段式显示器,内部有7个条形发光
26、二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。电路图如下所示:(6)键盘电路在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了
27、使程序简化,我们采用按键电路,用部分P1口做开关,P1.0启动,P1.1清零,电路图如下所示第五章 软件程序设计5.1 软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数、暂停、清零,显示等,在具体需要时调用相应的模块即可。功能描述:用4位LED数码显示秒表,显示时间为009分59.9秒,每
28、秒自动加1;一个开始键,一个复位键,一个清零键。5.2 程序流程图开始系统初始化数码管显示按键判断定时启动位取反按键2关闭定时器时间清零按键1NYYN定时中断开始T0初始化程序处理(分、秒、毫秒自动增加)退出中断增加按键控制功能。1、启动/停止2、清零ML1:LCALLDISPKEY: JNB P1.0, CONTROL; JNB P1.1, CLEAR LJMP ML1CONTROL: LCALL DELAY JB P1.0, ML1LOOP1: LCALL DISP JNB P1.0,LOOP1 CPL TR0 LJMP ML1CLEAR: LCALL DELAY LCALL DISP J
29、B P1.1, ML1 CLR TR0 MOV 20H,#0 MOV 21H,#0 MOV 22H,#0 MOV 31H,#00H ; BCD m_SECOND MOV 32H,#00H ; BCD SECOND MOV 33H,#00H MOV 34H,#00H ; BCD MINUTE JNB p1.1,CLEAR LJMP ML1总结经过这一次的毕业设计,从搜索资料到硬件、软件的调试成功,每一步、每一个细节自己都经过思考,共同讨论各方案的比较选择和画图、做板和硬、软件的调试。在做的过程中不但加深我对在课程上所学到的单片机理论知识的认识和理解,重新让自己认识到了这门学科的在应用方面的广阔前
30、景,并且通过知识与应用于实践的结合更加丰富了自的知识扩展己了知识面。在毕业设计中,参考了多方面的书籍资料和网络资料,对不同类型的题目都有了大概的认识,最后,经过认真思考,我选择了单片机控制的电子秒表。本次设计内容较多,关系到电路的设计与制作,以及程序的设计和两者的匹配组合,每一部分都要注意,每一部分都要严格要求,否则,就会出现错误,影响最后的结果。这一个学期来,尽管本人尽了最大努力去完成本毕业设计任务的研究,但是所做的工作仍有许多不足,还要许多内容需要完善,恳请各位老师对不足或疏漏之处给予指出参考文献1、 邱丽芳,单片机原理与应用,人民邮电出版社;2、 王 玉,C语言程序设计,科学出版社;附1
31、 源程序代码ORG0000HLJMP MAIN ORG 000BH LJMPTIME ORG 0100HMAIN: MOV SP,#50H MOV TCON,#01H ;定义中断方式 MOV 20H,#00H ;BIN m_SECOND MOV 21H,#00H ;BIN SECOND MOV 22H,#00H ;BIN MINUTE MOV 31H,#00H ; BCD m_SECOND MOV 32H,#00H ;BCD SECOND MOV 33H,#00H ; MOV 34H,#00H ;BCD MINUTEMOV TMOD, #01H ;16位计数器 MOVTH0, #0D8H ;1
32、0ms MOVTL0, #0F0H MOVIE, #10000010BML1: LCALL DISP LJMP ML1TIME: MOVTH0,#0D8H MOVTL0,#0F0H MOVA,20HINC A CLR C CJNE A,#99,GO1 ;转换BCD MOV20H,#0 MOV 31H,#0 MOVA,21H INC A MOVA,21HINCACJNEA, #3CH, GO2 MOV 21H, #0H MOV 32H, #0 MOV 33H, #0MOVA, 22HINC ACJNEA, #0AH, GO3MOV 22H, #00H MOV 34H, #0 AJMPRET0 ;
33、退出中断GO1:MOV20H, A MOV B,#0AH DIV AB MOV 31H,A ;仅显示毫秒的百位AJMPRET0GO2:MOV21H, A MOV B, #0AH DIV AB MOV 33H, A MOV 32H, BAJMPRET0GO3:MOV 22H, A MOV B, #0AH DIV AB MOV 34H, B ;仅显示分的个位 AJMPRET0RET0: POP PSW POP ACC RETIDISP: MOVR0, #31H MOVR3, #0FEH MOVA, R3PLAY: MOV P2, A MOV A, R0 MOV DPTR, #DSEG1 MOVC A, A+DPTR MOV P0, A LCALL DL1 MOV P2, #0FFH MOV A, R3 RL A JNB ACC.4, LD1 INC R0 MOV R3, A LJMP PLAYLD1: RETDL1:MOVR7,#05H ;延时5*(255*2+2+1)= 2,565usDL: MOVR6, #0FFHDL6:DJNZR6,$ DJNZR7,DL RETDSEG1: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH附2 系统原理图
限制150内