Site içi Arama

Ara

Pic 16F84 ile Signboard (İşaret Tahtası) Uygulaması

Mümin Kahraman - 22.08.2005

Pic 16f84 ile yapılmış olan bir signboard (İşaret tahtası) uygulaması görülmektedir. Bu devrede toplam 16*16 256 adet LED lamba kullanılmıştır. Lambalar 74154 entegresi tarama mantığında 74373 entegreleri ise 16 adet satıra denk gelen dataları sürme işleminde kullanılmıştır. 74373 entegresi, 8 bitlik latch entegredir. Tabi ki uygun işaret için gerekli datalar ise pic16f84 entegresi tarafından gönderilmektedir. Sizlerde isterseniz istediğiniz amblemi kodlarda değişiklik yaparak oluşturabilirsiniz. Devre PROTEUS 6.2 de hem simülasyonu yapılarak çalıştırılmış, hem de elemanlarla birlikte bir breadboard üzerine kurularak denenmiştir. Sadece entegre çıkışları doğrudan ledlere gönderildiği için ledler sönük yandığı gözlemlenmiştir. Uygun transistörler ile sürüldüğünde daha iyi sonuçlar alınabilir. Bu uygulama signboard uygulamalarının ilki olduğu için eksiklikler tabi ki vardır. İnşallah bundan sonraki uygulamalar daha gelişmiş olacağı kanısındayım. Küçük bir hatırlatma, bu devrede asıl işi yapan kısım kuşkusuz mikro denetleyicideki programdır. Program assembly dilinde yazılmış olup bu devreyi uygulamayı düşünen arkadaşlarıma tavsiyem ise, programın çalışma mantığını anlayarak programı daha kapsamlı bir signboard haline getirmek sizlerin elindedir. 16*16 signboard değilde 32*32 signboard yada daha yukarısı neden olmasın.

Çalışmam esnasında istemeden eksiklikler oluştuysa sizlerden özür diliyor, benden yardım isteyen arkadaşlara da bu sitedeki mail adresime mail atarak ilettiklerinde yardımcı olabileceğimi belirtmek isterim...

Devrenin Şeması:

Ekler:
signboard.zip (Devre için gerekli dosyaların hepsini tıklayarak indirebilirsiniz.)

Devrenin ASM kodları aşağıdadır.
Not: Aşağıdaki kodları kopyalama yöntemiyle kullandığınızda hata verebilir. Ekteki ASM dosyayı kullanınız.

; PICSIGNBOARD
; PIC16C84 ILE YAPILAN 16*16=256 LED LI KARE SHOW DEVRESİ
; 32 KARAKTER KULLANILABILIR
LIST P = 16F84
;PIC84 equ H'03FF'
INCLUDE "P16F84.INC"

;----------- USER REGISTERS --------------------------

LINE1 EQU H'0010'
LINE2 EQU H'0011'
LINE3 EQU H'0012'
LINE4 EQU H'0013'
LINE5 EQU H'0014'
LINE6 EQU H'0015'
LINE7 EQU H'0016'
LINE8 EQU H'0017'
LINE9 EQU H'0018'
LINE10 EQU H'0019'
LINE11 EQU H'001A'
LINE12 EQU H'001B'
LINE13 EQU H'001C'
LINE14 EQU H'001D'
LINE15 EQU H'001E'
LINE16 EQU H'001F'
LINE17 EQU H'0020'
LINE18 EQU H'0021'
LINE19 EQU H'0022'
LINE20 EQU H'0023'
LINE21 EQU H'0024'
LINE22 EQU H'0025'
LINE23 EQU H'0026'
LINE24 EQU H'0027'
LINE25 EQU H'0028'
LINE26 EQU H'0029'
LINE27 EQU H'002A'
LINE28 EQU H'002B'
LINE29 EQU H'002C'
LINE30 EQU H'002D'
LINE31 EQU H'002E'
LINE32 EQU H'002F'
TARA EQU H'000C'
SATIRLAR EQU H'0031'
I EQU H'0032'

ZAMAN equ H'003E'
DISP EQU H'003F'
msb equ 0x39
lsb equ 0x3A

START
call SETCPUPORTSTATUS
MOVLW B'11111110' ;BTL simgesinin olusması icin gerekli kodlar giriliyor
MOVWF LINE1 ;BTL ( Bilgisayar Teknik Lisesi )
MOVLW B'11111110'
MOVWF LINE2
MOVLW B'10010010'
MOVWF LINE3
MOVLW B'11111100'
MOVWF LINE4
MOVLW B'10010010'
MOVWF LINE5
MOVLW B'11000000'
MOVWF LINE6
MOVLW B'10010010'
MOVWF LINE7
MOVLW B'11000000'
MOVWF LINE8
MOVLW B'01101100'
MOVWF LINE9
MOVLW B'11000000'
MOVWF LINE10
MOVLW B'00000000'
MOVWF LINE11
MOVLW B'11000000'
MOVWF LINE12
MOVLW B'00010000'
MOVWF LINE13
MOVLW B'11000000'
MOVWF LINE14
MOVLW B'00010000'
MOVWF LINE15
MOVLW B'10000000'
MOVWF LINE16
MOVLW B'11110000'
MOVWF LINE17
MOVLW B'10000111'
MOVWF LINE18
MOVLW B'00010001'
MOVWF LINE19
MOVLW B'00000000'
MOVWF LINE20
MOVLW B'00010011'
MOVWF LINE21
MOVLW B'00000000'
MOVWF LINE22
MOVLW B'00000011'
MOVWF LINE23
MOVLW B'01111111'
MOVWF LINE24
MOVLW B'00000011'
MOVWF LINE25
MOVLW B'01000000'
MOVWF LINE26
MOVLW B'00000011'
MOVWF LINE27
MOVLW B'01000000'
MOVWF LINE28
MOVLW B'01111111'
MOVWF LINE29
MOVLW B'01000000'
MOVWF LINE30
MOVLW B'11111111'
MOVWF LINE31
MOVLW B'01000000'
MOVWF LINE32

ANA
BCF PORTA,0 ;DATA1 DISABLE
BCF PORTA,1 ;DATA2 DISABLE
BSF PORTA,2 ;LOAD DISABLE
BSF PORTA,3 ;74154 DISABLE

CLRF TARA ;74154 0. SIRA ENABLE (TARAMA=0)

MOVLW .16 ;DÖNGÜ SAYISI YÜKLENDI
MOVWF I ; ( I = 15)
MOVLW LINE1 ;İLK SIRA DATA1 YÜKLENDI FSR YE
MOVWF FSR

DEVAM MOVF INDF,W
MOVWF PORTB
BSF PORTA,0 ;DATA1 ENABLE
;CALL GECIK
BCF PORTA,0 ;DATA1 DISABLE

INCF FSR ; İKİNCİ SIRA DATA2 YÜKLENDİ FSR YE
MOVF INDF,W
MOVWF PORTB
BSF PORTA,1 ;DATA2 ENABLE
;CALL GECIK
BCF PORTA,1 ;DATA2 DISABLE

CLRF PORTB
BCF PORTA,2 ;LOAD ENABLE 0 YÜKLENEREK
MOVF TARA,W
MOVWF PORTB
BCF PORTA,3 ;74154 ENABLE 0 YÜKLENEREK
CALL GECIKME
BSF PORTA,2 ;LOAD DISABLE 1 YÜKLENEREK
BSF PORTA,3 ;74154 DISABLE 1 YÜKLENEREK

INCF FSR
MOVLW B'00000001'
ADDWF TARA,1


DECFSZ I
GOTO DEVAM
GOTO ANA

;
;******************************************************
SETCPUPORTSTATUS
bsf STATUS,RP0
movlw H'00000000'
movwf TRISB
movlw B'00000000'
movwf TRISA
bcf STATUS,RP0

RETURN
;******************************************************
;*- Gecikme Döngüleri -*
;******************************************************

GECIK ;(lsb = ff icin 750nsec gecikme)
movlw .1
movwf msb
d3 movlw .1
movwf lsb
d4 decfsz lsb,F
goto d4
decfsz msb,F
goto d3
return

GECIKME ;750 MİKRO SANİYE
movlw .2
movwf msb
d1 movlw .255
movwf lsb
d2 decfsz lsb,F
goto d2
decfsz msb,F
goto d1
return
;******************************************************
FINISH
goto START
end


E-posta: muminkahraman@hotmail.com
İçerik Yan Blok
Konular
Tasarım: Teknimer Teknoloji
Yukarı