瑞薩 740 族 8 位單片機(jī):功能特性與使用要點(diǎn)
引言
在電子設(shè)計(jì)領(lǐng)域,單片機(jī)作為核心控制元件,其性能和功能直接影響著整個(gè)系統(tǒng)的表現(xiàn)。瑞薩 740 族 8 位單片機(jī)以其獨(dú)特的指令系統(tǒng)和豐富的功能,在眾多應(yīng)用場(chǎng)景中展現(xiàn)出強(qiáng)大的優(yōu)勢(shì)。本文將深入探討瑞薩 740 族單片機(jī)的特點(diǎn)、指令系統(tǒng)以及使用過(guò)程中的注意事項(xiàng),為電子工程師們提供全面的參考。
文件下載:R5F211B1DD#U0.pdf
一、公司信息與產(chǎn)品背景
NEC 電子公司與株式會(huì)社瑞薩科技于 2010 年 4 月 1 日進(jìn)行業(yè)務(wù)整合,成立了瑞薩電子公司。盡管資料中可能仍保留舊公司名稱,但不影響資料的有效性。瑞薩電子公司官網(wǎng)為 http://www.renesas.com ,業(yè)務(wù)咨詢可通過(guò) http://www.renesas.com/inquiry 進(jìn)行。
二、740 族單片機(jī)概述
(一)指令特點(diǎn)
- 高效指令群與豐富尋址方式:能有效使用 ROM 區(qū),提高程序執(zhí)行效率。
- 位操作與位測(cè)試/轉(zhuǎn)移指令:可對(duì)累加器、存儲(chǔ)器、I/O 進(jìn)行位操作,增強(qiáng)了系統(tǒng)的靈活性。
- 豐富中斷源與處理功能:能及時(shí)響應(yīng)各種外部事件,保證系統(tǒng)的實(shí)時(shí)性。
- 變址尋址功能:對(duì)于字節(jié)單位處理和表參照功能表現(xiàn)卓越。
- 十進(jìn)制運(yùn)算功能:無(wú)需軟件補(bǔ)正,方便進(jìn)行十進(jìn)制數(shù)據(jù)處理。
- 存儲(chǔ)器與 I/O 運(yùn)算功能:不經(jīng)累加器就能進(jìn)行存儲(chǔ)器之間、I/O 之間以及存儲(chǔ)器與 I/O 之間的運(yùn)算。
(二)中央處理器
740 族的 CPU 包含 6 個(gè)寄存器,程序計(jì)數(shù)器(PC)為 16 位,累加器(A)、變址寄存器 X(X)、變址寄存器 Y(Y)、棧指針(S)及處理器狀態(tài)寄存器(PS)均為 8 位。硬件復(fù)位后,除標(biāo)志位 I 為 1 外,其他寄存器內(nèi)容不定,需用程序初始化。
- 累加器(A):8 位核心寄存器,常用于算術(shù)運(yùn)算、數(shù)據(jù)傳送、暫時(shí)存儲(chǔ)和條件判斷。
- 變址寄存器 X(X)和變址寄存器 Y(Y):8 位寄存器,在尋址時(shí)可將操作數(shù)指定地址與變址寄存器內(nèi)容相加,用于訪問(wèn)子程序表和存儲(chǔ)表,還具備遞增、遞減、比較和數(shù)據(jù)傳送等功能。
- 棧指針(S):8 位寄存器,在中斷和調(diào)用子程序時(shí),指向保存返回地址的存儲(chǔ)器地址。
- 程序計(jì)數(shù)器(PC):由 PCH 和 PCL 組成的 16 位計(jì)數(shù)器,指向下一個(gè)執(zhí)行指令的地址。使用棧指針或直接更改 PC 內(nèi)容時(shí),需防止程序流程與 PC 內(nèi)容不一致。
- 處理器狀態(tài)寄存器(PS):8 位寄存器,包含 5 個(gè)表示內(nèi)部 CPU 運(yùn)算狀態(tài)的標(biāo)志和 3 個(gè)決定運(yùn)行的標(biāo)志。除中斷禁止標(biāo)志 I 外,復(fù)位后值不定,需初始化影響程序執(zhí)行的標(biāo)志,尤其是 T 標(biāo)志和 D 標(biāo)志。
三、指令系統(tǒng)詳解
(一)尋址方式
740 族有 19 種尋址方式,根據(jù)指令在程序存儲(chǔ)器中的字節(jié)數(shù)可分為 1 字節(jié)指令、2 字節(jié)指令和 3 字節(jié)指令。第一字節(jié)為操作碼,第二或第三字節(jié)為操作數(shù),變址寄存器 X 與 Y 的內(nèi)容也會(huì)影響尋址。
- 立即尋址:將操作數(shù)內(nèi)容指定為運(yùn)算數(shù)據(jù),如 ADC #$A5。
- 累加器尋址:直接將累加器內(nèi)容指定為運(yùn)算數(shù)據(jù),如 ROL A。
- 零頁(yè)尋址:將操作數(shù)指向的零頁(yè)區(qū)內(nèi)(地址 0016 - FF16)的存儲(chǔ)器內(nèi)容指定為運(yùn)算數(shù)據(jù),如 ADC $40。
- 零頁(yè) X 尋址:將操作數(shù)內(nèi)容和變址寄存器 X 內(nèi)容相加值所指向的零頁(yè)區(qū)內(nèi)的存儲(chǔ)器內(nèi)容指定為運(yùn)算數(shù)據(jù),如 ADC $5E, X。
- 零頁(yè) Y 尋址:將操作數(shù)內(nèi)容和變址寄存器 Y 內(nèi)容相加值所指向的零頁(yè)區(qū)內(nèi)的存儲(chǔ)器內(nèi)容指定為運(yùn)算數(shù)據(jù),如 LDX $62, Y。
- 絕對(duì)尋址:將第一操作數(shù)和第二操作數(shù)指向的存儲(chǔ)器內(nèi)容指定為運(yùn)算數(shù)據(jù),如 ADC $AD12。
- 絕對(duì) X 尋址:將第一操作數(shù)和第二操作數(shù)表示的數(shù)值與變址寄存器 X 內(nèi)容相加值所指向的存儲(chǔ)器內(nèi)容指定為運(yùn)算數(shù)據(jù),如 ADC $AD12, X。
- 絕對(duì) Y 尋址:將第一操作數(shù)和第二操作數(shù)表示的數(shù)值與變址寄存器 Y 內(nèi)容相加值所指向的存儲(chǔ)器內(nèi)容指定為運(yùn)算數(shù)據(jù),如 ADC $AD12, Y。
- 隱含尋址:用一條指令操作寄存器等,如 CLC。
- 相對(duì)尋址:跳轉(zhuǎn)到程序計(jì)數(shù)器內(nèi)容和操作數(shù)內(nèi)容相加值所指向的地址,如 BCC * - 12。
- 間接 X 尋址:將操作數(shù)內(nèi)容和變址寄存器 X 內(nèi)容相加值所指向的零頁(yè)區(qū)內(nèi)連續(xù) 2 個(gè)字節(jié)的存儲(chǔ)器內(nèi)容作為地址,將該地址的存儲(chǔ)器內(nèi)容指定為操作數(shù)據(jù),如 ADC ($1E, X)。
- 間接 Y 尋址:將操作數(shù)指定的零頁(yè)區(qū)內(nèi)連續(xù) 2 個(gè)字節(jié)的存儲(chǔ)器內(nèi)容和變址寄存器 Y 內(nèi)容相加值作為地址,將該地址的存儲(chǔ)器內(nèi)容指定為操作數(shù)據(jù),如 ADC ($1E), Y。
- 間接絕對(duì)尋址:跳轉(zhuǎn)到第一操作數(shù)和第二操作數(shù)指定的連續(xù) 2 個(gè)字節(jié)的存儲(chǔ)器內(nèi)容所指向的地址,如 JMP ($1400)。
- 零頁(yè)間接絕對(duì)尋址:跳轉(zhuǎn)到操作數(shù)指定的零頁(yè)區(qū)內(nèi)連續(xù) 2 個(gè)字節(jié)的存儲(chǔ)器內(nèi)容所指向的地址,如 JMP ($45)。
- 專用頁(yè)尋址:跳轉(zhuǎn)到低 8 位地址為操作數(shù)、高 8 位地址為 FF16 的特殊區(qū)內(nèi)的地址,如 JSR $FFC0。
- 零頁(yè)位尋址:用操作碼的高 3 位指定第一操作數(shù)的內(nèi)容指向的零頁(yè)區(qū)的存儲(chǔ)器的特定位,如 CLB 5, $44。
- 累加器位尋址:用操作碼高 3 位指定累加器中的位,如 CLB 5, A。
- 累加器位相對(duì)尋址:用操作碼的高 3 位指定累加器的位,根據(jù)該位狀態(tài)跳轉(zhuǎn)到程序計(jì)數(shù)器內(nèi)容和操作數(shù)內(nèi)容相加值所指向的地址,如 BBC 5, A, * - 12。
- 零頁(yè)位相對(duì)尋址:用操作碼的高 3 位指定零頁(yè)區(qū)的存儲(chǔ)器的特定位,根據(jù)該位狀態(tài)跳轉(zhuǎn)到程序計(jì)數(shù)器內(nèi)容和第二操作數(shù)內(nèi)容相加值所指向的地址,如 BBC 5, $04, * - 12。
(二)指令分類
- 數(shù)據(jù)傳送指令:用于在寄存器之間、寄存器與存儲(chǔ)器之間以及存儲(chǔ)器之間傳送數(shù)據(jù),如 LDA、STA、TAX 等。
- 運(yùn)算指令:對(duì)寄存器或存儲(chǔ)器中的數(shù)據(jù)進(jìn)行加減運(yùn)算、邏輯運(yùn)算、比較、循環(huán)和移位,如 ADC、SBC、AND 等。
- 位操作指令:對(duì)累加器或存儲(chǔ)器指定的位置“1”或置“0”,如 CLB、SEB。
- 標(biāo)志設(shè)定指令:對(duì) C 標(biāo)志、D 標(biāo)志、I 標(biāo)志、T 標(biāo)志和 V 標(biāo)志置“0”或置“1”,如 CLC、SEC、CLD 等。
- 跳轉(zhuǎn)、轉(zhuǎn)移和返回指令:改變程序順序,如 JMP、BRA、RTS 等。
- 中斷指令:產(chǎn)生軟件中斷,如 BRK。
- 特殊指令:控制振蕩和內(nèi)部時(shí)鐘,如 WIT、STP。
- 其它指令:如 NOP,只進(jìn)行程序計(jì)數(shù)器 +1。
四、使用注意事項(xiàng)
(一)輸入/輸出端口
- 待機(jī)狀態(tài)使用:在待機(jī)狀態(tài)下,避免將輸入/輸出端口的輸入電平置為不穩(wěn)定狀態(tài),對(duì)于 N 溝道漏極開(kāi)路的輸入/輸出端口,需通過(guò)電阻上拉或下拉端口。
- 位處理指令改寫(xiě)輸出數(shù)據(jù):使用位處理指令改寫(xiě)輸入/輸出端口的端口鎖存器時(shí),未指定的位的值可能發(fā)生變化,因?yàn)槲惶幚碇噶钍亲x - 改 - 寫(xiě)形式,以字節(jié)為單位進(jìn)行操作。
(二)未使用管腳處理
- 輸出專用管腳:必須開(kāi)路。
- 輸入專用管腳:各管腳需通過(guò) 1 - 10kΩ 的電阻連接到 VCC 或 VSS,電壓電平對(duì)運(yùn)行模式有影響的管腳需根據(jù)模式連接。
- 輸入/輸出端口:設(shè)定為輸入模式時(shí),通過(guò) 1 - 10kΩ 電阻連接到 VCC 或 VSS;設(shè)定為輸出模式時(shí),在“L”或“H”輸出狀態(tài)置為開(kāi)路。
- A/D 轉(zhuǎn)換電源管腳:不使用 A/D 轉(zhuǎn)換器時(shí),AVSS 連接 VSS,AVCC 連接 VCC。
(三)中斷
- 中斷請(qǐng)求位和允許位設(shè)定:按順序先將中斷請(qǐng)求位清“0”,再將中斷允許位置“1”,避免執(zhí)行不需要的中斷處理程序。
- 更改關(guān)聯(lián)寄存器設(shè)定:設(shè)定外部中斷的有效邊沿或切換多個(gè)中斷源共用同一中斷向量的中斷源時(shí),按特定步驟設(shè)定,防止中斷請(qǐng)求位變?yōu)椤?”。
- 中斷請(qǐng)求位判斷:在將中斷請(qǐng)求寄存器的中斷請(qǐng)求位清“0”后,立即執(zhí)行 BBC 或 BBS 指令時(shí),需先執(zhí)行 1 條指令。
(四)編程
- 處理器狀態(tài)寄存器:預(yù)先對(duì)影響程序執(zhí)行的處理器狀態(tài)寄存器的標(biāo)志進(jìn)行初始化,尤其是 T 標(biāo)志和 D 標(biāo)志。參照 PS 內(nèi)容時(shí),執(zhí)行 PHP 指令后讀 (S) + 1 的內(nèi)容,必要時(shí)執(zhí)行 PLP 指令恢復(fù),執(zhí)行 PLP 指令后插入 NOP 指令。
- BRK 指令:當(dāng) BRK 指令和其他中斷源是相同的中斷向量時(shí),可根據(jù)標(biāo)志 B 的內(nèi)容判斷中斷發(fā)生源。在下述 2 種狀態(tài)下執(zhí)行 BRK 指令,從該中斷源中優(yōu)先級(jí)最高的中斷源的中斷向量地址開(kāi)始執(zhí)行中斷:中斷請(qǐng)求位和中斷允許位都為“1”;將標(biāo)志 I 置“1”后禁止中斷。
- 十進(jìn)制運(yùn)算:進(jìn)行十進(jìn)制運(yùn)算時(shí),通過(guò) SED 指令將 D 標(biāo)志置“1”,執(zhí)行 ADC 或 SBC 指令,在其后一條指令之后執(zhí)行 SEC、CLC 或 CLD 指令。十進(jìn)制模式下,N、V、Z 標(biāo)志無(wú)效,C 標(biāo)志可用于判斷進(jìn)位或借位,需在運(yùn)算前初始化。
- JMP 指令:使用 JMP 指令(間接尋址方式)時(shí),不能將低 8 位為“FF16”的地址指定為操作數(shù)。
- 乘除指令:MUL、DIV 指令不受標(biāo)志 T 和標(biāo)志 D 的影響,執(zhí)行時(shí)處理器狀態(tài)寄存器內(nèi)容不變。
- 端口:不能讀端口方向寄存器的值,需使用 LDM、STA 等指令設(shè)定方向寄存器。
- 指令執(zhí)行時(shí)間:指令的執(zhí)行時(shí)間可通過(guò)機(jī)器指令一覽表中記載的周期數(shù)乘內(nèi)部時(shí)鐘 φ 的周期得到。
五、總結(jié)
瑞薩 740 族 8 位單片機(jī)以其豐富的指令系統(tǒng)和強(qiáng)大的功能,為電子工程師提供了廣闊的設(shè)計(jì)空間。在使用過(guò)程中,充分了解其特點(diǎn)和注意事項(xiàng),能夠更好地發(fā)揮其性能,設(shè)計(jì)出高效、穩(wěn)定的電子系統(tǒng)。希望本文能為工程師們?cè)趯?shí)際應(yīng)用中提供有益的參考,讓我們?cè)陔娮釉O(shè)計(jì)的道路上不斷探索和創(chuàng)新。
-
指令系統(tǒng)
+關(guān)注
關(guān)注
1文章
86瀏覽量
16166
發(fā)布評(píng)論請(qǐng)先 登錄
瑞薩單片機(jī)開(kāi)發(fā)環(huán)境集錦
瑞薩R8C與16位凌陽(yáng)單片機(jī)相比較有那些優(yōu)勢(shì)?
請(qǐng)教瑞薩單片機(jī)型號(hào)及使用
瑞薩單片機(jī)開(kāi)發(fā)環(huán)境
請(qǐng)問(wèn)瑞薩16位R8C/TINY單片機(jī)的靜態(tài)功耗是多少?
介紹瑞薩16位單片機(jī)講座性能及應(yīng)用
瑞薩電子16位單片機(jī)M16C/28群數(shù)據(jù)手冊(cè)
瑞薩RA8系列教程 | 基于 Keil 開(kāi)發(fā) RA8單片機(jī)
瑞薩 740 族 8 位單片機(jī):功能特性與使用要點(diǎn)
評(píng)論