<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>

    第4章80C51的匯編語言程序設計

    上傳人:fgh****35 文檔編號:248212976 上傳時間:2024-10-22 格式:PPT 頁數(shù):44 大小:2.18MB
    收藏 版權申訴 舉報 下載
    第4章80C51的匯編語言程序設計_第1頁
    第1頁 / 共44頁
    第4章80C51的匯編語言程序設計_第2頁
    第2頁 / 共44頁
    第4章80C51的匯編語言程序設計_第3頁
    第3頁 / 共44頁

    下載文檔到電腦,查找使用更方便

    15 積分

    下載資源

    還剩頁未讀,繼續(xù)閱讀

    資源描述:

    《第4章80C51的匯編語言程序設計》由會員分享,可在線閱讀,更多相關《第4章80C51的匯編語言程序設計(44頁珍藏版)》請在裝配圖網(wǎng)上搜索。

    1、單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,第,4,章,80C51,的匯編語言程序設計,程序編制的,方法,和,技巧,4.1,源程序的,編輯,和,匯編,4.2,基本,程序結構,4.3,子程序,及其調用,4.4,簡單,I/O,設備的并口直接驅動,示例,4.5,2024/10/22,1,單片機應用系統(tǒng)由,硬件系統(tǒng),和,應用程序,構成,匯編語言,高級語言,應用程序設計,:,2024/10/22,2,4.1,程序編制的方法和技巧,4.1.1,程序編制的步驟,任務分析,算法設計,2024/10/22,3,流程描述,流程圖符號,“,超級循環(huán),”,框架,2024

    2、/10/22,4,強化模塊觀念,4.1.2,程序編制的方法和技巧,采用循環(huán)和子程序,對中斷子程序要注意保護,PSW,的內容,2024/10/22,5,4.1.3,匯編語言的語句格式,非數(shù)字字符開頭,后跟字母、數(shù)字、,“,-,”,、,“,?,”,等,不能用已定義的保留字(指令助記符、偽指令等),后跟英文冒號,“,:,”,Keil,的匯編器,A51,可以識別的語句形式為:,標號(,符號地址,),標號,:,指令助記符,操作數(shù),1,操作數(shù),2,操作數(shù),3,;,注釋,指令助記符,是指令功能的英文縮寫。,2024/10/22,6,數(shù)據(jù):二進制(,B,),十進制(,D,或省略,D,),十六進制(,H,),注

    3、意,A,F,開頭時要加,“,0,”,ASCII,碼,如,A,,,1245,符號:符號名、標號或,“,$,”,(,PC,的當前值),表達式:由運算符和數(shù)據(jù)構成(見表,4.1,),操作數(shù),注釋,英文分號,“,;,”,開頭,2024/10/22,7,優(yōu)先級,運 算 符,功 能,表達式及其結果示例,高,低,(),括號,4*,(,5+6,)即,44,NOT,、,HIGH,、,LOW,取反、取高字節(jié)、取低字節(jié),NOT 55H,即,AAH,;,HIGH 1234H,即,12H,、,正號、負號,5,、,6,*、,/,、,MOD,乘、除(取商)、取余數(shù),17/5,即,3,;,17 MOD 5,即,2,、,加、減

    4、,5,4,即,9,;,5,4=,即,1,SHL,、,SHR,左移、右移,2 SHL 2,即,8,;,8 SHR 2,即,2,AND,、,OR,、,XOR,與、或、異或,45H AND 0FH,即,05H,、,=,、,、,=,比較運算符,MOV A,X8,;,若,X8,為真,則為,MOV A,01H,若,X8,為假,則為,MOV A,00H,表,4.1,2024/10/22,8,4.2,源程序的編輯和匯編,目標程序的產生過程如下圖:,2024/10/22,9,4.2.1,源程序的編輯和匯編,源程序的編輯,ORG,0000H,LJMP MAIN,ORG,0040H,MAIN:MOV R7,#16,

    5、MOV R0,#60H,MOV A,#55H,LOOP:MOV R0,A,INC R0,DJNZ R7,LOOP,SJMP$,END,依據(jù)匯編語言規(guī)則,用好,偽指令,符號,不用中文,SJMP$,用于調試,以,.ASM,存盤,2024/10/22,10,源程序的匯編,匯編源程序轉為目標程序的過程叫,匯編,匯編通常在,Windows,下的,集成開發(fā)環(huán)境,完成,用,A51.EXE,匯編生成,.OBJ,、,.LIB,及,.LST,目標程序的連接,.OBJ,、,.LIB,經,BL51.EXE,生成無擴展名的,絕對地址目標文件,絕對地址目標文件,可以用于仿真器調試,調試無誤的目標文件用,OH51.EXE,

    6、轉換為,.HEX,文件,.HEX,文件經,編程器,寫入單片機存儲器,2024/10/22,11,4.2.2,偽指令,偽指令,也叫匯編命令。僅對匯編過程進行指示,偽指令沒有對應的單片機可執(zhí)行代碼(,機器碼,),起始地址設定偽指令,ORG,ORG,表達式,表達式通常為十六進制地址,例:,ORG 8000H,START:MOV A,#30H,ORG,可多次使用,但地址值的順序要由小到大,結束匯編偽指令,END,END,位于源程序的,最后一行,。,2024/10/22,12,定義字節(jié)數(shù)據(jù)表偽指令,DB,定義字數(shù)據(jù)表偽指令,DW,1000H,標號:,DB,字節(jié)數(shù)據(jù)表,例:,ORG 1000H,DB -2

    7、,-4,-6,8,10,18,FEH,FCH,FAH,08H,0AH,12H,1001H,標號:,DW,字數(shù)據(jù)表,ORG 1400H,DATA1:DW 32,4A,H,3CH,1400H,32H,4A,H,00H,3CH,1401H,1402H,1403H,大端模式,2024/10/22,13,定義常值為符號名偽指令,EQU,符號名,EQU,常值表達式,LEN,EQU,10,SUM,EQU,21H,BLOCK,EQU,22H,CLR A,MOV R7,LEN,MOV R0,BLOCK,LOOP:ADD A,R0,INC R0,DJNZ R7,LOOP,MOV,SUM,A,符號名為:,地址,常數(shù)

    8、,段名,字符串,寄存器名,位名,比較:,標號,只能是地址,用,EQU,定義的,“,符號名,”,一經定義不能重新定義或修改,2024/10/22,14,定義位地址為符號名偽指令,BIT,符號名,BIT,位地址表達式,例:,ST BIT P1.0 ;,將,P1.0,的位地址賦給符號名,ST,CF BIT 0D7H ;,將位地址為,D7H,的位定義為符號名,用,BIT,定義的,“,符號名,”,一經定義便不能重新定義和改變,2024/10/22,15,4.3.1,順序程序,(無分支、無循環(huán)),4.3,基本程序結構,【,例,】,片內,RAM,的,21H,單元存放一個十進制數(shù)據(jù)十位的,ASCII,碼,,2

    9、2H,單元存放該數(shù)據(jù)個位的,ASCII,碼。編寫程序將該數(shù)據(jù)轉換成壓縮,BCD,碼存放在,20H,單元。,2024/10/22,16,ORG 0040H,START:MOV A,21H ;,取十位,ASCII,碼,ANL A,#0FH ;,保留低半字節(jié),SWAP A ;,移至高半字節(jié),MOV 20H,A ;,存于,20H,單元,MOV A,22H ;,取個位,ASCII,碼,ANL A,#0FH ;,保留低半字節(jié),ORL 20H,A ;,合并到結果單元,SJMP$,END,2024/10/22,17,4.3.2,分支程序,分支程序可根據(jù)要求,無條件,或,條件地,改變程序執(zhí)行流向。編寫分支程序主

    10、要在于正確使用,轉移指令,。分支程序有:單分支結構、雙分支結構、多分支結構(散轉),條件成立?,下條指令,程序段,A,單分支結構,Y,N,條件成立?,程序段,B,Y,N,程序段,A,雙分支結構,2024/10/22,18,4.3.2,分支程序,分支程序可根據(jù)要求無條件或條件地改變程序執(zhí)行流向。編寫分支程序主要在于正確使用轉移指令。分支程序有:單分支結構、雙分支結構、多分支結構(散轉),K=,?,程序段,n,n,0,程序段,1,多分支結構,程序段,0,1,2024/10/22,19,4.3.2,分支程序,(單分支、雙分支、多分支),【,例,4-2】,設變量,x,以補碼的形式存放在片內,RAM,的

    11、,30H,單元,變量,y,與,x,的關系是,:,當,x,大于,0,時,y=x;,當,x=0,時,y=20H;,當,x,小于,0,時,y=x+5,。編制程序,根據(jù),x,的大小求,y,并送回原單元。,2024/10/22,20,ORG 0040H,START:MOV A,30H ;,取,x,至累加器,JZ NEXT,;x=0,轉,NEXT,ANL A,#80H ;,否,保留符號位,JZ DONE,;x 0,轉結束,MOV A,#05H ;x 0,處理,ADD A,30H,MOV 30H,A ;X+05H,送,Y,SJMP DONE,NEXT:MOV 30H,#20H;x=0,20H,送,Y,DON

    12、E:SJMP DONE,END,2024/10/22,21,【,例,4-3】,根據(jù),R7,的內容,x,(轉移序號)轉向相應的處理程序。,設,R7,內容為,0,4,,對應的處理程序入口地址分別為,PP0,PP4,。,2024/10/22,22,START:MOV R7,#3 ;,以轉移序號,3,為例,ACALL JPNUM,AJMP START,JPNUM:MOV DPTR,#TAB ;,置分支入口地址表首址,MOV A,R7,ADD A,R7,;,乘,2,,調整偏移量,MOV R3,A,MOVC A,A+DPTR ;,取地址高字節(jié),暫存于,R3,XCH A,R3,INC A,MOVC A,A+

    13、DPTR ;,取地址低字節(jié),MOV DPL,A ;,處理程序入口地址低,8,位送,DPL,MOV DPH,R3 ;,處理程序入口地址高,8,位送,DPH,CLR A,JMP A+DPTR,2024/10/22,23,TAB:DW PP0,DW PP1,DW PP2,DW PP3,DW PP4,PP0:MOV,30H,#0 ;,轉移序號為,0,時,置功能號,“,0,”,于,30H,單元,RET,PP1:MOV,30H,#1 ;,轉移序號為,1,時,置功能號,“,1,”,于,30H,單元,RET,PP2:MOV,30H,#2 ;,轉移序號為,2,時,置功能號,“,2,”,于,30H,單元,RET,

    14、PP3:MOV 30H,#3,;,轉移序號為,3,時,置功能號,“,3,”,于,30H,單元,RET,PP4:MOV 30H,#4 ;,轉移序號為,4,時,置功能號,“,4,”,于,30H,單元,RET,2024/10/22,24,4.3.3,循環(huán)程序,循環(huán)程序一般由:,初始化部分,循環(huán)體部分,-,處理部分、修改部分、控制部分,結束部分,其結構一般有兩種:,先進入處理部分,再控制循環(huán),至少執(zhí)行一次循環(huán)體,先控制循環(huán),再進入處理部分,循環(huán)體是否執(zhí)行,取決于判斷結果。,2024/10/22,25,開始,設置循環(huán)初值,循環(huán)處理,循環(huán)修改,結束處理,結束,循環(huán)結束?,開始,設置循環(huán)初值,循環(huán)處理,循環(huán)

    15、修改,結束處理,結束,循環(huán)結束?,N,Y,Y,N,2024/10/22,26,4.3.3,循環(huán)程序,【,例,4-4】,將內部,RAM,的,30H,至,3FH,單元初始化為,00H,。,MAIN:MOV R0,#30H;,置初值,MOV A,#00H ;,MOV R7,#16 ;,LOOP:MOV R0,A ;,循環(huán)處理,INC R0 ;,DJNZ R7,LOOP;,循環(huán)修改,判結束,SJMP$;,結束處理,2024/10/22,27,【,例,4-5】,將內部,RAM,起始地址為,60H,的數(shù)據(jù)串傳送到外部,RAM,中起始地址為,1000H,的存儲區(qū)域,直到發(fā)現(xiàn),$,字符停止傳送。,MAIN:M

    16、OV R0,#60H ;,置初值,MOV DPTR,#1000H,LOOP0:MOV A,R0 ;,取數(shù)據(jù),CJNE A,#24H,LOOP1;,循環(huán)結束?,SJMP DONE ;,是,LOOP1:MOVX DPTR,A ;,循環(huán)處理,INC R0 ;,循環(huán)修改,INC DPTR,SJMP LOOP0 ;,繼續(xù)循環(huán),DONE:SJMP DONE ;,結束處理,2024/10/22,28,【,例,】,50ms,延時子程序。設晶振頻率為,12MHz,,則機器周期為,1us,。,DEL:MOV R7,#200 ;1MC,DEL1:MOV R6,#123 ;1MC,NOP ;1MC,DJNZ R6,$;2MC,DJNZ R7,DEL1 ;2MC,RET ;2MC,延時時間:,t=1+200(1+1+2*123)+2+2,50000us=50ms,2024/10/22,29,4.4,子程序及其調用,完成,通用功能,、,反復使用,的程序設計成,子程序。,使應用程序結構清晰緊湊,便于閱讀和調試,執(zhí)行要由其它程序來調用,執(zhí)行完后要返回到調用程序,結構上仍然采用一般程序的,3,種結構,調用時注意:,一是

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

    相關資源

    更多
    正為您匹配相似的精品文檔
    關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

    copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

    備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


    本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>