单片机气体流量测量系统.doc_第1页
单片机气体流量测量系统.doc_第2页
单片机气体流量测量系统.doc_第3页
单片机气体流量测量系统.doc_第4页
单片机气体流量测量系统.doc_第5页
免费预览已结束,剩余36页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东华理工大学长江学院毕业设计 摘要东华理工大学长江学院毕业设计题 目 87C52单片机气体流量测量系统(软件)英文题目 87C752Microcontroller gas Flow measurement system 学生姓名 刘 雁 雄 专 业 自 动 化 班 级 06312113 指导老师 肖静 职位 实验师 二零一零年1摘 要气体流量测量仪表在工业和科学上都有重要的意义。流量测量是一门迅速发展的技术,为了满足各行各业、各种工况的各种流体的流量测量需要,仪表研究机构研究开发了各种原理的流量计,制造厂每年都有新型流量计供应市场。流量计是工业测量中重要的仪表之一。需要测量流量的气体种类繁多,其中最常见的空气、城市煤气、天然气和组分变化的气体。气体流量是指单位时间内传送体积,单位为“立方英尺/分”(cubic volume per minute),简称CPM。测量仪表不断的将所测得的气体流量与预编程设定值进行比较,一旦超过设定值,即发出报警信号,以便进行紧急处理。气体流量的设定值可根据实际需要决定。为了准确计算出气流量,需要同时测量3个气体参数:速度、压力和温度。本系统采用87C752单片机为主要核心部件,应用各类传感器采集信号,经过模数转换测量气流量,最终用LED显示其测量结果,并进行实时检测。关键字:速度; 压力; 温度;87C752ABSTRACTDevice that measure gas flow is meaningful in the field of industry and science. Measuring gas flow is a rapidly developing technology. To meet the demands of all types measuring gas flow that suit for all works of life and every industrial circumstance, devices researching institute have researched and developed different devices that measures gas flow according to different theory. There is new type of device to meet the demands of market in factory every year. Device that measure gas is one of the important devices in industry. Lots of types gas need to measure such as air, gas in city, natural gas and gas with different ingredient. Gas flow refers to the amount of cubic volume within one minute, unit is cubic volume per minute, short name is CPM, the measuring devices compare the measured gas flow with pre-programmed settings, it would ring alarm signal and handle with the emergency as soon as the volume surpass the setting. The setting could be set according to the practical needs. To measure the volume correctly, three parameters need to be measured: speed, pressure, temperature. This system uses the 87C752SCM as its core composition and uses all kinds of sensors to collect signals, measure the gas flow through ADC, finally show the number on LED and conducted by monitoring.Key words: speed; pressure; temperature; 87C752 SCM Gas flow measuring devices system东华理工大学长江学院毕业设计 摘要目 录摘 要.IABSTRACT.II绪 论.11. 总体方案分析.21.1 研究的主要内容21、主要内容21.2 毕业设计要求21.3 系统设计原则31.4 方案论证31.5 方案论述31.6 系统设计原理框图42. 硬件分析.52.1 单片机的选型与应用52.2 温度传感器72.3压力传感器93 软件设计.113.1单片机的编程基本原则113.2编程环境选择113.2.1 汇编语言11优点与缺点及特点131 优点132 缺点133 特点133.2.2 C语言介绍141、C 语言特点:152、优点153、缺点173.3系统主流程设计173.4T1溢出中断函数193.5PWM函数213.6外部INTO中断函数213.7定时器TO溢出函数22结 论.24致 谢.25参考文献26附录一:程序清单.27附录二:硬件原理图.36绪 论流量与温度、压力、物位等的测量同为热工量测量,是工农业生产过程控制中的重要的测定参数之一。流量测量与人们的日常生活有着密不可分的关系。因此,作为流量测量的流量计,应用范围很广。其应用遍及钢铁、冶金、给水、排水、石油、化工、食品、医疗、环保、航空、航海、航天、农业灌溉等部门。就流量测量的目的和意义而言,使用流量计测量的一个目的是在生产过程中给管理者或控制系统提供流量参量的准确数值,以便做出合理地判断与调节,达到优良的控制,提高产品的质量与产量。流量测量的另一目的是从经济利益出发,为供需双方计量交接贸易的流体总量提供合理的贸易结算数值。利用流量计连续累积一段时间内的总量值,为贸易结算和总量控制提供科学的、可靠的流体总体积或总质量,我们称为“计量目的”。液化气、蒸汽、天然气、热量等产品和资源作为商品买卖,通过流量计能够为供需双方提供交易的依据。对于一个生产企业内部使用的资源和能源分配和管理,流量计量也是必不可少的手段。在节约资源和能源越来越为人们重视的今天流量计量能够为企业带来巨大的经济效益和社会效益。同时,在当今社会人们对赖以生存的地球、环境保护与污染治理意识日益加强。世界各国都把工业生产排放的污染气体、污水总量作为控制目标,由流量计给出科学的、可靠的总量数据,从而有效地对排放口进行管理与控制。东华理工大学长江学院毕业设计 总体方案分析1. 总体方案分析1.1 研究的主要内容1、主要内容如何通过单片机领域的知识应用于气流量测量的运行。通过所学到得硬件和软件技术解决实际的各部分功能,主要是气流量测量的功能。软件设计部分就是要设计出满足上述要求的程序以供系统调用。2、拟解决的关键问题如何节约成本,如何正确的判断气体测量仪表准确的测量气体流量值,以及程序流程图。3、预期的成果气流量测量仪表能准确的测量气体流量值。1.2 毕业设计要求毕业设计课题:87C752单片机气体流量测量系统(1)课题任务的主要内容和要求(包括原始数据、资料、技术参数、工作要求等)气流量测量在工业和科学上都有重要意义。气流量是指单位时间内传送的气体体积,单位为“立方英尺/分”,简称为CPM。以单片机为核心的测量仪表能够监测并显示气流量的实时数据,不断地将所测得的气体流量值与设定值进行比较,一旦超过设定值,即发出报警信号。在条件许可情况下模拟调试成功。设计要求:1用单片机同时测量3个气体参数:速度、压力、温度;2用3个7段LED连续显示气体的流量值;3采用按键来选择显示温度、压力、速度或设定值4可以自己增加功能(2)毕业设计(论文)课题成果的基本要求(包括毕业设计(论文)、图表、实物样品等)设计具体任务: 1、电路图2、软件图(表)3、设计计算书一份设计要求:1、硬件电路图用Protel DXP绘制,符合最新制图标准,表达完整,布局合理。2、注重系统设计的几大原则(安全可靠,操作维护方便,实时性强,通用性好,在满足使用的前提下,使产品性价比尽可以高)。(3)系统需求分析完整清楚;系统设计思路清晰,设计方案切实可行;计算正确可靠。避免冗长,反对抄袭。1.3 系统设计原则1、安全可靠首先要选用可靠的控制中枢,例如西门子S7-200系列,发展多年,已经形成了完善的供应链,在大量的生产现场使用,得到证明是PLC是目前最可靠实用的,再加上可靠的程序,将达到安全可靠的目的。2、操作方便通过操作面板操作,显示准确具体。3、通用性强系统设计时应考虑能适应不同的设备和各种不同设备和各种不同控制对象,并采用积木式结构,按照控制要求灵活构成系统。4、经济性好 使用现有的成熟技术,节约成本,开发简便1.4 方案论证1 可编程序控制器控制可编程序控制器(PLC)功能强,性价比高,硬件配套齐全,用户使用方便,性能稳定,运行可靠。编程简单易学,可靠性高,抗干扰能力强,系统设计安装调试工作量少。体积小,能耗低2 单片机系统控制单片机是程序存储控制,通常包括微处理器、存储器、输入输出口及其他功能部件。他们具有通过地址总线、数据总线和控制总线连接起来。通过输入/输出口线与外部设备及外围芯片相连目前普遍使用的是MCS-51系列单片机。但在设计时硬件和软件均要设计,抗干扰性能差,不通用,并且需要有接口电路与之配套,价格中等,制造较难,维修较容易。与PLC相比,它的特点是体积小、价格低(只要十几块甚至几块钱就能买到一片,而PLC动辄上千甚至更贵),但对运行环境的要求较高。目前主要用于家用电器等不太复杂的控制。对于小型比较简单的系统用单片机。综上所述,故选用单片机控制系统完成气流量仪表的设计1.5 方案论述一般情况下,仪表通过3个7段LED连续显示气体的流量值,同时单个CPM LED也被点亮,以表示测量值的单位。连续按下TEMP键时,7段LED显示温度值(单位0C),同时点亮单个TEM LED;松开TEMP键后,7段LED转换到显示压力值。 连续按下PSI键时,7段LED显示大气压值(单位为“磅/平方英尺”),同时点亮PSI LED;松开PSI键后,7段LED转换到显示气体流量值 按下SETPOINT键时,7段LED显示编程的气体流量设定值(单位为CPM),同时点亮单个SETPOINT LED;松开SETPOINT键后,7段LED转化到显示气体流量值。图1-1所示为气体流量测量仪表的前面板示意图图1-1 气体流量测量仪表的前面板示意图1.6 系统设计原理框图图1-2 原理框图37东华理工大学长江学院毕业设计 硬件分析2. 硬件分析根据总体设计方案中的框图对重要元器件做简要介绍2.1 单片机的选型与应用单片机,即微控制器(MCU)自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于MCU集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前己渗入到人们工作和生活的各个角落,几乎是“无处不在,无所不为”。MCU的应用领域己从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大的领域。就MCU本身来说,除了4位机和8位机仍然保有巨大的应用领域之外,各种新型的、高性能的机型也得到迅速发展。尽管目前单片机的品种很多,但其中最具典型性的当属Intel公司的MCS-51系列单片机系列。MCS-51是在MCS-48的基础上于80年代初发展起来的,虽然它仍然是8位的单片机,但其功能有很大的增强。此外它还具有品种全、兼容性强、软硬件资料丰富等特点:因此应用非常广泛,成为继MCS-48之后最重要的单片机品种。直到现在MCS-51仍不失为单片机中的主流机型。国内以Intel的MCS-51系列单片机应用最广。由于8位单片机的高性能价格比(如Z8系列的28600,80C51系列的80C31每片仅11.5美元),估计近十年内,8位单片机将仍是单片机中的主流机型。在8位单片机之后,16位单片机也有很大发展,例如1983年Intel公司推出的MCS-96系列单片机就是其中的典型代表。与MCS-51相比,MCS-6不但字长增加一倍,而且还具有4路或8路的10位A/D转换功能,此外,在其它性能方面也有一定的提高。在高档智能仪表、彩色复印机、录像机等应用领域,16位单片机大有用武之地,目前Intel的MCS-96系列单片机在国内已得到较好的应用。它必将以高性能的特点在国内得到大规模推广8。2.1.2 87C752单片机概述本系统采用87C752单片机为主要核心部件。它是一种体积小,价格低的80C51系列单片机。与其它8051单片机相比,其最大的差别就是它的内部总线不对外开放,既没有用于扩展外部程序存储器和数据存储器的并行扩展总线端口14。图2-5所示为87C752的引脚排列图。87C752片内包含有2K字节的EPROM程序存储器,64字节的RAM,2个8位I/O口P1和P3,1个5位I/O口P0,共有21根I/O口线,1个常数可自动重装的16位定时器/计数器,1个固定速率的定时器,7个中断源,1个中断优先级,5路8位A/D转换器,1路脉宽调制输出以及位方式的I2C总线接口。图2-1 87C752的引脚排列图2.1.3 87C752单片机原理与功能87C752单片机有一个8位计数器。计数范围从0到255,在每个机器周期都将8位计数器的计数值与比较寄存器的内容相比较,当计数值与比较寄存器的内容相等时,P0.4(PWM)输出高电平,在计数器计数到0时,P0 .4(PWM)输出低电平。脉冲的占空比由比较寄存器的内容所决定,其范围为01,可编程的分辨率为1/255。装入比较寄存器的值为0时,P0.4(PWM)输出连续高电平,装入比较寄存器的值为0FFH时,P0 4(PWM)输出连续低电平。通过置位特殊功能寄存器PWENA(PWM输出使能寄存器)中的PWE位(PWENA .0) 来允许PWM输出,允许PWM输出时,P0. 4口线的输出由强拉高电路所驱动。禁止PWM输出时,P0 .4表现为一般的I/O引脚特性。在禁止PWM输出时,计数器仍保持其计数状态。复位时,PWM被禁止,在掉电和空闲方式下,PWM输出高电平而计数器停止计数。PWM输出的重复频率由下式给定: fpwm=fosc/2 (1+PWMP) 255 (2-1)对于12MHz的晶振,fpwm在92Hz至23 .5kHz的范围之内。PWM输出的占空比(低高)为: 比较寄存器PWM的值/(255-比较寄存器PWM的值) (2-2)当比较寄存器PWM的值为255时。将导致PWM输出连续低电平。若允许PWM中断,则当PWM计数器溢出时将产生一个中断。为了使P0.4(PWM)口线作为一般的I/O口线使用,可以将特殊功能寄存器PWENA中的PWE位(PWENA .0)置为“0”,这时可通过允许PWM中断使PWM计数器仍可作为一个内部定时器使用。87C752中PWM的中断人口地址为0033E。87C752中定时器/计数器T0的操作与8051中T0、T1的方式2相同,但计数长度为16位,即它是一个计数初值可重新装入的16位定时器/计数器。其功能由特殊功能寄存器TCON控制。TCON可以位寻址,字节地址为88H。其中各位的意义如下:GATE=1,表示仅当INT0引脚为高电平且TR=1时,才允许T0计数。=0,表示只要TR=1就允许T0计数。C/T=1,以T0引脚上的输入脉冲作为计数信号。=0,以内部时钟脉冲作为计数信号。TF:T0计数溢出标志,溢出时置1,当CPU响应中断而转向T0溢出中断处理入口时清零,也可以用软件清零。TR:该位为1时允许T0计数,为0时禁止T0计数。IE0:外部中断INT0的中断请求标志,当检测到INT0引脚上的电平发生负跳变时。该位被置1。IT0=1,表示INT0由负跳变触发。 =0,表示INT0由低电平触发。IE1和IT1与lE0和IT0的功能相似,只是它们控制的是外部中断INTl。由此可见,这些标志位的功能与8051中相应标志位的功能是一致的,只是将定时器的工作方式和状态控制标志结合到一个寄存器之中。87C752中还有一个通讯监视定时器T1,它专门用于I2c总线通讯。当不使用I2c总线时,TI可以作为固定溢出率的定时器用,这时T1的溢出周期大约为1024个机器周期。一个机器周期为12个时钟周期,因此,如果采用12MHz的晶振,则TI大约每隔1ms发生一次溢出。将I2C寄存器12CFG中的TIRUN位(I2CFG. 4)置1,其余各位置0即为不使用I2c总线而将定时器T1用作固定溢出率的定时器。 87C752中定时器TI的溢出中断入口地址为001BH。另外,87C752中I2C总线采用所谓“位方式”进行数据传送。87C752中只有一个中断允许寄存器IE,没有中断优先级寄存器,即它只有一个中断优先级。IE的字节地址为A8H。2.2 温度传感器在现代检测技术中,传感器技术和计算机技术是必不可少的两个方面。主机对数据有很强的处理能力,但对非电量和模拟信号是无能为力的。如果没有各种精确可靠的传感器去检测非电量和模拟信号并提供真实的信息,那么计算机也无法发挥其应有的作用。传感器把非电量转换为电量,经过放大处理后,转换为数字量输入计算机,由计算机对信号进行分析处理。从而传感器技术与计算机技术结合起来,对自动化和信息化起重要作用。通常用来测量温度的元器件有热电偶、金属热电阻和半导体热敏元件。在日常生产、生活中,温度是一个重要而普遍的测量控制参数,其测量控制一般采用各式各样形态的温度传感器。常用的温度传感器测温范围一般为:热电偶(-1842300)、热电阻(-200850)、热敏电阻(-55300)、半导体(-55150)。根据温度传感器输出方式及接口方式的不同,可分为模拟和数字温度传感器。模拟温度传感器输出模拟信号,必须经过专门的接口电路,转换成数字信号后才能由微处理器进行处理。数字温度传感器输出数字信号,一般只需少量外部元件就可直接连接至微处理器进行处理11。温度是一个基本的物理量,自然界中的一切过程无不与温度密切相关。温度传感器是最早开发,应用最广的一类。温度传感器按传感器与被测介质的接触方式可分为两大类:一类是接触式温度传感器,一类是非接触式温度传感器。接触式温度传感器的测温元件与被测对象要有良好的热接触,通过热传导及对流原理达到热平衡。本系统采用美国Analog公司生产的AD590是电流输出型温度传感器。其测温范围为摄氏-50度至+150度,温度每变化1K,输出电流变化1A;输出零点为-273.15度,即:0K氏度,在摄氏0度时,输出约为273.2微安,摄氏100度时,输出约为373.2微安,具有良好的线性度;除此之外还具有灵敏度高、无需补偿、热容量小、抗干扰能力强、可远距离测温且使用方便等优点。所以系统中选用了AD590来测量车内外的温度。由于AD590为电流输出元件,在测温时,应将电流转换成电压。采集电路如图3-1所示。+15V直流电压经稳压二极管Z1稳为10V直流,作为AD590的激励源Vs,AD590的输出电流在R1和W1上产生压降,当温度变化时AD590输出电流变化,从而使运算放大器的输入端的电压变化,即放大器OP07的输出电压随温度变化而变化,其中W1用来调零,W2用来调满刻度。图2-2 温度信号采样电路图2.3压力传感器压力传感器是工业实践中最为常用的一种传感器,而我们通常使用的压力传感器主要是利用压电效应制造而成的,这样的传感器也称为压电传感器。我们知道,晶体是各向异性的,非晶体是各向同性的。某些晶体介质,当沿着一定方向受到机械力作用发生变形时,就产生了极化效应;当机械力撤掉之后,又会重新回到不带电的状态,也就是受到压力的时候,某些晶体可能产生出电的效应,这就是所谓的极化效应。科学家就是根据这个效应研制出了压力传感器。 压电传感器中主要使用的压电材料包括有石英、酒石酸钾钠和磷酸二氢胺。其中石英(二氧化硅)是一种天然晶体,压电效应就是在这种晶体中发现的,在一定的温度范围之内,压电性质一直存在,但温度超过这个范围之后,压电性质完全消失(这个高温就是所谓的“居里点”)。由于随着应力的变化电场变化微小(也就说压电系数比较低),所以石英逐渐被其他的压电晶体所替代。而酒石酸钾钠具有很大的压电灵敏度和压电系数,但是它只能在室温和湿度比较低的环境下才能够应用。磷酸二氢胺属于人造晶体,能够承受高温和相当高的湿度,所以已经得到了广泛的应用。 在现在压电效应也应用在多晶体上,比如现在的压电陶瓷,包括钛酸钡压电陶瓷、PZT、铌酸盐系压电陶瓷、铌镁酸铅压电陶瓷等等。 压电效应是压电传感器的主要工作原理,压电传感器不能用于静态测量,因为经过外力作用后的电荷,只有在回路具有无限大的输入阻抗时才得到保存。实际的情况不是这样的,所以这决定了压电传感器只能够测量动态的应力。本系统采用HoneyWell公司的24PC系列硅压力传感器,此系列压力传感器应用硅压阻技术,用于检测绝压、差压和表压,量程00.5psi、01psi、05psi、0250psi可选,端口形式多样,工作温度范围-4085,无放大,不带温度补偿。其主要特点如下:1)专利的导电密封弹性连接系统消除了传统的导线粘结和带状连接,增加了介质的测量兼容性;2)专利的Snap-together 结构导致了多样化的测量孔形式;3)2mA 恒流供电可以显著的改善灵敏度温飘;4)可以测量负压、正压、绝压。24PC系列硅压力传感器的技术规格如表2-3所示。表2-3 24PC系列的技术规格参 数最 小典 型最 大单 位反应时间01.0ms零点偏置-300+30mv输入阻抗-5.0-ohms输出阻抗-5.0-ohms重复性&迟滞-0.15-%满量程全年漂移-0.5-%满量程24PC系列硅压力传感器的引脚编号如下(见图2-4引脚编号):1 脚:Vs(+)-2 脚:输出(+)3 脚:接地(-)4 脚:输出(-)图2-4引脚编号东华理工大学长江学院毕业设计 软件设计3 软件设计3.1单片机的编程基本原则任何一种控制系统都是为了实现被控对象的工艺要求,以提高生产效率和产品质量。因此,在设计单片机控制系统时,应遵循以下基本原则:1.最大限度地满足被控对象的控制要求充分发挥单片机的功能,最大限度地满足被控对象的控制要求,是设计单片机控制系统的首要前提,这也是设计中最重要的一条原则。这就要求设计人员在设计前就要深入现场进行调查研究,收集控制现场的资料,收集相关先进的国内、国外资料。同时要注意和现场的工程管理人员、工程技术人员、现场操作人员紧密配合,拟定控制方案,共同解决设计中的重点问题和疑难问题。2.保证单片机控制系统安全可靠保证单片机控制系统能够长期安全、可靠、稳定运行,是设计控制系统的重要原则。这就要求设计者在系统设计、元器件选择、软件编程上要全面考虑,以确保控制系统安全可靠。例如:应该保证单片机程序不仅在正常条件下运行,而且在非正常情况下(如突然掉电再上电、按钮按错等),也能正常工作。3.力求简单、经济、使用及维修方便一个新的控制工程固然能提高产品的质量和数量,带来巨大的经济效益和社会效益,但新工程的投入、技术的培训、设备的维护也将导致运行资金的增加。因此,在满足控制要求的前提下,一方面要注意不断地扩大工程的效益,另一方面也要注意不断地降低工程的成本。这就要求设计者不仅应该使控制系统简单、经济,而且要使控制系统的使用和维护方便、成本低,不宜盲目追求自动化和高指标。4.适应发展的需要由于技术的不断发展,控制系统的要求也将会不断地提高,设计时要适当考虑到今后控制系统发展和完善的需要。这就要求在选择单片机、输入/输出模块、I/O口和内存容量时,要适当留有裕量,以满足今后生产的发展和工艺的改进。3.2编程环境选择3.2.1 汇编语言汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语 图3-1汇编语言言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。 大多数情况下Linux程序员不需要使用汇编语言,因为即便是硬件驱动这样的底层程序在Linux操作系统中也可以用完全用C语言来实现,再加上GCC这一优秀的编译器目前已经能够对最终生成的代码进行很好的优化,的确有足够的理由让我们可以暂时将汇编语言抛在一边了。但实际情况是Linux程序员有时还是需要使用汇编,或者不得不使用汇编,理由很简单:精简、高效和libc无关性。假设要移植Linux到某一特定的嵌入式硬件环境下,首先必然面临如何减少系统大小、提高执行效率等问题,此时或许只有汇编语言能帮上忙了。 优点与缺点及特点1 优点汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点: 图3-2二进制码(1)能够直接访问与硬件相关的存储器或I/O端口; (2)能够不受编译器的限制,对生成的二进制代码进行完全的控制; (3)能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁; (4)能够根据特定的应用对代码做最佳的优化,提高运行速度; (5)能够最大限度地发挥硬件的功能。2 缺点同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点: (1)编写的代码非常难懂,不好维护; (2)很容易产生bug,难于调试; (3)只能针对特定的体系结构和处理器进行优化; (4)开发效率很低,时间长且单调。 3 特点汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 汇编语言的特点: 1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。 2.保持了机器语言的优点,具有直接和简捷的特点。 3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。 4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 5.经常与高级语言配合使用,应用十分广泛。 对于不同型号的计算机,有着不同的结构的汇编语言 汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。 汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。 汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的汇编程序的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。 汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。 3.2.2 C语言介绍C语言是Combined Language(组合语言)的中英混合简称。这句话头一次听说,不知道作者是从哪看到的,我学编程这么多年,头一次听说C语言是如此定义的,请不要误人子弟。望改正! C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。 1、C 语言特点:1. C是中级语言。 它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2.C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。 C语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。 5.C语言文件由数据序列组成,可以构成二进制文件或文本文件 常用的C语言IDE(集成开发环境)有Microsoft Visual C+,Dev-C+,Code:Blocks,Borland C+,Watcom C+ ,Borland C+ Builder,GNU DJGPP C+ ,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free, win-tc 等等 对于一个初学者,Microsoft Visual C+是一个比较好的软件。界面友好,功能强大,调试也很方便。 2、优点1 简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2 运算符丰富C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 3 数据结构丰富C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 4 C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 5 C语法限制不太严格,程序设计自由度大虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 6 C语言允许直接访问物理地址,对硬件进行操作由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。生成目标代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低1020%。7 C语言适用范围大,可移植性好, C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。 3、缺点1. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C+的一大区别。 2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。 C语言指针 指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C+在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性,适合初学者使用。 结构特点1.一个C语言源程序可以由一个或多个源文件组成。 2.每个源文件可由一个或多个函数组成。 3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。 4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。 5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。 6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。综上所述并进行比较,气流量测量仪表的软件程序用C51编写。整个程序由4个中断函数(前台程序)和一个主函数(后台程序)所组成。87C752单片机复位后,进入主程序并循环执行之。当产生中断时,进入相应的中断函数程序执行。主程序与中断函数程序之间通过参数传递完成相互之间的通信联络。3.3系统主流程设计图3-3是主函数main()的流程。上电复位后即进入main()函数循环执行,在main()函数中完成3个主要任务:第一是根据测量得到的温度和压力值进行气流量的补偿计算;第二是将计算得到的气流量值与设定值进行比较,并根据比较结果值决定报警电路开或关;第三检查“更新标志”状态(其状态在read_switch()中断函数中改变),并根据其状态决定是否进行显示数据的更新。Y显示气压值(PSI)显示设定值(CFM)NYSE1标志职位?NN气流量30?显示气流量(CFM)显示“EEE”NSEL0标志职位?SEL1标志职位?YNY清楚更新变量标志NOFLOW标志职位显示“0.00”NYNY对流量进行温度补偿读入气压值对流量进行压力补偿读入流量设定值流量值设定值更新变量标志置位?报警电路导通引脚功能及变量初始化计算基本流量读入温度值STARTUR751上点位复位Main()函数图3-3 主函数流程图3.4T1溢出中断函数测量仪表部使用87C752中I2C总线,因此将内部定时器T1用作具有固定溢出率的监视定时器。单片机的晶振为12MHZ时,T1将以大约1000HZ的频率产生溢出中断。Multiplex()是T1溢出中断函数,利用T1所产生的固定速率中断,实现仪表的显示刷新。在该函数建立了一个被点亮LED的显示标志,每次进入T1溢出中断时,根据该显示标志熄灭前一个被点亮的LED,将显示数据写入当前LED并将其点亮,同时将显示指向下一个LED。由于T1溢出中断的频率是固定的,从而实现各个LED显示数据的轮流刷心。图3-4为multiplex()函数的流程。图3-4 multiplex()函数流程YYY显示标志1熄灭7段LED CR13设置单个LED数据点亮单个LED中断返回显示标志=2?显示标志=3?显示标志=1?TMR1中断显示标志=0?Multiplex()函数熄灭单个LED设置CR15数据点亮7段LEDCR15 显示标志=2熄灭7段LED R15设置CR14数据点亮7段LEDCR14显示标志=3熄灭7段LEDCR14设置CR13数据点亮7段LEDCR13显示标志=0NNNN3.5PWM函数87C752内部的pwm用来产生92hz的周期中断。Read_switch()是pwm中断函数。在该函数中对pwm的中断次数进行计数,pwm中断满32次时,置位“更新变量”。每当主函数检测到这个“更新变量”被置位时,即对显示数据进行更新,同时将“更新变量”复位为0。这样大约每隔33ms进行一次显示数据更新,可以消除显示闪烁和按键抖动。图3-5为read_switch()函数的流程。图3-5 read-switch()函数的流程NYread-switch()函数PWM中断REFRES=REFRESH+1REFRESH=32?位置更新变量REFRESH=0中断返回3.6外部INTO中断函数这是87

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论