PIC单片机入门_汇编/混编/C编比较

来源:互联网 发布:婚纱网络销售好做吗 编辑:程序博客网 时间:2024/05/18 09:06

1.问题描述:

对RAM中从30h开始的50个单元清零。

2.汇编方法

<span style="font-size:18px;">COUNT EQU 20H               ;指定20H寄存器为循环变量FSR   EQU 04H               ;指定FSR为04HINDF  EQU 00H               ;指定INDF为00H      MOVLW  D’50          ;给循环变量赋初值      MOVWF  COUNT         MOVLW   30H           ;将30H →FSR      MOVWF    FSR        NEXT  CLRF   INDF           ;间接寻址         INCF  FSR,1           ;地址指针内容加1,指向下一单元       DECFSZ  COUNT,1       ;计数值减1,结果为0就                             ;跳过下一条指令到STOP处      GOTO  NEXT            ;跳转回去并执行下一次循环 STOP  GOTO  STOP            ;停机 </span>

3.混编方法

<span style="font-size:18px;">#include<pic.h>char COUNT;   //定义全局变量main(){     COUNT=50;         FSR=0x30;  #asm        INDF   EQU 00H      NEXT  CLRF   INDF         INCF  _FSR, F        DECFSZ  _COUNT,F          GOTO  NEXT  #endasm  while(1){  ;  }}</span>
注意:只要是C语言中定义的变量,在汇编中对其寻址时一定要用下划线。

4.C语言编程

<span style="font-size:18px;">#include<pic.h>char COUNT;   //定义全局变量main(){ COUNT=50;     FSR=0x30;INDF=0;NEXT:  INDF=0;       FSR++;       if (COUNT-- >0)        goto NEXT;while(1){  ;   }}</span>
注意:用C语言编写可读性强,但是占用的资源会多。

2 0
原创粉丝点击