Teknomerkez
TR EN ES
Konular

PIC16F628A ve ASM ile buton ve 7-segment gösterge devresi

Yazar: Mehmet Yılmaz
Tarih: 26.03.2017
Türkçe

Devre butonlarla 7 segmentli göstergelerin kontrolü işine yarıyor. Mikridenetleyici olarak PIC16F6287A kullanılmıştır. 4 Mhz kristal ile osilatör çalışmaktadır. Bu devrede 7 segment gösterge ortak anod olarak seçilmiştir.

Devre 5 volt besleme ile çalışmaktadır.

Devre şeması:



Malzeme listesi:

U1: PIC16F628A
Y1: 4 Mhz kristal
AFF1: Anod 7 segment gösterge
C1: 100nF
C2-C3: 22pF
R1-R4: 10k
R5-R11: 470R
SW1-SW3: Buton

Devrenin çalışma resmi:


Devrenin videosu:

Devrenin ASM kodu:

; ********* ************************************* *********
; PIC16F628A ve ASM ile buton ve 7 segment gösterge devresi
; MPASM derleyicisi kullanınız
; Tarih: 26.03.2017 18:45:36
; http://teknomerkez.com/index.php?git=1660
; *********************************************************
        TITLE "PIC16F628A ve ASM ile buton ve 7 segment gösterge devresi"
        LIST p=16F628A
        #INCLUDE <p16f628a.inc>
        __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF

        CBLOCK  0x20    ;Değişkenler Tanımlanıyor
        TR500MS1
        TR500MS2
        TR500MS3
        ENDC

        ORG     0x00
        GOTO    BASLA

BASLA           ;Başlangıç noktası
        CLRF    PORTA
        CLRF    PORTB
        BANKSEL TRISA
        MOVLW   b'11111111'
        MOVWF   TRISA
        MOVLW   b'00000000'
        MOVWF   TRISB
        BANKSEL CMCON
        MOVLW   0x07
        MOVWF   CMCON
        GOTO    GOREVLER

GOREVLER        ;Yapılacak işlemler burada
TRISE0
        BTFSS   PORTA,0
        GOTO    TRISE0SONU
        MOVLW   b'11111001'
        MOVWF   PORTB
TRISE0SONU
TRISE1
        BTFSS   PORTA,1
        GOTO    TRISE1SONU
        MOVLW   b'10100100'
        MOVWF   PORTB
TRISE1SONU
TRISE2
        BTFSS   PORTA,2
        GOTO    TRISE2SONU
        MOVLW   b'10001000'
        MOVWF   PORTB
        CALL    BEKLE500MS
        MOVLW   b'11000110'
        MOVWF   PORTB
        CALL    BEKLE500MS
        MOVLW   b'10111111'
        MOVWF   PORTB
        CALL    BEKLE500MS
TRISE2SONU
        GOTO    GOREVLER

BEKLE500MS      ;500ms bekle
        MOVLW   d'5'
        MOVWF   TR500MS1
BEKLE500MS1
        MOVLW   d'199'
        MOVWF   TR500MS2
BEKLE500MS2
        MOVLW   d'166'
        MOVWF   TR500MS3
BEKLE500MS3
        DECFSZ  TR500MS3, F
        GOTO    BEKLE500MS3
        DECFSZ  TR500MS2, F
        GOTO    BEKLE500MS2
        DECFSZ  TR500MS1, F
        GOTO    BEKLE500MS1
        RETURN

        END     ; Program sonu

Devrenin HEX kodu:

:020000040000FA
:1000000001288501860183160313FF308500003027
:1000100086008312031307309F000E28051C122848
:10002000F9308600851C1628A4308600051D21287D
:10003000883086002220C63086002220BF3086000D
:1000400022200E280530A000C730A100A630A20053
:0E005000A20B2828A10B2628A00B24280800AC
:02005E0000346C
:0200600000346A
:02400E00293F48
:00000001FF


Yorumlarınız

Hiç yorum yapılmamış.

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>