16F84 İle işık sovu devresi

guclusat

Tanınmış Üye
Süper Moderatör
pic0003-1.jpg
pic0003-2.jpg

;****************************************************************************
;PIC0003.ASM PIC16F84 4 PROGRAMLI 8 LEDLI ISIK SOVU UYGULAMASI
;01.2000 HUSEYIN SERIMER
;****************************************************************************
;****************************************************************************
; PROGRAM BASLANGICINDA ISLEMCI ILE ILGILI TANIMLAMALAR YAPILMALIDIR
;****************************************************************************
TANIMLAMALAR:
list p=16F84 ; DERLEYICIYE ISLEMCI TANITILIR
#include <p16F84.inc> ; PIC16F84 TANIMLAMA DOSYASI


__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _XT_OSC

;****************************************************************************
; PROGRAMDA KULLANILAN DEGISKENLER TANIMLANMALIDIR
; DEGISKEN TANIMLARKEN DESISKENIN ALACAGI DEGER VEYA HANGI
; RAM HUCRESI OLDUGUNU GOSTERMEK YETERLIDIR
; EQU... ESITLE ANLAMINDADIR
;****************************************************************************
DEGISKENLER:
lsb equ H'0020'
msb equ H'0021'


BASLANGIC:
;****************************************************************************
; ISLEMCI RESETLENDIGINDE TUM UCLARI GIRIS DURUMUNDADIR
; ISLEMCI UCLARINI ISTENILEN DURUMA AYARLAMAK GEREKIR
; BU ISLEM GEREKTIGINDE PROGRAMIN BASKA ADIMLARINDA DA YAPILABILIR
; TRISA VE TRISB KAYDEDICILERI PIC16F84 UN RAM HAFIZA BOLGESININ IKINCI
; PORTA VE PORTB NIN UCLARININ HANGISININ GIRIS HANGISININ CIKIS
; OLACAGINI BELIRTIR 0=CIKIS, 1=GIRIS.
;****************************************************************************
PORTLARI_AYARLA:
CLRF PORTB ; RESET portb
CLRF PORTA ; RESET portA

BSF STATUS, RP0 ; BANK 1 GECILIR
MOVLW B'00000000' ; RB0..7=CIKIS
MOVWF TRISB
MOVLW B'00011111' ; RA0-5=GIRIS
MOVWF TRISA
BCF STATUS, RP0 ; BANK 0 GECILIR



;****************************************************************************
; 4 KONUMLU ISIK SOVU PROGRAMI
;****************************************************************************

PROGRAM:

TEST_PORTA:
BTFSS PORTA,0
GOTO ALG1 ;PORTA,0="0" ISE ALG1 PROGRAMINA GIDER
NOP

BTFSS PORTA,1
GOTO ALG2 ;PORTA,0="0" ISE ALG2 PROGRAMINA GIDER
NOP

BTFSS PORTA,2
GOTO ALG3 ;PORTA,0="0" ISE ALG3 PROGRAMINA GIDER
NOP

BTFSS PORTA,3 ;PORTA,0="0" ISE ALG4 PROGRAMINA GIDER
GOTO ALG4
NOP

; PORTA NIN HICBIR UCU "0" DEGILSE SADECE 1.LED YANIK BEKLER
MOVLW B'00000001' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CLRDWT
GOTO PROGRAM ;ALGORITMA TEKRARLANIR


ALG1:
;*********************************************************************
; SAGDAN SOLA YURUYEN ISIK ALGORITMASI
;*********************************************************************
;1.ADIM
MOVLW B'00000001' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;2.ADIM
MOVLW B'00000010' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;3.ADIM
MOVLW B'00000100' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;4.ADIM
MOVLW B'00001000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;5.ADIM
MOVLW B'00010000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;6.ADIM
MOVLW B'00100000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;7.ADIM
MOVLW B'01000000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;8.ADIM
MOVLW B'10000000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

GOTO PROGRAM ;ALGORITMA TEKRARLANIR
ALG2:
;*********************************************************************
; SOLDAN SAGA YURUYEN ISIK ALGORITMASI
;*********************************************************************
;1.ADIM
MOVLW B'10000000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;2.ADIM
MOVLW B'01000000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;3.ADIM
MOVLW B'00100000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;4.ADIM
MOVLW B'00010000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;5.ADIM
MOVLW B'00001000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;6.ADIM
MOVLW B'00000100' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;7.ADIM
MOVLW B'00000010' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;8.ADIM
MOVLW B'00000001' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

GOTO PROGRAM ;ALGORITMA TEKRARLANIR

ALG3:
;*********************************************************************
; ALG3 ISIK ALGORITMASI
;*********************************************************************
;1.ADIM
MOVLW B'00000001' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;2.ADIM
MOVLW B'00000011' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;3.ADIM
MOVLW B'00000111' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;4.ADIM
MOVLW B'00001111' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;5.ADIM
MOVLW B'00011111' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;6.ADIM
MOVLW B'00111111' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;7.ADIM
MOVLW B'01111111' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;8.ADIM
MOVLW B'11111111' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;9.ADIM
MOVLW B'11111110' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;10.ADIM
MOVLW B'11111100' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME


;11ADIM
MOVLW B'11111000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;12.ADIM
MOVLW B'11110000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;13.ADIM
MOVLW B'11100000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;14.ADIM
MOVLW B'11000000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;15.ADIM
MOVLW B'10000000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;16.ADIM
MOVLW B'00000000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

GOTO PROGRAM ;ALGORITMA TEKRARLANIR

ALG4:
;*********************************************************************
; ALG4 ISIK ALGORITMASI
;*********************************************************************
;1.ADIM
MOVLW B'10000001' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;2.ADIM
MOVLW B'01000010' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;3.ADIM
MOVLW B'00100100' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;4.ADIM
MOVLW B'00011000' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;5.ADIM
MOVLW B'00100100' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

;6.ADIM
MOVLW B'01000010' ;AKU YE SABIT BIR SAYI YUKLENIR
MOVWF PORTB ;AKUDEKI SAYI PORTB YE YUKLENIR
CALL BEKLET_100MS ; 0.1Sn BEKLETME

GOTO PROGRAM ;ALGORITMA TEKRARLANIR


;****************************************************************************
; 4MHz CLOCK ICIN BEKLETME RUTINLERI
;****************************************************************************
BEKLET_100MS:
DLY_100MS ;YAKLASIK 100 MILI SANIYE
CLRWDT
movlw D'200'
movwf msb
GOTO DLY1
DLY1
movlw D'168'
movwf lsb
DLY2 ;YAKLASIK 3 MICRO SANIYE
decfsz lsb,F ;1 INS
goto DLY2 ;2 INS
decfsz msb,F ;1 INS
goto DLY1 ;2 INS
RETURN

;****************************************************************************
; PROGRAMI SONLANDIRMAK ICIN PROGRAM SONUNA END YAZILIR
;****************************************************************************
END

Gerekli olan diğer bilgiler ve hex dosyası ekte zip içinde mevcuttur..
 

Eklentiler

Geri
Yukarı