当前位置:首页 > 技术心得 > 正文内容

tenx(十速)TM87系列常用宏(二)

xjtudll17年前 (2010-02-09)技术心得10340

tenx(十速)TM87系列常用宏(二)

 

接上篇:http://xjtudll.cn/Exp/42/


5
、位操作

位清零

;BIT清零 RAM 00~6FH 70~7FH也可用,但是浪费了两条语句                              

CLRB                          .macro REG,BIT

                                                        MRW R0,REG

                                                        .if BIT=0

                                                               ANDI* R0,1110B

                                                        .elseif BIT=1

                                                               ANDI* R0,1101B

                                                        .elseif BIT=2

                                                               ANDI* R0,1011B

                                                        .elseif BIT=3

                                                               ANDI* R0,0111B         

                                                        .endif                                                                    

                                                        MWR REG,R0

                                   .endm



1

; BIT1  RAM 00~6FH 70~7FH也可用,但是浪费了两条语句

SETB                           .macro REG,BIT

                                                        MRW R0,REG

                                                        .if BIT=0

                                                               ORI* R0,0001B

                                                        .elseif BIT=1

                                                               ORI* R0,0010B

                                                        .elseif BIT=2

                                                               ORI* R0,0100B

                                                        .elseif BIT=3

                                                               ORI* R0,1000B                                              

                                                        .endif                   

                                                        MWR REG,R0                                                

                            .endm

6、环移

左环移

;左环移 最高位保存到CF 低位填0

RLC                            .macro Reg

                                                 MRA Reg

                                                 SL0 Reg

                                   .endm

 

右环移

;右环移 最低位保存到CF 高位填0 R0所在地址不能操作

RRC                                   .macro Reg

                                                 MRW R0,Reg

                                                 SL0 R0

                                                 SL0 R0

                                                 SL0 R0

                                                 MRA R0

                                                 SR0 Reg

                                          .endm

 

7、常数赋值操作

 RAM 7FH~FFH(需索引赋值的)

;如果不用高地址,则调用方式为 MOVX ,AddrL,Num

MOVX                                .macro AddrH,AddrL,Num

                                                        .ifnblank AddrH ;判断宏的参数是否有串入

                                                               LDS R0,AddrH

                                                               MVH R0

                                                        .endif

                                                               LDS R0,AddrL

                                                               MVL R0

                                                               LDS R0,Num                                                  

                                                               MRW @HL,R0                                               

                                          .endm

 

8、程序跳转

RAM所存储的数值与常数比较

 

小于跳转

;小于跳转 可操作RAM 00~7FH   70~7FH浪费一条语句

CJSE                                  .macro Reg,Data,Address

                                                        MRW      R0,Reg

                                                        SUBI R0,Data

                                                        JNC Address                                                   

                                          .endm

 

不等跳转                            

;不等跳转  可操作RAM 00~7FH  除去R0

CJNE                                  .macro Reg,Data,Address

                                                        LDS R0,Data;Data¸øROºÍAC

                                                        EOR Reg

                                                        JNZ Address                                                   

                                          .endm

 

相等跳转                       

;相等跳转  可操作RAM 00~7FH  除去R0

CJE                                    .macro Reg,Data,Address

                                                        LDS R0,Data;Data¸øROºÍAC

                                                        EOR Reg

                                                        JZ Address                                                      

                                          .endm

 

      -1不等于0跳转                            

;-1不等于0跳转  可操作RAM 00~7FH

DJNZ                                  .macro Reg,Address      

                                                 .locallabel DJNZGO

                                                 .locallabel DJNZOUT

                                                        LDA Reg

                                                        JNZ DJNZGO

                                                        JMP DJNZOUT

DJNZGO:                                  

                                                        DEC* Reg

                                                        JNZ Address  

DJNZOUT:                  

                                                 .endm

 

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/43/

分享给朋友:

“tenx(十速)TM87系列常用宏(二)” 的相关文章

CorelDraw12启动时图标一闪而过

现象: Coreldraw12启动时,图标一闪而过,无法打开cdr文件。每次启动都如此。 之前一直是可以使用的,在某次强制关机后,就发现软件不能使用了。 临时解决办法: 网上说的各种方法都试过了,都不行。目前只探索出了两种临时可行的办法。 方法一:每次使用coreldraw12前卸载c...

Multisim运放输出超过电源电压解决

Multisim运放输出超过电源电压解决

在使用Multisim自带库里的运放的时候,例如LM324M,发现一个问题,运放的输出电压能达到几百V甚至几千V,而电源明显只有几V而已。输出电压超过电源电压,理论上是不可能的,实际上也是不可能的,那么肯定就是仿真有误了,其实根本原因是Multisim里面运放是三脚模型,根本没考虑电源。我们查看LM...

Proteus运行找不到sdf文件解决方法

Proteus运行找不到sdf文件解决方法

很多人在用Proteus的时候,Proteus会提示找不到sdf文件,如图所示。提示Cannot open …… .sdf。这种情况经常出现在电子类软件,主要是软件仿真过程中使用的文件不能在有中文路径的文件夹里。用Mulitism的时候也会出现这个问题的。这个原因很简单,...

Protel99SE交互布局

Protel99SE交互布局

我们在PCB布局的时候,如果元件比较多,经常要花大量的时间找元件。一直以来在找寻Protel99SE交互布局的办法,后在网上发现大牛wang1jin写的一篇文章,讲述了Protel99SE交互布局的方法,但其描述了过多的无关内容,因此花了一些时间整理出了此文。 何谓交互布局?实际上通俗的讲,交互布...

LCD制作参数

1 、Display Type显示类型 TN 、HTN 、STN 、FSTN 等 显示类型对产品的价格影响最大,通常由显示像索的数量及产品的档次而定 TN 、HTN 、LCD 、COG 是什么? TN叫什么扭曲型LCD , HTN是比TN 宽视角的,上下各宽15度视角的,弥补TN 的一些不足,比他们...

Xcode:failed to get the task for process XXX 解决办法

问题:     iOS真机调试程序,报如下错误信息:failed to get the task for process XXX 原因: 证书问题,project和target的证书都必须是开发证书,不能用分发证书。 解决方案:     p...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。