Pıc16f84 ile (0-99) 7segment ortak katotlu programlaması

Katılım
13 Ara 2021
Mesajlar
2
Puanları
1
Yaş
23
merhaba arkadaşlar. elimde pıc16f84 ve 2 adet ortak katotlu 7segment display var ve bunlarla 0-99 devresi yapmak istiyorum ama programlama kısmında biraz eksiğim var yardımcı olabilirseniz sevinirim.
teşekkürler...
 
Yazabildiklerinizi paylaşın, yardım edilir.
Hangi dil belli değil örneğin.
assembler dili 0-9 YAPABİLİYORUM AMA 0-99 U NASIL YAPACAĞIMI BİLMİYORUM
YAPTIĞIM PROGRAM;


#include "p16f84.inc"

; CONFIG
; __config 0xFFF9
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _CP_OFF
CBLOCK 0XC0
D1
D2
D3
ENDC

RES_VECT CODE 0x0000
GOTO START


MAIN_PROG CODE

START
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
BASLA
MOVLW 0X3F
CALL BEKLE
MOVLW 0X06
CALL BEKLE
MOVLW 0X5B
CALL BEKLE
MOVLW 0X4F
CALL BEKLE
MOVLW 0X66
CALL BEKLE
MOVLW 0X6D
CALL BEKLE
MOVLW 0X7D
CALL BEKLE
MOVLW 0X07
CALL BEKLE
MOVLW 0X7F
CALL BEKLE
MOVLW 0X67
CALL BEKLE
GOTO BASLA
BEKLE
MOVWF PORTB
MOVLW 0X08
MOVWF D1
MOVLW 0X2F
MOVWF D2
MOVLW 0X03
MOVWF D3
BEKLE_0
DECFSZ D1,F
GOTO $+2
DECFSZ D2,F
GOTO $+2
DECFSZ D3,F
GOTO $+1
NOP
RETURN
END
 
assembler dili 0-9 YAPABİLİYORUM AMA 0-99 U NASIL YAPACAĞIMI BİLMİYORUM
YAPTIĞIM PROGRAM;


#include "p16f84.inc"

; CONFIG
; __config 0xFFF9
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _CP_OFF
CBLOCK 0XC0
D1
D2
D3
ENDC

RES_VECT CODE 0x0000
GOTO START


MAIN_PROG CODE

START
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
BASLA
MOVLW 0X3F
CALL BEKLE
MOVLW 0X06
CALL BEKLE
MOVLW 0X5B
CALL BEKLE
MOVLW 0X4F
CALL BEKLE
MOVLW 0X66
CALL BEKLE
MOVLW 0X6D
CALL BEKLE
MOVLW 0X7D
CALL BEKLE
MOVLW 0X07
CALL BEKLE
MOVLW 0X7F
CALL BEKLE
MOVLW 0X67
CALL BEKLE
GOTO BASLA
BEKLE
MOVWF PORTB
MOVLW 0X08
MOVWF D1
MOVLW 0X2F
MOVWF D2
MOVLW 0X03
MOVWF D3
BEKLE_0
DECFSZ D1,F
GOTO $+2
DECFSZ D2,F
GOTO $+2
DECFSZ D3,F
GOTO $+1
NOP
RETURN
END
https://github.com/TimWeber/Assembly-Counter/blob/master/first.asm
bu programı incele.
yapman gereken birler basamagını 0 dan 9 a kadar saydıracan,tekrar sıfır oldugunda(aslında 10 oldugunda) onlar basamagını bir artıracan.Aynı işlemi onlar basamagı içinde yapacan.Bu bilgileri teker teker digitlere gönderecen,yanıp sönme efektini kaybetmek ve hiç sönmüyormuş gibi gözükmesi için bekleme sürelerini kısa tutarak hızlı tarama yaptıracan.
 
Son düzenleme:
Anotlar için Port B yi kullanın. Her display
bir transistor ile ortak katotlar ile gnd ye
gidecek. Transistörlerin baz ucları da
Port A nın birer pinlerinde olacak.

PB den bir rakam gönderdiğinizde hangi
hanede olacaksa onun transistörü aktif
olacak. Bunu hızlı yaptığınızda aynı anda
görünecek.

Eğer interrupt kullanmasını öğrendiyseniz
tarama kısmını bunun içinden yaparsınız.
Sayma işlemi de ana döngüde olur.
 

Forum istatistikleri

Konular
129,759
Mesajlar
929,728
Kullanıcılar
452,512
Son üye
ozvnkoc

Yeni konular

Geri
Üst