單片機學習第四章課件_第1頁
單片機學習第四章課件_第2頁
單片機學習第四章課件_第3頁
單片機學習第四章課件_第4頁
單片機學習第四章課件_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第四章匯編語言與簡單程序設計1匯編語言程序設計中的數計算機只能識別二進制數——機器指令,它原本是不認識常用的十六進制數和十進制數的。機器指令/目標代碼:由0/1代碼組成的操作碼與操作數。十六進制數:便于讀寫記憶的二進制數的簡寫形式。(0~9,A~F后綴:H/h)BCD碼:用二進制數表達的十進制數。(0~9表示為:0000~1001B后綴:B/b,H/h)二進制數:由0/1組成、“逢2進1”的數制。如:01011110B(0~1后綴:B/b)2匯編語言編程基本規則匯編語言:用助記符描述的指令的集合。√指令中以A—F開頭的十六進制數前必須添一個“0”。√二進制數必須帶后綴“B”或“b”;十六進制數必須帶后綴“H”或“h”;十進制數的后綴是“D”或“d”或無.[標號:]操作碼[目的操作數][,源操作數][;注釋]匯編程序:匯編語言編寫的程序借助編譯工具編譯成為目標代碼,計算機才能識別。這個編譯工具稱為匯編程序。3匯編程序的常用偽指令ORGaddr16——ASM51程序中一定要寫!規定編譯后的機器代碼存放的起始位置。END——ASM51程序中一定要寫!表示翻譯到此結束,其后的任何內容不予理睬。符號名稱EQU表達式將表達式的值賦予符號名稱。程序中凡出現該符號名稱就等同于該表達式。$——“當前PC值”也叫位置計數器代表正在執行的指令所在位置。5符號名稱BIT位地址將位地址的值賦予符號名稱。程序中凡出現該符號名稱就代表該位地址。DW雙字節數據[或雙字節數據組]將雙字節數據[或雙字節數據組]順序存放在此后的存儲單元中。占據相應存儲空間。DB8位數據[或8位數據組]將8位數據[或8位數據組]順序存放在此后的存儲單元中。占相應數量的存儲空間。6程序的順序/分支/循環三種基本結構ORG2000HBCD2B:MOVA,R2;取入口數據ANLA,#0F0H;取出十位SWAPA;高4位低4位MOVB,#0AHMULAB;十位乘10MOVR3,A;積暫存進R3MOVA,R2;再取入口數據ANLA,#0FH;取出個位ADDA,R3MOVR2,A;結果R2RET;若不是子程序可用END

例:將R2中BCD碼數轉為二進制數存進R2(此子程序在下一例中還要用到)7例:將R5R4中的兩字節BCD碼數轉為二進制數存于R5R4中X100千百十個二進制+Cy+(R5)(R4)(R5)(R4)(R6)(A)(R5)(A)二進制二進制二進制二進制二進制調BCD2B調BCD2B9ORG2000HVAREQU30H;定義緩存單元FUNCEQU31HBR1:MOVA,VAR;取出變量“X”JZCOMP;若=0,就賦0

JNBACC.7,POS1;判斷=正?MOVA,#0FFH;(-1=+1取反加1)SJMPCOMP;輸出-1POS1:MOVA,#01H;輸出+1COMP:MOVFUNC,A;賦給函數“Y”HERE:AJMPHEREEND例3:1(X>0)0(X=0)–1(X<0)Y=10任務一:控制一盞燈點亮任務二:紅燈周期性亮/滅任務三:紅外防盜報警0RG0000HAJMPMAINORG0003HRLAACALLDELAYRETIMAIN:MOVA,#80HSETBEX0SETBEAWAIT:JBACC.0,JOB1JBACC.1,JOB2JBACC.2,JOB3AJMPWAITJOB1: CLRP1.0;亮紅燈HERE:AJMPHEREJOB2:CPLP1.0;亮/滅ACALLDELAY;延時1秒AJMPJOB2;重復JOB3:CLRP1.1;亮綠燈REDO:SETBP1.3CHECK:JNBP1.3,CHECKLOOP:…………;報警! AJMPREDO;再檢測11ORG1000HDL1S:MOVR7,#10DL1:MOVR6,#200DL2:MOVR5,#250DL3:DJNZR5,DL3DJNZR6,DL2DJNZR7,DL1RET例:軟件循環延時1S(晶振12MHz)☆1Tm=1uS1S=1000000uS☆MOVRn#data是單機器周期指令☆DJNZRn,rel是雙機器周期指令1+250x21+[(1+250x2)+2)]x2001+[(1+250x2+2)x200+2]x1013ORG2000HH2ASC:MOVA,R2;取待轉換的數據(入口)ADDA,#0F6H;判此數是否≥10?

若≥10,則C=1;<10,則C=0MOVA,R2;重取待轉換的數據JNCAD30H;小于10就跳去加30HADDA,#07H;≥10就先加7再去加30H

AD30H:ADDA,#30HMOVR2,A;存結果(出口)RET例:16進制數(00H—0FH)轉ASCII碼子程序算法:凡≥10的十六進制數加37H;凡<10的十六進制數加30H。(ASCII碼表0~9→30H~39H,A~F→41H~46H

14TABL:DW050FH,0E89H,0A695H,1EAAH,0D9BH,7F93HDW0373H,26D7H,2710H,9E3FH,1A66H,22E3HDW1174H,16EFH,33E4H,6CA0H例:根據16個雙字節數的序號查表找出對應

溫馨提示

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

評論

0/150

提交評論