汽車單片機與車載網(wǎng)絡技術課件-第一章-汽車單片機原理-第六節(jié)_第1頁
汽車單片機與車載網(wǎng)絡技術課件-第一章-汽車單片機原理-第六節(jié)_第2頁
汽車單片機與車載網(wǎng)絡技術課件-第一章-汽車單片機原理-第六節(jié)_第3頁
汽車單片機與車載網(wǎng)絡技術課件-第一章-汽車單片機原理-第六節(jié)_第4頁
汽車單片機與車載網(wǎng)絡技術課件-第一章-汽車單片機原理-第六節(jié)_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

汽車故障診斷與檢測技術金肯學院汽車工程系

呂黎明第六節(jié)汽車單片機程序設計原理1.基礎學問流程圖符號、程序設計步驟、源程序匯編、偽指令及程序的結(jié)構2.程序?qū)嵗杖急确答佇拚拗圃聿竭M電動機怠速閥限制原理在了解MCS-51單片機的硬件結(jié)構和指令系統(tǒng)后,可以利用它們?nèi)ネ瓿扇藗兤谕墓ぷ?,即程序設計工作。程序就是為了計算某一算式或限制某一工作的若干指令的有序集合。單片機的全部工作都要靠執(zhí)行程序來完成。一、匯編語言程序設計1.匯編語言程序設計步驟(1)分析問題,確定算法:這是程序設計中最重要的一步。設計人員必需細致、細致地考慮系統(tǒng)須要解決的各種問題以及將來系統(tǒng)功能的進一步擴展,明確知道程序要解決的問題和接收、處理、發(fā)送的數(shù)據(jù)范圍以及運用什么樣的算法。(2)畫流程圖:流程圖是用各種圖形、符號、有向線段來直觀地表示程序執(zhí)行的步驟和依次。它可使人們通過流程圖的基本線索,對全局有完整的了解。

圖1-33流程圖常用圖形符號(3)支配存儲單元:確定程序存儲區(qū)和數(shù)據(jù)存儲區(qū)的起始地址和區(qū)域大小。(4)編寫源程序代碼:依據(jù)流程圖用匯編語言指令實現(xiàn)流程圖的每一個步驟,從而編寫出匯編語言的源程序。(5)調(diào)試、測試程序:調(diào)試是利用仿真器等開發(fā)工具,接受單步、設斷點、連續(xù)運行等方法解除程序中的錯誤,完善程序的功能。2.源程序的匯編①手工匯編手工匯編是通過手工方式查指令編碼表,逐個把助記符指令“翻譯”成機器碼的過程。②機器匯編機器匯編是在機器上運用匯編程序自動地進行源程序的匯編,最終得到機器碼表示的目標程序。3.偽指令偽指令是PC機將源程序匯編成目標程序所須要的指令,而不是單片機的指令,相對單片機指令而言稱其為偽指令。偽指令用于告知匯編程序如何進行匯編的指令,它既不限制單片機的操作也不被匯編成機器代碼,只能為匯編程序所識別并指導匯編如何進行。偽指令主要用來指定程序或數(shù)據(jù)的起始位置,給出一些連續(xù)存放數(shù)據(jù)的地址或為中間運算結(jié)果保留一部分存儲空間以及表示源程序結(jié)束等等。不同版本的匯編語言,偽指令的符號和含義可能有所不同,但基本用法是相像的。下面介紹幾種常用的偽指令。(1)設置目標程序起始地址偽指令ORG格式:ORG16位地址(2)結(jié)束匯編偽指令END格式:END(3)賦值偽指令EQU格式:標號:EQU項。項可以是常數(shù)、地址標號或表達式。例如:TAB1:EQU1000HTAB2:EQU2000H匯編后TAB1、TAB2分別具有值1000H、2000H。用EQU偽指令對某標號賦值后,該標號的值在整個程序中不能再變更。(4)定義字節(jié)偽指令DB格式:標號:DB項或項表。把項或項表中的數(shù)據(jù)存入程序存儲器從標號起先的連續(xù)地址單元中。例如:ORG2000HTAB1:DB10H,23H,……;TAB1是標號;10H,23H,……是數(shù)據(jù)匯編后:(2000H)=10H,(2001H)=23H,……(5)定義字偽指令DW格式:標號:DW項或項表DW偽指令與DB相像,但用于定義字的內(nèi)容。匯編時,機器自動按高8位在先,低8位在后的格式排列。(6)預留存儲區(qū)偽指令DS格式:標號:DS表達式功能是從標號指定單元起先,定義一個大小為表達式的值的存儲區(qū),以備后用。例如:ORG3000HDS19HDB10H,11H,……匯編后從3000H起先,預留19H個字節(jié)的內(nèi)存單元,即3000H~3018H,然后從3019H起先,依據(jù)下一條定義字節(jié)偽指令DB起先賦值,即(3009H)=10H,(300AH)=11H,……(7)位地址定義偽指令BIT格式:標號:BIT位地址功能是將位地址賜予BIT前面的標號,經(jīng)賦值后可用該標號代替BIT后面的位地址。例如:M1BIT01HM2BITP1.0匯編后,01H和P1.0的位地址90H分別賦給了M1和M2。

4.基本結(jié)構程序匯編語言程序主要由依次結(jié)構程序、分支結(jié)構程序和循環(huán)結(jié)構程序(1)依次結(jié)構程序依次程序是最基本的程序。它是依據(jù)指令排列的先后依次依次執(zhí)行,每條指令都必需執(zhí)行,且只執(zhí)行一遍。依次程序設計一般比較單一、簡潔,常常作為困難程序的一部分。(2)分支程序在程序設計過程中,有時要依據(jù)不同狀況執(zhí)行不同功能的程序段,這種依據(jù)程序要求而變更程序執(zhí)行依次的設計,稱為分支程序設計。分支程序分為無條件分支程序和條件分支程序兩類。無條件分支程序中含有LJMP、AJMP等無條件轉(zhuǎn)移指令,執(zhí)行這類指令,程序?qū)o條件轉(zhuǎn)移;條件分支程序中含有判零、比較、位限制等條件轉(zhuǎn)移指令。(3)循環(huán)程序在程序中包含重復執(zhí)行的程序段稱為循環(huán)程序。循環(huán)程序簡潔,占用內(nèi)存少,運行效率高。循環(huán)程序常見的兩種結(jié)構:一是先執(zhí)行,后推斷,這種結(jié)構至少要執(zhí)行1次;另一種是先推斷,后執(zhí)行,這種結(jié)構可以1次也不執(zhí)行。循環(huán)程序通常由3部分組成:初始化:賦循環(huán)次數(shù)初值、地址指針初值等。循環(huán)處理:完成主要任務的程序段。循環(huán)限制:修改循環(huán)次數(shù)、地址指針等,限制循環(huán)是否結(jié)束。二、空燃比反饋修正限制原理程序發(fā)動機起動后的基本噴油時間限制主要由發(fā)動機轉(zhuǎn)速和負荷量(進氣量)確定。為了使發(fā)動機在不同工況下,都處于最佳狀態(tài),還有以下主要的修正限制。其中空燃比反饋修正限制是利用氧傳感器信號來修正噴油脈沖寬度?;緡娪蜁r間限制啟動后加濃限制啟動后噴油限制暖機加濃限制怠速穩(wěn)定限制修正限制進氣溫度修正限制空燃比反饋修正限制功率加大修正限制蓄電池電壓修正限制自學習修正限制氧傳感器動態(tài)電壓信號xxH值與設計目標值yyH比較,有以下3種狀況須要處理:xxH值>yyH:表示噴油過濃,須要調(diào)用減小噴油子程序,執(zhí)行后返回轉(zhuǎn)移循環(huán)監(jiān)測;xxH值<yyH:表示噴油過稀,須要調(diào)用增大噴油子程序,執(zhí)行后返回轉(zhuǎn)移循環(huán)監(jiān)測xxH值=yyH:表示噴油在志向空燃比旁邊,保持不變,轉(zhuǎn)移循環(huán)監(jiān)測利用“比較不相等轉(zhuǎn)移指令CJNE”和“位條件轉(zhuǎn)移指令JC”實現(xiàn)三分支推斷。發(fā)動機整體限制是一個很大的程序,空燃比反饋修正限制程序只是其中一個程序段或子程序(有不同的設計方法),為了簡便,設定這是一個相對獨立程序??杖急确答佇拚拗瞥绦蛄鞒虉D如圖1-35所示(圖中沒有顯示子程序)。圖1-35空燃比反饋修正限制程序流程圖從程序流程圖可以看出,這是一個3分支結(jié)構程序,左分支程序保持噴油量不變,中間分支程序調(diào)用增大噴油子程序,右分支程序調(diào)用減小噴油子程序。子程序增大或減小1個變量的噴油時間參數(shù)后,要返回轉(zhuǎn)移循環(huán)監(jiān)測氧傳感器不斷傳來的動態(tài)電壓信號值xxH,看是否達到目標值。發(fā)動機在全部運行過程中,空燃比反饋修正限制程序始終在不斷的循環(huán)監(jiān)測氧傳感器信號和修正噴油時間,使尾氣排放達到環(huán)保要求??杖急确答佇拚拗瞥绦蛉缦拢簶颂柕刂吩闯绦蜃⑨孡OOP:1954HMOVR1,#xxH;氧傳感器動態(tài)信號xxH送R11956HCJNER1,#yyH,N2;R1內(nèi)xxH≠yyH,轉(zhuǎn)移N2(rel1=02H)xxH=yyH,不轉(zhuǎn)移,順接N1N1:1959HSJMPLOOP(rel2=F9H);轉(zhuǎn)移LOOP循環(huán)監(jiān)測N2:195BHJCN3(rel3=);xxH<yyH,CY=1,轉(zhuǎn)移N4,xxH>yyH,CY=0,順接N3N3:195DHLCALLL1;調(diào)用減小噴油子程序L11960HSJMPLOOP(rel4=);執(zhí)行減小噴油后返回,轉(zhuǎn)移循環(huán)監(jiān)測N4:1962HLCALLL2;調(diào)用增大噴油子程序L21965HSJMPLOOP(rel5=);執(zhí)行增大噴油后返回,轉(zhuǎn)移循環(huán)監(jiān)測程序中的地址偏移量rel計算如下:第2條指令的rel1=195BH-(1956H+3)=02H第3條指令的rel2=100H-∣1954H-(1959H+2)∣=100H-07H=F9H其它rel值由讀者計算。三、步進電機怠速閥限制原理程序1.怠速限制原理怠速就是汽車發(fā)動后溫度上升到正常溫度,發(fā)動機處于空擋時穩(wěn)定的最低轉(zhuǎn)速。此時混合氣燃燒所做的功,只是用以克服發(fā)動機的內(nèi)部阻力。在運用汽車時,發(fā)動機怠速運轉(zhuǎn)的時間約占30%,怠速轉(zhuǎn)速的凹凸干脆影響燃油消耗和排放尾氣。怠速過高,耗油量增加;怠速過低,發(fā)動機轉(zhuǎn)速不穩(wěn),簡潔熄火。怠速限制均接受發(fā)動機轉(zhuǎn)速反饋閉環(huán)限制方式,即發(fā)動機轉(zhuǎn)速傳感器將發(fā)動機的實際轉(zhuǎn)速和目標轉(zhuǎn)速進行比較,依據(jù)比較的差值確定使發(fā)動機達到目標值的限制量,并通過執(zhí)行機構對發(fā)動機怠速轉(zhuǎn)速進行校正。步進電機式怠速限制閥由步進電機、閥桿、限制閥和閥座組成。轉(zhuǎn)子的正轉(zhuǎn)或反轉(zhuǎn)運動經(jīng)閥桿(絲桿)轉(zhuǎn)換成向前或向后的直線伸縮運動,閥桿每旋轉(zhuǎn)1圈,伸縮1個螺距;圖1-36步進電機式怠速限制閥示意圖2.怠速限制用步進電機目前應用怠速限制的步進電機多為永磁式,由發(fā)動機電控單元限制。目前應用怠速限制的步進電機多為永磁式,由發(fā)動機電控單元限制。圖1-37為某種怠速限制閥所用步進電機定子與轉(zhuǎn)子結(jié)構和相互作用示意圖。定子由兩個圓形爪極式鐵芯相疊而組成,每個爪極式鐵芯內(nèi)有2個線圈,共有4個線圈;每個爪極式鐵芯有16個爪極,兩個鐵芯錯開相疊,形成32個爪極。轉(zhuǎn)子是圓形永久磁鐵,磁極方向與轉(zhuǎn)子半徑方向一樣,共有16個(8對)磁極,圖中只畫出2個(1對)磁極。步進電機轉(zhuǎn)動一圈須要32步,步距角為11.25°。步進電機的工作范圍為0~125步。圖1-37步進電動機定子與轉(zhuǎn)子示意圖圖1-38為步進電機的限制電路圖,由單片機的并行輸入/輸出P1端口的P1.0、P1.1、P1.2、P1.3分別限制步進電機的A相、B相、C相、D相線圈。共有4條相同的限制電路,限制電路由反相器、光電隔離器、復合放大電路、疼惜二極管組成。A相、B相、C相、D相分別通電時,對應產(chǎn)生的磁極對是C1、C2、C3、C4。例如A相線圈通電,產(chǎn)生4對(8個)C1磁極。其它線圈通電狀況類似。步進電機轉(zhuǎn)動的基本原理是:按A→B→C→D→A相序依次通電,轉(zhuǎn)子正轉(zhuǎn)(圖中為順時針);按A→D→C→B→A相序依次通電,轉(zhuǎn)子反轉(zhuǎn)。線圈通電時間的長短確定轉(zhuǎn)速,通電時間長,轉(zhuǎn)速慢,通電時間短,轉(zhuǎn)速快。圖1-38步進電動機限制電路圖3.怠速閥的限制過程單片機主要通過發(fā)動機轉(zhuǎn)速傳感器和溫度傳感器的信號和設定的轉(zhuǎn)速值來限制步進電動機的轉(zhuǎn)動。為了講解便利,設定步進電機正轉(zhuǎn)為關閥,即限制閥向閥座移動,減小通氣截面積;反轉(zhuǎn)為開閥,即限制閥向遠離閥座方向移動,增大通氣截面積。下面以怠速的三種基本限制為例,介紹單片機對怠速限制閥步進電機的限制原理。(1)暖機限制怠速限制閥的初始狀態(tài)是全開,步進電機的步數(shù)為0,通氣截面積最大,發(fā)動機起動后,怠速比較高,是快速暖機過程。快速暖機過程的怠速一般限制在1200轉(zhuǎn)/分,稱暖機高怠速。當發(fā)動機的溫度增高到設定目標值,發(fā)動機怠速穩(wěn)定在800轉(zhuǎn)/分,稱正常低怠速。從暖機高怠速1200轉(zhuǎn)/分到正常低怠速800轉(zhuǎn)/分的限制模式有多種,較先進的限制模式是建立溫度與怠速的對應數(shù)列,存在單片機的程序存儲器內(nèi),監(jiān)測到多高的溫度,就調(diào)取對應的怠速值。為初學理解便利,減小程序長度,暫設兩級數(shù)值:目標溫度≥實測溫度,按暖機高怠速1200轉(zhuǎn)/分限制,允許±20轉(zhuǎn)/分;目標溫度<實測溫度,按正常低怠速800轉(zhuǎn)/分限制,允許±20轉(zhuǎn)/分。單片機始終將發(fā)動機轉(zhuǎn)速與目標值比較,假如高于目標值,就限制步進電動機正轉(zhuǎn),減小通氣截面積,降低發(fā)動機轉(zhuǎn)速;假如低于目標值,就限制步進電動機反轉(zhuǎn),增大通氣截面積,增加發(fā)動機轉(zhuǎn)速。由于怠速限制閥在初始是全開狀態(tài),發(fā)動機在此狀態(tài)的設計轉(zhuǎn)速要高于1200轉(zhuǎn)/分,所以在發(fā)動機起動后的暖機限制起先,單片機限制步進電機從0步起先,只可能是正轉(zhuǎn),減小通氣截面積,降低發(fā)動機轉(zhuǎn)速至1200轉(zhuǎn)/分。步進電機每轉(zhuǎn)動1步,單片機就累加正轉(zhuǎn)步數(shù)1次;假如反轉(zhuǎn),單片機就削減正轉(zhuǎn)步數(shù)1次。發(fā)動機受各種因素影響,怠速會有確定的波動。怠速與目標轉(zhuǎn)速的誤差,允許在±20轉(zhuǎn)/分以內(nèi),超過±20轉(zhuǎn)/分,單片機就調(diào)控。(2)正常怠速限制發(fā)動機正常運行時,按正常低怠速800轉(zhuǎn)/分限制,允許±20轉(zhuǎn)/分。(3)發(fā)動機關閉后限制關閉發(fā)動機后,發(fā)動機ECU(不斷電)限制步進電動機反轉(zhuǎn)到怠速閥復原到初始全開狀態(tài),為了下次起動做好準備。單片機限制步進電動機從初始全開狀態(tài),到正常怠速狀態(tài),再復原到初始全開狀態(tài),其間的步數(shù)變更都被記憶下來;發(fā)動機關閉后,從初始全開狀態(tài)正轉(zhuǎn)多少步,就轉(zhuǎn)反多少步,正好回到初始全開狀態(tài)。4.步進電機的限制限制步進電動機正、反轉(zhuǎn)有多種方法,基本原理是通過對P1口輸入限制字(也稱限制碼),依次對每一相線圈供電。由于怠速限制常用4相步進電動機,所以可用循環(huán)移位指令來實現(xiàn)。把限制字傳送給累加器A,A再把內(nèi)容傳輸?shù)絇1口。P1口的低4位P1.0、P1.1、P1.2、P1.3分別限制步進電動機的A相、B相、C相、D相線圈。P1口的高4位不用。表1-12是P1口限制步進電動機正轉(zhuǎn)和反轉(zhuǎn)的循環(huán)移位限制字。正轉(zhuǎn)用左移循環(huán)指令,反轉(zhuǎn)用右移循環(huán)指令。表1-12P1口限制步進電動機正轉(zhuǎn)和反轉(zhuǎn)的循環(huán)移位限制字P1口高4位低4位控制字P1口高4位低4位控制字線圈不用DCBA線圈不用DCBA正轉(zhuǎn)↓0001000111H反轉(zhuǎn)↓0001000111H0010001022H1000100088H0100010044H0100010044H1000100088H0010001022H0001000111H0001000111H0010001022H1000100088H發(fā)動機運行期間,步進電動機要時常的正轉(zhuǎn)或反轉(zhuǎn)穩(wěn)定怠速,假如正轉(zhuǎn),則正轉(zhuǎn)步數(shù)增加;假如反轉(zhuǎn),則正轉(zhuǎn)步數(shù)削減。每轉(zhuǎn)一步,正轉(zhuǎn)步數(shù)都要存入內(nèi)存30單元。步進電動機每次停止轉(zhuǎn)動的最終限制字都要存入內(nèi)存31單元,下次轉(zhuǎn)動就從上次最終限制字的左移或右移后的新限制字起先,這樣就保證轉(zhuǎn)子轉(zhuǎn)動的連續(xù)和平穩(wěn)。例如上次停轉(zhuǎn)最終限制字是44H,下次轉(zhuǎn)動,假如反轉(zhuǎn),就右移1位,新限制字就是22H;假如正轉(zhuǎn),就左移1位,新限制字就是88H。5.怠速限制閥步進電機限制程序怠速限制程序是發(fā)動機電控單元主控程序下的一個子程序。設單片機內(nèi)存RAM有關單元所要儲存的數(shù)據(jù)和來源如下:30H:存步進電動機的正轉(zhuǎn)步數(shù);31H:存驅(qū)動步進電動機的限制字;32H:存缸溫實測值,由溫度傳感器傳來;33H:存缸溫目標值,由程序存儲器傳來;34H:存怠速實測值,由轉(zhuǎn)速傳感器傳來;35H:存正常低怠速目標上限值(820轉(zhuǎn)/分),由程序存儲器傳來;36H:存正常低怠速目標下限值(780轉(zhuǎn)/分),由程序存儲器傳來;37H:存暖機高怠速目標上限值(1220轉(zhuǎn)/分),由程序存儲器傳來;38H:存暖機高怠速目標下限值(1180轉(zhuǎn)/分),由程序存儲器傳來;3AH:臨時存怠速目標上限值;3BH:臨時存怠速目標下限值00H(位地址):存發(fā)動機運行和關閉數(shù)據(jù):(00H)=0,發(fā)動機關閉;(00H)=1,發(fā)動機運行;信號由發(fā)動機點火開關傳來。怠速步進電機限制程序流程圖(圖1-39)中有5個推斷框。第1個推斷框是“有發(fā)動機關閉信號嗎?”,推斷是否停機。第2個推斷框是“步數(shù)=0嗎?”,步數(shù)=0就停機,否則轉(zhuǎn)移驅(qū)動步進電機反轉(zhuǎn)至停機。第3個推斷框是“缸溫達到目標值嗎?”,沒達到轉(zhuǎn)移“按暖機高怠速處理”,達到“按正常低怠速處理”。處理的過程是把高怠速或低怠速目標值的上、下限值,賦給下一步作為推斷依據(jù)。第4個推斷框是“怠速≥目標上限值嗎”,假如大于或等于,就轉(zhuǎn)移驅(qū)動步進電機正轉(zhuǎn)1步,減小怠速;假如小于,則順接怠速下限值推斷。第5個推斷框是“怠速<目標下限值嗎”,假如小于,就轉(zhuǎn)移驅(qū)動步進電機反轉(zhuǎn)1步,增大怠速;假如大于,說明至此已判出:目標上限值>實測值≥目標下限值,怠速在正常范圍內(nèi),可以保持不變,轉(zhuǎn)移接著查發(fā)動機關閉信號,起先下一循環(huán)監(jiān)控。圖1-39怠速步進電機限制程序流程圖步進電機的轉(zhuǎn)速是由每一相的通電延時長短確定,因此,必需有延時子程序。由于步進電機每一相的通電延時是20ms(或10ms),比較短,所以不須要用定時器,利用空操作指令和推斷轉(zhuǎn)移指令所占的機器周期,經(jīng)多次循環(huán)就可達到延時目的。設單片機的晶振是12MHz,一個機器周期是1μs,3個空操作指令和1個推斷轉(zhuǎn)移指令共占5個機器周期,即占5μs。經(jīng)C8H=200次循環(huán),延時為1ms;再經(jīng)14H=20次大循環(huán),總延時就是20ms。延時子程序流程圖如圖1-40所示。圖1-40延時子程序流程圖

怠速限制閥步進電機限制程序如下(為了易讀,每個程序段前加有小標題):標號源程序 注釋初始化:MOV30H,#00H;將存步數(shù)的30H單元清0MOV31H,#11H;將限制字送31H單元查發(fā)動機關閉否:LOOP1:JNB00H,LOOP2;(00H)=0,發(fā)動機關閉,轉(zhuǎn)移LOOP2反轉(zhuǎn)開閥最大00H)=1,發(fā)動機運行,順接缸溫推斷缸溫推斷:MOVA,33H;將33H內(nèi)缸溫目標值送A;CJNEA,32H,N1;缸溫目標值-實測值≠0,轉(zhuǎn)移N1,對CY推斷N1:JNCN2;缸溫目標值≥實測值,CY=0,轉(zhuǎn)移N2按高怠速處理缸溫目標值<實測值;CY=1,順接按正常低怠速處理按正常低怠速處理:MOV3AH,35H;將35H內(nèi)正常低怠速上限值(820)送3AH內(nèi)MOV3BH,36H;將36H內(nèi)正常低怠速下限值(780)送3BH內(nèi)SJMPN3;轉(zhuǎn)移N3怠速推斷按暖機高怠速處理:N2:MOV3AH,37H;將37H內(nèi)暖機高怠速上限值(1220)送3AH內(nèi)MOV3BH,38H;將36H內(nèi)暖機高怠速下限值(1180)送3BH內(nèi)SJMPN3;轉(zhuǎn)移N3怠速推斷怠速推斷N3:MOVA,34H;將34H內(nèi)怠速實測值送ACJNEA,3AH,N4;怠速實測值-目標上限值≠0,轉(zhuǎn)移N4對CY推斷N4:JNCN5;實測值≥目標上限值,CY=0,轉(zhuǎn)移N5正轉(zhuǎn)(減速)驅(qū)動實測值<目標上限值,CY=1,順接以下指令CJNEA,3BH,N6;怠速實測值-目標下限值≠0,轉(zhuǎn)移N6對CY推斷N6:JCN7;實測值<目標下限值,CY=1,轉(zhuǎn)移N7反轉(zhuǎn)(增速)驅(qū)動實測值≥目標下限值,CY=0,順接以下指令SJMPLOOP1;至此確定:目標上限值>實測值≥目標下限值轉(zhuǎn)LOOP1接著查發(fā)動機關閉信號正轉(zhuǎn)驅(qū)動:N5:MOVA,31H;將31H單元的限制字送ARLA;把A的內(nèi)容向左循環(huán)移1位MOV31H,A;把A中新限制字存31單元MOVP1,A;把A中新限制字送P1口LCALLDELAY;調(diào)用延時子程序,通電延時20msINC30H;正轉(zhuǎn)步數(shù)加1SJMPLOOP1;轉(zhuǎn)LOOP1接著查發(fā)動機關閉信號反轉(zhuǎn)驅(qū)動:N7:MOVA,31H;將31H單元的限制字送ARRA;把A的內(nèi)容向右循環(huán)移1位MOV31H,A;把A中新限制字存31單元MOVP1,A;把A中新限制字送P1口LCALLDELAY;調(diào)用延時子程序,通電延時20ms DEC30H;正轉(zhuǎn)步數(shù)減1SJMPLOOP1;轉(zhuǎn)LOOP1接著查發(fā)動機關閉信號發(fā)動機關閉后反轉(zhuǎn)驅(qū)動:LOOP2:MOVR0,30H;將30H單元正轉(zhuǎn)步數(shù)送R0CJNER0,#00H,N8;R0≠00,轉(zhuǎn)移N8反轉(zhuǎn)驅(qū)動SJMPNEXT9;R0=00,轉(zhuǎn)移N9停止N8:MOVA,31H;將31H單元的限制字送ARRA;把A的內(nèi)容向右循環(huán)移1位MOV31H,A;把A中新限制字存31單元MOVP1,A;把A中新限制字送P1口LCALLDELAY;調(diào)用延時子程序,通電延時20msDEC30H;正轉(zhuǎn)步數(shù)減1SJMPLOOP2;轉(zhuǎn)移L2推斷是否接著反轉(zhuǎn)N9:RET;怠速限制閥復原初始全開狀態(tài),返回主控程序延時子程序:

DELAY:MOVR1,#14H;給R1賦大循環(huán)次數(shù)14H=20LOOP1:MOVR2,#C8H;給R2賦小循環(huán)次數(shù)C8H=200LOOP2:NOP ;空操作,(1μs)

NOP ;空操作,(1μs)

NOP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論