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

下載本文檔

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

文檔簡介

單片機學習第四章第1頁,課件共17頁,創(chuàng)作于2023年2月匯編語言程序設計中的數(shù)計算機只能識別二進制數(shù)——機器指令,它原本是不認識常用的十六進制數(shù)和十進制數(shù)的。機器指令/目標代碼:由0/1代碼組成的操作碼與操作數(shù)。十六進制數(shù):便于讀寫記憶的二進制數(shù)的簡寫形式。(0~9,A~F后綴:H/h)BCD碼:用二進制數(shù)表達的十進制數(shù)。(0~9表示為:0000~1001B后綴:B/b,H/h)二進制數(shù):由0/1組成、“逢2進1”的數(shù)制。如:01011110B(0~1后綴:B/b)2第2頁,課件共17頁,創(chuàng)作于2023年2月匯編語言編程基本規(guī)則匯編語言:用助記符描述的指令的集合。√指令中以A—F開頭的十六進制數(shù)前必須添一個“0”。√二進制數(shù)必須帶后綴“B”或“b”;十六進制數(shù)必須帶后綴“H”或“h”;十進制數(shù)的后綴是“D”或“d”或無.[標號:]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋]匯編程序:匯編語言編寫的程序借助編譯工具編譯成為目標代碼,計算機才能識別。這個編譯工具稱為匯編程序。3第3頁,課件共17頁,創(chuàng)作于2023年2月匯編程序的偽指令匯編程序→軟件→

工具→工具軟件:將程序員用匯編語言編寫的程序翻譯成機器碼

(真)指令:告訴計算機如何操作以及做何種操作用匯編語言編寫的程序在此被稱為應用程序偽指令:告訴匯編程序在翻譯應用程序時有何具體約定。偽指令不進行具體的操作,那是真指令的事。比如:從何處開始,何處結束,某些編程者自己規(guī)定的表述代表什么意思……

4第4頁,課件共17頁,創(chuàng)作于2023年2月匯編程序的常用偽指令ORGaddr16——ASM51程序中一定要寫!規(guī)定編譯后的機器代碼存放的起始位置。END

——ASM51程序中一定要寫!表示翻譯到此結束,其后的任何內(nèi)容不予理睬。符號名稱EQU表達式將表達式的值賦予符號名稱。程序中凡出現(xiàn)該符號名稱就等同于該表達式。$——“當前PC值”也叫位置計數(shù)器代表正在執(zhí)行的指令所在位置。5第5頁,課件共17頁,創(chuàng)作于2023年2月符號名稱BIT

位地址將位地址的值賦予符號名稱。程序中凡出現(xiàn)該符號名稱就代表該位地址。DW

雙字節(jié)數(shù)據(jù)[或雙字節(jié)數(shù)據(jù)組]將雙字節(jié)數(shù)據(jù)[或雙字節(jié)數(shù)據(jù)組]順序存放在此后的存儲單元中。占據(jù)相應存儲空間。DB8位數(shù)據(jù)[或8位數(shù)據(jù)組]將8位數(shù)據(jù)[或8位數(shù)據(jù)組]順序存放在此后的存儲單元中。占相應數(shù)量的存儲空間。6第6頁,課件共17頁,創(chuàng)作于2023年2月程序的順序/分支/循環(huán)三種基本結構

ORG2000HBCD2B:MOVA,R2;取入口數(shù)據(jù)

ANLA,#0F0H;取出十位

SWAPA;高4位低4位

MOVB,#0AHMULAB;十位乘10MOVR3,A;積暫存進R3MOVA,R2;再取入口數(shù)據(jù)

ANLA,#0FH;取出個位

ADDA,R3MOVR2,A;結果R2RET;若不是子程序可用END

例:將R2中BCD碼數(shù)轉為二進制數(shù)存進R2(此子程序在下一例中還要用到)7第7頁,課件共17頁,創(chuàng)作于2023年2月編程要點:兩字節(jié)BCD碼數(shù)范圍為:0000H—9999H

相應2進制/16進制數(shù)為:0000H—270FH

調(diào)用BCD2B子程序實現(xiàn)“千位,百位”轉為二進制,

并乘100;

再調(diào)BCD2B子程序實現(xiàn)“十位,個位”轉為二進制;

最后,對位相加。例:將R5R4中的雙字節(jié)BCD碼數(shù)轉為二進制數(shù)存于R5R4中。8第8頁,課件共17頁,創(chuàng)作于2023年2月例:將R5R4中的兩字節(jié)BCD碼數(shù)轉為二進制數(shù)存于R5R4中X100千百十個二進制+Cy+(R5)(R4)(R5)(R4)(R6)(A)(R5)(A)二進制二進制二進制二進制二進制調(diào)BCD2B調(diào)BCD2B9第9頁,課件共17頁,創(chuàng)作于2023年2月

ORG2000HVAREQU30H;定義緩存單元

FUNCEQU31HBR1:MOVA,VAR;取出變量“X”JZCOMP;若=0,就賦0

JNBACC.7,POS1;判斷=正?

MOVA,#0FFH;(-1=+1取反加1)SJMPCOMP;輸出-1POS1:MOVA,#01H;輸出+1COMP:MOVFUNC,A;賦給函數(shù)“Y”HERE:AJMPHEREEND例3:1(X>0)0(X=0)–1(X<0)Y=10第10頁,課件共17頁,創(chuàng)作于2023年2月任務一:控制一盞燈點亮任務二:紅燈周期性亮/滅任務三:紅外防盜報警

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;再檢測11第11頁,課件共17頁,創(chuàng)作于2023年2月

ORG1000HDELAY:MOVR6,#200;1TmLOOP1:MOVR7,#248;1TmNOP;1TmLOOP2:DJNZR7,LOOP2;2TmDJNZR6,LOOP1;2TmRET;1Tm例:軟件循環(huán)延時100mS(晶振12MHz)☆1Tm=1uS100mS=100000uS☆MOVRn#data和NOP是單機器周期指令☆DJNZRn,rel是雙機器周期指令☆200=0C8H;248=0F8H1+1+248x2=498(498+2)x20012第12頁,課件共17頁,創(chuàng)作于2023年2月

ORG1000HDL1S:MOVR7,#10DL1:MOVR6,#200DL2:MOVR5,#250DL3:DJNZR5,DL3DJNZR6,DL2DJNZR7,DL1RET例:軟件循環(huán)延時1S(晶振12MHz)☆1Tm=1uS1S=1000000uS☆MOVRn#data是單機器周期指令☆DJNZRn,rel是雙機器周期指令1+250x21+[(1+250x2)+2)]x2001+[(1+250x2+2)x200+2]x1013第13頁,課件共17頁,創(chuàng)作于2023年2月

ORG2000HH2ASC:MOVA,R2;取待轉換的數(shù)據(jù)(入口)ADDA,#0F6H;判此數(shù)是否≥10?

若≥10,則C=1;<10,則C=0MOVA,R2;重取待轉換的數(shù)據(jù)

JNCAD30H;小于10就跳去加30HADDA,#07H;≥10就先加7再去加30H

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

14第14頁,課件共17頁,創(chuàng)作于2023年2月TABL:DW050FH,0E89H,0A695H,1EAAH,0D9BH,7F93HDW0373H,26D7H,2710H,9E3FH,1A66H,22E3HDW1174H,16EFH,33E4H,6CA0H例:根據(jù)16個雙字節(jié)數(shù)的序號查表找出對應數(shù)據(jù)表地址#TABL#TABL+1#TABL+2#TABL+3……#TABL+30#TABL+31數(shù)據(jù)YY0高Y0低Y1高Y1低……Y15高Y15低序號X00H01H……0FH編程思路:以表格首地址(TABL)為基址,以序號(的2倍)為偏移量,查找對應的數(shù)據(jù)15第15頁,課件共17頁,創(chuàng)作于2023年2月ORG2000HSTA1:MOVA,R2;取待查數(shù)據(jù)的序號X(入口)

RLA;每數(shù)占2個單元,序號要乘2MOVR4,A;R4←序號x2(即偏移量)MOVDPTR,#TABL;DPTR←表格首地址MOVCA,@A+DPTR;(A)←查到數(shù)據(jù)高8位

XCHA,R4;數(shù)據(jù)高8位存進R

溫馨提示

  • 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

提交評論