AVR單片機(jī)指令系統(tǒng).doc
《AVR單片機(jī)指令系統(tǒng).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《AVR單片機(jī)指令系統(tǒng).doc(9頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第五章AVR單片機(jī)指令系統(tǒng) 計(jì)算機(jī)的指令系統(tǒng)是一套控制計(jì)算機(jī)操作的代碼,稱之為機(jī)器語(yǔ)言。計(jì)算機(jī)只能識(shí)別和執(zhí)行機(jī)器語(yǔ)言的指令。為了便于人們理解、記憶和使用,通常用匯編語(yǔ)言指令來(lái)描述計(jì)算機(jī)的指令系統(tǒng)。匯編語(yǔ)言指令可通過(guò)匯編器翻譯成計(jì)算機(jī)能識(shí)別的機(jī)器語(yǔ)言。 AVR單片機(jī)指令系統(tǒng)是RISC結(jié)構(gòu)的精簡(jiǎn)指令集,是一種簡(jiǎn)明易掌握﹑效率高的指令系統(tǒng)。 SL-DIY02-3開(kāi)發(fā)實(shí)驗(yàn)器使用AT90S8535單片機(jī),有118條指令, 而我們所做的11個(gè)實(shí)驗(yàn)程序僅用了34條指令, 我們重點(diǎn)講這34條指令, 其余指令就可自學(xué)了。 AVR器件(指令速查表) 118條指令器件 AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/8515,AT90S8534/8535 算術(shù)和邏輯指令 BRCC k C清零轉(zhuǎn) 位指令和位測(cè)試指令 ADD Rd,Rr 加法 BRSH k ≥轉(zhuǎn) SBI P,b 置位I/O位 ADC Rd,Rr 帶進(jìn)位加 BRLO k 小于轉(zhuǎn)(無(wú)符號(hào)) CBI P,b 清零I/O位 ◇ ADIW Rdl,K 加立即數(shù) BRMI k 負(fù)數(shù)轉(zhuǎn)移 LSL Rd 左移 SUB Rd,Rr 減法 BRPL k 正數(shù)轉(zhuǎn)移 LSR Rd 右移 SUBI Rd,Rr 減立即數(shù) BRGE k ≥轉(zhuǎn)(帶符號(hào)) ROL Rd 帶進(jìn)位左循環(huán) SBC Rd,Rr 帶進(jìn)位減 BRLT k 小于轉(zhuǎn)(帶符號(hào)) ROR Rd 帶進(jìn)位右循環(huán) SBCI Rd,K 帶C減立即數(shù) BRHS k H置位轉(zhuǎn)移 ASR Rd 算術(shù)右移 ◇ SBIW Rdl,K 減立即數(shù) BRHC k H清零轉(zhuǎn)移 SWAP Rd 半字節(jié)交換 AND Rd,Rr 與 BRTS k T置位轉(zhuǎn)移 BSET s 置位SREG ANDI Rd,K 與立即數(shù) BRTC k T清零轉(zhuǎn)移 BCLR s 清零SREG OR Rd,Rr 或 BRVS k V置位轉(zhuǎn)移 BST Rr,b Rr的b位送T ORI Rd,K 或立即數(shù) BRVC k V清零轉(zhuǎn)移 BLD Rd T送Rr的b位 EOR Rd,Rr 異或 BRIE k 中斷位置位轉(zhuǎn)移 SEC 置位C COM Rd 取反 BRID k 中斷位清零轉(zhuǎn)移 CLC 清零C NEG Rd 取補(bǔ) 數(shù)據(jù)傳送指令 SEN 置位N SBR Rd,K 寄存器位置位 MOV Rd,Rr 寄存器傳送 CLN 清零N CBR Rd,K 寄存器位清零 ◇ LDI Rd,K 裝入立即數(shù) SEZ 置位Z INC Rd 加1 ◇ LD Rd, X X間接取數(shù) CLZ 清零Z DEC Rd 減1 ◇ LD Rd, X+ X間接取數(shù)后+ SEI 置位I TST Rd 測(cè)試零或負(fù) ◇ LD Rd,-X X間接取數(shù)先- CLI 清零I CLR Rd 寄存器清零 ◇ LD Rd,Y Y間接取數(shù) SES 置位S SER Rd 寄存器置FF ◇ LD Rd,Y+ Y間接取數(shù)后+ CLS 清零S 條件轉(zhuǎn)移指令 ◇ LD Rd,–Y Y間接取數(shù)先- SEV 置位V RJMP k 相對(duì)轉(zhuǎn)移 ◇ LDD Rd,Y+q Y間接取數(shù)+q CLV 清零V ◇ IJMP 間接轉(zhuǎn)移(Z) ◇ LD Rd, Z Z間接取數(shù) SET 置位T RCALL k 相對(duì)調(diào)用 ◇ LD Rd, Z+ Z間接取數(shù)后+ CLT 清零T ◇ ICALL 間接調(diào)用(Z) ◇ LD Rd,–Z Z間接取數(shù)先- SEH 置位H RET 子程序返回 ◇ LDD Rd, Z+q Z間接取數(shù)+q CLH 清零H RETI 中斷返回 ◇ LDS Rd,K 從SRAM裝入 NOP 空操作 CPSE Rd,Rr 比較相等跳行 ◇ ST X ,Rr X間接存數(shù) SLEEP 休眠指令 CP Rd,Rr 比較 ◇ ST X+ ,Rr X間接存數(shù)后+ WDR 看門狗復(fù)位 CPC Rd,Rr 帶進(jìn)位比較 ◇ ST –X ,Rr X間接存數(shù)先- 90條指令為Attiny11/12/15/22= □+89條基本指令是AT90S1200 CPI Rd,K 與立即數(shù)比較 ◇ ST Y ,Rr Y間接存數(shù) SBRC Rr,b 位清零跳行 ◇ ST Y+ ,Rr Y間接存數(shù)后+ SBRS Rr,b 位置位跳行 ◇ ST –Y ,Rr Y間接存數(shù)先- SBIC P,b I/O位清零跳行 ◇ STD Y+q ,Rr Y間接存數(shù)+q SBIS P,b I/O位置位跳行 ST Z ,Rr Z間接存數(shù) BRBS s,k SREG位置位轉(zhuǎn) ◇ ST Z+ ,Rr Z間接存數(shù)后+ 118條指令器件= ◇+ 90條指令器件 BRBC s,k SREG位清零轉(zhuǎn) ◇ ST –Z ,Rr Z間接存數(shù)先- BREQ k 相等轉(zhuǎn)移 ◇ STD Z+q ,Rr Z間接存數(shù)+q BRNE k 不相等轉(zhuǎn)移 ◇ STS k,,Rr 數(shù)據(jù)送SRAM BRCS k C置位轉(zhuǎn) □ LPM 從程序區(qū)取數(shù) IN Rd,P 從I/O口取數(shù) OUT P, Rdr 存數(shù)I/O口 PUSH Rr 壓棧 POP Rd, 出棧 說(shuō)明: SL-DIY02-3開(kāi)發(fā)實(shí)驗(yàn)器的11個(gè)實(shí)驗(yàn)程序例子,僅用34條指令(以紅色表示) 1.不帶進(jìn)位加法 ADD一不帶進(jìn)位加 說(shuō)明:兩個(gè)寄存器不帶進(jìn)位C標(biāo)志加,結(jié)果送目的寄存器Rd。 操作: RdRd+ Rr 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: ADD Rd,Rr O≤d≤31,0≤r≤31 PCPC+1 例子:。(實(shí)踐操作程序4411.ASM) 實(shí)踐操作例子*.ASM,必須編譯生成*.OBJ文件才可調(diào)試,如要修改*.ASM,必須修改文件屬性,去掉*.ASM只讀文件屬性 2.帶進(jìn)位加法 ADC-一帶進(jìn)位加 說(shuō)明:兩個(gè)寄存器和C標(biāo)志的內(nèi)容相加,結(jié)果送目的寄存器Rd。 操作: Rd←Rd+Rr+C 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: ADC Rd,Rr 0≤d≤31,0≤r≤31 PC←PC+1 例子:(實(shí)踐操作程序4412.ASM) 3.減1指令 DEC一減1 說(shuō)明:寄存器Rd的內(nèi)容減1,結(jié)果送目的寄存器Rd中。 操作:RdRd-l 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: DEC Rd 0≤d≤31 PCPC十1 例子:(實(shí)踐操作程序4426.ASM) 4.立即數(shù)比較 CPI——帶立即數(shù)比較 說(shuō)明:該指令完成寄存器Rd和常數(shù)的比較操作。寄存器的內(nèi)容不改變。該指令后能 使用所有條件轉(zhuǎn)移指令。 操作:Rd-K 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: CPI Rd, K 16≤d≤31, 0≤ K≤255 PCPC+ 1 例子:(實(shí)踐操作程序4463.ASM) 5.帶立即數(shù)與 ANDI——立即數(shù)邏輯與 ;全1為1,有0即0 說(shuō)明:寄存器Rd的內(nèi)容與常數(shù)邏輯與,結(jié)果送目的寄存器Rd。 應(yīng)用: 清0,使某位為0,用0去與;保留,用1去邏輯與;代硬件與門 操作:RdRdK ; 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: ANDI Rd K 16≤d≤31, 0≤K≤255 PCPC+ 1 例子:(實(shí)踐操作程序4472.ASM) 6.寄存器邏輯或 OR一邏輯或 ;有1即1,全0為0, 應(yīng)用: 置數(shù),使某位為1,用1去或;保留,用0去邏輯或;代硬件或門 說(shuō)明:完成寄存器Rd與寄存器Rr的內(nèi)容邏輯或操作,結(jié)果進(jìn)目的寄存器Rd中。 操作: RdRd ∨ Rr 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: OR Rd Rr 0≤d≤31, 0≤r≤31 PCPC+ 1 例子:(實(shí)踐操作程序4481.ASM) 7.清除寄存器 CLR-一寄存器清零 說(shuō)明:寄存器清零。該指令采用寄存器Rd與自己的內(nèi)容相異或?qū)崿F(xiàn)的。寄存器 的所有位都被清零。 操作: RdRd ⊕Rd 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: CLR Rd 0≤d≤31 PCPC+ 1 例子:(實(shí)踐操作程序4492.ASM) 8.相對(duì)跳轉(zhuǎn) RJMP一相對(duì)跳轉(zhuǎn) 說(shuō)明:相對(duì)跳轉(zhuǎn)到 PC -2K和 PC+2K(字)范圍內(nèi)的地址。在匯編程序中,標(biāo)號(hào)用于替 代相對(duì)操作。AVR微控制器的程序存儲(chǔ)器空間不超過(guò)4K字(8K字節(jié)),該指令能尋址整個(gè) 存儲(chǔ)器空間的每個(gè)地址位置。 操作: PC(PC+1)+ k 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: RJMP k — 2K≤k≤2K PC(PC+1)+k 例子:(實(shí)踐操作程序4511.ASM) 9.相等轉(zhuǎn)移 BREQ相等轉(zhuǎn)移 說(shuō)明:條件相對(duì)轉(zhuǎn)移,測(cè)試零標(biāo)志(Z),如果 Z位被置位,則相對(duì)PC值轉(zhuǎn)移。如果在執(zhí)行CP、CPI、SUB或SUBI指令后立即執(zhí)行該指令,且當(dāng)寄存器Rd中無(wú)符號(hào)或有符號(hào)二進(jìn)制數(shù)與寄存器 Rr中無(wú)符號(hào)或有符號(hào)H進(jìn)制數(shù)相等時(shí),轉(zhuǎn)移將發(fā)生。 操作:If Rd=Rr(z=1)then PC(PC十1)+k,PCPC十1 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: BREQ k -64≤k≤+63 PC(PC+ 1)+ k PCPC+ l 例子:(實(shí)踐操作程序4523.ASM) 10.不相等轉(zhuǎn)移 BRNE——不相等轉(zhuǎn)移 說(shuō)明:條件相對(duì)轉(zhuǎn)移,測(cè)試零標(biāo)志(Z),如果Z位被清零,則相對(duì)PC值轉(zhuǎn)移。如果在執(zhí)行CP。CPI、SUB或SUBI指令后立即執(zhí)行該指令,且當(dāng)在寄存器Rd中的無(wú)符號(hào)或帶符號(hào)二進(jìn)制數(shù)不等于寄存器Rr中的無(wú)符號(hào)或帶符號(hào)二進(jìn)制數(shù)時(shí),轉(zhuǎn)移將發(fā)生。該指令相對(duì)PC轉(zhuǎn)移的方向?yàn)椋篜C- 64≤目的≤PC+ 63。參數(shù)K為PC的偏移,用2的補(bǔ)碼表示(相當(dāng)于指令BRBCIK)。 操作, If Rd≠Rr(Z=0) then PC(PC+1)+k,elesPCPC+1 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: BRNE k -64≤ k ≤+63 PC(PC+1)+ k PCPC+l 例子:(實(shí)踐操作程序4524.ASM) 11.寄存器位清零跳行 SBRC一寄存器位被清零跳行 說(shuō)明:該指令測(cè)試寄存器某位,如果該位被清零,則跳下一行執(zhí)行指令。 操作:If Rd(b)= 0 then PCPC+2(or 3)eles PCPC+ 1 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: SBRC Rr,b 0≤ r≤ 31, 0≤ b≤7 PCPC十1 pCpC+ 2 PCPC+ 3 例子:(實(shí)踐操作程序45222.ASM) 12.寄存器位置位跳行 SBRS一寄存器位置位跳行 說(shuō)明:該指令測(cè)試寄存器某位,如果該位被置位,則跳下一行執(zhí)行指令。 操作: If Rr(b)=l then PCPC+ 2(or 3)eles PCPC+ l 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: SBRS Rr,b ≤r≤31,0≤b≤7 PCPC+1 PCPC+2 PCPC+3 例子:(實(shí)踐操作程序45223.ASM) 13.I/O寄存器位置位跳行 SBIS-I/O寄存器的位置位跳行 說(shuō)明:該指令測(cè)試1/O寄存器某位,如果該位被置位,則跳一行執(zhí)行指令。該指令在低 32個(gè)1/O寄存器內(nèi)操作,地址為0~31。 操作: If I/OP, b=l then PCPC+2(or 3)else PCPC+1 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: SBIS p ,b 0≤ P≤ 31, 0≤ b≤ 7 PCPC+ 1 PCPC+ 2 PCPC+ 3 例子:(實(shí)踐操作程序45225.ASM) 14.相對(duì)調(diào)用 RCALL——相對(duì)調(diào)用于程序 說(shuō)明:在PC+1后(2K字(4K字節(jié))范圍內(nèi)調(diào)用子程序。返回地址(RCALL后的指令地址)存儲(chǔ)到堆棧(見(jiàn)CALL)。 操作:PC(PC+1)+k 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: RCALL k -2K≤ k ≤2K PC(PC+1)+ k 例子: (實(shí)踐操作程序DIP40LED.ASM) 15.從子程序返回 RET——子程序返回 說(shuō)明:從子程序返回。返回地址從堆棧中彈出。 操作: PC(15-0)STACK PC(21-0)STACK 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: 堆棧: RET None See Operation SPSP+ 2 RET None See Operation SPSP+ 3 例子:(實(shí)踐操作程序見(jiàn)DIP40LED.ASM) 16.從中斷程序返回 RETI——中斷返回 說(shuō)明:從中斷程序中返回。返回地址從堆棧中彈出,且全局中斷標(biāo)志被置位。 注意:1.主程序應(yīng)跳過(guò)中斷區(qū),防止修改補(bǔ)充中斷程序帶來(lái)麻煩; 2.不用的中斷入口地址寫上RETI-中斷返回,有抗干擾作用; 操作: PC(15-0)STACK PC(21-0)STACK 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: 堆棧: RETI None See Operation SPSP十2 RETI None See Operation SPSP +3 例子:( 程序45230.ASM,摘自”樂(lè)曲.ASM”部分程序,僅供參考),能執(zhí)行程序請(qǐng)閱”樂(lè)曲.ASM”程序及 AVR單片機(jī)在兒童智能玩具中的應(yīng)用--音樂(lè)玩具(電腦放音機(jī))一文 17.寄存器拷貝數(shù)據(jù) MOV寄存器拷貝 說(shuō)明:該指令將一個(gè)寄存器拷貝到另一個(gè)寄存器。源寄存器Rr的內(nèi)容不改變,而目的 寄存器Rd拷貝了Rr的內(nèi)容。 操作:Rd ← Rr 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: MOV Rd Rr 0≤ d≤ 31, 0≤ r≤31 PCPC+ 1 例子:(實(shí)踐操作程序4611.ASM) 18.SRAM數(shù)據(jù)直接送寄存器 LDS直接從SRAM裝入 說(shuō)明:把SRAM中1個(gè)字節(jié)裝入到寄存器。必須提供一個(gè)16位地址。存儲(chǔ)器訪問(wèn)被 限制在當(dāng)前64K字節(jié)的SRAM頁(yè)。超過(guò)64K字節(jié),LDS指令使用RAMPZ寄存器訪問(wèn)。 操作:Rd(k) 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: LDS Rd k 0≤ d≤ 31,0≤ k≤65535 PCPC+ 2 例子:(實(shí)踐操作程序4612.ASM) 19.寄存器數(shù)據(jù)直接送SRAM STS寄存器數(shù)據(jù)直接送SRAM 說(shuō)明:將寄存器的內(nèi)容直接存儲(chǔ)到SRAM。必須提供一個(gè)16位的地址。存儲(chǔ)器訪問(wèn)被限 制在當(dāng)前64K字節(jié)的SRAM頁(yè)。STS指令使用RAMPZ寄存器訪問(wèn)存儲(chǔ)器可超過(guò)64K字節(jié)。 操作:(k)Rr 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: STS k,Rr 0≤r≤31,0≤k≤65535 PCPC+2 例子:(實(shí)踐操作程序4613.ASM與4612.ASM相同) 20.立即數(shù)送寄存器 LDI——裝入立即數(shù) 說(shuō)明:裝入一個(gè)8位立即數(shù)到寄存器R16~R31中。 操作:RdK 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: LDI Rd K 16≤ d≤ 31, 0≤K≤ 255 PCPC+ 2 例子:(實(shí)踐操作程序4614.ASM) 21.使用變址Z間接將SRAM中的內(nèi)容傳送到寄存器 LD(LDD)——使用變址Z間接將SRAM中的內(nèi)容傳送到寄存器 說(shuō)明:帶或不帶偏移間接從SRAM中傳送一個(gè)字節(jié)到寄存器,SRAM中的位置由寄存器區(qū)中的 Z(16位)指針寄存器指出。存儲(chǔ)器訪問(wèn)被限制在當(dāng)前 64K字節(jié)的 SRAM頁(yè)中。為訪問(wèn)另外SRAM頁(yè),則 I/O范圍內(nèi)的寄存器RAMPZ需改變。在指令執(zhí)行后,Z指針寄存器值要么不改變,要么就加1或減1操作。使用Z指針寄存器的這些特性,特別適合于堆棧指針,因?yàn)閆指針寄存器能用于直接子程序調(diào)用,直接跳轉(zhuǎn)和查表。Z指針寄存器用作為專用堆棧指針要比X、Y指針?lè)奖恪? 用Z指針在程序存儲(chǔ)器中查表,可參見(jiàn)LPM指令。 操作:Rd(Z) Rd(Z) Z Z-1 Rd (Z+q) 語(yǔ)法: 操作碼: 操作流程: 程序計(jì)數(shù)器: LD Rd,Z 0≤ d≤31 送數(shù),Z指針不改變 PCPC+1 LD Rd Z+ 0≤d≤31 先送數(shù),后Z指針加1 PCPC+1 LD Rd,-Z 0≤d≤31 先Z指針減1, 后送數(shù) PCPC+l LDD Rd Z+q 0≤ d≤31, 先Z指針加q,后送數(shù), PCPC+1 0≤q≤63 執(zhí)行后Z指針(Z不含q)不變 例子:(實(shí)踐操作程序4625.ASM) 22. LPM——裝入程序存儲(chǔ)器 說(shuō)明:將Z寄存器指向的一個(gè)字節(jié)傳送到寄存器0(RO)。該指令使100 %空間有效,常 量初始化或常數(shù)取數(shù)特別有用。程序存儲(chǔ)器被編為16位字,Z(16位)指針的最低位(LSB)選 擇為0是低字節(jié),選擇為1是高字節(jié)。該指令能尋址程序存儲(chǔ)器第一個(gè)64K字節(jié)(32字)。 操作:R0(Z) 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: LPM None PCPC+ 1 例子:(實(shí)踐操作程序4631.ASM,更詳細(xì)資料閱”按鈕猜數(shù).ASM”) 23.I/O口數(shù)據(jù)傳送到寄存器 IN——I/O口數(shù)據(jù)傳送到寄存器 說(shuō)明:將I/O空間(口,定時(shí)器,配置寄存器等)的數(shù)據(jù)傳送到寄存器區(qū)中的寄存器Rd中。 操作:RdP 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: IN Rd P O≤ d≤31, 0≤ P≤63 PCPC+ 1 例子:(實(shí)踐操作程序4641.ASM) 24.寄存器數(shù)據(jù)送 I/ O口 OUT寄存器數(shù)據(jù)送 I/O口 說(shuō)明:將寄存器區(qū)中寄存器 Rr的數(shù)據(jù)傳送到 I/0空間(口、定時(shí)器、配置寄存器等)。 操作: P Rr 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: OUT P, Rr 0≤ r≤31, 0≤ P≤63 PCPC十1 例子:(實(shí)踐操作程序4642.ASM) 25.進(jìn)棧指令 PUSH——壓寄存器到堆棧 說(shuō)明:該指令存儲(chǔ)寄存器Rr的內(nèi)容到堆棧。 操作: STACKRr 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: PUSH Rr O ≤ d ≤31 PCPC+1 SPSP- 1 例子:(實(shí)踐操作程序4651.ASM) 26.出棧指令 POP——堆棧彈出到寄存器 說(shuō)明:該指令將堆棧中的字節(jié)裝入到寄存器Rd中。 操作:RdSTACK 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: POP Rd 0 ≤ d ≤31 PCPC+1 SPSP+ 1 例子:(實(shí)踐操作程序4652.ASM) 27.通過(guò)進(jìn)位左循環(huán) ROL—通過(guò)進(jìn)位左循環(huán) 說(shuō)明:寄存器Rd的所有位左移1位,C標(biāo)志被移到Rd的第0位,Rd的第7位移到C標(biāo)志。 操作: 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: ROL Rd 0 ≤ d ≤31 PCPC+ 1 例子:(實(shí)踐操作程序4713.ASM) 28.ROR——通過(guò)進(jìn)位右循環(huán) 說(shuō)明:寄存器Rd的所有位右移1位,C標(biāo)志被移到Rd的第7位,Rd的第0位移到C 標(biāo)志。 操作: 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: ROR Rd 0 ≤ d ≤31 PCPC+ 1 例子: (實(shí)踐操作程序4714.ASM) 29.置I/O寄存器的位 SBI——置I/O寄存器的位 說(shuō)明:對(duì)I/O寄存器指定的位置位,該指令在低32個(gè)I/O寄存器內(nèi)操作,I/O寄存器地 址為0~31。 操作:I/O( P b)1 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: SBIP,b 0≤P≤31,0≤b≤7 PCPC+1 例子: out $1e,r0 ;(EEARL寄存器)←(R0) sbi $1c,0 ;( EECR寄存器 0位)1 30.清I/O寄存器的位 CBI——清I/O寄存器的位 說(shuō)明:清零I/O寄存器中的指定位,該指令用在寄存器最低的32個(gè)I/O寄存器上,I/O 寄存器地址為 0~31。 操作:I/O(P,b)0 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: CBI P, b 0≤ P≤31, 0≤b≤7 PCPC十1 例子: cbi $18,7 ; I/O(PORTB寄存器的7位)0 31.置進(jìn)位位 SEC一置位進(jìn)位標(biāo)志 說(shuō)明:置位SREG(狀態(tài)寄存器)中的進(jìn)位標(biāo)志(C)。 操作:C1 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: SEC N0ne PCPC+ 1 C:1 例子: sec ; C1 adc r0, r1 ;帶進(jìn)位位加 32.觸發(fā)全局中斷位 SEI——置位全局中斷標(biāo)志 說(shuō)明:置位SREG(狀態(tài)寄存器)中的全局中斷標(biāo)志(I)。 操作:I1 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: SEI None PCPC+ 1 I:1 例子: cli ; I0 in r13,$16 ;(r13)←(PINB寄存器數(shù)據(jù)) set ; I1 33.禁止全局中斷位 CLI——清零全局中斷標(biāo)志 說(shuō)明:清除SREG(狀態(tài)寄存器)中的全局中斷標(biāo)志(I)。 操作:I0 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: CLI None PCPC+ 1 I:0 例子:(實(shí)踐操作程序47312.ASM) 34.看門狗復(fù)位 WDR——看門狗復(fù)位 說(shuō)明:該指令復(fù)位看門狗定時(shí)器,在 WD預(yù)定比例器給出限定時(shí)間內(nèi)必須執(zhí)行。參見(jiàn)看門狗定時(shí)器硬件部分。 應(yīng)用:抗干擾;延時(shí) 操作: WD timer restart. 語(yǔ)法: 操作碼: 程序計(jì)數(shù)器: WDR N0ne PC~PC+ 1 例子:(實(shí)踐操作程序4743.ASM) 1. 請(qǐng)觀看多媒體指令系統(tǒng)講座 2. 實(shí)際操作一次: 按對(duì)應(yīng)程序操作實(shí)踐!- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- AVR 單片機(jī) 指令系統(tǒng)
鏈接地址:http://www.820124.com/p-6632907.html