瑞薩8位單片機(jī)740族:指令系統(tǒng)與使用要點(diǎn)解析
在單片機(jī)領(lǐng)域,瑞薩8位單片機(jī)740族以其高效的指令群和豐富的尋址方式,在眾多應(yīng)用場景中展現(xiàn)出強(qiáng)大的性能。作為電子工程師,深入了解這款單片機(jī)的指令系統(tǒng)和使用注意事項(xiàng),對于設(shè)計(jì)出穩(wěn)定、高效的電路至關(guān)重要。
文件下載:R5F211A2NP#U0.pdf
寄存器結(jié)構(gòu)與功能
740族的CPU擁有6個(gè)寄存器,程序計(jì)數(shù)器(PC)由16位構(gòu)成,而累加器(A)、變址寄存器X(X)、變址寄存器Y(Y)、棧指針(S)及處理器狀態(tài)寄存器(PS)都為8位。硬件復(fù)位后,除標(biāo)志位I外,這些寄存器內(nèi)容不定,所以需要程序初始化,復(fù)位后I = 1。
累加器(A)
累加器是單片機(jī)核心,8位結(jié)構(gòu),頻繁用于算術(shù)運(yùn)算、數(shù)據(jù)傳送、暫時(shí)存儲(chǔ)和條件判斷,是通用寄存器的典型代表。
變址寄存器X(X)和Y(Y)
8位變址寄存器X和Y,在尋址方式中作用顯著。使用它們時(shí),操作數(shù)指定地址加上其內(nèi)容后的地址成為存取目標(biāo),在訪問子程序表和存儲(chǔ)表時(shí)非常高效,還能進(jìn)行遞增、遞減、比較和數(shù)據(jù)傳送,可充當(dāng)簡單累加器。
棧指針(S)
8位寄存器,在中斷和調(diào)用子程序時(shí),指向保存返回地址等信息的存儲(chǔ)器地址。其變化與中斷處理和子程序處理密切相關(guān),具體可參照“3.4有關(guān)中斷處理和子程序處理的指令”。
程序計(jì)數(shù)器(PC)
由16位的PCH和PCL組成,指向下一個(gè)待執(zhí)行指令的地址。740族CPU采用存儲(chǔ)程序方式,程序計(jì)數(shù)器自動(dòng)控制為主,但在使用棧指針或更改其內(nèi)容時(shí),要防止程序流程與內(nèi)容不一致。
處理器狀態(tài)寄存器(PS)
8位寄存器,包含表示CPU運(yùn)算狀態(tài)的5個(gè)標(biāo)志和決定運(yùn)行的3個(gè)標(biāo)志。除中斷禁止標(biāo)志I復(fù)位后為“1”外,其他值不定,因此影響程序執(zhí)行的標(biāo)志,尤其是影響運(yùn)算的T和D標(biāo)志,必須初始化。 各標(biāo)志功能如下:
- 進(jìn)位標(biāo)志C:保持運(yùn)算進(jìn)位或借位,可由SEC置位、CLC清除。
- 零標(biāo)志Z:運(yùn)算或數(shù)據(jù)傳送結(jié)果為“0”時(shí)置“1”。
- 中斷禁止標(biāo)志I:為“1”時(shí)禁止所有中斷,可由SEI置位、CLI清除。
- 十進(jìn)制模式標(biāo)志D:決定加減運(yùn)算采用二進(jìn)制還是十進(jìn)制,由SED置位、CLD清除。
- 中斷標(biāo)志(BRK)B:判斷是否由BRK指令產(chǎn)生中斷,BRK指令產(chǎn)生中斷時(shí)置“1”。
- X變址模式標(biāo)志T:決定運(yùn)算在累加器和存儲(chǔ)器間還是存儲(chǔ)器和存儲(chǔ)器間進(jìn)行,由SET設(shè)置、CLT清除。
- 溢出標(biāo)志V:帶符號運(yùn)算溢出時(shí)置“1”,可由CLV清除。
- 負(fù)標(biāo)志N:與數(shù)據(jù)操作或運(yùn)算結(jié)果符號位一致,執(zhí)行BIT指令時(shí),由指令執(zhí)行對象存儲(chǔ)器的位7存入。
尋址方式
740族具備19種尋址方式,存儲(chǔ)器存取能力強(qiáng)大。指令分為1字節(jié)、2字節(jié)和3字節(jié),第一字節(jié)為操作碼,第二或第三字節(jié)為操作數(shù),變址寄存器X與Y內(nèi)容也影響尋址。不同尋址方式在指定存儲(chǔ)單元時(shí),雖本質(zhì)相同,但使用操作數(shù)、變址寄存器內(nèi)容或兩者組合的方式不同,通過與位操作、跳轉(zhuǎn)和算術(shù)指令組合,提升了操作性能。
常見尋址方式
- 立即尋址:將操作數(shù)內(nèi)容指定為運(yùn)算數(shù)據(jù),如ADC # $A5。
- 累加器尋址:直接將累加器內(nèi)容指定為運(yùn)算數(shù)據(jù),如ROL A。
- 零頁尋址:操作數(shù)指向零頁區(qū)內(nèi)(地址0016~FF16)的存儲(chǔ)器內(nèi)容,如ADC $ 40。
- 零頁X尋址:操作數(shù)內(nèi)容與變址寄存器X內(nèi)容相加,指向零頁區(qū)內(nèi)的存儲(chǔ)器內(nèi)容,如ADC $ 5E, X。
- 絕對尋址:第一和第二操作數(shù)指向的存儲(chǔ)器內(nèi)容為運(yùn)算數(shù)據(jù),如ADC $ AD12。
指令系統(tǒng)
740族有71種指令,不同單片機(jī)產(chǎn)品可能存在不能使用的指令,使用時(shí)需注意。
數(shù)據(jù)傳送指令
用于寄存器間、寄存器與存儲(chǔ)器間以及存儲(chǔ)器間的數(shù)據(jù)傳送,如LDA、STA、TAX等指令,實(shí)現(xiàn)數(shù)據(jù)的裝入、存儲(chǔ)和傳送操作。
運(yùn)算指令
對寄存器或存儲(chǔ)器中的數(shù)據(jù)進(jìn)行加減、邏輯、比較、循環(huán)和移位運(yùn)算,如ADC、SBC、AND等指令。部分產(chǎn)品不能使用乘除運(yùn)算指令,使用時(shí)要確認(rèn)。
位操作指令
對累加器或存儲(chǔ)器指定位置“1”或置“0”,如CLB、SEB指令,方便進(jìn)行位級別的控制。
標(biāo)志設(shè)定指令
對C、D、I、T和V標(biāo)志置“0”或置“1”,如CLC、SED等指令,用于控制運(yùn)算模式和中斷等功能。
跳轉(zhuǎn)、轉(zhuǎn)移和返回指令
改變程序順序,如JMP、BRA、RTI等指令,實(shí)現(xiàn)程序的跳轉(zhuǎn)、轉(zhuǎn)移和返回操作。
中斷指令
產(chǎn)生軟件中斷,如BRK指令,用于觸發(fā)特定的中斷處理程序。
特殊指令
控制振蕩和內(nèi)部時(shí)鐘,如WIT、STP指令,可實(shí)現(xiàn)時(shí)鐘的停止和振蕩控制。
其它指令
如NOP指令,僅進(jìn)行程序計(jì)數(shù)器 + 1操作,可用于延時(shí)等簡單需求。
使用注意事項(xiàng)
輸入/輸出端口
- 待機(jī)狀態(tài)使用:避免輸入/輸出端口輸入電平不穩(wěn)定,特別是N溝道漏極開路端口,需通過電阻上拉或下拉端口,選擇電阻值時(shí)要考慮外接電路和通常運(yùn)行時(shí)輸出電平波動(dòng)。
- 位處理指令改寫輸出數(shù)據(jù):位處理指令是讀 - 改 - 寫形式,對輸入/輸出端口端口鎖存器某位執(zhí)行時(shí),未指定位的值可能變化。
未使用管腳處理
- 輸出專用管腳:必須開路。
- 輸入專用管腳:通過1~10kΩ電阻連接到VCC或VSS,部分管腳需根據(jù)運(yùn)行模式連接。
- 輸入/輸出端口:輸入模式時(shí)通過電阻連接到VCC或VSS,輸出模式時(shí)在“L”或“H”輸出狀態(tài)置為開路。同時(shí)要注意避免短路和噪聲影響,布線長度控制在20mm以內(nèi)。
中斷
- 中斷請求位和允許位設(shè)定:按順序先清“0”中斷請求位,再置“1”中斷允許位,防止執(zhí)行不必要的中斷處理程序。
- 更改關(guān)聯(lián)寄存器設(shè)定:設(shè)定外部中斷有效邊沿或切換中斷源時(shí),若不想產(chǎn)生同步中斷,需按特定步驟操作。
- 中斷請求位判斷:清“0”中斷請求位后立即執(zhí)行BBC或BBS指令,需先執(zhí)行一條指令,避免誤判。
編程
- 處理器狀態(tài)寄存器:需初始化影響程序執(zhí)行的標(biāo)志,參照時(shí)執(zhí)行PHP指令后讀取,必要時(shí)執(zhí)行PLP指令恢復(fù),執(zhí)行PLP后插入NOP指令。
- BRK指令:與其他中斷源向量相同時(shí),可根據(jù)標(biāo)志B判斷中斷源,在特定狀態(tài)下執(zhí)行BRK指令,從高優(yōu)先級中斷向量地址開始執(zhí)行。
- 十進(jìn)制運(yùn)算:通過SED指令置“1”十進(jìn)制模式標(biāo)志D,執(zhí)行ADC或SBC指令,之后執(zhí)行SEC、CLC或CLD指令。十進(jìn)制模式下,N、V、Z標(biāo)志無效,C標(biāo)志可用于判斷進(jìn)位或借位。
- JMP指令:間接尋址方式時(shí),不能將低8位為“FF16”的地址指定為操作數(shù)。
- 乘除指令:MUL、DIV指令不受標(biāo)志T和D影響,執(zhí)行時(shí)處理器狀態(tài)寄存器內(nèi)容不變。
- 端口:不能讀端口方向寄存器的值,使用LDM、STA等指令設(shè)定。
- 指令執(zhí)行時(shí)間:通過機(jī)器指令一覽表中周期數(shù)乘內(nèi)部時(shí)鐘φ的周期得到。
瑞薩8位單片機(jī)740族的指令系統(tǒng)和使用注意事項(xiàng)涵蓋了多個(gè)方面,電子工程師在設(shè)計(jì)時(shí)需充分了解并合理運(yùn)用,才能發(fā)揮其優(yōu)勢,確保電路的穩(wěn)定運(yùn)行。大家在實(shí)際使用過程中,有沒有遇到過一些特殊的問題或有獨(dú)特的解決辦法呢?歡迎在評論區(qū)分享交流。
-
指令系統(tǒng)
+關(guān)注
關(guān)注
1文章
88瀏覽量
16188
發(fā)布評論請先 登錄
Renesas 7544 系列單片機(jī):技術(shù)剖析與設(shè)計(jì)要點(diǎn)
Renesas 3823 組 8 位 CMOS 單片機(jī)技術(shù)剖析
深入解析 SANYO LC87F57C8A 8 位單片機(jī):特性、參數(shù)與應(yīng)用考量
Infineon XC866 8位單片機(jī):特性、功能與應(yīng)用解析
Infineon XC87xCLM 8位單片機(jī):功能特性與設(shè)計(jì)要點(diǎn)解析
Infineon C505系列8位單片機(jī):特性、應(yīng)用與設(shè)計(jì)要點(diǎn)
瑞薩8位單片機(jī)740族:技術(shù)剖析與設(shè)計(jì)指南
ST7LITE1xB 8 位單片機(jī):功能特性與應(yīng)用解析
深入解析英飛凌XC835/836 8位單片機(jī):特性、參數(shù)與應(yīng)用考量
瑞薩RA8系列教程 | 瑞薩 RA8 開發(fā)環(huán)境搭建,并點(diǎn)亮一個(gè)LED
瑞薩RA單片機(jī)在e2 studio環(huán)境下printf編譯出錯(cuò)的問題解析
瑞薩8位單片機(jī)740族:指令系統(tǒng)與使用要點(diǎn)解析
評論