电子说
在当今电子技术飞速发展的时代,单片机作为嵌入式系统的核心部件,广泛应用于各个领域。瑞萨电子的8位单片机740族以其高效的指令群、丰富的寻址方式和强大的功能,受到了众多电子工程师的青睐。本文将深入探讨瑞萨8位单片机740族的特点、中央处理器、指令系统以及使用注意事项,希望能为电子工程师们在设计和开发过程中提供有价值的参考。
文件下载:R5F211A1DSP#U0.pdf
NEC电子公司与株式会社瑞萨科技于2010年4月1日进行业务整合,合并后的新公司“瑞萨电子公司”继承了两家公司的所有业务。因此,在一些旧资料中可能还保留有旧公司名称等标识,但这并不影响资料的有效性。瑞萨电子公司的网址为http://www.renesas.com ,业务咨询可访问http://www.renesas.com/inquiry 。
CMOS 8位单片机740族指令具有以下显著特点:
740族的CPU有6个寄存器,包括累加器(A)、变址寄存器X(X)、变址寄存器Y(Y)、栈指针(S)、程序计数器(PC)和处理器状态寄存器(PS)。其中,程序计数器(PC)由16位构成,而累加器(A)、变址寄存器X(X)、变址寄存器Y(Y)、栈指针(S)及处理器状态寄存器(PS)都由8位构成。在硬件复位后,除标志位I为“1”外,这些寄存器的内容是不定的,因此需要用程序进行初始化。
累加器是单片机的核心寄存器,由8位构成,常用于算术运算、数据传送、暂时存储以及条件判断等操作。
740族的CPU具有8位变址寄存器X和8位变址寄存器Y。在使用这些变址寄存器的寻址方式时,存取操作数指定的地址加上变址寄存器内容后的地址,此模式在访问子程序表和访问存储表方面非常有效。同时,变址寄存器还具有递增、递减、比较以及数据传送等功能,可作为简单的累加器使用。
栈指针(S)是8位寄存器,在产生中断和调用子程序时,指向保存处理结束时的返回地址(程序计数器值)等的存储器地址。
程序计数器由PCH和PCL组成,为16位计数器,指向下一个保存执行指令的地址。740族的CPU采用存储程序方式,在开始新的运行时需要把指令和相关的数据从存储器传送到CPU。通常,程序计数器指向下一个要传送的存储器地址,在执行完一条指令后能读取下一条所需的指令。需要注意的是,在使用栈指针或直接更改程序计数器内容时,必须防止程序流程与程序计数器内容的不一致。
处理器状态寄存器是8位寄存器,由表示内部CPU运算状态的5个标志和决定运行的3个标志构成。除中断禁止标志为“1”以外,复位后值不定,因此需要初始化影响程序执行的标志,尤其是对于影响运算的T标志和D标志,必须进行初始化。各标志的功能如下:
740族有19种寻址方式,具有很强的存储器存取能力。在通过指令进行运算时,需要预先指定存储器的地址,此存储器地址的指定方法称为寻址。740族的指令可根据程序存储器中的字节数分为1字节指令、2字节指令和3字节指令,第一字节为操作码,构成指令的基础;第二或第三字节为操作数,是影响寻址的部分。变址寄存器X与Y的内容也会影响寻址。常见的寻址方式包括立即寻址、累加器寻址、零页寻址、零页X寻址、零页Y寻址、绝对寻址、绝对X寻址、绝对Y寻址、隐含寻址、相对寻址、间接X寻址、间接Y寻址、间接寻址、零页间接寻址、专用页寻址、零页位寻址、累加器位寻址、累加器位相对寻址和零页位相对寻址等。
740族有71种类的指令,根据功能可分为以下几类:
用于在寄存器之间、寄存器与存储器之间以及存储器之间传送数据,包括装入(LDA、LDM、LDX、LDY)、存储(STA、STX、STY)、传送(TAX、TXA、TAY、TYA、TSX、TXS)和栈操作(PHA、PHP、PLA、PLP)等指令。
对寄存器或者存储器中的数据进行加减运算、逻辑运算、比较、循环以及移位等操作,如ADC、SBC、INC、DEC、INX、DEX、INY、DEY、MUL、DIV、AND、ORA、EOR、COM、TST、BIT、CMP、CPX、CPY、ASL、LSR、ROL、ROR、RRF等指令。需要注意的是,部分产品不能使用乘除运算指令。
对累加器或存储器指定的位置“1”或者置“0”,包括CLB和SEB指令。
对C标志、D标志、I标志、T标志和V标志置“0”或者置“1”,如CLC、SEC、CLD、SED、CLI、SEI、CLT、SET、CLV等指令。
通过这些指令改变程序顺序,包括跳转(JMP、BRA、JSR)、转移(BBC、BBS、BCC、BCS、BNE、BEQ、BPL、BMI、BVC、BVS)和返回(RTI、RTS)等指令。
产生软件中断,如BRK指令。
控制振荡和内部时钟,如WIT和STP指令。
如NOP指令,只进行程序计数器 +1 操作。
在待机状态下使用时,不要将输入/输出端口的输入电平置为不稳定状态,尤其要注意N沟道漏极开路的输入/输出端口。即使将其设定为输出端口,也必须通过电阻上拉(连接Vcc)或者下拉(连接Vss)端口。在决定电阻值时,要考虑外接电路和通常运行时输出电平的波动。
使用位处理指令(SEB指令、CLB指令)改写输入/输出端口的端口锁存器时,未指定的位的值有可能发生变化。因为位处理指令是读 - 改 - 写形式的指令,以字节为单位进行读和写操作。
必须按照先将中断请求位清“0”(没有中断请求),再将中断允许位置“1”(允许中断)的顺序进行设定,否则可能会执行不需要的中断处理程序。
在设定外部中断的有效边沿或者在切换多个中断源共用同一中断向量的中断源时,如果不需要发生与这些设定同步的中断,必须按一定步骤设定,以防止中断请求位变为“1”。
在将中断请求寄存器的中断请求位清“0”后,立即对此中断请求位执行BBC指令或者BBS指令时,必须在执行BBC指令或者BBS指令前执行1条指令,以免判断变为“0”之前的中断请求位的值。
需要预先对程序的执行有影响的处理器状态寄存器(PS)的标志进行初始化,尤其是标志T和标志D影响到运算,必须初始化。当要参照处理器状态寄存器(PS)的内容时,在执行一次PHP指令后读(S) + 1的内容,并且在必要时执行PLP指令恢复被保存的PS。在执行PLP指令后,必须插入NOP指令。
当BRK指令和其它中断源是相同的中断向量时,能根据被保存的标志B的内容判断中断发生源是BRK指令的中断还是优先级最低的中断,但必须在中断程序中进行。如果在下述2种状态下执行BRK指令,就从该中断源中优先级最高的中断源的中断向量地址开始执行中断:中断请求位和中断允许位都为“1”;将标志I置“1”后禁止中断。
在进行10进制运算时,通过SED指令将10进制模式标志D置“1”,然后执行ADC指令或者SBC指令。此时,必须在ADC指令或者SBC指令后的一条指令之后执行SEC指令、CLC指令或者CLD指令。在10进制模式(D标志 = 1)时执行ADC、SBC指令后,状态标志中的3个N、V、Z标志无效。
在使用JMP指令(间接寻址方式)时,不能将低8位为“FF16”的地址指定为操作数。
MUL、DIV指令不受标志T和标志D的影响,在执行乘除指令时,处理器状态寄存器的内容不变。
不能读端口方向寄存器的值,必须使用LDM指令、STA指令等设定方向寄存器。
指令的执行时间能通过机器指令一览表中记载的周期数乘内部时钟φ的周期得到。
瑞萨8位单片机740族以其丰富的指令系统和强大的功能,为电子工程师提供了广阔的设计空间。在使用过程中,工程师们需要充分了解其特点和使用注意事项,合理运用各种指令和寻址方式,以确保系统的稳定性和可靠性。同时,随着技术的不断发展,瑞萨电子也在不断优化和改进其产品,相信740族单片机将在更多领域发挥重要作用。
你在使用瑞萨8位单片机740族的过程中遇到过哪些问题?你对其指令系统和功能有什么独特的见解?欢迎在评论区分享你的经验和想法。
全部0条评论
快来发表一下你的评论吧 !