freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

【大學(xué)課件】80c51單片機匯編語言程序設(shè)計ppt(已修改)

2025-08-13 16:21 本頁面
 

【正文】 第 4章 80C51單片機匯編語言程序設(shè)計 單片機程序設(shè)計語言概述 匯編語言程序的基本結(jié)構(gòu)形式 80C51 單片機匯編語言程序設(shè)計舉例 單片機匯編語言源程序的編輯和匯編 80C51 單片機匯編語言偽指令 單片機程序設(shè)計語言概述 機器語言和匯編語言 機器語言 用二進(jìn)制代碼“ 0”和“ 1”表示指令和數(shù)據(jù)的程序設(shè)計語言 ,是計算機能直接識別并執(zhí)行的指令 。 優(yōu)點:執(zhí)行速度快、占用內(nèi)存少。 缺點:識別難、記憶難。 匯編語言 用助記符和專門的語言規(guī)則表示指令的功能和特征。 優(yōu)點:助記符與機器指令一一對應(yīng)。比機器語言直觀、 易懂、易記。非常適合于實時控制的需要。 缺點:難以記憶和使用,程序設(shè)計的技巧性較高,編程 難度較大。要求使用者必須精通單片機的硬件系 統(tǒng)和指令系統(tǒng)。缺乏通用性,程序不易移植。 單片機使用的高級語言 ? 對于 8051單片機,現(xiàn)有 4種語言支持,即匯編、PL/M、 C和 BASIC。 ? C語言最終得到廣泛應(yīng)用。 可以大大提高單片機應(yīng)用系統(tǒng)研制的開發(fā)效率。移植性好。 高級語言的不足:生成的目標(biāo)代碼較長,導(dǎo)致應(yīng)用程序運行速度較慢。 80C51 單片機匯編語言的語句格式 80C51匯編語言的語句格式如下: [標(biāo)號 ] : 操作碼 [操作數(shù) ]。 [注釋 ] 1. 標(biāo)號 是語句地址的標(biāo)志符號,標(biāo)號的幾點規(guī)定: ? 1~ 8個 ASCII字符組成,第一個字符必須是字母。 ? 不能使用本匯編語言已經(jīng)定義的符號作為標(biāo)號。 ? 標(biāo)號后面必須跟以冒號“:”。 ? 同一標(biāo)號在一個程序中只能定義一次。 ? 標(biāo)號可有可無。 錯誤的標(biāo)號 正確的標(biāo)號 1BT : BT1 BEGIN BEGIN : TA+TB: TATB: ADD: ADD1: 2. 操作碼 用于規(guī)定語句執(zhí)行的操作內(nèi)容,用指令助記符表示。不能空缺。 3. 操作數(shù) 操作數(shù)用于為指令操作提供數(shù)據(jù)??梢允强瞻?,也可 能有 1~3個操作數(shù),各操作數(shù)之間以逗號分隔。 4. 注釋 不屬于語句的功能部分,只是對語句的解釋說明,以 “;”開頭。 5. 分界符(分隔符) 用于把語句中的各部分隔開,以便于區(qū)分。分界符包 括空格、冒號、分號或逗號等符號。 匯編語言程序的基本結(jié)構(gòu)形式 三種基本結(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í)行指令。 ( 1)分析任務(wù) ( 2)確定算法 ( 3)畫流程圖 ( 4)編寫程序 ( 5)上機調(diào)試 程序設(shè)計的一般步驟 當(dāng)接到程序設(shè)計的任務(wù)后,首先對任務(wù)進(jìn)行詳盡的分析,搞清楚已知的數(shù)據(jù)和想要得到的結(jié)果,程序應(yīng)該完成何種的功能。明確在程序設(shè)計時應(yīng)該 “做什么” 。 根據(jù)實際問題的要求和指令系統(tǒng)的特點,確定解決問題的具體步驟。根據(jù)任務(wù)要求,對不同的計算方法進(jìn)行比較,選擇最適宜的算法。解決 “怎樣做”的問題。 將解決問題的具體步驟用一種約定的幾何圖形、指向線和必要的文字說明描述出來, 用圖形的方法描繪解決問題的思路。 用 指令 的形式將程序流程圖實現(xiàn)出來。 查錯、改錯,對程序進(jìn)行優(yōu)化。 50H 51H 52H 53H 54H 55H N1高字節(jié) N1中字節(jié) N1低字節(jié) N2高字節(jié) N2中字節(jié) N2低字節(jié) ( 1)分析任務(wù) ( 2)確定算法 ( 3)畫流程圖 ( 4)編寫程序 ( 5)上機調(diào)試 例: 3字節(jié)無符號數(shù)相加:其中被加數(shù)在內(nèi)部 RAM的 50H、 51H和 52H單元中;加數(shù)在內(nèi)部 RAM的 53H、 54H和 55H單元 中;要求把相加之和存放在 50H、 51H和 52H單元中,進(jìn)位存 放在位尋址區(qū)的 20H位中。 MOV R0, 52H。被加數(shù)的低字節(jié)地址 MOV R1, 55H。加數(shù)的低字節(jié)地址 MOV A, @R0 ADD A, @R1 。低字節(jié)相加 MOV @R0, A 。存低字節(jié)相加結(jié)果 DEC R0 DEC R1 MOV A, @R0 ADDC A, @R1。中間字節(jié)帶進(jìn)位相加 MOV @R0, A 。存中間字節(jié)相加結(jié)果 DEC R0 DEC R1 MOV A, @R0 ADDC A, @R1。高字節(jié)帶進(jìn)位相加 MOV @R0, A 。存高字節(jié)相加結(jié)果 CLR A ADDC A, 00H。進(jìn)位送 00H位保存 MOV R0, 20H。存放進(jìn)位的單元地址 MOV @R0, A 分支結(jié)構(gòu)也稱為選擇結(jié)構(gòu)。為分支需要,程序設(shè)計時 應(yīng)給程序段的起始地址賦予一個地址標(biāo)號,以供選擇分支 使用。分支結(jié)構(gòu)又可分為單分支結(jié)構(gòu)和多分支結(jié)構(gòu)。 1. 單分支程序結(jié)構(gòu) 單分支程序結(jié)構(gòu)即二中選一,是通過條件判斷實現(xiàn) 的。一般都 使用條件轉(zhuǎn)移指令 對程序的執(zhí)行結(jié)果進(jìn)行判 斷。 可實現(xiàn)單分支轉(zhuǎn)移的指令有: JZ、 JNZ、 CJNE和 DJNZ。位狀態(tài)轉(zhuǎn)移指令: JC、 JNC、 JB、 JNB和 JBC 等。 分支程序結(jié)構(gòu) ( 1)單分支結(jié)構(gòu)舉例 假定在外部 RAM中有 ST ST2和 ST3共 3個連續(xù)單元,其中 ST1和 ST2單元中存放著兩個無符號二進(jìn)制數(shù),要求找出其中的大數(shù)并存入 ST3單元中。 解 :( 1)分析任務(wù):比較兩個數(shù)的大小 ( 2)算法:算術(shù)運算、控制轉(zhuǎn)移 ( 3)程序結(jié)構(gòu):單分支 ( 4)數(shù)據(jù)類型:單字節(jié)、二進(jìn)制、無符號數(shù) ( 5)數(shù)據(jù)結(jié)構(gòu):單元地址升序排列 ( 6) RAM單元安排 :外部 RAM單元 ( 7)采用寄存器間接尋址方式( R0、 R1或 DPTR) ( 8) 程序設(shè)計流程框圖 ; ( 9) 程序清單 ; 開始設(shè)置數(shù)據(jù)指針取數(shù)據(jù)N 2取數(shù)據(jù)N 1 并暫存結(jié)束N 1 保存于A 中N 2 ≥N 1修改數(shù)據(jù)指針保存大數(shù)N 2 保存于A 中YNSTART: CLR C 。進(jìn)位位清 0 MOV DPTR, ST1 。設(shè)置數(shù)據(jù)指針 MOVX A, @DPTR 。取第 1個數(shù) MOV R2, A 。第 1個數(shù)存于 R2 INC DPTR 。數(shù)據(jù)指針加 1 MOVX A, @DPTR 。取第 2個數(shù) SUBB A, R2 。兩數(shù)比較 JNC BIG1 。若第 2個數(shù)大,則轉(zhuǎn)向 BIG1 XCH A, R2 。若第 1個數(shù)大,則整字節(jié)交換 BIG0: INC DPTR MOVX @DPTR, A 。存大數(shù) RET BIG1: MOVX A, @DPTR SJMP BIG0 上例中,如果采用 CJNE A, direct, rel指令,應(yīng)如何修改程序? ( 2)多重單分支結(jié)構(gòu)舉例 多重單分支結(jié)構(gòu)中,通過一系列條件判斷,進(jìn) 行逐級分支。為此可使用比較轉(zhuǎn)移指令 CJNE實現(xiàn)。 CJNE A, 55H, LOOP1 。若 Ta≠T55, 則轉(zhuǎn)向 LOOP1 AJMP FH 。若 Ta= T55,則返回 LOOP1: JNC JW 。若 (CY)= 0,表明 Ta> T55,轉(zhuǎn)降溫處理程序 CJNE A, 54H, LOOP2 。若 Ta≠T54, 則轉(zhuǎn)向 LOOP2 AJMP FH 。若 Ta= T54,則返回 LOOP2: JC SW 。若 (CY)= 1,表明 Ta< T54,轉(zhuǎn)升溫處理程序 FH: RET 。若 T55≥Ta≥T54, 則返回主程序 例:假定采集的溫度值 Ta放在累加器 A中。此外,在內(nèi)部RAM 54H單元存放溫度下限值 T54,在 55H單元存放溫度上限值 T55。若 Ta> T55,程序轉(zhuǎn)向 JW(降溫處理程序 );若Ta< T54,則程序轉(zhuǎn)向 SW(升溫處理程序 );若T55≥Ta≥T54,則程序轉(zhuǎn)向 FH(返回主程序 )。 解 :( 1)分析任務(wù):解方程 ( 2)算法:控制轉(zhuǎn)移 ( 3)程序結(jié)構(gòu):多分支 ( 4)數(shù)據(jù)類型:單字節(jié)、二進(jìn)制、有符號數(shù) ( 5) RAM單元安排 :外部 RAM單元 ( 6)采用寄存器間接尋址方式( R0、 R1或 DPTR) ( 7) 程序設(shè)計流程框圖 ( 8) 程序清單 ; ??????????011y000???xxx
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1