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

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 dosyalar (isis,.bas,.hex) : pic18f452-picbasic-siramatik.rar
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
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, [$BE8,saniye8,dakika8 ,saat8 ,gun8 ,ay8 ,gunsirasi8 ,yil8 ,1288]
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 ,[saniye8,dakika8,saat8,gun8,ay8,gunsirasi8,yil8,kontrol8]
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
Yazar: gevv
Yazarımızın 320volt.com Blog üzerinde şu an okuduğunuz yazı dahil 1959 yazısı bulunmaktadır. Yazarımız hakkında bilgileri ve diğer yazılarını görmek için bakınız; gevv















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 çalişmalar yapiyormusunuz acaba
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?
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.?
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…
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ı.. :)