我给你来个汇编程序
- ; list directive to define processor
- list p=12f629
- ; processor specific variable definitions
- #include <p12f629.inc>
- __CONFIG _CP_OFF & _MCLRE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF & _CPD_OFF &_PWRTE_OFF
-
- #DEFINE LED GPIO,0
- #DEFINE LED_IO TRISIO,0
- CNT0 EQU 20H
- CNT1 EQU 21H
- CNT2 EQU 22H
- ;---------------------------------
- ORG 0000H
-
- MOVLW 07H
- MOVWF CMCON ; TURN-OFF analog comparator
-
- BSF STATUS,RP0 ; select bank 1
- CALL 3FFH ; Load cal value
- MOVWF OSCCAL
- BCF LED_IO ; set as output
- BCF STATUS,RP0 ; select bank 0
-
- LOOP: BSF LED
- CALL DELAY
- BCF LED
- CALL DELAY
- GOTO LOOP
-
- ;---------------------------------
- ; DELAY 0.5 SECONDS ROUTINE
- ;---------------------------------
- DELAY: MOVLW 03H
- MOVWF CNT0
- MOVLW 18H
- MOVWF CNT1
- MOVLW 02H
- MOVWF CNT2
- Delay_0
- DECFSZ CNT0, f
- GOTO $+2
- DECFSZ CNT1, f
- GOTO $+2
- DECFSZ CNT2, f
- GOTO Delay_0
- ;6 cycles
- GOTO $+1 ;delay 2 cycles
- GOTO $+1 ;delay 2 cycles
- GOTO $+1 ;delay 2 cycles
- ;4 cycles (including call)
- RETURN
-
- END
复制代码 |