《涡流计数器设计毕业论文.doc》由会员分享,可在线阅读,更多相关《涡流计数器设计毕业论文.doc(31页珍藏版)》请在三一办公上搜索。
1、涡流计数器设计毕业论文摘 要介绍了一种基于AT89S52系列单片机为核心的,以电涡流传感器为信号检测的计数装置的设计与实现,并由此组成完整的最小系统。根据电涡流传感器的涡流效应,实现开关信号的控制,并通过单片机的定时计数功能,完成开关信号的输出。该系统主要由两部分构成,分别是负责数据采集的涡流传感器部分和数据处理的单片机部分。原始数据经整形后送入单片机的I/O口,经单片机的进一步处理,运用其计数功能对信号脉冲进行计数,最后将计数结果在LED数码管上显示。关键词:计数器;涡流传感器;微处理器Counter Current DesignAbstract:AT89S52 based on intro
2、ducing a series of single-chip microcomputer as the core to eddy current sensor for signal detection device count Design and Implementation, and thus the composition of the minimum system integrity. Eddy current sensor in accordance with the eddy current effect, the realization of switch control sig
3、nal, and counting function of single-chip timing to complete the switch signal output. The system consists of two parts, which are responsible for data collection part of the eddy current sensor and data-processing part of the single-chip microcomputer. After the raw data by the plastic into the I/O
4、 port of MCU, the microcontroller for further processing, the use of their counting function to count the signal pulses,Finally, the result of the calculation in the LED digital tube display.Keywords: Counter;Eddy current sensor;Microprocessor目 录摘 要I第1章 前 言11.1课题背景及实际意义11.2论文主要工作11.3主要研究内容21.4主要成果2第
5、2章硬件电路设计32.1总体方案设计32.1.1方案论证32.1.2方案设计32.2传感器选择42.2.1涡流传感器工作原理62.2.2电涡流传感器结构72.2.3三线直流传感器的技术指标82.3信号放大与整形92.4AT89S52单片机132.4.1AT89S52单片机特性142.4.2AT89S52单片机的硬件设计16第3章软件设计203.1开发环境介绍203.1.1C51 简介213.1.2Keil C51集成开发平台223.2程序设计233.2.1程序流程图243.2.2主程序243.2.3系统调试结果24第4章结 论25致 谢26参考文献27第1章 前 言近年来随着计算机在社会领域的
6、渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,然而传感器技术是现代科技的前沿技术,是现代信息技术的三大支柱之一,其水平高低是衡量一个国家科技发展水平的重要标志之一。1.1 课题背景及实际意义传感器产业是国内外公认的具有发展前途的高技术产业,它以其技术含量高、经济效益好、渗透能力强、市场前景广等特点为世人瞩目。而电涡流传感器能静态和动态地非接触、高线性度、高分辨力地测量被测金属导体距探头表面的距离。电涡流传感器以其长期工作可靠性好、测量范围宽、灵敏度高、分辨率高、响应速度快、抗干扰力强、不受油污等介质的影响、结构简单等优点,在大型旋转机械状态的在线监测与故障诊断中得到广泛应用。目前
7、,全球的传感器市场在不断变化的创新之中呈现出快速增长的趋势。有关专家指出,传感器领域的主要技术将在现有基础上予以延伸和提高,各国将竞相加速新一代传感器的开发和产业化,竞争也将日益激烈。新技术的发展将重新定义未来的传感器市场。计数检测测量的方法有很多种,针对被测物体,可以大致分为检测金属和非金属两大类。此次设计是根据涡流传感器的涡流效应,灵活的将传感器运用于电子领域,充分的体现了涡流传感器的便捷实用及其良好的性能指标,更能展现出传感器市场的广阔的前景。1.2 论文主要工作1)首先对总体设计方案进行了一个总体的介绍。阐述了设计的思想以及基本原理,以框图的形式加以说明,并阐明设计方案的可行性。2)分
8、别总体介绍了构成该系统的各个部分;硬件部分和软件部分。在硬件部分中主要介绍了传感器、触发器、单片机及其接口扩展等器件的工作原理,结构、性能指标和工作方式,核心为AT89S52单片机芯片。软件部分就主要简介了Keil C51集成开发平台,单片机内部定时器的工作模式以及相关的I/O口的应用。3)最后,对本次设计结果做了分析,并对于设计中的不足和改进的构想方面也做了简单的介绍1.3 主要研究内容本文主要研究电涡流传感器的工作原理、现状、特殊功能及发展前景,并完成实现传感器与单片机系统的接口以实现特定的问题。并进一步研究了AT89S52系列单片机的结构,功能以及其接口扩展以及其它性能指标。设计LED显
9、示电路及显示程序,通过传感器-单片机系统对测量所得数据进行数码管显示,并校验。也介绍了该系统的硬件及软件部分,系统中主要器件:传感器LM12-3004NA、触发器DM7474N、AT89S52单片机。采用keilC51语言进行系统程序的控制。1.4 主要成果本次设计完成了传感器采集数据、单片机控制计数的目标,全方位的提高了自身的综合能力,无论是在理论上还是实际的操作中都有了很大的提高。首先是要自己去收集相关的大量资料,了解电涡流传感器的工作原理和发展趋势;熟悉51单片机的工作方式及软硬件资源;进一步掌握Protel、Keil等软件协同开发单片机系统的开发方法;最终实现计数和测速及将所得数据进行
10、数码管显示的功能。这在某种程度上提高了对所需资料的提取能力,之后便是画原理图和PCB 排板,在画PCB的过程中让自己更加熟练了DXP软件的应用从而得到了很好的锻炼,动手焊接、调试等。一系列的实际操作使得自己在各方面的能力得到了相应的提高,对整合理论知识与实践操作的能力有了很大的提高。第2章 硬件电路设计2.1 总体方案设计设计以传感器敏感器件作为起点,以单片机数码管显示作为结尾,其中包含了信号采集,信号处理,硬件显示电路及软件程序设计等部分。全部设计围绕AT89S52单片机为核心,充分利用其接口扩展等功能以完成设计目的。2.1.1 方案论证首先,本次设计所需知识和能力准备通过我的努力可以达到;
11、所需软硬件物质环境条件亦均可以实现。传感器采集的原始信号是数字信号,经过处理后能够直接送入单片机处理,并能经过单片机的内部资源和软件控制将测量结果在LED 上显示出来,并能通过单片机的定时计数功能实现测量结果的自增和累加等功能,能够把传感器和单片机结合起来组成完整的小系统,并充分发挥传感器和单片机的各项功能。2.1.2 方案设计方案一:将传感器所采集的信号直接送入单片机,再由单片机控制显示,如图21所示:涡流传感器控制器显示 信号脉冲 处理图21 方案一设计原理框图如此设计使得脉冲信号不稳定,有毛刺,影响测量结果。方案二:将传感器采集的信号经信号整形,使得其变成标准的方波信号,对测量结果的精确
12、性做了保证。总体思路如图22所示:涡流传感器信号整形控制器显示 采集信号 信号脉冲 处理图22 方案二设计原理框图本次设计采用方案二的设计思路,利用传感器探头采集信号,经DM7474N整形后能得到标准的方波脉冲信号,信号送入AT89S52单片机的I/O口,再经单片机的内部处理及显示电路和软件程序控制将测量的结果在LED上显示,并运用定时/计数器的特殊功能将显示结果进行自增和累加。2.2 传感器选择信息处理技术取得的进展以及微处理器和计算机技术的高速发展,都需要在传感器的开发方面有相应的进展。微处理器现在已经在测量和控制系统中得到了广泛的应用。随着这些系统能力的增强,作为信息采集系统的前端单元,
13、传感器的作用越来越重要。传感器已成为自动化系统和机器人技术中的关键部件,作为系统中的一个结构组成,其重要性变得越来越明显。 最广义地来说,传感器是一种能把物理量或化学量转变成便于利用的电信号的器件。传感器是实现自动检测和自动控制的首要环节。如果没有传感器对原始参数进行精确可靠的测量,那么无论是信号转换或信息处理或最佳数据的显示与控制都是不可能实现的。传感器根据输入物理量可分为:位移传感器、压力传感器、速度传感器、温度传感器及气敏传感器等。根据工作原理可分为:电阻式、电感式、电容式及电势式等。根据输出信号的性质可分为:模拟式传感器和数字式传感器。即模拟式传感器输出模拟信号,数字式传感器输出数字信
14、号.根据能量转换原理可分为:有源传感器和无源传感器。有源传感器将非电量转换为电能量,如电动势、电荷式传感器等;无源程序传感器不起能量转换作用,只是将被测非电量转换为电参数的量,如电阻式、电感式及电容光焕发式传感器等。传感器分类方法如表21所示。其中,电涡流式传感器最大的特点是能对位移、厚度、表面温度、速度、 应力、材料损伤等进行非接触式连续测量, 另外还具有体积小, 灵敏度高, 频率响应宽等特点, 应用极其广泛。电涡流传感器是利用电涡流效应将位移等非电被测参量转换为线圈的电感或阻抗变化的变磁阻式传感器。表21 传感器分类表传感器分类转换原理传感器名称典型应用转换形式中间参量电参数电阻移动电位器
15、角点改变电阻电位器传感器位移改变电阻丝或片的尺寸电阻丝应变传感器、半导体应变传感器微应变、力、负荷利用电阻的温度效应(电阻的温度系数)热丝传感器气流速度、液体流量电阻温度传感器温度、辐射热热敏电阻传感器温度利用电阻的光敏效应光敏电阻传感器光强利用电阻的湿度效应湿敏电阻湿度电容改变电容的几何尺寸电容传感器力、压力、负荷、位移改变电容的介电常数液位、厚度、含水量电感改变磁路几何尺寸、导磁体位置电感传感器位移涡流去磁效应涡流传感器位移、厚度、含水量利用压磁效应压磁传感器力、压力改变互感差动变压器位移自速角机位移旋转变压器位移频率改变谐振回路中的固有参数振弦式传感器压力、力振筒式传感器气压石英谐振传感
16、器力、温度等计数利用莫尔条纹光栅大角位移、大直线位移改变互感感应同步器利用拾磁信号磁栅数字利用数字编码角度编码器大角位移电能量电动势温差电动势热电偶温度热流霍尔效应霍乐传感器磁通、电流电磁感应磁电传感器速度、加速度光电效应光电池光强电荷辐射电离电离室离子计数、放射性强度压电效应压电传感器动态力、加速度2.2.1 涡流传感器工作原理据法拉第电磁感应原理, 块状金属导体置于变化的磁场中或在磁场中作切割磁力线运动时, 导体内将产生呈涡旋状的感应电流, 此电流叫电涡流, 以上现象称为电涡流效应。根据电涡流效应制成的传感器称为电涡流式传感器。如图23所示。图23 电涡流式传感器的基本原理按照电涡流在导体
17、内的贯穿情况, 此传感器可分为高频反射式和低频透射式两类, 但从基本工作原理上来说仍是相似的。电涡流效应是指金属导体置于交变磁场中会产生电涡流,且该电涡流所产生磁场的方向与原磁场方向相反的一种物理现象。电涡流传感器的敏感元件是线圈,当给线圈通以交变电流并使它接近金属导体时,线圈产生的磁场就会被导体电涡流产生的磁场部分抵消,使线圈的电感量、阻抗和品质因数发生变化。如果使上述参量中的某一个变动,其余皆不变,就可制成各种用途的传感器,能对表面为金属导体的物体进行多种物理量的非接触测量。电涡流式传感器最大的特点是能对位移、厚度、表面温度、速度、 应力、材料损伤等进行非接触式连续测量, 另外还具有体积小
18、, 灵敏度高, 频率响应宽等特点,它是一种很有发展前途的传感器。2.2.2 电涡流传感器结构此次设计选用的是电涡流三线直流传感器,其结构如图24所示。总体形状为圆柱行,在探头上设置有动作指示灯,以检测传感器工作状态。不同探头直径尺寸可检测的最远距离不同。图24 三线直流传感器的外观图25、图26是三线直流传感器两种不同输出晶体管的接线方法,分别为NPN和PNP输出。图25 三线直流传感器NPN常开结构图26 三线直流传感器PNP常开结构电涡流三线直流传感器的电路原理示意图如图27所示。器件内部由感应线圈、施密特触发器、保护二极管等元器件组成,晶体三极管做输出级。当被检测物体接近到检测距离范围时
19、,不需要机械接触及施加任何压力即可使开关动作。图27 三线直流传感器电路原理示意图2.2.3 三线直流传感器的技术指标三线直流传感器的技术指标:接线电压:6-36V直流;常开触点(NO);电压降1.8V;防短路的输出;完备的极性保护。表22是LM12系列电涡流传感器主要参数:表22 LM12系列传感器主要参数非埋入式检测距离4mm直流DC636VDCNPNNOLM12-3004NANCLM12-3004NBNO+NCLM12-3004NCPNPNOLM12-3004PANCLM12-3004PBNO+NCLM12-3004PC二线制NOLM12-3004LANCLM12-3004LB交流AC9
20、0250VACSCR可挂硅NOLM12-2004ANCLM12-2004BNO+NC继电器输出输出电流DC200mASCR/继电器300mA输出电压降消耗电流标准检测物体15*15*1(A3铁)重复精度0.01响应频率400Hz/25Hz工作环境温度-25+75绝缘电阻50M欧姆2.3 信号放大与整形设计中利用D触发器对毛刺信号不敏感,消除毛刺,保证系统的稳定性。电平触发的主从触发器工作时,必须在正跳沿前加入输入信号。如果在CP 高电平期间输入端出现干扰信号,那么就有可能使触发器的状态出错。而边沿触发器允许在CP 触发沿来到前一瞬间加入输入信号。这样,输入端受干扰的时间大大缩短,受干扰的可能性
21、就降低了。该触发器由6个与非门组成,其中G1和G2构成基本RS触发器。边沿D触发器的逻辑图和逻辑符号如图28所示。28 (a) 边沿D触发器的逻辑图图28 (b) 边沿D触发器的逻辑符号边沿D触发器工作原理: SD 和RD 接至基本RS 触发器的输入端,它们分别是预置和清零端,低电平有效。当SD=0且RD=1时,不论输入端D为何种状态,都会使Q=1,Q=0,即触发器置1;当SD=1且RD=0时,触发器的状态为0,SD和RD通常又称为直接置1和置0端。我们设它们均已加入了高电平,不影响电路的工作。工作过程如下: 1)CP=0时,与非门G3和G4封锁,其输出Q3=Q4=1,触发器的状态不变。同时,
22、由于Q3至Q5和Q4至Q6的反馈信号将这两个门打开,因此可接收输入信号D,Q5=D,Q6=Q5=D。 2)当CP由0变1时触发器翻转。这时G3和G4打开,它们的输入Q3和Q4的状态由G5和G6的输出状态决定。Q3=Q5=D,Q4=Q6=D。由基本RS触发器的逻辑功能可知,Q=D。 3)触发器翻转后,在CP=1时输入信号被封锁。这是因为G3和G4打开后,它们的输出Q3和Q4的状态是互补的,即必定有一个是0,若Q3为0,则经G3输出至G5输入的反馈线将G5封锁,即封锁了D通往基本RS 触发器的路径;该反馈线起到了使触发器维持在0状态和阻止触发器变为1状态的作用,故该反馈线称为置0维持线,置1阻塞线
23、。Q4为0时,将G3和G6封锁,D端通往基本RS触发器的路径也被封锁。Q4输出端至G6反馈线起到使触发器维持在1状态的作用,称作置1维持线;Q4输出至G3输入的反馈线起到阻止触发器置0的作用,称为置0阻塞线。因此,该触发器常称为维持-阻塞触发器。总之,该触发器是在CP正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁,三步都是在正跳沿后完成,所以有边沿触发器之称。与主从触发器相比,同工艺的边沿触发器有更强的抗干扰能力和更高的工作速度。边沿D触发器状态描述:状态转移真值表如表23所示。表23 状态转移真值表DQnQn+1说明000输出状态与D端状态相同010101111特征方程为: Q
24、n+1=D状态转移图及工作波形图如图29、图210所示。图29 D触发器的状态转移图图210 D触发器的工作波形图边沿D触发器脉冲特性:脉冲特性包括建立时间、保持时间、传输延迟时和间最高时钟频率。建立时间的约束和时钟周期有关,当系统在高频时钟下无法工作时,降低时钟频率就可以使系统完成工作。保持时间是一个和时钟周期无关的参数,如果设计不合理,使得布局布线工具无法布出高质量的时钟树,那么无论如何调整时钟频率也无法达到要求,只有对所设计系统作较大改动才有可能正常工作,导致设计效率大大降低。因此合理的设计系统的时序是提高设计质量的关键。在实际集成触发器中,每个门传输时间是不同的,并且作了不同形式的简化
25、。图211是集成D触发器DM7474N, 其内部集成了两个边沿D触发器。图211 DM7474N触发器的内部结构DM7474N真值表见表24。通过图中的逻辑符号和D触发器的逻辑功能表可以看出,DM7474N是带有预置、清零输入、上跳沿触发的边沿触发器。表24 DM7474N真值表InputsOtputsPRCLRCLKDQ/QLHXXHLHLXXLHLLXXH(Note1)H(Note2)HHHHLHHLLHHHLLLH表中:VCC=5VH = 高逻辑x = 低或高的逻辑水平L = 低逻辑平实= 时钟的正面去的转折 综上所述,对D触发器归纳为以下几点:1)D触发器具有接收并记忆信号的功能,又称
26、为锁存器;2)D触发器属于脉冲触发方式; 3)D触发器不存在约束条件和一次变化现象,抗干扰性能好,工作速度快。2.4 AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程 Flash存储器。使用 Atmel公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。2.4.1 AT89S52单片机特性图212 AT89S52引脚图AT89S52芯片上,拥有灵巧的 8位 CPU和在系统可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案
27、。 AT89S52具有以下标准功能:8k字节 Flash,256字节 RAM,32位 I/O口线,看门狗定时器,2个数据指针,三个 16位定时器/计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至 0Hz静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下,CPU停止工作, 允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图212为AT89S52引脚图。其中:VCC为电源 ;GND是地 。P0口:P0口是一个 8位漏极开路的双向 I/O口。作为输
28、出口,每位能驱动 8个 TTL逻辑电平。对 P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低 8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1口是一个具有内部上拉电阻的 8位双向 I/O口,p1输出缓冲器能驱动 4个 TTL逻辑电平。对 P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和 P1.2分别作定时器/计数器 2的
29、外部计数输入(P1.0/T2)和时器/计数器 2的触发输入(P1.1/T2EX),具体如表25所示。在 flash编程和校验时,P1口接收低8位地址字节。表25 P1口的第二功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2(定时器/计数器 T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向 I/O口,P2输出缓冲器能驱动 4个TTL逻辑电平。对 P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被
30、外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行 MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用 8位地址(如 MOVX RI)访问外部数据存储器时,P2口输出 P2锁存器的内容。在 flash编程和校验时,P2口也接收高 8位地址字节和一些控制信号。 表26 P3口的第二功能引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断 0)P3.3INT0(外部中断 0)P3.4T0(定时器 0外部输入)P3.5T1(定时器 1外部输入)P
31、3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器写选通)P3口:P3口是一个具有内部上拉电阻的 8位双向 I/O口,p2输出缓冲器能驱动 4个 TTL逻辑电平。对 P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为 AT89S52特殊功能(第二功能)使用,如表26所示。在 flash编程和校验时,P3口也接收一些控制信号。RST:复位输入。晶振工作时,RST脚持续 2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出 96个晶振周期的高电平。特殊寄存器 AUXR(
32、地址 8EH)上的 DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/(PROG/):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8位地址的输出脉冲。在 flash编程时,此引脚(PROG/)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为 8EH的 SFR的第 0位置 “1”,ALE操作将无效。这一位置 “1”, ALE仅在执行 MOVX或 MOVC指令时有效。否则,ALE将被微弱拉高。这个 ALE使能标
33、志位(地址为 8EH的 SFR的第 0位)的设置对微控制器处于外部执行模式下无效。 (PSEN/):外部程序存储器选通信号(PSEN/)是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN/在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN/将不被激活。 (EA/)/VPP:访问外部程序存储器控制信号。为使能从 0000H到 FFFFH的外部程序存储器读取指令,EA/必须接 GND。为了执行内部程序指令,EA/应该接 VCC。在 flash编程期间,EA/也接收 12伏 VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:
34、振荡器反相放大器的输出端。2.4.2 AT89S52单片机接口电路设计整个单片机课程系统电路由AT89S52单片机、44键盘、4位数码管、串行通信和附加功能扩展等5个部分组成。图213为系统组成结构框图。涡流传感器单片机AT89S524位数码管串行通信附加功能DM7474N图213 系统组成结构框图1)触发器工作电压为5V,信号从触发器的D1端输入,R为上拉电阻。信号从Q1输出,经上拉电阻送入单片机P1.0口,如图214所示。图214 DM7474N电路原理图2)LED数码管显示电路采用动态扫描方式驱动,P0口作为段码输入,P2高4位作为位选线输入。图215是数码管显示电路原理图。其中,数码管
35、为共阳极性。动态扫描的工作原理:段码线不断送出待显示字符的共阳字符表,位选线在同一时刻选中4位数码管中的一位,并使每位显示字符停留一段时间,一般15ms,利用眼睛的视觉惯性,在数码管上就可以同时看到4位不同字符显示。图215 数码管显示电路图3)单片机与PC机串行通信电平转换芯片采用MAX232。MAX232外接4个1.0uF的电容可完成TTL电平和RS-232C电平之间的转换。图216是串行通信接口电路图:图216 串行通信接口电路图4)AT89S52单片机外围电路主要包括复位和时钟电路。图217为单片机的复位电路,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后
36、,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。单片机复位电路原理是在单片机的复位引脚上外接电阻和电容,实现上电复位。图217 单片机复位电路图218是单片机的外部晶振电路,为单片机工作提供了逻辑时序。图218 单片机的外部晶振电路第3章 软件设计3.1 开发环境介绍软件开发环境是指在基本的硬件和软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。软件开发环境可按以下几种角度分
37、类:1) 按软件开发模型及开发方法分类,有支持瀑布模型、演化模型、螺旋模型、喷泉模型以及结构化方法、信息模型方法、面向对象方法等不同模型及方法的软件开发环境。2) 按功能及结构特点分类,有单体型、协同型、分散型和并发型等多种类型的软件开发环境。3) 按应用范围分类,有通用型和专用型软件开发环境。其中专用型软件开发环境与应用领域有关,故又可称为应用型软件开发环境。4) 按开发阶段分类,有前端开发环境(支持系统规划、分析、设计等阶段的活动)、后端开发环境(支持编程、测试等阶段的活动)、软件维护环境和逆向工程环境等。此类环境往往可通过对功能较全的环境进行剪裁而得到。软件开发环境由工具集和集成机制两部
38、分构成,工具集和集成机制间的关系犹如“插件”和“插槽”间的关系。工具集:软件开发环境中的工具可包括:支持特定过程模型和开发方法的工具,如支持瀑布模型及数据流方法的分析工具、设计工具、编码工具、测试工具、维护工具,支持面向对象方法的OOA工具、OOD工具和OOP工具等;独立于模型和方法的工具,如界面辅助生成工具和文档出版工具;亦可包括管理类工具和针对特定领域的应用类工具。集成机制:对工具的集成及用户软件的开发、维护及管理提供统一的支持。按功能可划分为环境信息库、过程控制及消息服务器、环境用户界面三个部分。环境信息库:是软件开发环境的核心,用以储存与系统开发有关的信息并支持信息的交流与共享。库中储
39、存两类信息,一类是开发过程中产生的有关被开发系统的信息,如分析文档、设计文档、测试报告等;另一类是环境提供的支持信息,如文档模板、系统配置、过程模型、可复用构件等。过程控制和消息服务器:是实现过程集成及控制集成的基础。过程集成是按照具体软件开发过程的要求进行工具的选择与组合,控制集成并行工具之间的通信和协同工作。环境用户界面:包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致视感的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。较完善的软件开发环境通常具有如下功能:1) 软件开发的一致性及完整性维护;2) 配置管理及版
40、本控制;3) 数据的多种表示形式及其在不同形式之间自动转换;4) 信息的自动检索及更新;5) 项目控制和管理;6) 对方法学的支持。3.1.1 C51 简介20 世纪 90 年代,C 语言成为了专业化的微处理器上的实用高级语言。过去长时间困扰人们的所谓“高级语言产生代码长、运行速度慢、不适合单片机使用”等致命弱点已基本被克服。目前,MCS-51上的 C51 代码长度,在未加入人工优化的条件下,已经是最优汇编程序水平的 1.21.5倍。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身
41、,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2可为它们提供单一而灵活的开发环境。在项目管理中,工程是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标、组或单个文件。uVision2包含一个器件数据库,可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针或者加速器的特性。3.1.
42、2 Keil C51集成开发平台Keil C51集成开发环境基于Windows操作系统,软件运为视窗界面,操作非常方便,且支持C代码8级优化,产生高效率的编译代码。KEILC51标准C编译器为微控制器的软件开发提供了C语言环境,集编译,编辑,仿真等于一体,同时保留了汇编代码高效,快速的特点。Keil C51集成开发环境中的软件仿真功能能够很好的将单片机的内部硬件资源中的信息,汇编指令和程序运行结果以直观,友好的界面进行展示。C51编译器的功能不断增强,使我们可以更加贴近CPU本身,及其它的衍生产品。C51集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。可以非常方便的进行在线
43、调试,易于发现问题,解决问题。KEIL C51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。 1) 存储器和特殊功能寄存器的存取 C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字at还能把变量放入固定的存储器存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达32个,这就允许用户在原有64KROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。 2) 中断功能 C51允许用户使用C语言编写中断服
44、务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。 3) 灵活的指针 C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需12字节,因此,指针存取非常迅速。Keil C51的运行界面如图31所示:图31 Keil C51开发环境uVision2运行界面3.2 程序设计整个系统的软件设计采用了C语言进行编程,并且是在uVision2集成开发环境下完成的。主要设计了LED显示的控制程序、其中包括检测脉冲信号、计数累加以及复位等环节。3.2.1 程序流程图如图32是本次设计的显示程序设计流程图。当每检测到信号脉冲时,计数初值加1,当计数值到9999时,计数初值自动清零重新计数。YNNY计数归0开始显示计数初始值有信号脉冲?计数值加1计数9999 ?转化段码表,显示结束开始显示计数初始值有信号脉冲?计数值加1计数9999 ?转化段码表,显示结束图32 显示程序设计流程图3.2.2 主程序#define LedDataPort P0/LED数据输入 #define LedCntPort P2/LED片选sbit datainput =