PCM开发板模块指令详解--输入输出指令等

PCM开发板模块指令详解--输入输出指令等,第1张

PCM开发板模块指令详解--输入输出指令等

 5         输入输出指令

        编号         指令名         参数1         参数2         说明

        1                 in                 Xn             Dn            输入指令

                                               Yn             Dn

                                               Sn             Dn

         2               out                Dn                             输出指令

                                               DIn

        in为输入指令:可以读取输入端口,输出端口,状态位到Dn寄存器;

                例: in x0 d1 //如果x0为高电平,d1=1;如果x0为低电平,d1=0;

                        in y0 d1 //如果y0为高电平,d1=1;如果y0为低电平,d1=0;

                        in s0 d1 //如果s0置1,d1=1;如果s0置零,d1=0;

        out为输出指令:把Dn寄存器的值按位输出到对应端口Yn,即Dn的位0输出到Y0,位1输出到Y1,依次类推,所以使用此指令需要注意,此指令会改变所有输出口的状态。如果只想改变某一个输出口的状态,请使用set,reset指令;

                例: out d1 //如果d1=8;Y3输出1,其他都输出0;

                        out di1 //如果di1=255;Y0--Y7全部输出1,其他都输出0;

6         置位复位指令

        编号         指令名         参数1         说明

        1                set                 Yn         置位指令

                                                Mn

        2               reset               Yn         复位指令

                                                Sn

                                                Mn

        set为置位指令:使输出端口Yn,或者中间寄存器Mn置1;

                例: set y0 //使输出端口Y0变成高电平;

                        set m1 //m1=1;

        reset为复位指令:使输出端口Yn,或者中间寄存器Mn,或者状态寄存器Sn清零;

        注意Sn是状态位,它的置位是自动的,表示发生了某件事情,可以通过查询或者中断的方式处理事情发生后做的动作。如果用查询的方式,处理完后必须用此指令清零,如果用中断处理,中断程序会自动清零;

                例: reset y0 //使输出端口Y0变成低电平;

                        reset m0 //使中间寄存器M0清零;

                        reset s1 //s1=0;

7         打印指令

        编号         指令名         参数1         参数2         说明

        1                 print            Dn                                 串口打印数据指令

                                              Fn

                                              DIn

                                              FIn

                                              In

                                              Dn               K

                                              DIn              K

                                              Dn               Dn

        print为串口打印数据指令:

        此打印指令有2种形式:

        如果只有一个参数1,则以字符串的形式打印4字节整形数或者单精度浮点数;

        如果有2个参数,则参数1为寄存器起始地址,参数2为偏移字节地址,打印输出单字节的整数。

        注意此指令不能直接输出数据的2进制值,如果要直接输出2进制值,可以用串口指令。

                例: mov h4030201 d0 //d0=h4030201

                        print d0 //打印d0的10进制值:67305985

                        print d0 0 //打印d0开始的第0个字节的值,为1

                        print d0 1 //打印d0开始的第1个字节的值,为2

                        print d0 2 //打印d0开始的第2个字节的值,为3

                        print d0 3 //打印d0开始的第3个字节的值,为4

        编号         指令名         参数1         参数2         参数3         参数4         说明

        2                 prints         Dn                 K                                                 串口打印字符串指令

                                             DIn                K

                                             Dn                 Dn

                                             string

                                             string             Dn

                                             string             Fn

                                             string             Dn           Dn

                                             string             Dn           Fn

                                             string             Fn            Dn

                                             string             Fn            Fn

                                             string             Dn            Dn         Dn

                                             string             Dn            Dn         Fn

                                             string             Dn            Fn         Dn

                                             string             Dn            Fn         Fn

                                             string             Fn            Dn         Dn

                                             string             Fn            Dn         Fn

                                             string             Fn            Fn         Dn

                                             string             Fn            Fn         Fn

                                             string             Dn            K

        prints为串口打印字符串指令:

        此打印指令有2种形式:

                1 如果参数1为Dn寄存器,指令会把Dn寄存器地址当成字符串首地址,参数2为从第 几个字符开始打印;

                2 如果参数1为字符串string,指令会打印string的内容,参数2,3,4为格式化的数据,可 以打印Dn或者Fn寄存器的值。

                注意:prints string Dn K 指令,Dn当作字符串的首地址,作为格式化的数据, K表示从第K字节开始格式化输出;

        prints指令支持的转义字符如下表:

转义字符

意义

ASCII码(10进制)

a

响铃(BEL)

7

b

退格(BS),将当前位置移动前一列

8

f

换页(FF),将当前位置移到下页开头

12

n

换行(LF),将当前位置移到下一行开头

10

r

回车(CR),将当前位置移到本行开头

13

t

水平制表(HT),跳到下一个TAB位置

9

v

垂直制表(VT)

11

\

代表一个反斜杠字符''

92

'

代表一个单引号(撇号)字符

39

"

代表一个双引号字符

34

?

代表一个问号

63

空(NULL)

0

ddd

1到3位8进制数所代表的任意字符

xhh

16进制所代表的任意字符

                表1        转义字符表 

                例1:      wbyte 'P' D10 0 //d10起始的第0字节保存字符P

                                wbyte 'C' D10 1 //d10起始的第1字节保存字符C

                                wbyte 'M' D10 2 //d10起始的第2字节保存字符M

                                wbyte 'T' D10 3 //d10起始的第3字节保存字符T

                                wbyte ‘E' D10 4 //d10起始的第4字节保存字符E

                                wbyte 'S' D10 5 //d10起始的第5字节保存字符S

                                wbyte 'T' D10 6 //d10起始的第6字节保存字符T

                                prints "%srn" d10 0 //从d10起始的第0字节开始输出字符串“PCMTEST”

                                prints "%srn" d10 4 //从d10起始的第4字节开始输出字符串“TEST”

                例2:       mov 1 D0 //d0=1

                                mov 2 D2 //d2=2

                                mov 3 D3 //d3=3

                                prints "d0=%d d1=%d d2=%drn" d0 d1 d2 //输出“d0=1 d1=2 d2=3”

        编号         指令名         参数1         参数2         参数3         参数4        说明

        3               sprint          string           Dn             K                               字符串打印到寄存器指令

                                            string           Dn             Dn

                                            string           Dn             Dn                 K

                                            string           Dn             Dn                 Dn

                                            string           Fn             Dn                 K

                                            string           Fn             Dn                 Dn

                                              Dn             Dn             K

                                              Dn             Dn             Dn

        当指令有3个参数时:sprint为字符串打印到寄存器指令:

                参数1为源字符串;

                参数2为目标字符串首地址;

                参数3为目标字符串字节偏移地址;

                把参数1的字符串保存到参数2指定的寄存器中,参数3为参数2指定的寄存器的偏 移地址。

                例: sprint “PCM ” D0 0 //d0寄存器的第0个字节开始保存”PCM”字符串

                        prints D0 0 //打印输出”PCM ”

        当指令有4个参数时:此指令可以把格式化的字符串保存到参数3(Dn)为首地址的寄存器中;

                参数1为源字符串;

                参数2为要格式化的数据;

                参数3为目标字符串首地址;

                参数4为目标字符串字节偏移地址;

                例: mov 1 d0 //d0=1

                        sprint "d0=%d " d0 d100 0 //格式化D0后的字符串保存到偏移地址为0的D100

                                                                //寄存器中

                        prints d100 0 //从D00的第0个字节开始打印字符串,输出“d0=1”

8         延时指令

        编号         指令名         参数1         说明

        1               delay           K               延时指令

                                            Dn

                                            DIn

        delay为延时指令:单位ms。

                例: delay 100 //延时100ms。

                        delay d0 //如果d0=10,延时10ms。

                        delay di0 //如果i0=2,d2=10,延时10ms。

9         字符串指令

        编号         指令名         参数1         参数2         参数3         说明

        1              strcopy         string         Dn                                字符串复制指令

                                             Dn             Dn               K

                                             Dn             Dn               Dn

        strcopy为字符串复制指令:

        把参数1表示的字符串复制到参数2,如果有参数3,表示要复制的字符数量,如果没有就全部复制.注意字符串的最大长度不要超过100个字节;

                例: strcopy “abcde” d1 //d1保存”abcd”,d2的第0字节保存字符e,d2第1字节保存 //0。

                        strcopy d1 d10 4 //如果d1开始保存的字符串是”abcde”,只复制4字符,e字

                                    //符会被舍去,所以从d10开始保存字符”abcd”,但d11的第 //0字节会存储0;

         编号         指令名         参数1         参数2         说明

         2               strlen           string          Dn             字符串长度指令

                                             Dn              Dn

        strlen为字符串长度指令:参数1是字符串,把参数1字符串的长度值保存到参数2指定的Dn寄存器中;

                例: strcopy "abcdef" d0 //把字符串”abcdef”复制到d0为起始的寄存器中,

                        strlen d0 d30 //获取d0的字符串长度,并保存到D30,此时D30=6

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5713744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存