版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、下午10時53分,單片機應用技術,1,任務八 學習、應用位操作指令,1. 位傳送指令(2條)MOV C, bit ;(bit)→CyMOV bit, C ;(Cy)→bit2. 位置位、清零、取反指令(6條)SETB C ; 1→Cy CLR bit ; 0→bit CPL C ; →cySETB bit ; 1→bit CLR C ;
2、 0→Cy CPL bit ;→bit3. 位運算指令(4條)ANL C, bit;(Cy)∧( bit)→CyANL C, /bit;(Cy)∧→CyORL C, bit;(Cy)∨( bit)→CyORL C, /bit;(Cy)∨→Cy,下午10時53分,單片機應用技術,2,4、位控制轉(zhuǎn)移指令(5條)JC re ; 若(Cy)=1,則PC+2+rel→PC,程序轉(zhuǎn)移執(zhí)行;
3、 若(Cy)=0,則PC+2→PC,程序順序執(zhí)行JNC rel ;若(Cy)=0,則PC+2+rel→PC,程序轉(zhuǎn)移執(zhí)行; 若(Cy)=1,則PC+2→PC,程序順序執(zhí)行JB bit, rel ;若(bit)=1,則PC+3+rel→PC,程序轉(zhuǎn)移執(zhí)行; 若(bit)=0,則PC+3→PC,程序順序執(zhí)
4、行JNB bit, rel; 若(bit)=0,則PC+3+rel→PC,程序轉(zhuǎn)移執(zhí)行; 若(bit)=1,則PC+3→PC,程序順序執(zhí)行JBC bit, rel;若(bit)=1,則PC+3+rel→PC,程序轉(zhuǎn)移執(zhí)行 且 0→bit; 若(bit)=0,則PC+3→PC,程序順序執(zhí)行,任務八 學習、應用位操作指令,下午
5、10時53分,單片機應用技術,3,【例3-29】試編程實現(xiàn)將內(nèi)RAM中以BUF開始的一批有符號數(shù),將正數(shù)送外RAM的正數(shù)區(qū),負數(shù)送外RAM的負數(shù)區(qū),遇到0中止。(設正數(shù)區(qū)起點地址是30H,負數(shù)區(qū)起點地址是60H)源程序: MOV R0, #BUF ; 將數(shù)據(jù)塊的首地址送到R0中 MOV R1, #30H ;將正數(shù)的首地址送到R1中
6、 MOV DPTR, #0060H ;將負數(shù)的首地址送到DPTR中 MP3: MOV A, @R0 ; 將數(shù)據(jù)讀到累加器A中 JNZ MP4 ;判斷A中數(shù)據(jù)不是0 SJMP $ ; 累加器A中數(shù)據(jù)是0中止 MP4: JB
7、ACC.7 ,MP5 ; 累加器A中數(shù)據(jù)是負數(shù)? MOVX @R1, A ;將正數(shù)送正數(shù)區(qū) INC R0 ;指向數(shù)據(jù)塊的下一個數(shù)據(jù) INC R1 ;指向正數(shù)區(qū)的下一個單元 MP5: MOVX
8、 @DPTR, A ;將負數(shù)送負數(shù)區(qū) INC R0 ;指向數(shù)據(jù)塊的下一個數(shù)據(jù) INC DPTR ;指向負數(shù)區(qū)的下一個單元 AJMP MP3 ;返回繼續(xù) END,任務八 學習、應
9、用位操作指令,下午10時53分,單片機應用技術,4,任務八 初步掌握MCS—51單片機匯編程序設計,認知1 了解單片機偽指令,偽指令又稱指示性指令,具有和指令類似的形式,但匯編時偽指令并不產(chǎn)生可執(zhí)行的目標代碼,只是對匯編過程進行某種控制或提供某些匯編信息。 ◇ 定位偽指令ORG ◇ 定義字節(jié)數(shù)據(jù)偽指令DB ◇ 定義字數(shù)據(jù)偽指令DW ◇ 定義空間偽指令DS ◇ 符號定義偽指令EQU或= ◇ 數(shù)據(jù)賦值偽指令DATA
10、 ◇ 數(shù)據(jù)地址賦值偽指令XDATA ◇ 匯編結束偽指令END,下午10時53分,單片機應用技術,5,1. 定位偽指令ORG格式:[標號:] ORG 地址表達式功能:規(guī)定程序塊或數(shù)據(jù)塊存放的起始位置例如:ORG 1000H; MOV A,#20H 存放于1000H開始的單元。表示下面指令MOV A,#20H存放于1000H開始的單元。 說明:程序中可以出現(xiàn)多個ORG指令。2.
11、 定義字節(jié)數(shù)據(jù)偽指令DB格式:[標號:] DB 字節(jié)數(shù)據(jù)表功能:字節(jié)數(shù)據(jù)表可以是多個字節(jié)數(shù)據(jù)、字符串或表達式,它表示將字節(jié)數(shù)據(jù)表中的數(shù)據(jù)從左到右依次存放在指定地址單元。例如:ORG 1000H TAB:DB 2BH,0A0H,‘A’,2*4 ;表示從1000H單元開始的地方存放數(shù)據(jù)2BH,0A0H,41H(字母A的ASCII碼),08H。,任務八 初步掌握MCS—51單片機匯編程序設計,認知
12、1 了解單片機偽指令,下午10時53分,單片機應用技術,6,任務八 初步掌握MCS—51單片機匯編程序設計,認知1 了解單片機偽指令,3. 定義字數(shù)據(jù)偽指令DW格式:[標號:] DW 字數(shù)據(jù)表功能: 與DB類似,但DW定義的數(shù)據(jù)項為字,包括兩個字節(jié),存放時高位在前,低位在后。例如: ORG 1000HDATA:DW 324AH,3CH ; 表示從1000H單元開始的地方存放數(shù)據(jù)32H,4AH,
13、00H,3CH(3CH以字的形式表示為003CH)。4. 定義空間偽指令DS格式:[標號:] DS 表達式功能:從指定的地址開始,保留多少個存儲單元作為備用空間。例如:ORG 1000HBUF:DS 50TAB:DB 22H ;表示從1000H開始的地方預留50(1000H~1031H)個存儲字節(jié)空間,22H存放在1032H單元。,下午10時53分,單片機應用技術,7,任務八 初步掌握MCS—51單
14、片機匯編程序設計,認知1 了解單片機偽指令,5. 符號定義偽指令EQU或=格式:符號名 EQU 表達式符號名=表達式功能:將表達式的值或某個特定匯編符號定義為一個指定的符號名,只能定義單字節(jié)數(shù)據(jù),并且必須遵循先定義后使用的原則,因此該語句通常放在源程序的開頭部分。例如: SUM EQU 21H MOV A,SUM ;執(zhí)行指令后,累加器A中的值為21H中的數(shù)據(jù)6. 數(shù)據(jù)賦值偽指令DAT
15、A格式:符號名 DATA 表達式功能:將表達式的值或某個特定匯編符號定義一個指定的符號名,只能定義單字節(jié)數(shù)據(jù),但可以先使用后定義,因此用它定義數(shù)據(jù)可以放在程序末尾進行數(shù)據(jù)定義。舉例: MOV A,#LEN LEN DATA 10,下午10時53分,單片機應用技術,8,任務八 初步掌握MCS—51單片機匯編程序設計,認知1 了解單片機偽指令,7. 數(shù)據(jù)地址賦值偽指令XDATA
16、格式:符號名 XDATA 表達式功能:將表達式的值或某個特定匯編符號定義一個指定的符號名,可以先使用后定義,并且用于雙字節(jié)數(shù)據(jù)定義。舉例: DELAY XDATA 0356H………LCALL DELAY ;執(zhí)行指令后,程序轉(zhuǎn)到0356H單元執(zhí)行8. 匯編結束偽指令END格式:[標號:] END 功能:匯編語言源程序結束標志,用于整個匯編語言程序的末尾處。,下午10時53分,單片機應用技術,9,程
17、序設計概述—設計語言,最早人們只能用機器語言(二進制)編寫程序; 為了方便記憶,人們開始用助記符形式的匯編語言編寫程序,稱為低級語言。然后再用匯編系統(tǒng)將其翻譯成機器語言,該過程稱為匯編;為了用更接近人的語言編寫程序,程序設計師們發(fā)明了高級語言,如: BASIC、FORTRAN、PASCAL、 C、JAVA 然后再用編譯系統(tǒng)將其翻譯成機器語言,該過程稱為編譯; 機器只能識別機器語言。所以必須用編譯系統(tǒng)
18、將高級語言編寫的源程序編譯成機器語言,用匯編系統(tǒng)將用匯編語言編寫的源程序匯編成機器語言; 由低級或高級語言構成的程序稱為源程序,由機器語言構成的程序稱作目標程序;,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,10,1. 匯編程序設計步驟(1) 分析問題,確定算法(2) 畫出程序流程圖編寫較復雜的程序,畫出程序流程圖是十分必要的。所謂程序流程圖也稱為程序框圖,是根據(jù)控制流程設計的
19、,它直接反映了整個系統(tǒng)以及各個部分之間的相互關系,同時也反映操作順序,因而有助于分析出錯原因。(3) 分配內(nèi)存工作區(qū)及有關端口地址(4) 編制匯編源程序(5) 仿真調(diào)試程序(6) 固化程序,1、單片機匯編語言程序設計的基本步驟如下,認知2 掌握匯編語言程序設計與匯編,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,11,順序程序:順序程序是最簡單、最基本的程序結構,其特點是按指令的排列順
20、序一條條地執(zhí)行,直到全部指令執(zhí)行完畢為止。分支程序:分支程序是通過轉(zhuǎn)移指令對相應條件的判斷實現(xiàn)改變程序的執(zhí)行方向的設計方法。循環(huán)程序:在程序中需要反復的執(zhí)行的程序段,為了避免在程序中多次的編寫,可以通過利用條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令來控制程序的執(zhí)行。子程序結構:把實現(xiàn)一定功能的程序編制好,供其他程序調(diào)用。,單片機匯編語言程序主要的幾種程序設計方法:,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用
21、技術,12,順序結構結構特點: 按指令的先后順序依次執(zhí)行。例:將內(nèi)RAM20H單元的兩個壓縮BCD碼拆開變成ASCII碼,存入21H、22H單元。(假設20H中的BCD碼為00110100),什么是BCD碼?什么是ASII碼?,0011,壓縮BCD碼,0011,0011,0100,低四位ASII碼,高四位ASII碼,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,13,方法1:將BCD碼除以1
22、0H,恰好是將BCD碼分別移到了A、B的低4位。然后再各自與30H相或,即成為ASCII碼。,方法2:利用半字節(jié)交換指令來實現(xiàn)。,任務八 初步掌握MCS—51單片機匯編程序設計,認知2 掌握匯編語言程序設計,下午10時53分,單片機應用技術,14,ORG 0000HMOV A,20HMOV B,#10HDIV ABORL B,#30HMOV 22H,BORL A,#30HMOV 21H
23、,ASJMP $,方法1,源程序如下:,0011,0100,PC,PC,PC,0011 0100,0001 0000,PC,0011,0000,0000 0100,PC,0011 0100,PC,PC,PC,0011,PC,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,15,ORG 0000H MOV R0,
24、#20H MOV A,#30H XCHD A,@R0 MOV 22H,A MOV A,@R0 SWAP A
25、 ORL A , #30H MOV 21H, A SJMP $,方法2,PC,PC,PC,PC,PC,PC,PC,PC,PC,源程序如下:,0011,0010 0000,0011,0100,0000,0100,0011,0100,0011,0000,0011,0000,0
26、011,PC,0011,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,16,分支程序結構結構特點:不一定按指令的先后順序依次運行程序,程序的流向有兩個或兩個以上分支,根據(jù)指定條件選擇程序的流向。實例:已知30H單元中有一變量X,要求編寫一程序按下述要求給Y賦值,結果存入31H單元。 X+1, X>0 Y = 0
27、, X = 0 –1 , X<0題意:根據(jù)X的不同,程序編寫時有三個出口,即有三個分支?。。?!,,想一想:程序怎么編寫?,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,17,,,,,,,開始,X?A,A= –1,A= A+1,存結果,結束,,,,,,,,,,,,,,Y,Y,N,N,程序框圖:,,A>0?,,A=0?,任務八 初步掌握M
28、CS—51單片機匯編程序設計,下午10時53分,單片機應用技術,18,源程序如下: ORG 2000H MOV A,30H JZ LP1 ;X = 0,轉(zhuǎn)LP1處理 JNB ACC.7,LP2 ;X>0,轉(zhuǎn)
29、LP2處理 MOV A,#0FFH ;X<0,則Y= –1 SJMP LP1 LP2:ADD A,#01 ;X >0,Y=X+1 LP1:MOV 31H,A ;存結果 SJMP $
30、 ;循環(huán)等待,$表示轉(zhuǎn)至 本地址,此方法適用 于一字節(jié)的偏移量,最高位為符號位。,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,19,結構特點:利用轉(zhuǎn)移
31、指令反復運行需要多次重復的程序段。例如:延時程序:(DELAY) DELAY: MOV R3, #OFFH DEL2: MOV R4,#0FFH DEL1: DJNZ R4,DEL1 DJNZ R3,DEL2
32、 RET 循環(huán)程序的組成: 1. 初始化部分(設定循環(huán)次數(shù)等)。 2. 循環(huán)體(重復執(zhí)行的部分,用于完成實際操作) 3. 循環(huán)控制(不斷修改和判別循環(huán)變量,直至結束)。 4. 循環(huán)結束處理。,循環(huán)程序結構,任務八 初步掌握MCS—51單片機匯編程序設計,下午10時53分,單片機應用技術,20,子程序結構,在實際問題中,常常會遇到在
33、一個程序中多次用到相同的運算或操作,若每遇到這些運算或操作,都從頭編起,將使程序繁瑣、浪費內(nèi)存。因此在實際中,經(jīng)常把這種多次使用的程序段,按一定結構編好,存放在存儲器中,當需要時,可以調(diào)用這些獨立的程序段。通常將這種可以被調(diào)用的程序段稱為子程序。,主要內(nèi)容: 1. 主程序與子程序的關系 2. 子程序嵌套 3. 子程序的調(diào)用與返回,任務八 初步掌握MCS—51單片機匯編程序設計,下午10
34、時53分,單片機應用技術,21,任務八 初步掌握MCS—51單片機匯編程序設計,【例3-33】設有一長度為30H的字符串在單片機內(nèi)RAM中,其首地址為40H,要求將該字符串中的每一個字符加偶校驗位,試編程用子程序的方法來實現(xiàn)。參考程序: ORG0030HMAIN: MOV R0, #40H ; 置地址指針R0初值 MOV R7, #30H ;
35、 置字符串長度LOOP: MOV A, @R0 ;取未加檢驗位的ASCII碼 LCALL MP3 ;調(diào)用子程序 MOV @R0, A ;將加檢驗位的ASCII碼送回 INC R0 ;修改數(shù)據(jù)指針 DJNZ R7, LOOP
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2014單片機應用技術
- 《單片機應用技術》答案
- 單片機原理與應用技術
- 《單片機應用技術》選擇題題庫
- 《單片機應用技術》填空題 題庫
- 單片機應用技術課程整體教學設計
- 單片機應用技術培訓系統(tǒng)研制.pdf
- 《單片機應用技術》教材—串行口通信技術
- 《單片機應用技術》試卷及答案2套
- 單片機原理與應用技術復習提綱
- 數(shù)字時鐘單片機應用技術項目設計方案
- 第8章 單片機開發(fā)及應用技術.PDF
- 第8章 單片機開發(fā)及應用技術.PDF
- 關于《單片機原理及應用技術》課程整體設計初探
- 機電單片機應用技術課程設計--單片機多功能測量儀的設計
- 單片機應用系統(tǒng)單片機
- 第2講-單片機應用技術-湖北職業(yè)技術學院
- 單片機和圖形液晶顯示器接口應用技術
- 《單片機應用技術》復習題及答案電科2018
- 單片機原理應用技術雙芯燈的應用課程設計
評論
0/150
提交評論