汽车单片机与车载网络技术汽车单片机原理学习教案.pptx
《汽车单片机与车载网络技术汽车单片机原理学习教案.pptx》由会员分享,可在线阅读,更多相关《汽车单片机与车载网络技术汽车单片机原理学习教案.pptx(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1汽车单片机与车载汽车单片机与车载(ch zi)网络技术汽车单网络技术汽车单片机原理片机原理第一页,共47页。第六节第六节 汽车单片机程序设计汽车单片机程序设计(chn x sh j)(chn x sh j)原原理理n n1.1.基础知识基础知识n n 流程图符号、程序流程图符号、程序(chngx)(chngx)设计步骤、设计步骤、源程序源程序(chngx)(chngx)汇编、伪指令及程序汇编、伪指令及程序(chngx)(chngx)的结构的结构n n2.2.程序程序(chngx)(chngx)实例实例n n 空燃比反馈修正控制原理空燃比反馈修正控制原理n n 步进电动机怠速阀控制原理步
2、进电动机怠速阀控制原理第1页/共47页第二页,共47页。n n在了解在了解MCS-51MCS-51单片机的硬件结构和指令系统后,可以利用它们去单片机的硬件结构和指令系统后,可以利用它们去完成人们期望的工作,即程序设计工作。程序就是为了计算某完成人们期望的工作,即程序设计工作。程序就是为了计算某一算式或控制某一工作的若干指令的有序集合。单片机的全部一算式或控制某一工作的若干指令的有序集合。单片机的全部工作都要靠执行程序来完成。工作都要靠执行程序来完成。n n一、汇编语言程序设计一、汇编语言程序设计n n1.1.汇编语言程序设计步骤汇编语言程序设计步骤n n(1 1)分析问题,确定算法:这是程序设
3、计中最重要的一步。设)分析问题,确定算法:这是程序设计中最重要的一步。设计人员必须认真、仔细地考虑系统需要计人员必须认真、仔细地考虑系统需要(xyo)(xyo)解决的各种问题解决的各种问题以及将来系统功能的进一步扩展,明确知道程序要解决的问题以及将来系统功能的进一步扩展,明确知道程序要解决的问题和接收、处理、发送的数据范围以及使用什么样的算法。和接收、处理、发送的数据范围以及使用什么样的算法。第2页/共47页第三页,共47页。n n(2 2)画流程图:流程图是用各种图形、符号、有向线段来直观地表)画流程图:流程图是用各种图形、符号、有向线段来直观地表示程序执行的步骤和顺序。它可使人们通过流程图
4、的基本线索示程序执行的步骤和顺序。它可使人们通过流程图的基本线索(xin(xin su)su),对全局有完整的了解。,对全局有完整的了解。n n n n 图图1-33 1-33 流程图常用图形符号流程图常用图形符号 第3页/共47页第四页,共47页。n n (3 3)分配存储单元:确定程序存储区和数据存储区的起始地址和)分配存储单元:确定程序存储区和数据存储区的起始地址和区域大小。区域大小。n n(4 4)编写源程序代码:根据流程图用汇编语言指令实现流程图的每)编写源程序代码:根据流程图用汇编语言指令实现流程图的每一个步骤,从而编写出汇编语言的源程序。一个步骤,从而编写出汇编语言的源程序。n
5、n(5 5)调试、测试程序:调试是利用仿真器等开发工具,采用)调试、测试程序:调试是利用仿真器等开发工具,采用(ciyng)(ciyng)单步、设断点、连续运行等方法排除程序中的错误,完善单步、设断点、连续运行等方法排除程序中的错误,完善程序的功能。程序的功能。n n2.2.源程序的汇编源程序的汇编n n 手工汇编手工汇编n n 手工汇编是通过手工方式查指令编码表,逐个把助记符指令手工汇编是通过手工方式查指令编码表,逐个把助记符指令“翻译翻译”成机器码的过程。成机器码的过程。n n 机器汇编机器汇编n n 机器汇编是在机器上使用汇编程序自动地进行源程序的汇编,最后机器汇编是在机器上使用汇编程序
6、自动地进行源程序的汇编,最后得到机器码表示的目标程序。得到机器码表示的目标程序。第4页/共47页第五页,共47页。n n3.3.伪指令伪指令n n伪指令是伪指令是PCPC机将源程序汇编成目标程序所需要的指令,而不是单机将源程序汇编成目标程序所需要的指令,而不是单片机的指令,相对单片机指令而言称其为伪指令。伪指令用于片机的指令,相对单片机指令而言称其为伪指令。伪指令用于告诉汇编程序如何进行汇编的指令,它既不控制单片机的操作告诉汇编程序如何进行汇编的指令,它既不控制单片机的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。何进行
7、。n n伪指令主要用来指定程序或数据的起始位置,给出一些连续存放伪指令主要用来指定程序或数据的起始位置,给出一些连续存放数据的地址或为中间运算结果保留一部分存储空间以及表示源数据的地址或为中间运算结果保留一部分存储空间以及表示源程序结束等等。不同程序结束等等。不同(b tn)(b tn)版本的汇编语言,伪指令的符号版本的汇编语言,伪指令的符号和含义可能有所不同和含义可能有所不同(b tn)(b tn),但基本用法是相似的。下面介,但基本用法是相似的。下面介绍几种常用的伪指令。绍几种常用的伪指令。第5页/共47页第六页,共47页。n n(1 1)设置目标程序起始地址伪指令)设置目标程序起始地址伪
8、指令ORGORGn n格式:格式:ORG 16ORG 16位地址位地址n n(2 2)结束)结束(jish)(jish)汇编伪指令汇编伪指令ENDENDn n格式:格式:END END n n(3 3)赋值伪指令赋值伪指令EQUEQUn n格式:标号:格式:标号:EQU EQU 项。项。n n项可以是常数、地址标号或表达式。例如:项可以是常数、地址标号或表达式。例如:n nTAB1TAB1:EQU 1000H EQU 1000Hn nTAB2TAB2:EQU 2000H EQU 2000Hn n汇编后汇编后TAB1TAB1、TAB2TAB2分别具有值分别具有值1000H1000H、2000H2
9、000H。用。用EQUEQU伪指令对某标号赋值伪指令对某标号赋值后,该标号的值在整个程序中不能再改变。后,该标号的值在整个程序中不能再改变。第6页/共47页第七页,共47页。n n(4 4)定义字节伪指令)定义字节伪指令DBDBn n格式:标号:格式:标号:DB DB 项或项表。项或项表。n n把项或项表中的数据存入程序把项或项表中的数据存入程序(chngx)(chngx)存储器从标号开始的连续地址单存储器从标号开始的连续地址单元中。例如:元中。例如:n n ORG 2000H ORG 2000Hn n TAB1 TAB1:DB 10HDB 10H,23H23H,;TAB1TAB1是标号;是标
10、号;10H10H,23H23H,是数是数据据 n n汇编后:汇编后:(2000H)=10H(2000H)=10H,(2001H)=23H(2001H)=23H,n n(5 5)定义字伪指令)定义字伪指令DWDWn n格式:标号:格式:标号:DW DW 项或项表项或项表n nDWDW伪指令与伪指令与DBDB相似,但用于定义字的内容。汇编时,机器自动按高相似,但用于定义字的内容。汇编时,机器自动按高8 8位位在先,低在先,低8 8位在后的格式排列。位在后的格式排列。第7页/共47页第八页,共47页。n n(6 6)预留存储区伪指令)预留存储区伪指令DSDSn n格式:标号格式:标号(bioho)(
11、bioho):DS DS 表达式表达式n n功能是从标号功能是从标号(bioho)(bioho)指定单元开始,定义一个大小为表达式的值指定单元开始,定义一个大小为表达式的值的存储区,以备后用。例如:的存储区,以备后用。例如:n n ORG 3000H ORG 3000Hn n DS 19H DS 19Hn n DB 10H DB 10H,11H11H,n n汇编后从汇编后从3000H3000H开始,预留开始,预留19H19H个字节的内存单元,即个字节的内存单元,即3000H3000H3018H3018H,然后从,然后从3019H3019H开始,按照下一条定义字节伪指令开始,按照下一条定义字节伪
12、指令DBDB开始赋开始赋值,即值,即(3009H)=10H(3009H)=10H,(300AH)=11H(300AH)=11H,n n(7 7)位地址定义伪指令)位地址定义伪指令BITBITn n格式:标号格式:标号(bioho)(bioho):BIT BIT 位地址位地址n n功能是将位地址赋予功能是将位地址赋予BITBIT前面的标号前面的标号(bioho)(bioho),经赋值后可用该标,经赋值后可用该标号号(bioho)(bioho)代替代替BITBIT后面的位地址。后面的位地址。第8页/共47页第九页,共47页。n n例如例如(lr)(lr):n nM1 BIT 01HM1 BIT 0
13、1Hn nM2 BIT P1.0M2 BIT P1.0n n汇编后,汇编后,01H01H和和P1.0P1.0的位地址的位地址90H90H分别赋给了分别赋给了M1M1和和M2M2。n n n n4.4.基本结构程序基本结构程序n n汇编语言程序主要由顺序结构程序、分支结构程序和循环结构程序汇编语言程序主要由顺序结构程序、分支结构程序和循环结构程序第9页/共47页第十页,共47页。n n(1 1)顺序结构程序)顺序结构程序n n顺序程序是最基本的程序。它是按照指令排列的先后顺序依次执顺序程序是最基本的程序。它是按照指令排列的先后顺序依次执行,每条指令都必须执行,且只执行一遍。顺序程序设计一般行,每
14、条指令都必须执行,且只执行一遍。顺序程序设计一般比较单一、简单,常常作为复杂程序的一部分。比较单一、简单,常常作为复杂程序的一部分。n n(2 2)分支程序)分支程序n n 在程序设计过程中,有时要根据在程序设计过程中,有时要根据(gnj)(gnj)不同情况执行不同功能不同情况执行不同功能的程序段,这种根据的程序段,这种根据(gnj)(gnj)程序要求而改变程序执行顺序的设程序要求而改变程序执行顺序的设计,称为分支程序设计。分支程序分为无条件分支程序和条件计,称为分支程序设计。分支程序分为无条件分支程序和条件分支程序两类。无条件分支程序中含有分支程序两类。无条件分支程序中含有LJMPLJMP、
15、AJMPAJMP等无条件转等无条件转移指令,执行这类指令,程序将无条件转移;条件分支程序中移指令,执行这类指令,程序将无条件转移;条件分支程序中含有判零、比较、位控制等条件转移指令。含有判零、比较、位控制等条件转移指令。第10页/共47页第十一页,共47页。n n(3 3)循环程序)循环程序n n 在程序中包含重复执行的程序段称为循环程序。循环程序简洁在程序中包含重复执行的程序段称为循环程序。循环程序简洁(jinji)(jinji),占用内存少,运行效率高。循环程序常见的两种结构:一是,占用内存少,运行效率高。循环程序常见的两种结构:一是先执行,后判断,这种结构至少要执行先执行,后判断,这种结
16、构至少要执行1 1次;另一种是先判断,后执行,次;另一种是先判断,后执行,这种结构可以这种结构可以1 1次也不执行。次也不执行。n n 循环程序通常由循环程序通常由3 3部分组成:部分组成:n n 初始化:赋循环次数初值、地址指针初值等。初始化:赋循环次数初值、地址指针初值等。n n循环处理:完成主要任务的程序段。循环处理:完成主要任务的程序段。n n循环控制:修改循环次数、地址指针等,控制循环是否结束。循环控制:修改循环次数、地址指针等,控制循环是否结束。第11页/共47页第十二页,共47页。n n二、空燃比反馈修正二、空燃比反馈修正(xizhng)(xizhng)控控制原理程序制原理程序n
17、 n发动机起动后的基本喷油时间控制发动机起动后的基本喷油时间控制主要由发动机转速和负荷量(进气主要由发动机转速和负荷量(进气量)决定。为了使发动机在不同工量)决定。为了使发动机在不同工况下,都处于最佳状态,还有以下况下,都处于最佳状态,还有以下主要的修正主要的修正(xizhng)(xizhng)控制。其中控制。其中空燃比反馈修正空燃比反馈修正(xizhng)(xizhng)控制是控制是利用氧传感器信号来修正利用氧传感器信号来修正(xizhng)(xizhng)喷油脉冲宽度。喷油脉冲宽度。第12页/共47页第十三页,共47页。n n 基本(jbn)喷油时间控制n n 启动后加浓控制n n 启动后
18、喷油控制 暖机加浓控制n n 怠速稳定控制n n 修正控制 进气温度修正控制n n 空燃比反馈修正控制n n 功率加大修正控制n n 蓄电池电压修正控制n n 自学习修正控制第13页/共47页第十四页,共47页。n n氧传感器动态电压信号氧传感器动态电压信号xxHxxH值与设计目标值值与设计目标值yyHyyH比较,有以下比较,有以下3 3种情种情况需要处理:况需要处理:n nxxHxxH值值 yyH yyH:表示喷油过浓,需要调用减小喷油子程序:表示喷油过浓,需要调用减小喷油子程序(chngx)(chngx),执行后返回转移循环监测;,执行后返回转移循环监测;n nxxHxxH值值 yyH y
19、yH:表示喷油过稀,需要调用增大喷油子程序:表示喷油过稀,需要调用增大喷油子程序(chngx)(chngx),执行后返回转移循环监测,执行后返回转移循环监测n nxxHxxH值值=yyH=yyH:表示喷油在理想空燃比附近,保持不变,转移循环监:表示喷油在理想空燃比附近,保持不变,转移循环监测测n n利用利用“比较不相等转移指令比较不相等转移指令CJNE”CJNE”和和“位条件转移指令位条件转移指令JC”JC”实现三分实现三分支判断。发动机整体控制是一个很大的程序支判断。发动机整体控制是一个很大的程序(chngx)(chngx),空燃比反馈,空燃比反馈修正控制程序修正控制程序(chngx)(ch
20、ngx)只是其中一个程序只是其中一个程序(chngx)(chngx)段或子程序段或子程序(chngx)(chngx)(有不同的设计方法),为了简便,设定这是一个相对独(有不同的设计方法),为了简便,设定这是一个相对独立程序立程序(chngx)(chngx)。n n空燃比反馈修正控制程序空燃比反馈修正控制程序(chngx)(chngx)流程图如图流程图如图1-351-35所示(图中没有所示(图中没有显示子程序显示子程序(chngx)(chngx))。)。第14页/共47页第十五页,共47页。图1-35 空燃比反馈(fnku)修正控制程序流程图第15页/共47页第十六页,共47页。n n从程序流程
21、图可以看出,这是一个从程序流程图可以看出,这是一个3 3分支结构程序,左分支程序保持分支结构程序,左分支程序保持喷油量不变,中间分支程序调用增大喷油子程序,右分支程序调用喷油量不变,中间分支程序调用增大喷油子程序,右分支程序调用减小喷油子程序。子程序增大或减小减小喷油子程序。子程序增大或减小1 1个变量的喷油时间参数后,要个变量的喷油时间参数后,要返回转移循环监测氧传感器不断传来的动态电压信号值返回转移循环监测氧传感器不断传来的动态电压信号值xxHxxH,看是否,看是否(sh fu)(sh fu)达到目标值。发动机在全部运行过程中,空燃比反馈修正达到目标值。发动机在全部运行过程中,空燃比反馈修
22、正控制程序一直在不断的循环监测氧传感器信号和修正喷油时间,使控制程序一直在不断的循环监测氧传感器信号和修正喷油时间,使尾气排放达到环保要求。尾气排放达到环保要求。第16页/共47页第十七页,共47页。n n空燃比反馈修正控制程序如下:空燃比反馈修正控制程序如下:n n标号标号 地址地址 源程序源程序 注释注释n nLOOPLOOP:1954H MOV R11954H MOV R1,#xxH#xxH ;氧传感器动态信号;氧传感器动态信号xxHxxH送送R1R1n n 1956H CJNE R1 1956H CJNE R1,#yyH#yyH,N2 N2 ;R1R1内内xxHyyHxxHyyH,转移
23、,转移N2N2n n (rel1=02Hrel1=02H)xxH=yyH xxH=yyH,不转移,顺接,不转移,顺接N1N1n n N1 N1:1959H SJMP LOOP1959H SJMP LOOP(rel2=F9Hrel2=F9H);转移);转移LOOPLOOP循环循环(xnhun)(xnhun)监测监测n n N2 N2:195BH JC N3195BH JC N3(rel3=rel3=);xxH xxH yyH yyH,CY=1CY=1,转移,转移N4N4,n n xxH xxH yyH yyH,CY=0CY=0,顺接,顺接N3N3n n N3 N3:195DH LCALL L1
24、195DH LCALL L1 ;调用减小喷油子程序;调用减小喷油子程序L1L1n n 1960H SJMP LOOP 1960H SJMP LOOP(rel4=rel4=);执行减小喷油后返回,;执行减小喷油后返回,n n 转移循环转移循环(xnhun)(xnhun)监测监测 n n N4 N4:1962H LCALL L2 1962H LCALL L2 ;调用增大喷油子程序;调用增大喷油子程序L2 L2 n n 1965H SJMP LOOP 1965H SJMP LOOP(rel5=rel5=);执行增大喷油后返回,;执行增大喷油后返回,n n 转移循环转移循环(xnhun)(xnhun)
25、监测监测第17页/共47页第十八页,共47页。n n程序中的地址程序中的地址(dzh)(dzh)偏移量偏移量relrel计算如下:计算如下:n n第第2 2条指令的条指令的rel1=195BHrel1=195BH(1956H1956H3 3)=02H=02Hn n第第3 3条指令的条指令的rel2=100Hrel2=100H1954H1954H(1959H1959H2 2)=100H=100H07H=F9H07H=F9Hn n其它其它relrel值由读者计算。值由读者计算。第18页/共47页第十九页,共47页。n n三、步进电机怠速阀控制原理程序三、步进电机怠速阀控制原理程序三、步进电机怠速阀
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 单片机 车载 网络技术 原理 学习 教案
限制150内