Elektronik / Mikrodenetleyici Projeleri/

PIC18F452 picbasic yazıcı çıktısı veren sıramatik

Sponsorlu Bağlantılar

Değişik bir proje devre pplb tip font kullanan termal yazıcıları destekliyor lcd ekran üzerinde kayıt bilgileri tarih saat görülebiliyor PIC18F452 DS1302 24C32A entegreleri kullanılmış yazılım picbasic ile hazırlanmış bir çok konuda iyi bir örnek Hazırlayan emeği geçen kişilere teşekkürler.

Bankalarda kullanılan sıra alma sistemidir. butona basıldığında yazıcıdan sıra verilir. 18F452 nin epromunda basılan son 20 fişle ilgili bilgi saklanır. Bilgisayarın seri portuna 9800 bt 8N1 ile bağlarsanız devreye 1 komutu yolladığınızda epromda sakladığı fiş bilgilerini (hangi numara hangi tarihte hangi saatte verildi) size verecek ve hafızayı silecektir.

Sistemin saat ve tarih kısmında ETE hocanın katkısı çoktur. kendisine tekrar teşekür ederim. sistem kendi tasarımımdır. yardımcı olması dileğiyle.

PORTA.1 pinine bağlı butona basılı tutarak (anahtarı kapalı konuma getirerek) devreye enerji verilirse eeprom resetlenir.

kod içinde bu durum aşağıdaki kod grubuyla yapılır.

if porta.1 = 1 then
print at 1,1,”eproom resetlendi”
kayit = 0
ewrite 1,[kayit]
kayitsayisi = 0
ewrite 10,[kayitsayisi]
adet = 0
ewrite 100,[adet]
Dn5:
if porta.1 =1 then dn5
endif

pic18f452-ds1302-24c32a-picbasic pic18f452-ds1302-24c32a-picbasic-lcd-yazici siramatik-devresi

dosyalar (isis,.bas,.hex) : PIC18F452 picbasic yazıcı çıktısı veren sıramatik

Dosya indirme LINK listesi (TXT formatında) link-7051.zip şifre-pass: 320volt.com

Yazılım

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 26.04.2009                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
device 18f452
ADCON1=7 
delayms 500
 
 
 XTAL = 20
 LCD_DTPIN = PORTd.4	
 LCD_RSPIN = PORTd.3
 LCD_ENPIN = PORTd.2
 LCD_INTERFACE = 4	' 4-bit Interface
 LCD_LINES = 4
 LCD_TYPE = 0

 HSERIAL_BAUD = 9600        ' Set baud rate to 9600
 HSERIAL_RCSTA = %10010000  ' Enable serial port and continuous receive
 HSERIAL_TXSTA = %00100000  ' Enable transmit and asynchronous mode 
 HSERIAL_CLEAR = ON   

symbol RtC_ClK = portb.5
symbol RtC_RsT = portb.7
symbol RtC_DtA = portb.6
low portb
print at 1,1,"HAZIR..."
high portd.0    'backlight açıldı
'******************Portlar deneniyor***************************

'******************DEĞİŞKENLER TANIMLANIYOR********************

dim MeM         as byte
Dim SaYi        as byte
dim SaNiYe      as byte
dim DakikA      as byte
dim SaaT        as byte
dim GunSirasi   as byte
dim Gun         as byte
dim Ay          as Byte
dim YiL         as byte
dim KonTroL     as byte
dim OnlaR       as byte
dim BiRleR      as byte
dim Eski_Sn     as byte
dim DeG[64]     as byte
dim AdeT        as word
dim Bas         as word
dim KayiT       as word
dim KayitSayisi as word
dim BilGi       as byte
dim O_K_sayisi  as byte
dim OkuNan      as byte

bilgi = 0

kayit    = eread 1
'if kayit = 255 then
'kayit    = 20
'ewrite 1,[kayit]
'endif

kayitsayisi = eread 10
if kayitsayisi = 255 then
kayitsayisi = 0
ewrite 10,[kayitsayisi]
endif

adet     = eread 100


if porta.1 = 1 then
  print at 1,1,"eproom resetlendi"
  kayit    = 20
  ewrite 1,[kayit]
  kayitsayisi = 0
  ewrite 10,[kayitsayisi]
  adet = 0
  ewrite 100,[adet]
  Dn5:
  if porta.1 =1 then dn5
endif  

if porta.0 = 0 then ayarsiz

'******Saat 13:20:54 2/6/2009 OLARARAK DEĞİŞKENLER ATANIYOR****

Mem=00  :Gosub Terscevir    :Saniye=SAYI
Mem=31  :Gosub Terscevir    :Dakika=SAYI
Mem=17  :Gosub Terscevir    :Saat=SAYI
MEM=7   :GOSUB terscevir    :gunsirasi=sayi
Mem=26  :GOsub Terscevir    :Gun=SAYI
Mem=4   :Gosub Terscevir    :Ay=SAYI
Mem=9   :GOSUB Terscevir    :YIL=SAYI


'***********DS1302 ye saat yazılacak****************************
high rtc_rst
output rtc_dta
shout rtc_dta, rtc_clk, 0,[$8E, 0]
low rtc_rst

    Delayus 50

High rtc_rst
output rtc_dta
shout rtc_dta, rtc_clk, 0, [$BE\8,saniye\8,dakika\8 ,saat\8 ,gun\8 ,ay\8 ,gunsirasi\8 ,yil\8 ,128\8]
low rtc_rst 


print at 2,1,"Saati Ayarladim.."
delayms 1000

'*************islem yönetimi**************************
Ayarsiz:
cls
bilgi = 0
BasLa:
gosub zaman_oku
if porta.0 =1 then printet
hserin 10,basla,[bilgi]
if bilgi = "1"  then aktar
goto basla
'***********************Saati oku**********************
Zaman_Oku:
    High RtC_RsT
    OUTPUT rtc_dta
    shout RtC_DtA ,RtC_ClK ,0 ,[$BF] 
    INPUT RTC_DTA
    shin  RtC_DtA ,RtC_ClK ,1 ,[saniye\8,dakika\8,saat\8,gun\8,ay\8,gunsirasi\8,yil\8,kontrol\8]
    
    Low RtC_RsT

         mem=saniye     :gosub cevir:saniye=sayi  
         mem=dakika     :gosub cevir:dakika=sayi
         mem=saat       :gosub cevir:saat=sayi
         mem=gun        :gosub cevir:gun=sayi
         mem=ay         :gosub cevir:ay=sayi
         mem=yil        :gosub cevir:yil=sayi
         mem=gunsirasi  :gosub cevir:gunsirasi=sayi


print at 1,1, "Sira No:",dec5 adet,"       "
print at 2,1, "Kayit  :",dec3 kayit
print at 4,1,dec2 saat,":",dec2 dakika,":",dec2 saniye
print at 4,11,dec2 gun,"/",dec2 ay,"/","20",dec2 yil,
delayms 10
return




END

'***********Hex Değer Binary dönüşüyor**************

TersCevir:
    onlar=mem dig 1
    onlar=onlar<<4
    birler=mem dig 0
    sayi=onlar + birler
return

'**********Binary Değer Hex Dönüşüyor***************
Cevir:
    onlar   =mem & %01110000
    onlar   =onlar>>4
    birler  =mem & %00001111
    sayi    =onlar * 10 + birler
RETURN
'**************** Printer **************************


PrintEt:
if porta.0 = 0 then basla
gosub yaz
Dng1:
if porta.0 =1 then dng1
goto basla

Yaz:

 adet = adet + 1
 ewrite 100, [adet]
 HSEROUT ["N",13,10,"ZB",13,10,"q495",13,10,"Q250,24",13,10,"D10",13,10,"S2",13,10,"OD,C1",13,10,"B83,189,0,3,2,4,39,N,",34,dec2 saniye,dec2 gun,dec2 saat, dec2 dakika,dec3 adet,34,13,10]
 hserout ["A160,57,0,5,1,1,N,",34,dec5 adet,34,13,10,"A156,22,0,3,1,1,N,",34,"SIRA NUMARASI",34,13,10]
 hserout ["A101,140,0,4,1,1,N,",34,dec2 gun,45,dec2 ay,45,50,48,dec2 yil,60,62,dec2 saat,58,dec2 dakika,58,dec2 saniye,34,13,10,"A457,205,3,1,1,1,N,",34,"www.obis.com.tr",34,13,10,"A46,55,1,1,1,1,N,",34,"www.obis.com.tr",34,13,10,"P1,1",13,10,13,10]
 
 print at 3,1,"Baski Yapiliyor..."
 print at 2,1,"Baski Sayisi: ",dec4 adet
 gosub kayitTut
 print at 1,1,"Kayit:",dec KayitSayisi," Kayit Bt:",dec kayit
 
 delayms 1000
 print at 3,1,"                  "
 return

'********************  KAYIT TUT  **************************

KayiTTuT:

ewrite kayit, [gun]
    kayit = kayit + 1
ewrite kayit, [ay]
    kayit = kayit + 1
ewrite kayit, [yil]
    kayit = kayit + 1
ewrite kayit, [saat]
    kayit = kayit + 1
ewrite kayit, [dakika]
    kayit = kayit + 1
ewrite kayit, [saniye]
    kayit = kayit + 1
ewrite kayit, [adet]
    kayit = kayit + 2
KayitSayisi = KayitSayisi + 1
ewrite 1,[kayit]
ewrite 10,[KayitSayisi]   
return

AkTar:
cls
bilgi = 0
print at 1,1,"  SENKRON BASLADI."
Bas = 20
okunan = 0
O_K_sayisi = eread 10
 
DnG2:
if okunan = o_k_sayisi then setbitti

gun     = eread bas
    bas = bas + 1
Ay      = eread bas 
    bas = bas + 1
yil     = eread bas
    bas = bas + 1
saat    = eread bas
    bas = bas + 1
dakika  = eread bas
    bas = bas + 1
saniye  = eread bas
    bas = bas + 1
adet    = eread bas
    bas = bas + 2
HSEROUT [dec2 gun,":",dec2 ay,":",dec2 yil," ",dec2 saat,":",dec2 dakika,":",dec2 saniye," ",dec5 adet,13,10]
okunan = okunan + 1
goto dng2

SeTbiTTi:
    kayit    = 20
    bas      = 20
  ewrite 1,[kayit]
  kayitsayisi = 0
  ewrite 10,[kayitsayisi]
'  adet = 0
'  ewrite 0,[adet]
print at 1,1," AKTARIM TAMAMLANDI "
delayms 1000
goto basla

end
  • Aziz Kürşat AKBEN

    merhabalar hocam. çalışmalarınızı takdir etmekteyim. bende bu devreden yapmak istiyorum bunun için baskı devre çizimini ve varsa pc programlarını mail adresime göndermenizi rica ediyorum. bu yazdırdıgınız yazıcıya nasıl baglayabilirim bunu? sıradan bir laser veya deskjet yazıcı olurmu yoksa ayrı bir yazıcı mı olmalı. cevaplarınızı bekliyor saygılar sunuyorum

  • konuyla ilgili özel ürün yapabilirmisiniz

    konuyla ilgili özel çalişmalar yapiyormusunuz acaba

  • 2a2b2b

    Devre şemasında rs232 bağlantısı ,iki adet elektrolit kondansatör ve bağlantıları gösterilmemiş.Rica etsem bu bağlantıları da içeren güncel devre şemasını da yayınlayabilir misiniz?

  • blonje

    devreyi kurudum fakat yazıcı çıktısı gelmiyor yazıcıdan sürekli bip sesi var bağlantıyı hyper terminale aktardığımda tüm bilgiler terminale geliyor sorun nerdedir.?

  • medyaled

    bende devreyi kurdum. Aynen blonje de ki gibi bip sesi var. bu devrenin baskı devresini de verebilirmisiniz yada devre elemanlarının tam listesini verebilirmisiniz ? isis deki devre elemanlarıyla yukarıdaki resimdeki devredeki elemanlar aynı değil. resimdeki devre elemanları nın şemasını verebilirmisiniz… Bi türlü yazıcıya ilk hareketi vermiyor…

  • 2a2b2b

    Belki size bir fikir verebilir diye Aynı projenin bir başka sitedeki Aşağıdaki diyaloğunu aynen yolluyorum.

    nureddino

    Tarih: 23 06 2010 10:43
    ——————————————————————————–

    ben çalıştıramadım…

    Arkadaşlar argox203dt kullandım. seri gnderimde sadece argox’un sağ ledi yanıp sönüyor.
    printerden tepki yok. baud rate 2400 yaptım yine sadece led yandı söndü. yani farklı baudratelerde alımı yaptı (yanlış alım yapmış olmalı) ve ledi yaktı kapattı. (Tek yönlü veri gönderiyorum. alım ile ilgilenmedim. Sadece TX ve GND bağladım.) bilgisi olan var mı? teşekkürler

    nureddino

    Tarih: 24 06 2010 09:57
    ——————————————————————————–
    Aldığım printer bozuk çıktı.. :)

  • Oğuz

    19200 baud ile deneyiniz, piyasadaki termal yazıcıların çoğu 9600 ya da 19200 baud ile haberleşir, istisna olanlar da var tabiki.

  • Eyüp

    Merhaba,

    Bu projeyle alakalı değil ama benzer bir şey sormak istiyorum. Flash bellekteki resimlerden rasgele birini seçip yazdırmamız mümkün mü? Termal yazıcı Usb yada RS232 bağlatılı olacak.

  • Aykut

    bu hangi derleyicide derlenmiş acaba microstudio ile derlemeye çalıştıgımda hata veriyor swordfish ilede denedim

  • Aykut

    bu devreyi denedim , dosya içerisindeki çıkanlar ve resimdeki gözüken devre farkli çalıştırabilen varmı acaba teşekkür ederim iyi günler