Ana Sayfa Forum Web Hesaplamalar Datasheet Yazarlarımız Yazı Gönder İletişim Dikkat

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 Terscevirakika=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
Yazar: gevv Tarih: 24/05/2009 Etiketler: PIC18F452 picbasic, PIC18F452 tarih saat, picbasic yazıcı, sıramatik devresi 





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