您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机12F675测试程序 正文
12F675测试程序

12F675测试程序

点击数:7444 次   录入时间:03-04 11:54:21   整理:http://www.55dianzi.com   PIC单片机

12F675测试程序

LIST P=12F675
  INCLUDE "P12F675.INC"
  __config(0x31DC)
;------------------------------------------------------------------------------------------
S_TEMP   EQU   31H
W_TEMP      EQU   32H
STATUS_TEM EQU   33H
FLAG1   EQU  34H
FLAG2   EQU  35H
W    EQU  0
F    EQU  1
;COUNT1   EQU   21H            ; 延时量
RTCC   EQU  1
;RA    EQU  5
;RB    EQU  6
;F8    EQU  8
F9    EQU  9
;*********************************************************************************
    ORG     00H
    NOP 
    GOTO    START 
;------------------------------------------------------------------------------------------
;中断服务程序
;------------------------------------------------------------------------------------------
    ORG     04H  
   MOV WF   W_TEMP
    SWAPF   STATUS,W
     MOV WF   S_TEMP

    BTFSS   GPIO,GPIO5          ;GPIO5是否按下?
    CALL    DELAY     ;去抖
    BTFSS   GPIO,GPIO5
    GOTO    RB0          
RE        ;还原中断现场
 SWAPF   S_TEMP,W  ;中断返回
     MOV WF   STATUS 
    SWAPF   W_TEMP,F
    SWAPF   W_TEMP,W
     MOV F    GPIO,W   ; 唤醒标志清零 必须读取!!!
    BCF     INTCON,GPIF         ;清除RB中断标志位
    RETFIE                  
RB0   
 INCF    FLAG2,F
RBB        
 BTFSS   GPIO,GPIO5          ;等待GPIO5释放
    GOTO    RBB    
    GOTO    RE
;------------------------------------------------------------------------------------------

;主程序
;------------------------------------------------------------------------------------------
START         
 BCF  STATUS,RP0  
    CLRF    GPIO
     MOV LW   07h
     MOV WF   CMCON 
     MOV LW   0c8H
     MOV WF   INTCON           ;总中断和GPIO电平变化中断使能
    
    BSF     STATUS,RP0       ;选择数据存储器体1
     MOV LW   0FH
     MOV WF   OPTION_REG       ;开启内部弱上拉
     MOV LW   38H
     MOV WF   TRISIO           ;GPIO端口方向设定
    BSF  WPU,5
     MOV lw   20h
     MOV wf   IOC
    CLRF    ANSEL
    BCF     STATUS,RP0       ;选择数据存储器体0 
    BCF     GPIO,GPIO2
; BCF     GPIO,GPIO1
    ;CLRF    FLAG2       ; 清除FLAG2 
LOOP1 
    BTFSS   FLAG2,0    ;判断FLAG2的标志位是否为0
    GOTO    LOP1
    BSF     GPIO,GPIO2  ;点亮(GPI2口的LED)
; BSF     GPIO,GPIO1  ;点亮(GPI1口的LED)
    CALL    DELAY2   ;调延时8S
   ; GOTO    OUT
 GOTO LOP1
LOP1
 BCF     GPIO,GPIO2
; BCF     GPIO,GPIO1  ;关闭(GPI1口的LED)
 CLRF    FLAG2       ; 清除FLAG2 
 SLEEP     ;睡眠
    NOP
OUT       ;唤醒
    GOTO    LOOP1

;------------------------------------------------------------------------------------------

;延时子程序
;------------------------------------------------------------------------------------------
DELAY 
  MOV LW   .10
  MOV WF   22H
D1 
  MOV LW   0FFH
  MOV WF   23H
D2 
 DECFSZ  23H,1
 GOTO    D2
 DECFSZ  22H,1
 GOTO    D1
 RETURN 

DELAY1 
     MOV LW   3FH              ;外循环常数
     MOV WF   20H              ;外循环寄存器
L1 
  MOV LW   02H              ;内循环常数
     MOV WF   21H              ;内循环寄存器
L2          
 DECFSZ  21H,1            ;内循环寄存器递减
    GOTO    L2               ;继续内循环
    DECFSZ  20H,1            ;外循环寄存器递减
    GOTO    L1               ;继续外循环

[1] [2]  下一页


本文关键字:程序  PIC单片机单片机-工控设备 - PIC单片机