汽車電子技術(shù)與單片機(jī)第3章_第1頁
汽車電子技術(shù)與單片機(jī)第3章_第2頁
汽車電子技術(shù)與單片機(jī)第3章_第3頁
汽車電子技術(shù)與單片機(jī)第3章_第4頁
汽車電子技術(shù)與單片機(jī)第3章_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三章MCS-51單片機(jī)系統(tǒng)程序設(shè)計第一節(jié)MCS-51指令系統(tǒng)概述第二節(jié)MCS-51單片機(jī)指令詳解第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例第一節(jié)MCS-51指令系統(tǒng)概述一、概述MCS-51指令系統(tǒng)是一種簡明易掌握、效率較高的指令系統(tǒng)。MCS-51的根本指令共111條,其中單字節(jié)指令49條,雙字節(jié)指令45條,三字節(jié)指令17條。從指令的執(zhí)行時間來看,單機(jī)器周期指令64條,雙機(jī)器周期指令45條,只有乘、除兩條指令的執(zhí)行時間為4個機(jī)器周期。指令的表示方法稱之為指令格式,其內(nèi)容包括指令的長度和指令內(nèi)部信息的安排等。一條指令通常由兩局部組成,即操作碼和操作數(shù)。下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述通常在MCS-51指令系統(tǒng)中,有一字節(jié)、二字節(jié)和三字節(jié)等不同長度的指令。一字節(jié)指令只有一個字節(jié),操作碼和操作數(shù)信息同在其中。二字節(jié)指令包括兩個字節(jié),其中一個字節(jié)為操作碼,第二個字節(jié)是操作數(shù)。三字節(jié)指令中,操作碼占一個字節(jié),操作數(shù)占兩個字節(jié),其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。二、尋址方式MCS-51共有5種尋址方式,現(xiàn)介紹如下:上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述1.立即尋址操作數(shù)就寫在指令中,和操作碼一起放在程序存儲器中。把“#〞號放在立即數(shù)前面,以表示該尋址方式為立即尋址,如#20H。2.存放器尋址操作數(shù)放在存放中,在指令中直接以存放器的名字來表示操作數(shù)的地址。例如MOVA,R0就屬于存放器尋址,即將RO存放器的內(nèi)容送到累加器A中。3.直接尋址操作數(shù)放在單片機(jī)的內(nèi)部RAM某單元中,在指令中直接寫出該單元的地址。如前例的ADDA,70H中的70H。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述4.存放器間接尋址存放器間接尋址方式可用于訪問內(nèi)部RAM或外部數(shù)據(jù)存儲器。訪問內(nèi)部RAM或外部數(shù)據(jù)存儲器的低256個字節(jié)時,可采用R0或R1作為間接存放器。這類指令為單字節(jié)指令,其最低位是表示采用R0還是R1作為間接存放器。這種尋址方式的示意圖如圖3-1所示。訪問外部數(shù)據(jù)存儲器的低256字節(jié)時,只要把MOV改為MOVX就行了。訪問外部數(shù)據(jù)存儲器,還可用數(shù)據(jù)指針DPTR作為間址存放器,DPTR是16位存放器,故它可對整個外部數(shù)據(jù)存儲器空間〔64K〕尋址。在執(zhí)行PUSH和POP指令時,也采用存放器間接尋址,這是堆棧指針SP用作間接存放器。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述5.基址存放器加變址存放器間接尋址這種尋址方式用于訪問程序存放器的一個單元,該單元的地址是基址存放器〔DPTR或PC〕的內(nèi)容與變地址存放器A的內(nèi)容之和。這種尋址方式對查表訪問特別有用。尋址方式的示意圖如圖3-2所示。三、指令執(zhí)行過程和指令符號意義單片機(jī)執(zhí)行程序的過程,實際上就是執(zhí)行我們所編制程序的過程,即執(zhí)行逐條指令的過程。計算機(jī)每執(zhí)行一條指令都可分為三個階段進(jìn)行,即取指令——分析指令——執(zhí)行指令。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述取指令的任務(wù)是:根據(jù)程序計數(shù)器PC中的值從程序存儲器讀出現(xiàn)行指令,送到指令存放器。分析指令階段的任務(wù)是:將指令存放器中的指令操作碼讀出后進(jìn)行譯碼,分析其指令性質(zhì),如指令要求操作數(shù),那么尋找操作數(shù)地址。計算機(jī)執(zhí)行程序的過程實際上就是逐條指令地重復(fù)上述操作過程,直至遇到停機(jī)指令或循環(huán)等到指令。一般計算機(jī)進(jìn)行工作時,首先要通過外部設(shè)備把程序和數(shù)據(jù)通過輸入接口電路和數(shù)據(jù)總線送入到存儲器,然后逐條取出執(zhí)行。但單片機(jī)中的程序一般事先都已通過寫入器固化在片內(nèi)或片外程序存儲器中,因而一開機(jī)即可執(zhí)行指令。上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述指令中操作數(shù)的描述符號:Rn——工作存放器R0~R7Ri——間接尋址存放器R0、R1Direct——直接地址,包括內(nèi)部128BRAM單元地址、26個SFR地址。#data——8位常數(shù)#data16——16位常數(shù)addr16——16位目的地址addr11——11位目的地址rel——8位帶符號的偏移地址DPTR——16位外部數(shù)據(jù)指針存放器上一頁下一頁返回第一節(jié)MCS-51指令系統(tǒng)概述bit——可直接位尋址的位A——累加器AB——存放器BC——進(jìn)、借位標(biāo)志位,或位累加器@——間接存放器或基址存放器的前綴/——指定位求反〔x〕——x中的內(nèi)容〔〔x〕〕——x中的地址中的內(nèi)容——當(dāng)前指令存放的地址上一頁返回第二節(jié)MCS-51單片機(jī)指令詳解一、數(shù)據(jù)傳輸指令1.累加器相關(guān)的數(shù)據(jù)傳輸指令以下指令的功能是把源操作數(shù)的內(nèi)容送入累加器A,源操作數(shù)有存放器尋址、直接尋址、間接尋址和立即尋址等方式。2.內(nèi)部RAM單元之間的數(shù)據(jù)傳輸指令下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解內(nèi)部RAM單元之間的數(shù)據(jù)傳輸可以使用直接尋址、存放器尋址以及存放器間接尋址方式。3.外部存儲器數(shù)據(jù)傳輸指令外部RAM傳輸指令通常使用間接尋址的方式,主要可以分為以Ri進(jìn)行間接尋址和使用16位的DPTR進(jìn)行的間接尋址。針對外部RAM的操作只能通過累加器A來完成,MCS-51系統(tǒng)中沒有專門的存儲器讀寫指令,實際上這些傳輸指令就是讀寫指令,為了區(qū)分是外部存放器,特別是指令助記符上增加了“X〞代表外部之意。具體的指令如下:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解采用Ri的指令有:采用DPTR的指令有:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解4.數(shù)據(jù)交換指令數(shù)據(jù)交換主要是在內(nèi)部RAM單元與累加器A之間進(jìn)行,有整字節(jié)交換、半字節(jié)交換和累加器上下半字節(jié)交換指令。源操作數(shù)有存放器尋址、直接尋址和存放器間接尋址等方式,例如:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解5.堆棧指令在MCS-51內(nèi)部RAM中可以設(shè)定一個后進(jìn)先出LIFO的區(qū)域作為一個堆棧。在特殊功能存放器中有一個堆棧指針SP,它指出棧頂?shù)奈恢?,在指令系統(tǒng)中有兩條用于數(shù)據(jù)操作的棧操作指令。首先是入棧指令,這條指令的功能是首先將棧指針SP加1,然后把直接地址指出的內(nèi)容送到棧指針SP指示的內(nèi)部RAM單元中。還有對應(yīng)的出棧指令,出棧指令是將當(dāng)前堆棧指針存放器SP所指示的單元的內(nèi)容傳送到該指令指定的直接尋址單元中去,然后SP中的內(nèi)容減1.堆棧操作實際上是通過堆棧指示器SP進(jìn)行的讀寫操作,是以SP為間址存放器的間接尋址方式。因為SP是唯一的,所以在指令中把通過SP的間接尋址的操作數(shù)項隱含了,只表示出直接尋址的操作數(shù)項。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解二、算術(shù)運(yùn)算指令1.加法指令在加法指令中,又分位普通加法和帶進(jìn)位的加法。這組加法指令的功能是把所指出的字節(jié)變量與累加器A的內(nèi)容相加,其結(jié)果放在累加器A中。如果位7有進(jìn)位輸出,那么置“1〞進(jìn)位標(biāo)志Cy,否那么對Cy清“0〞,如果位3有進(jìn)位輸出,置“1〞輔助進(jìn)位標(biāo)志Ac,否那么對Ac清“0〞;如果位6有進(jìn)位輸出而位7沒有進(jìn)位,或者位7有進(jìn)位輸出而位6沒有進(jìn)位,那么置“1〞溢出標(biāo)志OV,否那么對OV清“0〞。源操作數(shù)有存放器尋址、直接尋址、存放器間接尋址和立即尋址等方式。帶進(jìn)位的加法,除了與上述的運(yùn)算相似外,還增加了進(jìn)位標(biāo)制Cy參加運(yùn)算;上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解2.減法指令通常的減法運(yùn)算都帶有借位,這與帶進(jìn)位的加法十分類似:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解3.增1減1指令這些指令可以實現(xiàn)對相應(yīng)的操作數(shù)的增1和減1操作,這種操作不會影響PSW的狀態(tài),具體指令如下:以上為自增1運(yùn)算,只需將INC更改為DEC,那么可以實現(xiàn)減1運(yùn)算,但增1運(yùn)算中還有INCDPTR,實現(xiàn)DPTR增1,而減1中卻沒有這條指令。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解4.乘除指令MULABDIVABMUL為乘法指令,其功能是把累加器A和存放器B中的無符號8位整數(shù)相乘,其16位積得低位字節(jié)在累加器A中,高位字節(jié)在B中。如果積大于255,那么置位溢出標(biāo)志位OV,否那么對OV清“0〞。進(jìn)位標(biāo)志位總是清“0〞。DIV為除法指令,該指令的功能是把累加器A中8位無符號整數(shù)除以B中的8位無符號整數(shù),所得的商〔為整數(shù)〕存放在累加器A中,余數(shù)在存放器B中,清“0〞Cy和溢出標(biāo)志位OV。如果B得內(nèi)容為“0〞〔除數(shù)為“0〞〕,那么結(jié)果A,B中的內(nèi)容不定,并置位溢出標(biāo)志位OV。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解5.十進(jìn)制調(diào)整指令DAA這條指令對累加器A由前兩個變量〔壓縮的BCD碼〕相加的結(jié)果進(jìn)行十進(jìn)制調(diào)整使A中的結(jié)果為二進(jìn)制碼數(shù)。三、邏輯運(yùn)算指令邏輯運(yùn)算指令包括與、或、異或、循環(huán)、累加器清零與求反指令。這些指令中的操作數(shù)都是8位,它們在執(zhí)行時,不影響標(biāo)志位。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解1.與〔AND〕邏輯運(yùn)算指令邏輯運(yùn)算都是按位進(jìn)行的,邏輯與運(yùn)算用符號∧表示。以上這幾條指令運(yùn)算結(jié)果存放在A中,下面這兩條指令的運(yùn)算結(jié)果那么存放在直接地址的地址單元中:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解2.或〔OR〕邏輯運(yùn)算指令邏輯或運(yùn)算用符號∨表示。以上幾條指令運(yùn)算結(jié)果存放在A中,下面這兩條指令的運(yùn)算結(jié)果那么存放在直接尋址的地址單元中:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解3.異或邏輯運(yùn)算指令邏輯異或運(yùn)算的規(guī)那么是,兩運(yùn)算數(shù)相同時為假〔0〕,兩運(yùn)算數(shù)相異時為真〔1〕,這種運(yùn)算用符號表示。以上這幾條指令運(yùn)算結(jié)果存放在A中,下面這兩條指令的運(yùn)算結(jié)果那么存放在直接地址的地址單元中:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解4.累加器清零和求反指令四、控制轉(zhuǎn)移指令控制轉(zhuǎn)移指令包括無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指定、比較轉(zhuǎn)移指令、循環(huán)轉(zhuǎn)移指令及調(diào)用與返回指令。1.無條件轉(zhuǎn)移指令這里又分為長轉(zhuǎn)移、短轉(zhuǎn)移、絕對轉(zhuǎn)移和變址尋址轉(zhuǎn)移4種方式。長轉(zhuǎn)移指令執(zhí)行時可以把指令的第二和第三字節(jié)分別裝入PC的高位和低位字節(jié)中,無條件地轉(zhuǎn)向指定地址。轉(zhuǎn)移的目標(biāo)地址可以在64K程序存儲器地址空間的任何地方。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解對于短轉(zhuǎn)移指令,在執(zhí)行時在PC加2之后,把指令的有符號的偏移量rel加到PC上,并計算出轉(zhuǎn)向地址。因此轉(zhuǎn)向的目標(biāo)地址可以在這條指令前128字節(jié)到后127字節(jié)之間。指令格式如下:絕對轉(zhuǎn)移指令是2KB范圍內(nèi)的無條件跳轉(zhuǎn)指令。AJMP把MCS-51的64K程序存儲器空間劃分為32個區(qū),每個區(qū)為2K字節(jié),轉(zhuǎn)移目標(biāo)地址必須與AJMP下一條指令的第一個字節(jié)在同一2KB范圍內(nèi),否那么,將引起混亂,如果AJMP正好落在區(qū)底的兩個單元內(nèi),程序就轉(zhuǎn)移到下一個區(qū)中去了,這時不會出現(xiàn)問題。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解執(zhí)行該指令時,先將PC加2,然后把a(bǔ)ddr11送入PC的低11位,PC高位不變,程序轉(zhuǎn)移到指定的地方。指令格式如下:變址尋址轉(zhuǎn)移指令的功能是把累加器中8位元符號數(shù)與數(shù)據(jù)指針DPTR的16位數(shù)相加,結(jié)果作為下條指令地址送入PC,不改變累加器和數(shù)據(jù)指針DPTR內(nèi)容,也不影響標(biāo)志。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解2.條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令又可以分為判零轉(zhuǎn)移、數(shù)值比較轉(zhuǎn)移和減1轉(zhuǎn)移三種。判零轉(zhuǎn)移是有條件的相對轉(zhuǎn)移指令,指令如下:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解數(shù)值比較轉(zhuǎn)移指令的功能是比較前面兩個操作數(shù)的大小,如果他們的值不相等那么轉(zhuǎn)移,在PC加到下一條指令的起始地址后,通過把指令最后一個字節(jié)的有符號的相對偏移量加到PC上,并計算出轉(zhuǎn)向地址。如果第一操作數(shù)〔無符號數(shù)〕小于第二操作數(shù)〔無符號整數(shù)〕,那么置進(jìn)位標(biāo)志位Cy,否那么對Cy清“0〞,不影響任何一個操作數(shù)的內(nèi)容。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解這組指令將源操作數(shù)(Rn,direct)減1,結(jié)果回送到源操作數(shù)存放器或存儲器中去。如果結(jié)果不為0那么轉(zhuǎn)移。源操作數(shù)有存放器尋址和直接尋址。允許程序員把內(nèi)部RAM單元用作程序循環(huán)計數(shù)器。指令格式如下:DJNZRn,relDJNZdirect,rel3.子程序調(diào)用和返回指令子程序結(jié)構(gòu)是一種重要的程序結(jié)構(gòu)。在一個程序中經(jīng)常遇到反復(fù)屢次執(zhí)行程序段的情況,如果重復(fù)書寫這個程序段,會使程序變得冗長而雜亂,因而采用了功能較為重復(fù)的子程序。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解調(diào)用和返回構(gòu)成了子程序調(diào)用的完整過程。為了實現(xiàn)這一過程,必須有子程序調(diào)用指令和返回指令。返回指令那么應(yīng)該是子程序的最后一條指令。執(zhí)行完這條指令之后,程序返回主程序斷點處繼續(xù)執(zhí)行。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解還有子程序返回指令RET和RETI,分別放置了在子程序和中斷效勞程序的最后。4、空操作指令這條語句什么也不做,消耗一個機(jī)器周期的時間,通常用于程序的延時。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解五、位操作指令1.數(shù)據(jù)位傳送指令這組指令的功能是把由源操作數(shù)指出的位變量送到目的操作數(shù)指定的單元中去。其中一個操作數(shù)必須為進(jìn)位標(biāo)志,另一個可以是任何直接尋址位。不影響其他存放器或標(biāo)志。指令格式如下:上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解2.修改變量指令這組指令將操作數(shù)指出的位清“0〞、取反、置“1〞,不影響其他標(biāo)志。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解3.位變量的邏輯運(yùn)算實際上位運(yùn)算全部是邏輯運(yùn)算,共有與、或、非三種指令。這里僅以與運(yùn)算為例來說明,或運(yùn)算符位ORL,非運(yùn)算已在上文中替代。上一頁下一頁返回第二節(jié)MCS-51單片機(jī)指令詳解4.條件轉(zhuǎn)移類指令與前文介紹的條件轉(zhuǎn)移指令類似,位運(yùn)算也可以進(jìn)行條件轉(zhuǎn)移。上一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例一、匯編語言程序的根本結(jié)構(gòu)各種計算機(jī)的匯編語言的語法規(guī)那么根本相同,且具有相同的語句格式。先以MCS-51匯編語言作具體說明。MCS-51匯編語言的語句格式表示如下:下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例其中,方括號括起來的是可選局部,可有可無,視需要而定。標(biāo)號是指令的符號的地址,有了標(biāo)號,程序中的其他語句才能訪問該語句。標(biāo)號的規(guī)那么:標(biāo)號由1~8個ASCII字符組成,但頭一個字符必須是字母,其余可以是字母,數(shù)字或其他特定字符。不能使用本匯編語言已定義了符號作為符號,如指令助記符、偽指令助記符以及存放器的符號名稱。標(biāo)號后必須跟以冒號〔:〕同一標(biāo)號在一個程序中只能定義一次,不能重復(fù)定義。上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例一條語句可以有標(biāo)號,也可以沒有標(biāo)號,標(biāo)號的有無取決于本程序中的其他語句是否需要訪問這條語句操作碼用于規(guī)定語句執(zhí)行的操作內(nèi)容。操作碼是以指令助記符或偽指令助記符表示的,操作碼是匯編指令格式中唯一不能空缺的局部。操作數(shù)用于給指令和操作提示數(shù)據(jù)或地址。注釋不屬于語句的功能局部,它只是對語句的解釋說明。分界符用于把語句格式中的各局部隔開,以便于匯編語言程序區(qū)分,包括空格,冒號,分號或逗號等多種符號,在MCS-51中,冒號〔:〕用于標(biāo)號之后;空格〔〕用于操作碼和操作數(shù)之間;逗號〔,〕用于操作數(shù)之間;分號〔;〕用于注釋之前。上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例匯編語言程序的結(jié)構(gòu)形式主要分為三種:順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)是最簡單的程序結(jié)構(gòu),在順序結(jié)構(gòu)中既無分支,循環(huán),也不調(diào)用子程序,程序執(zhí)行時一條一條地按順序執(zhí)行指令。分支結(jié)構(gòu)使用條件轉(zhuǎn)移指令實現(xiàn),即根據(jù)條件對程序的執(zhí)行進(jìn)行判斷,滿足條件那么進(jìn)行程序轉(zhuǎn)移,否那么程序順序執(zhí)行。循環(huán)結(jié)構(gòu)那么在程序的某個區(qū)段進(jìn)行反復(fù)的運(yùn)行,直到滿足某種條件結(jié)束,而有的程序那么完全不能跳出的死循環(huán),將會無休止地運(yùn)行下去。上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例二、簡單程序設(shè)計簡單程序設(shè)計指的就是按照順序來執(zhí)行程序,程序中可以包含某種算法。[實例]求解多項式y(tǒng)=2a-b。假設(shè)操作數(shù)a放在存放器R3,操作數(shù)b放在存放器R4;結(jié)果分別放在存放器R5和R6.上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例三、分支和循環(huán)程序在許多情況下,需要根據(jù)不同的條件轉(zhuǎn)向不同的處理程序,這種結(jié)構(gòu)的程序稱為分支程序。MCS-51單片機(jī)設(shè)置的條件轉(zhuǎn)移指令、比較轉(zhuǎn)移指令和位轉(zhuǎn)移指令可以實現(xiàn)程序的分支。圖3-3為分支程序框圖。[實例]設(shè)a存放在累加器R2中,b存放在存放器R3中,要求按下式計算y值,并將結(jié)果y存于累加器A中。上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例循環(huán)程序是指一段反復(fù)執(zhí)行的程序。圖3-4為循環(huán)程序框圖。[實例]將內(nèi)部數(shù)據(jù)存儲器38H~6FH單元的內(nèi)容傳送到外部數(shù)據(jù)存儲器以1000H開始的連續(xù)單元中去。38H~6FH單元向外傳數(shù)據(jù),需傳送56次。將R6作為循環(huán)計數(shù)存放器,有如下的流程圖:上一頁下一頁返回第三節(jié)MCS-51單片機(jī)系統(tǒng)程序設(shè)計實例四、查表程序查表就是根據(jù)自變量x的值,在表總查找y,使y=f〔x〕。x和y可以使各種類型的數(shù)據(jù)。表的結(jié)構(gòu)也是多種多樣的。表格可以放在程序存儲器中,也可以存放在數(shù)據(jù)存儲器中。在單片機(jī)應(yīng)用系統(tǒng)中,這類程序使用頻繁。利用它能防止進(jìn)行復(fù)雜的運(yùn)算或轉(zhuǎn)換過程,故它廣泛應(yīng)用于顯示、打印字符的轉(zhuǎn)換以及數(shù)據(jù)補(bǔ)償、計算、轉(zhuǎn)換等程序中。一般情況下,對自變量x是有變化規(guī)律的數(shù)據(jù),可以根據(jù)這一規(guī)律形成地址,對應(yīng)的y那么存放于該地址單元中;對x是沒有變化規(guī)律的數(shù)據(jù),在表中存放x及其對應(yīng)的y值。上一頁下一頁

溫馨提示

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

評論

0/150

提交評論