瑞萨8位单片机740族:指令系统与使用要点解析

电子说

1.4w人已加入

描述

瑞萨8位单片机740族:指令系统与使用要点解析

在单片机领域,瑞萨8位单片机740族以其高效的指令群和丰富的寻址方式,在众多应用场景中展现出强大的性能。作为电子工程师,深入了解这款单片机的指令系统和使用注意事项,对于设计出稳定、高效的电路至关重要。

文件下载:R5F211A2NP#U0.pdf

寄存器结构与功能

740族的CPU拥有6个寄存器,程序计数器(PC)由16位构成,而累加器(A)、变址寄存器X(X)、变址寄存器Y(Y)、栈指针(S)及处理器状态寄存器(PS)都为8位。硬件复位后,除标志位I外,这些寄存器内容不定,所以需要程序初始化,复位后I = 1。

累加器(A)

累加器是单片机核心,8位结构,频繁用于算术运算、数据传送、暂时存储和条件判断,是通用寄存器的典型代表。

变址寄存器X(X)和Y(Y)

8位变址寄存器X和Y,在寻址方式中作用显著。使用它们时,操作数指定地址加上其内容后的地址成为存取目标,在访问子程序表和存储表时非常高效,还能进行递增、递减、比较和数据传送,可充当简单累加器。

栈指针(S)

8位寄存器,在中断和调用子程序时,指向保存返回地址等信息的存储器地址。其变化与中断处理和子程序处理密切相关,具体可参照“3.4有关中断处理和子程序处理的指令”。

程序计数器(PC)

由16位的PCH和PCL组成,指向下一个待执行指令的地址。740族CPU采用存储程序方式,程序计数器自动控制为主,但在使用栈指针或更改其内容时,要防止程序流程与内容不一致。

处理器状态寄存器(PS)

8位寄存器,包含表示CPU运算状态的5个标志和决定运行的3个标志。除中断禁止标志I复位后为“1”外,其他值不定,因此影响程序执行的标志,尤其是影响运算的T和D标志,必须初始化。 各标志功能如下:

  • 进位标志C:保持运算进位或借位,可由SEC置位、CLC清除。
  • 零标志Z:运算或数据传送结果为“0”时置“1”。
  • 中断禁止标志I:为“1”时禁止所有中断,可由SEI置位、CLI清除。
  • 十进制模式标志D:决定加减运算采用二进制还是十进制,由SED置位、CLD清除。
  • 中断标志(BRK)B:判断是否由BRK指令产生中断,BRK指令产生中断时置“1”。
  • X变址模式标志T:决定运算在累加器和存储器间还是存储器和存储器间进行,由SET设置、CLT清除。
  • 溢出标志V:带符号运算溢出时置“1”,可由CLV清除。
  • 负标志N:与数据操作或运算结果符号位一致,执行BIT指令时,由指令执行对象存储器的位7存入。

寻址方式

740族具备19种寻址方式,存储器存取能力强大。指令分为1字节、2字节和3字节,第一字节为操作码,第二或第三字节为操作数,变址寄存器X与Y内容也影响寻址。不同寻址方式在指定存储单元时,虽本质相同,但使用操作数、变址寄存器内容或两者组合的方式不同,通过与位操作、跳转和算术指令组合,提升了操作性能。

常见寻址方式

  • 立即寻址:将操作数内容指定为运算数据,如ADC # $A5。
  • 累加器寻址:直接将累加器内容指定为运算数据,如ROL A。
  • 零页寻址:操作数指向零页区内(地址0016~FF16)的存储器内容,如ADC $ 40。
  • 零页X寻址:操作数内容与变址寄存器X内容相加,指向零页区内的存储器内容,如ADC $ 5E, X。
  • 绝对寻址:第一和第二操作数指向的存储器内容为运算数据,如ADC $ AD12。

指令系统

740族有71种指令,不同单片机产品可能存在不能使用的指令,使用时需注意。

数据传送指令

用于寄存器间、寄存器与存储器间以及存储器间的数据传送,如LDA、STA、TAX等指令,实现数据的装入、存储和传送操作。

运算指令

对寄存器或存储器中的数据进行加减、逻辑、比较、循环和移位运算,如ADC、SBC、AND等指令。部分产品不能使用乘除运算指令,使用时要确认。

位操作指令

对累加器或存储器指定位置“1”或置“0”,如CLB、SEB指令,方便进行位级别的控制。

标志设定指令

对C、D、I、T和V标志置“0”或置“1”,如CLC、SED等指令,用于控制运算模式和中断等功能。

跳转、转移和返回指令

改变程序顺序,如JMP、BRA、RTI等指令,实现程序的跳转、转移和返回操作。

中断指令

产生软件中断,如BRK指令,用于触发特定的中断处理程序。

特殊指令

控制振荡和内部时钟,如WIT、STP指令,可实现时钟的停止和振荡控制。

其它指令

如NOP指令,仅进行程序计数器 + 1操作,可用于延时等简单需求。

使用注意事项

输入/输出端口

  • 待机状态使用:避免输入/输出端口输入电平不稳定,特别是N沟道漏极开路端口,需通过电阻上拉或下拉端口,选择电阻值时要考虑外接电路和通常运行时输出电平波动。
  • 位处理指令改写输出数据:位处理指令是读 - 改 - 写形式,对输入/输出端口端口锁存器某位执行时,未指定位的值可能变化。

未使用管脚处理

  • 输出专用管脚:必须开路。
  • 输入专用管脚:通过1~10kΩ电阻连接到VCC或VSS,部分管脚需根据运行模式连接。
  • 输入/输出端口:输入模式时通过电阻连接到VCC或VSS,输出模式时在“L”或“H”输出状态置为开路。同时要注意避免短路和噪声影响,布线长度控制在20mm以内。

中断

  • 中断请求位和允许位设定:按顺序先清“0”中断请求位,再置“1”中断允许位,防止执行不必要的中断处理程序。
  • 更改关联寄存器设定:设定外部中断有效边沿或切换中断源时,若不想产生同步中断,需按特定步骤操作。
  • 中断请求位判断:清“0”中断请求位后立即执行BBC或BBS指令,需先执行一条指令,避免误判。

编程

  • 处理器状态寄存器:需初始化影响程序执行的标志,参照时执行PHP指令后读取,必要时执行PLP指令恢复,执行PLP后插入NOP指令。
  • BRK指令:与其他中断源向量相同时,可根据标志B判断中断源,在特定状态下执行BRK指令,从高优先级中断向量地址开始执行。
  • 十进制运算:通过SED指令置“1”十进制模式标志D,执行ADC或SBC指令,之后执行SEC、CLC或CLD指令。十进制模式下,N、V、Z标志无效,C标志可用于判断进位或借位。
  • JMP指令:间接寻址方式时,不能将低8位为“FF16”的地址指定为操作数。
  • 乘除指令:MUL、DIV指令不受标志T和D影响,执行时处理器状态寄存器内容不变。
  • 端口:不能读端口方向寄存器的值,使用LDM、STA等指令设定。
  • 指令执行时间:通过机器指令一览表中周期数乘内部时钟φ的周期得到。

瑞萨8位单片机740族的指令系统和使用注意事项涵盖了多个方面,电子工程师在设计时需充分了解并合理运用,才能发挥其优势,确保电路的稳定运行。大家在实际使用过程中,有没有遇到过一些特殊的问题或有独特的解决办法呢?欢迎在评论区分享交流。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分