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