版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汽车故障诊断与检测技术金肯学院汽车工程系
吕黎明第六节汽车单片机程序设计原理1.基础学问流程图符号、程序设计步骤、源程序汇编、伪指令及程序的结构2.程序实例空燃比反馈修正限制原理步进电动机怠速阀限制原理在了解MCS-51单片机的硬件结构和指令系统后,可以利用它们去完成人们期望的工作,即程序设计工作。程序就是为了计算某一算式或限制某一工作的若干指令的有序集合。单片机的全部工作都要靠执行程序来完成。一、汇编语言程序设计1.汇编语言程序设计步骤(1)分析问题,确定算法:这是程序设计中最重要的一步。设计人员必需细致、细致地考虑系统须要解决的各种问题以及将来系统功能的进一步扩展,明确知道程序要解决的问题和接收、处理、发送的数据范围以及运用什么样的算法。(2)画流程图:流程图是用各种图形、符号、有向线段来直观地表示程序执行的步骤和依次。它可使人们通过流程图的基本线索,对全局有完整的了解。
图1-33流程图常用图形符号(3)支配存储单元:确定程序存储区和数据存储区的起始地址和区域大小。(4)编写源程序代码:依据流程图用汇编语言指令实现流程图的每一个步骤,从而编写出汇编语言的源程序。(5)调试、测试程序:调试是利用仿真器等开发工具,接受单步、设断点、连续运行等方法解除程序中的错误,完善程序的功能。2.源程序的汇编①手工汇编手工汇编是通过手工方式查指令编码表,逐个把助记符指令“翻译”成机器码的过程。②机器汇编机器汇编是在机器上运用汇编程序自动地进行源程序的汇编,最终得到机器码表示的目标程序。3.伪指令伪指令是PC机将源程序汇编成目标程序所须要的指令,而不是单片机的指令,相对单片机指令而言称其为伪指令。伪指令用于告知汇编程序如何进行汇编的指令,它既不限制单片机的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。伪指令主要用来指定程序或数据的起始位置,给出一些连续存放数据的地址或为中间运算结果保留一部分存储空间以及表示源程序结束等等。不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法是相像的。下面介绍几种常用的伪指令。(1)设置目标程序起始地址伪指令ORG格式:ORG16位地址(2)结束汇编伪指令END格式:END(3)赋值伪指令EQU格式:标号:EQU项。项可以是常数、地址标号或表达式。例如:TAB1:EQU1000HTAB2:EQU2000H汇编后TAB1、TAB2分别具有值1000H、2000H。用EQU伪指令对某标号赋值后,该标号的值在整个程序中不能再变更。(4)定义字节伪指令DB格式:标号:DB项或项表。把项或项表中的数据存入程序存储器从标号起先的连续地址单元中。例如:ORG2000HTAB1:DB10H,23H,……;TAB1是标号;10H,23H,……是数据汇编后:(2000H)=10H,(2001H)=23H,……(5)定义字伪指令DW格式:标号:DW项或项表DW伪指令与DB相像,但用于定义字的内容。汇编时,机器自动按高8位在先,低8位在后的格式排列。(6)预留存储区伪指令DS格式:标号:DS表达式功能是从标号指定单元起先,定义一个大小为表达式的值的存储区,以备后用。例如:ORG3000HDS19HDB10H,11H,……汇编后从3000H起先,预留19H个字节的内存单元,即3000H~3018H,然后从3019H起先,依据下一条定义字节伪指令DB起先赋值,即(3009H)=10H,(300AH)=11H,……(7)位地址定义伪指令BIT格式:标号:BIT位地址功能是将位地址赐予BIT前面的标号,经赋值后可用该标号代替BIT后面的位地址。例如:M1BIT01HM2BITP1.0汇编后,01H和P1.0的位地址90H分别赋给了M1和M2。
4.基本结构程序汇编语言程序主要由依次结构程序、分支结构程序和循环结构程序(1)依次结构程序依次程序是最基本的程序。它是依据指令排列的先后依次依次执行,每条指令都必需执行,且只执行一遍。依次程序设计一般比较单一、简洁,常常作为困难程序的一部分。(2)分支程序在程序设计过程中,有时要依据不同状况执行不同功能的程序段,这种依据程序要求而变更程序执行依次的设计,称为分支程序设计。分支程序分为无条件分支程序和条件分支程序两类。无条件分支程序中含有LJMP、AJMP等无条件转移指令,执行这类指令,程序将无条件转移;条件分支程序中含有判零、比较、位限制等条件转移指令。(3)循环程序在程序中包含重复执行的程序段称为循环程序。循环程序简洁,占用内存少,运行效率高。循环程序常见的两种结构:一是先执行,后推断,这种结构至少要执行1次;另一种是先推断,后执行,这种结构可以1次也不执行。循环程序通常由3部分组成:初始化:赋循环次数初值、地址指针初值等。循环处理:完成主要任务的程序段。循环限制:修改循环次数、地址指针等,限制循环是否结束。二、空燃比反馈修正限制原理程序发动机起动后的基本喷油时间限制主要由发动机转速和负荷量(进气量)确定。为了使发动机在不同工况下,都处于最佳状态,还有以下主要的修正限制。其中空燃比反馈修正限制是利用氧传感器信号来修正喷油脉冲宽度。基本喷油时间限制启动后加浓限制启动后喷油限制暖机加浓限制怠速稳定限制修正限制进气温度修正限制空燃比反馈修正限制功率加大修正限制蓄电池电压修正限制自学习修正限制氧传感器动态电压信号xxH值与设计目标值yyH比较,有以下3种状况须要处理:xxH值>yyH:表示喷油过浓,须要调用减小喷油子程序,执行后返回转移循环监测;xxH值<yyH:表示喷油过稀,须要调用增大喷油子程序,执行后返回转移循环监测xxH值=yyH:表示喷油在志向空燃比旁边,保持不变,转移循环监测利用“比较不相等转移指令CJNE”和“位条件转移指令JC”实现三分支推断。发动机整体限制是一个很大的程序,空燃比反馈修正限制程序只是其中一个程序段或子程序(有不同的设计方法),为了简便,设定这是一个相对独立程序。空燃比反馈修正限制程序流程图如图1-35所示(图中没有显示子程序)。图1-35空燃比反馈修正限制程序流程图从程序流程图可以看出,这是一个3分支结构程序,左分支程序保持喷油量不变,中间分支程序调用增大喷油子程序,右分支程序调用减小喷油子程序。子程序增大或减小1个变量的喷油时间参数后,要返回转移循环监测氧传感器不断传来的动态电压信号值xxH,看是否达到目标值。发动机在全部运行过程中,空燃比反馈修正限制程序始终在不断的循环监测氧传感器信号和修正喷油时间,使尾气排放达到环保要求。空燃比反馈修正限制程序如下:标号地址源程序注释LOOP:1954HMOVR1,#xxH;氧传感器动态信号xxH送R11956HCJNER1,#yyH,N2;R1内xxH≠yyH,转移N2(rel1=02H)xxH=yyH,不转移,顺接N1N1:1959HSJMPLOOP(rel2=F9H);转移LOOP循环监测N2:195BHJCN3(rel3=);xxH<yyH,CY=1,转移N4,xxH>yyH,CY=0,顺接N3N3:195DHLCALLL1;调用减小喷油子程序L11960HSJMPLOOP(rel4=);执行减小喷油后返回,转移循环监测N4:1962HLCALLL2;调用增大喷油子程序L21965HSJMPLOOP(rel5=);执行增大喷油后返回,转移循环监测程序中的地址偏移量rel计算如下:第2条指令的rel1=195BH-(1956H+3)=02H第3条指令的rel2=100H-∣1954H-(1959H+2)∣=100H-07H=F9H其它rel值由读者计算。三、步进电机怠速阀限制原理程序1.怠速限制原理怠速就是汽车发动后温度上升到正常温度,发动机处于空挡时稳定的最低转速。此时混合气燃烧所做的功,只是用以克服发动机的内部阻力。在运用汽车时,发动机怠速运转的时间约占30%,怠速转速的凹凸干脆影响燃油消耗和排放尾气。怠速过高,耗油量增加;怠速过低,发动机转速不稳,简洁熄火。怠速限制均接受发动机转速反馈闭环限制方式,即发动机转速传感器将发动机的实际转速和目标转速进行比较,依据比较的差值确定使发动机达到目标值的限制量,并通过执行机构对发动机怠速转速进行校正。步进电机式怠速限制阀由步进电机、阀杆、限制阀和阀座组成。转子的正转或反转运动经阀杆(丝杆)转换成向前或向后的直线伸缩运动,阀杆每旋转1圈,伸缩1个螺距;图1-36步进电机式怠速限制阀示意图2.怠速限制用步进电机目前应用怠速限制的步进电机多为永磁式,由发动机电控单元限制。目前应用怠速限制的步进电机多为永磁式,由发动机电控单元限制。图1-37为某种怠速限制阀所用步进电机定子与转子结构和相互作用示意图。定子由两个圆形爪极式铁芯相叠而组成,每个爪极式铁芯内有2个线圈,共有4个线圈;每个爪极式铁芯有16个爪极,两个铁芯错开相叠,形成32个爪极。转子是圆形永久磁铁,磁极方向与转子半径方向一样,共有16个(8对)磁极,图中只画出2个(1对)磁极。步进电机转动一圈须要32步,步距角为11.25°。步进电机的工作范围为0~125步。图1-37步进电动机定子与转子示意图图1-38为步进电机的限制电路图,由单片机的并行输入/输出P1端口的P1.0、P1.1、P1.2、P1.3分别限制步进电机的A相、B相、C相、D相线圈。共有4条相同的限制电路,限制电路由反相器、光电隔离器、复合放大电路、疼惜二极管组成。A相、B相、C相、D相分别通电时,对应产生的磁极对是C1、C2、C3、C4。例如A相线圈通电,产生4对(8个)C1磁极。其它线圈通电状况类似。步进电机转动的基本原理是:按A→B→C→D→A相序依次通电,转子正转(图中为顺时针);按A→D→C→B→A相序依次通电,转子反转。线圈通电时间的长短确定转速,通电时间长,转速慢,通电时间短,转速快。图1-38步进电动机限制电路图3.怠速阀的限制过程单片机主要通过发动机转速传感器和温度传感器的信号和设定的转速值来限制步进电动机的转动。为了讲解便利,设定步进电机正转为关阀,即限制阀向阀座移动,减小通气截面积;反转为开阀,即限制阀向远离阀座方向移动,增大通气截面积。下面以怠速的三种基本限制为例,介绍单片机对怠速限制阀步进电机的限制原理。(1)暖机限制怠速限制阀的初始状态是全开,步进电机的步数为0,通气截面积最大,发动机起动后,怠速比较高,是快速暖机过程。快速暖机过程的怠速一般限制在1200转/分,称暖机高怠速。当发动机的温度增高到设定目标值,发动机怠速稳定在800转/分,称正常低怠速。从暖机高怠速1200转/分到正常低怠速800转/分的限制模式有多种,较先进的限制模式是建立温度与怠速的对应数列,存在单片机的程序存储器内,监测到多高的温度,就调取对应的怠速值。为初学理解便利,减小程序长度,暂设两级数值:目标温度≥实测温度,按暖机高怠速1200转/分限制,允许±20转/分;目标温度<实测温度,按正常低怠速800转/分限制,允许±20转/分。单片机始终将发动机转速与目标值比较,假如高于目标值,就限制步进电动机正转,减小通气截面积,降低发动机转速;假如低于目标值,就限制步进电动机反转,增大通气截面积,增加发动机转速。由于怠速限制阀在初始是全开状态,发动机在此状态的设计转速要高于1200转/分,所以在发动机起动后的暖机限制起先,单片机限制步进电机从0步起先,只可能是正转,减小通气截面积,降低发动机转速至1200转/分。步进电机每转动1步,单片机就累加正转步数1次;假如反转,单片机就削减正转步数1次。发动机受各种因素影响,怠速会有确定的波动。怠速与目标转速的误差,允许在±20转/分以内,超过±20转/分,单片机就调控。(2)正常怠速限制发动机正常运行时,按正常低怠速800转/分限制,允许±20转/分。(3)发动机关闭后限制关闭发动机后,发动机ECU(不断电)限制步进电动机反转到怠速阀复原到初始全开状态,为了下次起动做好准备。单片机限制步进电动机从初始全开状态,到正常怠速状态,再复原到初始全开状态,其间的步数变更都被记忆下来;发动机关闭后,从初始全开状态正转多少步,就转反多少步,正好回到初始全开状态。4.步进电机的限制限制步进电动机正、反转有多种方法,基本原理是通过对P1口输入限制字(也称限制码),依次对每一相线圈供电。由于怠速限制常用4相步进电动机,所以可用循环移位指令来实现。把限制字传送给累加器A,A再把内容传输到P1口。P1口的低4位P1.0、P1.1、P1.2、P1.3分别限制步进电动机的A相、B相、C相、D相线圈。P1口的高4位不用。表1-12是P1口限制步进电动机正转和反转的循环移位限制字。正转用左移循环指令,反转用右移循环指令。表1-12P1口限制步进电动机正转和反转的循环移位限制字P1口高4位低4位控制字P1口高4位低4位控制字线圈不用DCBA线圈不用DCBA正转↓0001000111H反转↓0001000111H0010001022H1000100088H0100010044H0100010044H1000100088H0010001022H0001000111H0001000111H0010001022H1000100088H发动机运行期间,步进电动机要时常的正转或反转稳定怠速,假如正转,则正转步数增加;假如反转,则正转步数削减。每转一步,正转步数都要存入内存30单元。步进电动机每次停止转动的最终限制字都要存入内存31单元,下次转动就从上次最终限制字的左移或右移后的新限制字起先,这样就保证转子转动的连续和平稳。例如上次停转最终限制字是44H,下次转动,假如反转,就右移1位,新限制字就是22H;假如正转,就左移1位,新限制字就是88H。5.怠速限制阀步进电机限制程序怠速限制程序是发动机电控单元主控程序下的一个子程序。设单片机内存RAM有关单元所要储存的数据和来源如下:30H:存步进电动机的正转步数;31H:存驱动步进电动机的限制字;32H:存缸温实测值,由温度传感器传来;33H:存缸温目标值,由程序存储器传来;34H:存怠速实测值,由转速传感器传来;35H:存正常低怠速目标上限值(820转/分),由程序存储器传来;36H:存正常低怠速目标下限值(780转/分),由程序存储器传来;37H:存暖机高怠速目标上限值(1220转/分),由程序存储器传来;38H:存暖机高怠速目标下限值(1180转/分),由程序存储器传来;3AH:临时存怠速目标上限值;3BH:临时存怠速目标下限值00H(位地址):存发动机运行和关闭数据:(00H)=0,发动机关闭;(00H)=1,发动机运行;信号由发动机点火开关传来。怠速步进电机限制程序流程图(图1-39)中有5个推断框。第1个推断框是“有发动机关闭信号吗?”,推断是否停机。第2个推断框是“步数=0吗?”,步数=0就停机,否则转移驱动步进电机反转至停机。第3个推断框是“缸温达到目标值吗?”,没达到转移“按暖机高怠速处理”,达到“按正常低怠速处理”。处理的过程是把高怠速或低怠速目标值的上、下限值,赋给下一步作为推断依据。第4个推断框是“怠速≥目标上限值吗”,假如大于或等于,就转移驱动步进电机正转1步,减小怠速;假如小于,则顺接怠速下限值推断。第5个推断框是“怠速<目标下限值吗”,假如小于,就转移驱动步进电机反转1步,增大怠速;假如大于,说明至此已判出:目标上限值>实测值≥目标下限值,怠速在正常范围内,可以保持不变,转移接着查发动机关闭信号,起先下一循环监控。图1-39怠速步进电机限制程序流程图步进电机的转速是由每一相的通电延时长短确定,因此,必需有延时子程序。由于步进电机每一相的通电延时是20ms(或10ms),比较短,所以不须要用定时器,利用空操作指令和推断转移指令所占的机器周期,经多次循环就可达到延时目的。设单片机的晶振是12MHz,一个机器周期是1μs,3个空操作指令和1个推断转移指令共占5个机器周期,即占5μs。经C8H=200次循环,延时为1ms;再经14H=20次大循环,总延时就是20ms。延时子程序流程图如图1-40所示。图1-40延时子程序流程图
怠速限制阀步进电机限制程序如下(为了易读,每个程序段前加有小标题):标号源程序 注释初始化:MOV30H,#00H;将存步数的30H单元清0MOV31H,#11H;将限制字送31H单元查发动机关闭否:LOOP1:JNB00H,LOOP2;(00H)=0,发动机关闭,转移LOOP2反转开阀最大00H)=1,发动机运行,顺接缸温推断缸温推断:MOVA,33H;将33H内缸温目标值送A;CJNEA,32H,N1;缸温目标值-实测值≠0,转移N1,对CY推断N1:JNCN2;缸温目标值≥实测值,CY=0,转移N2按高怠速处理缸温目标值<实测值;CY=1,顺接按正常低怠速处理按正常低怠速处理:MOV3AH,35H;将35H内正常低怠速上限值(820)送3AH内MOV3BH,36H;将36H内正常低怠速下限值(780)送3BH内SJMPN3;转移N3怠速推断按暖机高怠速处理:N2:MOV3AH,37H;将37H内暖机高怠速上限值(1220)送3AH内MOV3BH,38H;将36H内暖机高怠速下限值(1180)送3BH内SJMPN3;转移N3怠速推断怠速推断N3:MOVA,34H;将34H内怠速实测值送ACJNEA,3AH,N4;怠速实测值-目标上限值≠0,转移N4对CY推断N4:JNCN5;实测值≥目标上限值,CY=0,转移N5正转(减速)驱动实测值<目标上限值,CY=1,顺接以下指令CJNEA,3BH,N6;怠速实测值-目标下限值≠0,转移N6对CY推断N6:JCN7;实测值<目标下限值,CY=1,转移N7反转(增速)驱动实测值≥目标下限值,CY=0,顺接以下指令SJMPLOOP1;至此确定:目标上限值>实测值≥目标下限值转LOOP1接着查发动机关闭信号正转驱动:N5:MOVA,31H;将31H单元的限制字送ARLA;把A的内容向左循环移1位MOV31H,A;把A中新限制字存31单元MOVP1,A;把A中新限制字送P1口LCALLDELAY;调用延时子程序,通电延时20msINC30H;正转步数加1SJMPLOOP1;转LOOP1接着查发动机关闭信号反转驱动:N7:MOVA,31H;将31H单元的限制字送ARRA;把A的内容向右循环移1位MOV31H,A;把A中新限制字存31单元MOVP1,A;把A中新限制字送P1口LCALLDELAY;调用延时子程序,通电延时20ms DEC30H;正转步数减1SJMPLOOP1;转LOOP1接着查发动机关闭信号发动机关闭后反转驱动:LOOP2:MOVR0,30H;将30H单元正转步数送R0CJNER0,#00H,N8;R0≠00,转移N8反转驱动SJMPNEXT9;R0=00,转移N9停止N8:MOVA,31H;将31H单元的限制字送ARRA;把A的内容向右循环移1位MOV31H,A;把A中新限制字存31单元MOVP1,A;把A中新限制字送P1口LCALLDELAY;调用延时子程序,通电延时20msDEC30H;正转步数减1SJMPLOOP2;转移L2推断是否接着反转N9:RET;怠速限制阀复原初始全开状态,返回主控程序延时子程序:
DELAY:MOVR1,#14H;给R1赋大循环次数14H=20LOOP1:MOVR2,#C8H;给R2赋小循环次数C8H=200LOOP2:NOP ;空操作,(1μs)
NOP ;空操作,(1μs)
NOP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东科技学院《工程施工仿真》2023-2024学年第一学期期末试卷
- 广东金融学院《美术文化活动策划》2023-2024学年第一学期期末试卷
- 广东建设职业技术学院《室内设计基础》2023-2024学年第一学期期末试卷
- 广东环境保护工程职业学院《英语史》2023-2024学年第一学期期末试卷
- 旅客列车安全课件
- 广东财经大学《ISO14000环境管理体系》2023-2024学年第一学期期末试卷
- 小学生日常行为规范课件
- 赣南科技学院《机械制造基础A》2023-2024学年第一学期期末试卷
- 服务合同培训课件
- 甘孜职业学院《文学创作与实践》2023-2024学年第一学期期末试卷
- 商场反恐防暴应急预案演练方案
- 成华区九年级上学期语文期末试卷
- 智慧物业管理的区块链技术应用
- 2024年中考英语语法感叹句100题精练
- 《海洋与人类》导学案
- 公安管理学试题(含答案)
- 挑战杯红色赛道计划书
- 重整投资保密承诺函(范本)
- 先天性甲状腺功能减低症专家讲座
- 淮安市洪泽区2022-2023学年七年级上学期期末生物试题【带答案】
- 2024年民航安全知识培训考试题库及答案(核心题)
评论
0/150
提交评论