原创 PIC24汇编程序模板

2010-8-20 21:18 1950 2 2 分类: MCU/ 嵌入式

;******************************************************************************
;                                                                                                                                *
;    Author                  :Wei shujin                                                                          *
;    Company            :                                                                                             *
;    Filename            :                                                                                             *
;    MCU                    :PIC24FJ128GA010                                                           *
;    Clock                   :8MHz                                                                                     *
;    Date                     :  10/08/2010                                                                       *
;    File Version        :  1.00                                                                                   *
;******************************************************************************


 .include "p24FJ64GA004.inc"                            ;选择使用芯片的头文件
  .list
 
;..............................................................................
; 配置熔丝位
;..............................................................................



        config  __CONFIG2,(FNOSC_FRC&OSCIOFNC_ON)    ;内部RC时钟
        config  __CONFIG1,FWDTEN_OFF       ;关闭看门狗
 



;..............................................................................
;全局标号定义
;..............................................................................


        .global _wreg_init       ;工作寄存器初始化程序入口            
        .global __reset          ;程序入口
  
;................................................................................
;把数据存在程序区
;................................................................................
.section *,psv
Table: 
/*--  文字:  广  --*/
.word 0x7F,0xFF,0xFF,0xFE,0x03,0x80,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF
.word 0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFD,0xFF,0xFD,0xFF,0xFE,0xFF,0xFF,0xFF


.text    ;程序开始
__reset:
  call _wreg_init                                    ;调用工作寄存器初始化程序段
  call _Port_init                                      ;端口初始化程序段
  bset CORCONL,#PSV                      ;程序空间可见



  mov #psvpage(Table),w0                  ;设置程序空间数据区 位置
  mov w0,_PSVPAG
  mov #psvoffset(Table),w0
 mov #0,w6 
  
main: 

                   mov [w0+w6],w5                 ;程序区数据送入到w5中
                   mov w6,PORTB
                    

                    mov #500,w1
                   call _delay_ms
                   setm PORTB
                   inc2 w6
  
  goto main  
;..............................................................................
;初始化子程序:把所有W寄存器初始化为 0x0000
;..............................................................................


_wreg_init:
        CLR W0
        MOV W0, W14
        REPEAT #12
        MOV W0,[++W14]
        CLR W14
        RETURN
;...........................................................................
;
;...........................................................................
;............................................................................
;端口初始化子程序
;............................................................................
_Port_init:
  setm AD1PCFG
  clr TRISB
  clr TRISA
  return


;.............................................................................
;延时子程序:
;.............................................................................
_delay_ms:
     repeat #3996
        nop
        dec     w1,w1
        bra     NZ,_delay_ms
  return 
.end

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /1 下一条