Podstatné části programu:
Kód: Vybrat vše
list p=12f629, R=DEC
include "p12f629.inc"
RAM equ 20h ; prvni adresa pameti RAM pro PIC12F629 - 224bajtu (20h-7Fh)
#define LED4 GPIO,0
#define tlacitko GPIO,1
#define LED3 GPIO,2
#define LED2 GPIO,4
#define LED1 GPIO,5
org 0x2007 ; adresa konfigurace PIC16F629 a 675
dw _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _CPD_OFF & _MCLRE_ON
;************************ Reset procesoru *************************
org 0x0000 ; zacatek programu
goto INIT ; skok na pocatecni inicializaci
;************************ Inicializace procesoru *************************
INIT bcf STATUS,RP0 ; banka registru 0
movlw B'00110010'
movwf GPIO ; prednastavit 0 na GP0 - GP5
movlw b'00000111' ; =07h, digitalni vstupy na GP0 - GP2 (comparator OFF)
movwf CMCON
; ------------------------
bsf STATUS,RP0 ; banka registru 1
movlw B'00001010'
movwf TRISIO ; GP0,2,4,5 vystup, GP1 vstup, GP3 vstup trvale
bcf STATUS,RP0 ; banka registru 0
; ------------------------
bsf LED2 ; vypnout všechny LED
bsf LED1
bcf LED3
bcf LED4
goto MAIN
;************************ Hlavní program *************************
MAIN hlavní program, blikání LED, snímání tlačítka na vstupu GP1, za určitých podmínek
volání podprogramu vypni
goto MAIN
;**************************************************************************
vypni bsf LED1 ; vypnout všechny LED
bsf LED2
bcf LED4
bcf LED3
sleep ; přejít do režimu sleep
goto vypni
;**************************************************************************
end