《基于AT89S52电机转子故障检测的软件设计.doc》由会员分享,可在线阅读,更多相关《基于AT89S52电机转子故障检测的软件设计.doc(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、哈尔滨商业大学毕业设计(论文) 基于AT89S52电机转子故障检测的软件设计 学 生 姓 名 XX 指 导 教 师 XXX 专 业 电子信息工程 学 院 计算机与信息工程 2013年6月6日Graduation Project (Thesis)Harbin University of CommerceSoftware Design of Motor Fault Detection Based on AT89S52Student XXX Supervisor XXX Specialty Electronic Information Engineering School Computer and
2、Information Engineering 2013 - 6 -6 毕业设计(论文)任务书姓名:XX学院:计算机与信息工程学院班级:09-1专业:电子信息工程毕业设计(论文)题目: 基于AT89S52电机转子故障检测的软件设计立题目的和意义:电机有各种故障,不同的故障类型的检测方法也不同。转子是电动机的旋转部分,如果维护的不正确,转子的故障率往往会高于定子的故障率。交流异步电动机转子故障一般转子鼠笼条断裂或绕线转子绕组断线,端环断裂,高阻接头等故障(统称为:断条)和偏心转子机械故障。前者是电气故障,后者是机械故障。严重的转子断条会使电机振动增加、出力下降,启动困难;有时笼条甩出,会导致扫膛
3、形成重大事故。转子偏心严重故障直接导致扫膛,造成重大事故。转子故障检测方法包括振动测试,定子电流的检测,基于在转子参数识别上的监测。但是,最好的方法是使用电流信号。把定子的相电流信号采集出来后进行频谱分析。要找出是否有相应的故障频率,以确定是否有故障。可以看出,预检测维护电机的前提就是对电机的数据进行不断的采集。只有保证数据采集的实时性、准确性,以便及时正确地采取措施。技术要求与工作计划:要求完成基于AT89S52的电机故障检测的软硬件设计,系统以8031单片机为控制中心,接受来自键盘的命令,通过相关电路完成自动采集,数据查询,数据存储等功能,并通过RS-232异步串行口实现通讯。(1) 查阅
4、资料,了解国内外相关技术和产品的发展过程和现状;(2) 学习电机故障的检测方法及原理;(3) 学习单片机的相关内容;(4) 学习互感器,AD1674,8031外部数据存储器和程序存储器,RS-232串口,以及按键等芯片的工作原理及使用方法;(5) 学习掌握汇编语言的编写;(6) 设计硬件原理图;(7) 调试软件及硬件电路;(8) 焊接硬件电路板;时间安排:2013年3月1 日-2013年4月1日 毕业实习和搜集资料2013年4月2 日-2013年4月15日 确定研究方向与研究深度2013年4月16日-2013年4月20日 系统总体设计2013年4月21日-2013年5月1日 程序编写2013年
5、5月2日-2013年5月10日 系统运行与调试2013年5月11 日-2013年5月25日 撰写论文2013年5月26日-2013年6月5日 准备答辩指导教师要求:1 熟练应用keil和proteus软件;2 了解电机故障的原理3 了解电机故障检测的方法;4 掌握单片机的工作原理及使用方法;5 掌握传感器模块,放大滤波模块,采集模块单片机及外围电路模块的设计;6 了解AD1674、运算放大器、滤波器、EPROM、74LS373、SRAM、MAX232、8279等硬件的使用;7 掌握硬件原理图设计方法;8 编制软件程序。9 熟练掌握硬件以软件的调试。(签字) 年 月 日教研室主任意见:(签字)
6、年 月 日院长意见:(签字) 年 月 日毕业设计(论文)审阅评语一、指导教师评语:指导教师签字:年 月 日毕业设计(论文)审阅评语二、评阅人评语:评阅人签字:年 月 日毕业设计(论文)答辩评语三、答辩委员会评语:四、毕业设计(论文)成绩:专业答辩组负责人签字:年 月 日五、答辩委员会主任签章答辩委员会主任单位: (签章) 答辩委员会主任职称: 答辩委员会主任签字: 年 月 日摘 要摘 要对基于AT89S52的电机转子故障检测系统进行了较深入的研究。从预测维护技术出发,推导出电动机转子故障断条和偏心故障特征频率感应电流的特征频率。设计以AT89S52单片机为控制中心,接受来自键盘的命令,由相关电
7、路完成自动采集,数据查询,数据存储,并通过RS-232异步串行端口实现通信。硬件设计,包括互感电路,数据处理电路,AD1674的模拟数字转换电路,AT89S52的外部数据存储器,RS-232串行端口和按键设计。软件使用MCS-51的汇编语言编写的,由初始化,模拟到数字的转换,数据查询,数据传输和按键检测五个程序模块构成。程序模块通过中断的方式进入主程序,在中断子程序里完成多种功能,从而提高了系统的运行效率,而且程序简单,易于理解。关键词: 电机电流检测;转子故障特征频率;信号放大器;AD1674模数转换器;可编程键盘接口I 哈尔滨商业大学毕业设计(论文)AbstractFor motor fa
8、ult detection system based on AT89S52 conducted in-depth research. Predictive maintenance technology, deduced the characteristic frequency of the motor rotor fault broken bars and eccentricity fault characteristic frequency of the induced current.Design AT89S52 micro-controller as the control center
9、, from receiving the command, keyboard, automatic acquisition of the relevant circuit, data query, data storage, and communication via RS-232 asynchronous serial port completed. Hardware design, including mutual inductance circuit, data processing circuit, analog to digital conversion circuit of AD1
10、674 and AT89S52 devices of external data memory, the RS - 232 serial port and button design. Software written in assembly language using the MCS-51s, by the initialization, the analog-to-digital conversion, data query, data transfer and key detection five program modules. Program module by way of in
11、terrupt into the main function in the interrupt subroutine to perform a variety of functions, thereby improving the efficiency of the system, and the procedure is simple, easy to understand.Key words: Motor current; Rotor fault characteristic frequency; Signal amplifier; AD conversion by AD1674III目
12、录目 录摘 要IAbstractII1 绪 论11.1 课题背景11.2 课题目的及意义11.3 电机故障检测技术的国内外发展状况21.4 信号的诊断方法21.5 本章总结32 电流检测装置的硬件设计方案42.1 硬件系统结构图42.2 各模块的介绍42.2.1 互感器模块设计42.2.2 信号放大器的设计52.2.3 滤波器的设计52.2.4 A/D模块的设计62.2.5 单片机最小系统模块的设计62.2.6 AT89S52及其外围电路的设计62.2.7 串口设计72.2.8 按键接口电路的设计72.2.9 SRAM接口设计72.3 本章总结83 电流检测装置软件的设计93.1 引言93.2
13、 中断的概念93.3 软件的编制103.4 汇编语言的特点103.5 软件的功能分析113.6 系统的主程序流程图113.7 定时中断子程序133.8 按键中断子程序143.9 中断查询子程序163.10 中断传送子程序183.11 本章总结194 电流检测装置的调试214.1 软件调试214.2 硬件的调试234.2.1 互感器模块的调试244.2.2 AD1674零点和增益的调整244.3 软件的仿真244.4 本章总结25结 论27参考文献28致 谢29附录 源程序代码30III1 绪 论1 绪 论异步电机以其结构简单、价格低廉、坚固耐用、使用维护方便的优点,在国民经济各领域得到广泛应用
14、。因此,对异步电机进行安全可靠的在线监测和故障诊断具有重要意义。随着电机制造工艺的提高,定子绕组等故障的发生率呈下降趋势,而鼠笼转子的制造工艺几十年来却没有大的变化,转子故障已成为导致异步电机失效的重要原因之一。因此,有必要对感应电机转子故障进行检测与诊断,从而避免故障扩大所造成的设备损坏以及由此产生的间接经济损失。本装置主要检测电机运行状态,对异常的操作数据(如振动,电流)采集,通过各种分析方法,以确定故障原因和故障的严重程度。在软件方面采用四个中断程序分别完成上述的四种功能。在主程序里完成系统的初始化,包括定时器,中断允许,中断优先级,键盘方式的初始化,然后进入死循环,等待中断申请,当转入
15、中断子程序后,就完成各种功能。1.1 课题背景异步电动机因其结构简单,成本低,可靠性高维修方便,所以在工业和农业上得到广泛的应用。随着国民经济的快速发展现代产业体系,电机单机容量的增加,驱动负载越来越复杂。电机故障不仅会损坏电机本身,严重情况下会导致电机突然停止,该生产线的崩溃,造成巨大的经济损失和灾难性的后果。为了提高生产和工作的可靠性,初步实现了电机系统的定期保养,但维护这个系统每年不仅是要花费大量的人力,物力和维护成本,并没有针对性,维护精度低。在过去的十年中,国际社会制定了一个国家的最先进的维修系统预测性维护技术,关键是要检测电机的状态,正常工作的数据采集(如振动,电流),通过各种分析
16、手段,以确定故障原因和故障的严重程度。故障严重的电机需要停机并尽早更换。这是异步电机需要加以解决的重要课题之一。 1.2 课题目的及意义电机有各种故障,不同的故障类型的检测方法也不同。转子是电动机的旋转部分,如果维护的不正确,转子的故障率往往会高于定子的故障率。交流异步电动机转子故障一般为转子鼠笼条断裂或绕线转子绕组断线,端环断裂,高阻接头等故障(统称为:断条)和偏心转子机械故障1。前者是电气故障,后者是机械故障。严重的转子断条会使电机振动增加、出力下降,启动困难;有时笼条甩出,会导致扫膛形成重大事故。转子偏心严重故障直接导致扫膛,造成重大事故。转子故障检测方法包括振动测试,定子电流的检测,基
17、于在转子参数识别上的监测。但是,最好的方法是使用电流信号。把定子的相电流信号采集出来后进行频谱分析2。要找出是否有相应的故障频率,以确定是否有故障。可以看出,预检测维护电机的前提就是对电机的数据进行不断的采集。只有保证数据采集的实时性、准确性,才能及时正确地采取措施。1.3 电机故障检测技术的国内外发展状况电机故障检测技术是研究故障机理,在线监测和故障特征提取以及诊断推理的新兴学科,电机故障检测技术是设备检测技术的一部分,但由于电机的工作原理和结构上的功能,其检测方法和采用的检测技术和其他设备的使用是不同的。国外电机故障诊断技术的研究始于20世纪60年代。虽然国家高度重视研究人员,但直到70
18、80年代,随着高科技传感器、计算机、光纤的发展和应用,电机检测技术真正被开发出来。加拿大、日本和前苏联已经研制出了变压器,发电机局部放电,泄漏电流在线监测系统等,有的已经发展成为正式产品。 我们国家对电机故障检测技术的重要性也早有了认识,在20世纪60年代提出很多现场实验的方法。电机故障在线诊断技术在20世纪80年代以来,特别是20世纪90年代以来的十几年间,随着测试技术的飞速发展,加上现代信号处理技术的快速发展,该技术已经取得了突飞猛进的进步。 电机故障检测技术在设备维护体制引发了一次变革,使设备的维护从事后的维修走向了基于状态的维修和预测性维修,因此保护电机系统的稳定性和可靠性,同时也提高
19、维护的经济性,是在现代工业生产中起着重要的作用。1.4 信号的诊断方法 以往学者对转子异步电机故障检测这一课题做了大量的工作,也有许多检测方法,转子断条故障是异步电机转子常见的故障,因其可以实现对异步电机的故障进行有效的诊断,有着重要的研究价值。常用的转子断条故障检测方法有很多种,本设备采用了电流分析法检测转子断条。当转子出现断条时,单相电流将被破坏,导致定子电流产生相反的磁场,它引起的频率为(1-2s)的特征分量(s为转差率,为基波频率),通过频谱分析,看是否含有的成分来确定转子无故障3。由于这种方法是测量定子电流信号,因此它被称为电流分析法,它对特征信号采集方便、简单的特点。但是电流分析法
20、也存在一些缺陷:对定子电流做频谱分析,由于(1-2s)的相对频率分量振幅的基频分量幅值比较小,容易被淹没,因此,降低了故障检测的灵敏度,提高分辨率的要求4。针对这些问题,根据目前的分析方法,人们不断的在研究,怎样提高诊断的敏感性,以便提取微弱的特征信号。1.5 本章总结在这一章对电机故障检测装置的研究意义和目的进行了分析。电动机作为工业系统的主要执行元件,这就使正常的工作对安全生产和提高效益具有重要意义的。对当前国际发展预测维修技术,关键是检测电机运行状态,对异常的操作数据(如振动,电流)采集,通过各种分析方法,以确定故障原因和故障的严重程度。该装置在电机运行状态下,对定子电流信号的采集,进行
21、频谱分析的提供连续可靠的数据。只有保证实时数据的采集,才能作出合理的判断,并及时采取措施。2 电流检测装置的硬件设计方案2.1 硬件系统结构图 根据课题要求,本装置需要将模拟电流量转化为数字量,再将数据传送给主机。本装置可分为以下四个模块:传感器模块,放大滤波模块,采集模块,单片机及外围电路模块。图2-1 系统结构框图 本装置采用MCS-51系列的AT89S52,AT89S52是在一块芯片上集成了CPU,RAM,ROM,定时器/计数器和多功能I/O等基本功能部件的一台微型计算机,它是整个故障检测系统的核心。本装置可分为以下四个模块:传感器模块,放大滤波模块,采集模块,单片机及外围电路模块。简单
22、的结构框图如下:见图2-1。2.1 各模块的介绍2.2.1 互感器模块设计互感器的工作原理是利用霍尔效应。在导体的两侧加一个磁场,利用霍尔效用,当有电流通过时,一个霍尔电压动势便在导体的另两侧便产生: (2-1)32 电流检测装置的硬件设计方案式中 霍尔系数; 霍尔电压; 控制电流; 霍尔元件的灵敏度; 本装置利用待测的交流电作为电流互感器的一次电流,产生一个磁场,并且磁场的大小与方向是随着测量的电流的变化而变化的,他们之间有一个线性关系5。因为控制电流是一定的,所以输出电流是随磁场变化而变化的,所以在一次电流和二次电流之间有一个成比例的线性关系,其比例为 1000/1。我使用的互感器的最大输
23、入电流为10A,最大输出电流为10mA,其转换精度0.1,满足系统的要求。但输出是电流,而放大滤波电路的输入信号为电压,因而串连一个10的电阻在互感器的输出端。2.2.2 信号放大器的设计有必要进行信号放大因为从互感器模块最大的输出电压100mV。由于来自传感器的信号通常都是伴随着较大的共模电压,因此一般采用差动输入运算放大器抑制它,但是需要完整平衡对称的外接输入电阻,运算放大器具有理想的特性。否则,该放大器将有共模输出,其大小既与运算放大器本身的共模抑制比有关,又与外接电阻的对称精度有关。通用运算放大器共模抑制比为80dB,而几个运算放大器共模抑制比可达120dB。在一般情况下,该使用具有高
24、共模抑制比的三运算放大器。这就是测量放大器,它可以抑制包括静电、电磁耦合、工频的共模干扰。三运算放大器构成两级电路,第一级是两个同相放大器,具有很高的输入阻抗。第二级是差动减法电路,将双端输入信号转换为单端输出。我们可以使用信号放大器如AD620等,具有低失调电压,高稳定性,高输入阻抗和低输出阻抗等特点。可调放大,可以根据8端和1端之间的电阻,计算出其放大的倍数: (2-2)如果需要放大100倍,可以算出: (2-3)2.2.3 滤波器的设计本系统中,电机故障的最大频率为212Hz,因此,采用低通滤波器,设置其截至频率为400 Hz,通带内的放大系数,阻尼系数 6。它的标准的传递函数是: (2
25、-4)2.2.4 A/D模块的设计ADC的种类很多,其特性各异,最重要的是明确目的从中选择适当的ADC,这样才能选择性价比高的,性能合适ADC。ADC的主要技术指标是:工作环境;输入电压范围;数字输出特性;供电电源;输入电阻;转换时间;分辨率7。而要转换的电压标准是:供电电源为 15V电源,转换电压10V+10V之间,其分辨率为0.5mV,采样频率为2048 赫兹,即488S采样一次。根据上述要求,经过反复比较,选择AD1674片。AD1674的控制线,可以控制为8或12位转换器。当其是单片型12位的逐次逼近型A / D转换器时,其转换精度为0.024%,转换时间的典型值为10S(最大15S)
26、,采样频率为100kHz。由于该芯片的量程可变,共有四种选择,我们可以选择10V电压范围。此芯片还具有三态输出缓冲电路,可直接与8或12的各种典型位芯片连接。无需额外的逻辑接口电路,并且能够和CMOS和TTL兼容。它可以满足本设计的要求。由于AD1674片内有时针,故无须外加时钟信号,该电路采用的是双极性输入,对10V 的信号进行转换,高8位从D11D4之间输出,低4位从D3D0之间输出,并直接和单片机的数据总线相连。为了实现启动A/D和转换结果的读出,AD1674的片选CS信号有74LS138提供,而CE信号由CPU的WR和RD经一级与非门提3换完成时,下跳沿引起外部中断INT0.由中断子程
27、序读取转换数据。2.2.5 单片机最小系统模块的设计 单片机最小应用系统包单片机的时钟电路和复位电路,同时由于AT89S52内部没有程序存储器ROM,故其外围电路必须扩展EPROM,并且使用地址锁存器74LS373锁存地址,以实现数据地址复用。 2.2.6 AT89S52及其外围电路的设计AT89S52是整个系统的核心,它控制AD1674的工作,并负责数据的查询,查询的结果被暂时存储在数据存储器,并定时发送数据到上位机,可以说AT89S52是整个系统的大脑。而AT89S52性能优异,它能准确地完成任务。其主要特点如下:AT89S52包括一个8位的cpu,21个特殊功能寄存器(SFR),1个全双
28、工串行口,4个8位并行I / O端口,2个16位的定时器,256字节的RAM,但数据存储需要SRAM芯片的扩展。根据系统的要求,设计如下。 2.2.7 串口设计目前流行的绝大多数的单片机都具有一个或多个UART串口。总线格式具体包括RS-485,RS - 422,RS-232,和4 10mA电流环。RS-232是最广泛使用的串行总线标准,其目的是实现数据通信设备DCE和数据终端设备DTE之间的数据通信,但在传输距离和抗干扰上没有太多的考虑。RS-232的接收和发送是对地而言的,采用了不平衡传输方式,所以最大传输距离和最大速度的标准被限定在15m和9200bits之间,从机械的特点来看,它包括标
29、准的25针即简化的9引脚排列。RS-232规定的电平和通用微处理器一般是不一样的,因此,必须进行电平转换,本装置使用MAX232和ICL单5V的电压驱动转换芯片。2.2.8 按键接口电路的设计键盘是有4个按键组成的矩阵开关,它是简单的输入设备,通过键盘输入指令或数据,实现人机对话。可以实现自动采集,自动定时和自动传输,为了节省硬件,通常采用非编码键盘,即8279。8279是一个通用的显示接口芯片和可编程键盘,使用8279个可自动实现识别键盘上的键号,并实现对键盘和显示器的扫描,可以减少对键盘CPU的运行时间,从而降低了CPU的负担,并且显示稳定,简单的程序,可以避免误操作。单片机采用中断扫描方
30、式对它进行控制。 从而提高CPU的利用率,在键盘上按键闭合时产生中断,从而CPU响应中断并执行中断服务程序,判别键盘上的键,并作出相应的处理8。2.2.9 SRAM接口设计AT89S52单片机存储器的扩展,主要包括外部数据存储器的扩展和程序存储器的扩展。因为AT89S52型单片机内部含有8K-byte FLASH EPROM程序存储器,因此,无需用外部扩展程序存储器。由于AT89S52单片机内部有仅有128个字节的RAM,对于一般而又简单的应用场合,已完全足够了,但是,因无法存放本装置2秒内采集的8K的数据,所以必须扩展。本检测系统采用芯片6116。6116是2KB*8位的静态随机存储器芯片,
31、采用CMOS工艺制造,单一的+5V电源供电,双列直插式封装,24脚封装。2.3 本章总结本章主要是设计故障检测系统的硬件。在设计时首先就是根据系统要求进行可行性分析,包括系统的精度,功能,工作条件进行全面的分析。系统主要是功能就是完成对电机电流的数据采集,接下来就是器件的选择。市场上各类器件种类都很多,如何在满足要求的情况下,尽可能的降低成本,这是一个值得反复研究的问题,只有通过反复的市场调查,掌握尽可能多的信息,才可能做出最好的选择。原理图的设计是这章的重点,在连接器件时,就应充分考虑系统的要求和具体的每个芯片的特征,每个芯片在不同的要求下,其外围电路是不同的,特别是芯片AT89S51和AD
32、1674。7哈尔滨商业大学毕业设计(论文)3 电流检测装置软件的设计3 电流检测装置软件的设计3.1 引言软件设计必须和硬件的设计结合进行,在软件的设计时,应考虑以下几点:软件的需求分析需求分析是把系统的要求和硬件资源的信息加以分析和提炼,最后在性能和功能上加以描述,采用“自顶向下逐层分解”的方式。把复杂的系统进行合理的逐层分解,直至每个子系统被清楚地表达和描述。软件设计软件的设计就是把软件的需求变成具体的设计方案的过程,结构化模块设计根据上述的软件需求分析,导出软件模块,得到软件模块结构,包括模块之间的接口定义。软件设计的成功时软件设计说明书,他主要包括两部分内容:一是模块结构(指出系统由那
33、些模块组成和模块之间的调用关系),二是模块的功能说明(指出每个模块的输入,输出以及模块的功能)。软件编制软件编制是在软件设计和硬件资源合理分配的基础上,由程序设计语言把模块结构转换成计算机能够接受的形式,即具体的程序编制。软件测试软件测试是保证软件质量的关键,它是对需求分析,设计和编码的最后复审。软件测试,纠错,和软件的可靠性三者密.不可分。测试是为了发现错误,纠错是诊断已发现的错误,并且改正这些错误。可靠性是衡量测试和纠错结果的基准,一系列全面的测试是软件可靠性的唯一保证。3.2 中断的概念CPU对外界异步事件的一种响应方法。在执行程序的过程中,由于某种外界的原因,必须打断当前的程序,而去执
34、行相应的处理程序,待处理结束后,再回来继续执行被终止的程序。这个过程叫中断。相当于有一个独立于CPU的事件管理机制,只在事件发生后并且满足CPU响应条件,才由CPU予以处理,从一个侧面看,相当于并行工作。从中断的定义可以看到中断应具备中断源、中断响应、中断返回三个要素。中断源发出中断请求,单片机对中断请求进行响应,当中断响应完成后应进行中断返回,返回被中断的地方继续执行原来被中断的程序。3.3 软件的编制 软件将由下面几个模块组成: 主程序 定时中断子程序 按键中断子程序 中断查询子程序 中断传送子程序由上面的分析可知软件一共有五大模块,一个是主程序,其他四个均是中断子程序9。单片机上电后,首
35、先进行初始化,调用初始化程序,将各个相关部分初始化,便于以后程序的真确执行。单片机一共有五个中断源,本系统将采用其中的四个即:外部中断INT0和INT1,定时器中断T0,和串口中断TI10。系统具体的各种功能将在中断子程序的控制下,由硬件完成。下面将各模块具体的设计内容简述如下。3.4 汇编语言的特点 在汇编语言中,每一条用符号来表示的汇编指令与计算机机器指令一一对应;记忆难度大大减少了,不仅易于检查和修改程序错误,而且指令、数据的存放位置可以由计算机自动分配。用汇编语言编写的程序称为源程序,计算机不能直接识别和处理源程序,必须通过某种方法将它翻译成为计算机能够理解并执行的机器语言,执行这个翻
36、译工作的程序称为汇编程序。 为了解决使用机器语言编写应用程序所带来的一系列问题,人们首先想到了使用助记符号来代替不容易记忆的机器指令。这种助记符号来表示计算机指令的语言称为符号语言,也称汇编语言。 使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、烦琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。 汇编语言针对不同的操作系统平台,不同的微控制器,指令都是完全不同的,但是汇编语言是针对专门的控制器的,所以运行速度可以
37、精确到一个指令周期。汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。汇编语言编写代码实时性强,能够直接控制硬件的工作状态,其长处在于编写高效且需要对机器硬件精确控制的程序。虽然C语言是最普遍的一种高级语言,但不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。如果对这些特性29不了解,那调试起来就有的烦了,到头来可能还不如用汇编来的快。3.5 软件的功能分析根据系统要求,分析可知软件必须能实现下面5种功能;初始化定时功能 由于采样频率已定,所以每488s必须采样一次。软件的定时功能保证每488s引起一次中断,由中断子程序完成采样。查询功能当采样完成
38、,采集的数据必须存入数据存储器,以备将来的查询,这个任务由查询功能完成,将数据读入外部数据存储器。传送功能单数据存储器存满后,应及时地将数据送至上位机进行处理,传送频率不能太小,否则系统的实时性就会受到影响,不能及时地发现电动机的故障。按键检测功能当由8279扩展的键盘中有键按下时,CPU能及时地识别按键,并做出相应的处理11。3.6 系统的主程序流程图主程序主要的任务是完成程序的初始化,然后设立一个死循环等待中断到来。其流程如图3-1所示。初始化模块:中断允许和中断优先级的设置:单片机有五个中断,两个中断优先级。按键是人机交互的平台,当有按键按下时,应马上执行相应的程序,所以外部中断0的优先
39、级最高。而定时器控制AD1674的工作,一旦启动系统,系统开始工作,为了保证采集数据的连续性和正确性,就不能随便停止AD1674的采样,所以定时器的中断T0也应是高优先级。而外部中断1和串行口中断TI可设为低优先级。定时器/计数器的初始化:将定时器/计数器的工作模式设为定时器模式,工作方式设为方式2,即自动恢复初值的8位定时器。它对机器周期进行计数,由于采用12M的晶振,机器周期为2S,而采样频率为2048Hz,即488S采样一次,所以定时器计244个数时溢出,定时器的初值应设为12。当溢出时,置1溢出标志位TF0,并自动将TH1中的常数送至TL0,重新开始计数。CPU接受中断请求,执行T0中
40、断子程序。串行口初始化:串行口有四种工作方式,而在本系统中将采用方式2。此时串行口为9位异步通讯接口。发送数据时,数据由TXD端输出,发送一帧信息为11位,一位起始位,8位数据位,一位停止位。附加的第九位数据即SCON中的TB8的值,可由软件置为1或0,可以作为奇偶校检位。在2发送中断子程序中,以TB8为奇偶效检位,处理方法是在数据送至累加器A中时,将奇偶标志位写入TB8中,再把数据送至SBUF中,然后一起发送。此时的波特率计算公式为:方式2波特率 键盘初始化:8279是通用的可编程键盘和显示器接口芯片,利用8279可实现对键盘和显示器的自动扫描,并识别键盘上的键号,不仅可以大大减少CPU对键
41、盘的操作时间,从而减轻CPU的负担。而且还可以对8279进行初始化,以满足不同的要求。首先8279需要固定的100KHz的内部定时信号,但是8279的输入时钟不是固定的。在本系统中,AT89S52的晶振频率12M,ALE脚的时钟频率为1M,所以必须对输入8279的时钟信号ALE进行10分频。 开始定时器/计数器初始化为定时器模式中断允许,中断优先级设置键盘初始化串口设为工作方式2检测中断图3-1 主程序流程图对键盘工作方式进行设定,键盘一共有8种工作方式,本系统选用编码扫描键盘,双键锁定。当然由于扩张的键数较少,完全可以采用译码扫描方式,并且还可以节省一个译码器。采用双键锁定可以避免错误的操作
42、信息干扰系统。3.7 定时中断子程序定时中断子程序是当定时器溢出时所引起的中断程序,其主要功能是给AD1674下达开始转换的命令,AD1674接到转换命令后马上进行AD转换。其流程图如图3-2所示。 T0中断保护现场启动AD转换退出现场,中断返回 图3-2 T0中断子程序这个模块是相对简单的,只要给AD1674转换启动命令即可。 AD1674的地址空间是40004001,在这一过程中,只要是数据写在4000或4001的地址中,就是选择AD1674,AD1674立即开始转换。程序如下:INTT0: PUSH PSW PUSH ACC PUSH DPH PUSH DPL MOV DPTR, #4000H CLR A MOVX DPTR , A POP DPL POP DPH POP ACC POP PSW RETI 3.8 按键中断子程序8279自动扫描键盘,当有键按下时,锁存器锁存RL0RL7的键输入信号,检测闭合键,去处抖动,将键输入的数据写入到先入先出(FIFO)存储器中。系统根据按键的不同,进行不同的处理。当按键1键按下时,开中断,允许AD1674开始转换;当按键2键按下,关闭中断,AD1674将不工作;当3键按下,关闭串口中断,停止数据传输到PC。其程序流程图如图3-3所示。 当一个键按下时,CPU马上对应相应中断请求