wdt zamanlayicisinin kullanilmasina ornek program

Başlatan mabool, 09 Şubat 2011, 15:25:15

mabool

ornek preogram asagidaki gibidir fakat ben birsey farkettim programin bir bolumunden bi parti kodu kaldirip denedim ve yine sorunsuz calisti eger bilmedigim baska bir amaci varsa bu kisimin aciklarsaniz sevinirim
program; ra0 butonu 2.3sn gecmeyen araliklarla basildiginda rb0 daki ledin devamli yanmasini saglar, bu sureden daha uzun araliklarla basildiginda wdt devreye girerek sistemi reset eder sistem reset oldugunda rb3e bagli bir buzzerden uyari sesi gelir ve program bu noktada sonsuz donguye girer. programi tekrar calistirmak icin mclr ucundaki butona basmak grekir...
orjinal program asagidaki gibi, sayilarla isaretledigim kismi kaldirarakta program sorunsuz sekilde calisiyor.
LIST         P=16F628A
INCLUDE         "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_ON & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF

ORG         H'000'
SAYAC      EQU      H'20'
PORTLARI_KUR
CLRF         PORTB
BANKSEL         TRISB
CLRF         TRISB
MOVLW         H'FF'
MOVWF         TRISA
BANKSEL         PORTB
MOVLW         H'07'
MOVWF         CMCON
WDT_KONT
BTFSS         STATUS,4
GOTO         BUZZER_SES
BASLA                                               -------1
BANKSEL         OPTION_REG    -------2
CLRWDT                                           -------3
MOVLW         B'00001111'     -------4
MOVWF         OPTION_REG    -------5
BANKSEL         PORTB               -------6
RA0_TEST
BTFSC         PORTA,0
GOTO         RA0_TEST
CLRWDT
BANKSEL         TRISB
MOVLW         B'00001111'
MOVWF         OPTION_REG
BANKSEL         PORTB
BSF            PORTB,0
GOTO         RA0_TEST
BUZZER_SES
CLRWDT
BSF            PORTB,3
CALL         GECIKME
BCF            PORTB,3
CALL         GECIKME
GOTO         BUZZER_SES
GECIKME
MOVLW         H'FF'
MOVWF         SAYAC
DONGU
DECFSZ         SAYAC,F
GOTO         DONGU
RETURN
END