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

正文內(nèi)容

【大學(xué)課件】80c51單片機(jī)匯編語言程序設(shè)計(jì)ppt(留存版)

2024-09-09 16:21上一頁面

下一頁面
  

【正文】 DJNZ R5, LOOP; 假設(shè) 單片機(jī)晶振頻 率 fosc=6MHz, 則一個(gè)機(jī)器周期為 2μ s,NOP、 DJNZ指令分別是單、雙機(jī)器周期指令。 ( 2) 處理部分 : 為反復(fù)執(zhí)行的程序段 , 是循環(huán)程序的實(shí)體 , 也是循環(huán)程序的主體 。轉(zhuǎn)分支程序 127 BR0: … 。此外,在內(nèi)部RAM 54H單元存放溫度下限值 T54,在 55H單元存放溫度上限值 T55。第 1個(gè)數(shù)存于 R2 INC DPTR 。存中間字節(jié)相加結(jié)果 DEC R0 DEC R1 MOV A, R0 ADDC A, R1。程序既無分支、循環(huán),也不調(diào)用子程序,程序執(zhí)行時(shí)一條接一條地按順序執(zhí)行指令。 高級(jí)語言的不足:生成的目標(biāo)代碼較長,導(dǎo)致應(yīng)用程序運(yùn)行速度較慢。 優(yōu)點(diǎn):執(zhí)行速度快、占用內(nèi)存少。 ? 不能使用本匯編語言已經(jīng)定義的符號(hào)作為標(biāo)號(hào)。 根據(jù)實(shí)際問題的要求和指令系統(tǒng)的特點(diǎn),確定解決問題的具體步驟。進(jìn)位送 00H位保存 MOV R0, 20H。兩數(shù)比較 JNC BIG1 。設(shè) X, Y分別存放在外部RAM 1000H和 2022H單元中。分支轉(zhuǎn)移值乘以 2 MOV R1, A 。 MOV R2, 0FFH。 假定要求定時(shí)時(shí)間為 24us。 匯編語言源程序: 用匯編語言編寫的程序稱為匯編語言源程序。 ? 偽指令沒有與之相對(duì)應(yīng)的二進(jìn)制機(jī)器代碼, ? 不同匯編語言的偽指令也有所不同。 命令格式: [〈 標(biāo)號(hào): 〉 ]DB〈 8位數(shù)表 〉 例如: DB “how are you?” DB 2,4,6,10,11,17 例:存放 7段數(shù)碼管(共陽極)顯示的十六進(jìn)制基數(shù)( 0~ F)的十六進(jìn)制數(shù)的字形代碼,可使用多條 DB命令定義。源程序匯編 時(shí),對(duì)預(yù)留單元不賦值。 子程序入口參數(shù) :主程序需要向子程序提供的參數(shù)。 參數(shù)傳遞一般有以下幾種方法: 1) 寄存器傳遞參數(shù) 通過 寄存器 A傳遞入口參數(shù)和出口參數(shù) 。通常保護(hù)和恢復(fù)現(xiàn)場是在子程序中 利用堆棧 操作實(shí)現(xiàn)的,在子程序的開始部分把子程序中要用到的編程資源都保護(hù)起來,在執(zhí)行返回指令之前恢復(fù)現(xiàn)場,這是一種比較規(guī)范的方法。執(zhí)行完這條指令后,程序返回主程序斷點(diǎn)處繼續(xù)執(zhí)行。按順序存入 01H、 00H、 01H、 0ACH、 0FCH、 0DCH DB和 DW定義的數(shù)表,數(shù)的個(gè)數(shù)不得超過 80個(gè)。其值為 8位或 16位二進(jìn)制數(shù)??梢?,“ 機(jī)器編輯 → 交叉匯編 → 串行傳送 ”的過程構(gòu)成了單片機(jī)軟件設(shè)計(jì)的 “三步曲”,全過程如圖所示。 編寫查表程序時(shí),首先把查表數(shù)據(jù)的序號(hào)送入 A中,再把從查表指令的下一條指令的首地址到表的首地址間的偏移量與 A值相加,然后再使用該指令進(jìn)行查表操作,并把結(jié)果送入 A中。 定時(shí)程序是典型的循環(huán)程序,它是通過 執(zhí)行一個(gè)具有固定延遲時(shí)間的循環(huán)體 來實(shí)現(xiàn)定時(shí)的。 循環(huán)程序一般由 四 個(gè)主要部分組成 : ( 1) 初始化部分: 為循環(huán)程序做準(zhǔn)備 , 如規(guī)定循環(huán)次數(shù) 、給各變量和地址指針預(yù)置初值 。轉(zhuǎn)分支程序 1 AJMP BR127 。若 T55≥Ta≥T54, 則返回主程序 例:假定采集的溫度值 Ta放在累加器 A中。取第 1個(gè)數(shù) MOV R2, A 。中間字節(jié)帶進(jìn)位相加 MOV R0, A 。 順序程序結(jié)構(gòu) 順序結(jié)構(gòu)程序是最簡單的程序結(jié)構(gòu)。移植性好。 缺點(diǎn):識(shí)別難、記憶難。 ? 標(biāo)號(hào)后面必須跟以冒號(hào)“:”。根據(jù)任務(wù)要求,對(duì)不同的計(jì)算方法進(jìn)行比較,選擇最適宜的算法。存放進(jìn)位的單元地址 MOV R0, A 分支結(jié)構(gòu)也稱為選擇結(jié)構(gòu)。若第 2個(gè)數(shù)大,則轉(zhuǎn)向 BIG1 XCH A, R2 。 開始取數(shù)據(jù)X結(jié)束X=0Y=0YNX <0 Y=1Y=1NY保存數(shù)據(jù)Y返回 XAD EQU 1000H; BUF EQU 2022H; ORG 1000H START: MOV DPTR, XAD ;數(shù)據(jù) X的地址送數(shù)據(jù)指針 DPTR MOVX A, DPTR; A← 取數(shù)據(jù) X JZ SAV; X= 0轉(zhuǎn) SAV JB , NEG; X< 0轉(zhuǎn) NEG,否則, X> 0 MOV A, 01H; SJMP SAV; NEG: MOV A, 0FFH; (0FFH為 1補(bǔ)碼 ) SAV: MOV DPTR, BUF; 數(shù)據(jù) Y的地址送數(shù)據(jù)指針 DPTR MOVX DPTR, A; 保存 Y值 END 上例中,如果采用 CJNE指令,應(yīng)如何修改程序? XAD EQU 1000H; BUF EQU 2022H; ORG 1000H START: MOV DPTR, XAD ;數(shù)據(jù) X的地址送數(shù)據(jù)指針 DPTR MOVX A, DPTR; A← 取數(shù)據(jù) X CJNE A, 0, ANZ ; X≠ 0轉(zhuǎn) ANZ SJMP SAV; ANZ: JC NEG ; X0轉(zhuǎn) NEG,否則, X0 MOV A, 01H; SJMP SAV; NEG: MOV A, 0FFH; (0FFH為 1補(bǔ)碼 ) SAV: MOV DPTR, BUF; 數(shù)據(jù) Y的地址送數(shù)據(jù)指針 DPTR MOVX DPTR, A; 保存 Y值 END 2. 多分支程序結(jié)構(gòu) 多分支程序結(jié)構(gòu)流程中具有兩個(gè)以上條件可供選擇。暫存 A值 INC A MOVC A, A+DPTR 。設(shè)置長度計(jì)數(shù)器初值 MOV R0, 3FH。 對(duì)于這個(gè)定時(shí)程序 , 只須增加一條NOP指令即可實(shí)現(xiàn) 。 匯編: 匯編語言源程序不能在單片機(jī)中直接執(zhí)行,必須將其“翻譯”為用二進(jìn)制代碼 (機(jī)器語言 )表示的目標(biāo)程序才能執(zhí)行。 ? 手工匯編不需要偽指令,但機(jī)器交叉匯編必須使用偽指令。 DB 0C0H, 0F9H, 0A4H, 0B0H; 0, 1, 2, 3 DB 99H, 92H, 82H, 0F8H; 4, 5, 6, 7 DB 80H, 90H, 88H, 83H; 8, 9, A, B DB 0C6H, 0A1H, 86H, 84H; C, D, E, F 查表時(shí) ,為確定數(shù)據(jù)區(qū)的起始地址 ,可采用兩種方法 : a) 根據(jù) DB命令前一條指令的地址確定。命令格式為: [<標(biāo)號(hào):> ]DS< 16位數(shù)表> 例如: ADDRTABL:DS 20 。 子程序出口參數(shù) :子程序執(zhí)行完之后向主程序返回的參數(shù)。 例:假設(shè) a、 b均小于 10, 計(jì)算 c=a2+b2, 其中 a事先存在內(nèi)部 RAM的31H單元 , b事先存在 32H單元 , 請(qǐng)把 c存入 33H單元 。在子程序執(zhí)行完后需恢復(fù)這些單元的內(nèi)容,稱為 恢復(fù)現(xiàn)場 。調(diào)用指令在主程序中使用,而返回指令則應(yīng)該是子程序的最后一條指令。不合法 ,因超過兩字節(jié) DW 100H,1ACH,804。 命令格式為: 字符名稱 EQU 賦值項(xiàng) 其中 賦值項(xiàng) 可以是常數(shù)、地址、標(biāo)號(hào)或表達(dá)式。交叉匯編后,再使用串行通信,把匯編得到的目標(biāo)程 序傳送到單片機(jī),進(jìn)行程序調(diào)試和運(yùn)行。 常用于 “本地”范圍 查表(數(shù)據(jù)表格只能放在該指令后面 256個(gè)地址單元之內(nèi),而且表格只能被本程序使用)。定時(shí)功能除可以使用純硬件電路、可編程定時(shí) /計(jì)數(shù)器實(shí)現(xiàn)外,還可以使用軟件程序( 定時(shí)程序 )完成。使用 條件轉(zhuǎn)移指令 通 過條件判斷來實(shí)現(xiàn)和控制循環(huán)。轉(zhuǎn)分支程序 0 AJMP BR1 。若 (CY)= 1,表明 Ta< T54,轉(zhuǎn)升溫處理程序 FH: RET 。設(shè)置數(shù)據(jù)指針 MOVX A, DPTR 。存低字節(jié)相加結(jié)果 DEC R0 DEC R1 MOV A, R0 ADDC A, R1。 匯編語言程序的基本結(jié)構(gòu)形式 三種基本結(jié)構(gòu)形式:順序程序結(jié)構(gòu),分支程序結(jié)構(gòu), 循環(huán)程序結(jié)構(gòu)。 可以大大提高單片機(jī)應(yīng)用系統(tǒng)研制的開發(fā)效率。 匯編語言 用助記符和專門的語言規(guī)則表示指令的功能和特征。 ? 同一標(biāo)號(hào)在一個(gè)程序中只能定義一次。解決 “怎樣做”的問題。為分支需要,程序設(shè)計(jì)時(shí) 應(yīng)給程序段的起始地址賦予一個(gè)地址標(biāo)號(hào),以供選擇分支 使用。若第 1個(gè)數(shù)大,則整字節(jié)交換 BIG0: INC DPTR MOVX DPT
點(diǎn)擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1