KOCAELİ ÜNİVERSİTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ PROJE III. Pic16F84 ile Dijital Saat ve Termometre. Hazırlayan: Tamer Tömekçe 000208001



Benzer belgeler
# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.

MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil Bahar-Final

LCD (Liquid Crystal Display )

W SAYAC SAYAC SAYAC. SAYAC= ise, d=0 W

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB= BCF STATUS,5 ;bank0 a geçiş

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB

MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür.

HUNRobotX - Makaleler - PIC 16 Serisi ile Çarpma İşlemi. Makaleler PIC 16 Serisi ile Çarpma İşlemi

BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: 3.2.KOMUTLAR VE KULLANIM ÖRNEKLERİ

LCD (Liquid Crystal Display)

Hyper Terminal programı çalıştırıp Uygun COM portu ve iletişim parametrelerinin ayarları yapılıp bekletilmelidir.

Komutların İşlem Süresi

PIC TABANLI, 4 BASAMAKLI VE SER

ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU

KONFİGÜRASYON BİTLERİ

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI

MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar

Bank değiştirme Bir banktan diğerine geçmek için STATUS register denilen özel registerin 5. ve 6. bitinin durumunu değiştirmek gerekir.

Yrd.Doç. Dr. Bülent ÇOBANOĞLU. Sakarya Üniversitesi, Teknoloji Fakültesi

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

MİKRODENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-Final Kısmı

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI

5.Eğitim E205. PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628:

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2

B.Ç. / E.B. MİKROİŞLEMCİLER

5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI

BÖLÜM 1 ALT PROGRAMLAR 1.1.ALTPROGRAM NEDİR?

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ

T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİYLE ANALOG İŞLEMLER 523EO0022

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ

PIC Mikrodenetleyiciler. Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ELEKTRİK ELEKTRONİK TEKNOLOJİSİ

IŞIĞA YÖNELEN PANEL. Muhammet Emre Irmak. Mustafa Kemal Üniversitesi Mühendislik Fakültesi. Elektrik-Elektronik Mühendisliği Bölümü

Mikro denetleyicili Uygulama devresi bileşenleri

HUNRobotX - Makaleler - Hız Ayarlı Çoklu DC Motor Kontrolü. Makaleler Hız Ayarlı Çoklu DC Motor Kontrolü

Hacettepe Robot Topluluğu

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1

ÖĞRENME FAALİYETİ-1 ÖĞRENME FAALİYETİ 1

Microprocessors and Programming

Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre

PROGRAMLANABİLİR ZAMANLAYICI

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?

4.2. SAYISAL MANTIK SEVİYELERİ VE DALGA FORMLARI

DERS 11 PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI İÇERİK. Alt Program Çevrim Tabloları Program Sayıcı ( Program Counter PC )

Hacettepe Robot Topluluğu

KESME (INTERRUPT) NEDİR?

YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ. EasyPic6 Deney Seti Kullanım Kılavuzu

Hacettepe Robot Topluluğu

BÖLÜM 1

PIC MCU ile UYGULAMALAR

11. TASARIM ŞABLONU KULLANARAK SUNU HAZIRLAMAK

Şekil İki girişli kod çözücünün blok şeması. Tablo İki girişli kod çözücünün doğruluk tablosu. Şekil İki girişli kod çözücü devre

ROBUS Hızlı Kullanma Kılavuzu

ENF-106 C Programlama Dili Ders İçeriği. Grafik fonksiyonları C Programlama Dili Ders Notları Dr. Oğuz ÜSTÜN

BÖLÜM 9. Sayıcılar, S7 200 CPU serilerinde C ile gösterilir. Sayıcılar, S7 200 CPU serilerinde: Yukarı sayıcı (Counter up CTU ),

HT-02 HP KABLOLU ODA TERMOSTATI KULLANMA KILAVUZU

BİLİŞİM TEKNOLOJİLERİ

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ

Davranışçı Yaklaşımda Öğrenme Kuramları

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUARI YÜZEY DOLDURMA TEKNİKLERİ

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ

İDARİ VE MALİ İŞLER DAİRE BAŞKANI 25 TEMMUZ 2015 KİK GENEL TEBLİĞİ VE HİZMET ALIMLARI UYGULAMA YÖNETMELİĞİNDE YAPILAN DEĞİŞİKLİKLER DURSUN AKTAĞ

KONTROL SİSTEMLERİ Ders Notu

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

ÖĞRENME ALANI : FĐZĐKSEL OLAYLAR ÜNĐTE 3 : YAŞAMIMIZDAKĐ ELEKTRĐK (MEB)

E-OKUL TASDİKNAME GİRİŞİ

7 Segment Display ve Kesmeler (Interrupts) Hafta6-7. Dr. Bülent Çobanoğlu-SAÜ 1

PİC BASİC PROFESSİONAL

R.G UBAN (ULUSAL BANKA HESAP NUMARASI) TEBLİĞİ

Mikroişlemciler Laboratuar Deney Föyü

ONDOKUZ MAYIS ÜNİVERSİTESİ

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

Komutların İşlem Süresi

PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu

MİKRODENETLEYİCİ GELİŞTİRME SETİ TASARIM VE UYGULAMALARI. öğrencilerine eğitimleri esnasında iş hayatında karşılaşabilecekleri kontrol işlemleri ve

CSD-OS İşletim Sistemi Projesi - Fonksiyon Açıklama Standardı

I. HSBS KURUM AYARLARI

Teftiş Kurulu Teftiş Modülü Kullanım Kılavuzu

BTT005 BLUETOOTH STEREO VERİCİ

Başartrafik, Başarsoft un lisanslı bir ürünüdür. GÜVENLİ SÜRÜŞ REHBERİ

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

BQ360 Modbus Dijital Giriş 24 Kanal. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

AN-500 FLASH POINT (Full Digital Tam Otomatik) (Kapalı Tip Alevlenme Noktası Tayin Cıhazı tanıtımı)

MİKRO DENETLEYİCİLER 1 DERS NOTLARI (Final) Prof. Dr. Hakan Ündil Güz

MİKROİŞLEMCİ İLE A/D DÖNÜŞÜMÜ

II- İŞÇİLERİN HAFTALIK KANUNİ ÇALIŞMA SÜRESİ VE FAZLA MESAİ ÜCRET ALACAKLARI

Transkript:

KOCAELİ ÜNİVERSİTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ PROJE III Pic16F84 ile Dijital Saat ve Termometre Hazırlayan: Tamer Tömekçe 000208001

DEVRE ADI: Dijital Saat ve Dijital Termometre DEVRE ELEMANLARI: 1 Adet pic16f84 1 Adet kristal osilatör 2 Adet 22pF kondansatör 4 Adet 7 segment ortak katodlu display 1 Adet 10K NTC 4 Adet buton 10 Adet BC237 transistör 26 Adet 470Ω, 1 Adet 10K ve 1 adet 100Ω direnç 2 Adet 0.1uF kondansatör ÇALIŞMA PRENSİBİ: Devrede asıl istenen 4 adet display ile yaklaşık 15 saniye aralıklarla zamanı ve sıcaklığı göstermesidir. Zaman yazılış formatı ss.dd şeklinde olup sıcaklık formatı ise XX C şeklindedir. Devreye enerji verildikten sonra saat ve dakika göstergelerinde varsayılan değer olan 00.00 değeri yanıp sönecektir. Dakika ayar ve saat ayar tuşlarına basılması durumunda saat ayarlanacak ve SET tuşuna basıldığında saat işlemeye ve 15 saniye içinde sıcaklık gösterilmeye başlanacaktır. Bu bir döngü şeklinde devam edecektir. Devrede saatin çalışması ve sıcaklık ölçümü pic16f84 ile yapılmaktadır. Saatin çalışması pic içerisindeki TMR0 dahili komut sayacı kullanılarak programlanmıştır. Devrenin çalışmasında kullanılan program ek te mevcuttur. 1 komut saykılının 1µs olduğu bilindiğinerek, TMR0 sayacının her döngüsünde oluşturulan kesme ile sayaç a ve sayaç b değerleri artırılmaktadır. Sayaç a nın istenen değere ulaşması ile sayaç b artırılır. Sayaç b nin istenen değere ulaşması tam 1 dakikadır ve dakika değeri 1 arttırılır. Bunun bir döngü halinde gitmesi saatin çalışmasını sağlamaktadır. Devrenin sıcaklık ölçen kısmında ise 1 adet NTC ve kondansatör seri olarak bağlanmış olup (devre şeması ek te mevcuttur) kondansatör üzerinde oluşan gerilim ölçülmek üzere PIC in porta 4. pinine bağlanmıştır. Bu küçük devrenin çalışma prensibi ise sıcaklık ölçülmek istendiğinde kondansatörün PIC e bağlı olduğu pinden lojik 0 değeri (0V) verilir ve kondansatörün boşalmasına yetecek kadar bir sürelik gecikme sağlanır. Kondansatörün boşalması tamamlandıktan sonra PIC in bu pini giriş olarak koşullanır, bu sırada kondansatör doluma geçecektir. Koşullama yapıldıktan sonra bu pinden lojik 1 değeri gelene kadar (bu kondansatörün dolduğu anlamına gelir) RCSAY sayacını arttıran bir döngü çalıştırılır. Kondansatörün dolum hızı direnç ve kondansatör değerinin çarpımına bağlı olduğundan bu dolum süresi farklı direnç değerlerinde değişecektir. Kullandığımız direnç NTC olduğundan farklı sıcaklıklarda farklı değerler gösterecektir. Bu sayede RCSAY sayacından elde ettiğimiz değer her sıcaklıkta farklı olacaktır. Elde ettiğimiz bu değerlerin kaç dereceye denk geldiği ise NTC test programı (ek te mevcuttur) kullanılarak farklı sıcaklıklarda yapılan ölçümler sonucunda belirlenmiştir.

Elimizde bulunan PIC modelinin toplam 13 adet giriş çıkış pinleri mevcuttur. Kullanılan displayler ise 7 segment olduğundan tüm displayler aynı anda çalıştırılamamaktadır. Bunun içinse tüm displaylerin a, b, c, d, e, f ve g olarak bilinen uçları paralel olarak bağlanmıştır. Ancak tüm displaylerin toprak uçları lojik kapılardan oluşan bir switcher devresi ile anahtarlama yapılmıştır. Bu anahtarlama devresi için porta nın 0. ve 1. bitleri kullanılmıştır. Anahtarlama devresi iki adet lojik değil kapısından ve 4 adet lojik vedeğil kapısından oluşmaktadır. Bu kapılar BC237 transistörler ve dirençler ile oluşturulmuştur. Bu şekilde porta ya 00 değeri basıldığında 1. display, 01 değeri basıldığında 2.display, 10 değeri basıldığında 3. display ve 11 değeri basıldığında 4. display aktif olacaktır. Böylece elimizdeki PIC in 9 adet pinini kullanarak 4 adet displayi çalıştırabilmiş olduk. 4 display hiçbir zaman aynı anda çalışmamaktadır, sırayla birinci, ikinci, üçüncü ve dördüncü displayler göstermeleri gerektiği değeri göstermektedir. Ancak bu işlem çok hızlı yapıldığından insan gözü bu anahtarlamayı farkedememektedir ve hepsini aynı anda yanıyormuş gibi görmektedir. Diğer gerekli açıklamalar program üzerinde açıklamalar şeklinde detaylı olarak anlatılmıştır.

;------------------------------PROJE 3-------------------------------------------------------- ;------------------------------------------------------------------------------------------------- ;----------DİJİTAL SAAT VE TERMOMETRE----------24.01.2005---11.40-------- ;------------------------------------------------------------------------------------------------- ;------------------TAMER-TÖMEKÇE----000208001------------------------------------ ;------------------------------------------------------------------------------------------------- INCLUDE "P16F84A.INC" HOURA EQU H'0C' ;SAAT DEĞERİ ONLAR BASAMAĞI HOURB EQU H'0D' ;SAAT DEĞERİ BİRLER BASAMAĞI MINUTEA EQU H'0E' ;DAKİKA DEĞERİ ONLAR BASAMAĞI MINUTEB EQU H'0F' ;DAKİKA DEĞERİ BİRLER BASAMAĞI SAYACA EQU H'10' ;TMR0 DOLDUĞUNDA 1 ARTACAK OLAN SAYAÇ SAYACB EQU H'11' ;SAYAÇ A DOLDUĞUNDA 1 ARTACAK OLAN SAYAÇ FLSHON1 EQU H'12' ;SAAT AYARLANIRKEN DİSPLAYLERİN FLASH, FLSHOF1 EQU H'13' ;YAPMASINI SAĞLAYAN GECİKME DEĞERLERİ DLPCNTR EQU H'14' ;DİSPLAY LOOP COUNTER(1 DİSPLAYİN SWİTCHİNG SIRASINDA ; NE KADAR SÜRE YANACAĞI) GCKSAY1 EQU H'15' GCKSAY2 EQU H'16' ;KONDANSATÖR BOŞALMA SIRASINDAKİ GECİKMEYİ SAĞLARLAR RCSAY EQU H'17' ;KONDANSATÖRÜN DOLUMU SÜRESİNCE ARTAN SAYAÇ TEMPA EQU H'18' ;SICAKLIK DEĞERİ ONLAR BASAMAĞI TEMPB EQU H'19' ;SICAKLIK DEĞERİ BİRLER BASAMAĞI FLSHON2 EQU H'1A' FLSHOF2 EQU H'1B' KSMSKLA EQU H'1C' ;PROGRAM KESMEYE DALLANDIĞINDA W ;REGISTER DA BULUNAN SAYIYI SAKLAMAK İÇİN ;KULLANILIR ;---------------------------------------------------------------------------------------------------- ORG H'00' ;PROGRAM BAŞLANGICI GOTO START ORG H'04' ;TMR0 SAYICISI İLE SAĞLANACAK KESME BAŞLANGICI GOTO KESME ;---------------------------------------------------------------------------------------------------- START BSF STATUS, 5 ;BANK 1'E GEÇ MOVLW B'00001100' MOVWF TRISA MOVLW B'10000000' MOVWF TRISB MOVLW B'00000111' MOVWF OPTION_REG ;PORT A KOŞULLAMASI(RA0-RA1 SWİTCHİNG, RA2 DAKİKA AYAR, ; RA3 SAAT AYAR, RA4 SICAKLIK ÖLÇ) ;PORT B KOŞULLAMASI(RB7 SET DÜĞMESİ, RB0-RB6 DİSPLAY ÇIKIŞLARI) ;OPTION REGISTER KOŞULLAMASI(B7 PORTB PULLUPLAR GEÇERSİZ, ;B5 DAHİLİ SAYKIL, B3 TMR0, B0-B2 1/256) BCF STATUS, 5 ;BANK 0'A GEÇ MOVLW B'10100000' MOVWF INTCON ;INTCON REGISTER KOŞULLAMASI(B7-GIE- TÜM KESMELER GEÇERLİ, ;B5-TOIE- TMR0 SAYICI KESMESİ GEÇERLİ) PORTA PORTB HOURA HOURB MINUTEA MINUTEB SAYACA SAYACB RCSAY TEMPA TEMPB

;---------------------------------------------------------------------------------------------------- SETSTART MOVLW H'10' MOVWF FLSHON1 MOVWF FLSHOF1 ;PROGRAM BAŞLANGICINDA SAAT AYARLANMASI BEKLENİR ;FLASH GECİKME DEĞERLERİ AAAAA MOVWF FLSHON2 LOOPA TMR0 ;SAAT ÇALIŞMAYA BAŞLAMASIN DİYE CALL TIMEDISP ;SAATI YAZDIR BTFSS PORTA, 2 ;RA2(DAKİKA AYAR) BASILDI MI? CALL INCMINUTE ;DAKİKA ARTTIRAN ALT PROGRAMA GİT BTFSS PORTA, 3 ;RA3(SAAT AYAR) BASILDI MI? CALL INCHOUR ;SAAT ARTTIRAN ALT PROGRAMA GİT BTFSS PORTB, 7 ;RB7(SET TUŞU) BASILDI MI? GOTO TMR0SET ; MAINLOOP'A GİT DECFSZ FLSHON2, F GOTO LOOPA DECFSZ FLSHON1, F GOTO AAAAA BBBBB MOVWF FLSHOF2 LOOPB TMR0 ;SAAT ÇALIŞMAYA BAŞLAMASIN DİYE MOVLW B'10000000' ANDWF PORTB, F BTFSS PORTA, 2 ;RA2(DAKİKA AYAR) BASILDI MI? CALL INCMINUTE ;DAKİKA ARTTIRAN ALT PROGRAMA GİT BTFSS PORTA, 3 ;RA3(SAAT AYAR) BASILDI MI? CALL INCHOUR ;SAAT ARTTIRAN ALT PROGRAMA GİT BTFSS PORTB, 7 ;RB7(SET TUŞU) BASILDI MI? GOTO TMR0SET ;MAINLOOP'A GİT DECFSZ FLSHOF2, F GOTO LOOPB DECFSZ FLSHOF1, F GOTO BBBBB GOTO SETSTART ;---------------------------------------------------------------------------------------------------- TMR0SET MOVLW H'5D' MOVWF TMR0 ;TMR0 93 DEN SAYMAYA BAŞLATILIR(163'E KADAR SAYMASI İSTENMEKTEDİR) ;---------------------------------------------------------------------------------------------------- MAINLOOP

BSF PORTA, 4 ;RA4 LOJİK "1" YAPILIR(SICAKLIK OKUNMADIĞI SÜRECE NTC'NİN ;AKIM ÇEKEREK SICAKLIĞININ DEĞİŞMEMESİ İÇİN) CALL TIMEDISP ;SAATİ DİSPLAYLERE YAZDIR BTFSC SAYACB, 2 CALL SICAKLIK ;SAYACB'NİN 2.BİTİNİN DEĞİŞMESİ YAKLAŞIK OLARAK 15 SANİYEDİR GOTO MAINLOOP ;---------------------------------------------------------------------------------------------------- TIMEDISP DISPDELAY BCF PORTA, 0 BCF PORTA, 1 ;DİSPLAY SWİTCHER '00'( DISPLAY 0) MOVF HOURA, W ;HOURA DEĞERİNİ DİSPLAY 0'A BASAR CALL DISPDELAY ;DISPDELAY SÜRESİ KADAR SONRA SWİTCHİNG YAPAR INCF PORTA, F ;DİSPLAY SWİTCHER '01'( DİSPLAY 1) MOVF HOURB, W ;HOURB DEĞERİNİ DİSPLAY 1'E BASAR CALL DISPDELAY ;SWİTCHİNG GECİKMESİ INCF PORTA, F ;DİSPLAY SWİTCHER '10'( DİSPLAY 2) MOVF MINUTEA, W ;MINUTEA DEĞERİNİ DİSPLAY 2'YE BASAR CALL DISPDELAY ;SWİTCHİNG GECİKMESİ INCF PORTA, F ;DİSPLAY SWİTCHER '11'( DİSPLAY 3) MOVF MINUTEB, W ;MINUTEB DEĞERİNİ DİSPLAY 3'E BASAR CALL DISPDELAY ;SWİTCHİNG GECİKMESİ LOOP1 MOVLW H'30' MOVWF DLPCNTR DECFSZ DLPCNTR, F GOTO LOOP1 ;48 KEZ GECİKME DÖNGÜSÜ ;TOPLAM OLARAK YAKLAŞIK 70 SAYKIL SWİTCHİNG GECİKMESİ ;------------------------------------------------------------------------------------------------- SICAKLIK RCSAY MOVLW H'04' MOVWF TEMPA TEMPB ;TEMP DEFAULT DEĞER 40 DERECEDİR. CALL DESARJ ;KONDANSATÖRÜN BOŞALMASI İÇİN GEREKLİ BEKLEME BSF STATUS, 5 ;BANK 1 E GEÇ BSF TRISA, 4 ;RA 4 Ü GİRİŞ KOŞULLA(KONDANSATÖR DOLUMA GEÇER) BCF STATUS, 5 ;BANK 0 A GEÇ

COUNT INCF RCSAY, F ;RCSAY SAYACINI 1 ARTTIR BTFSS PORTA, 4 ;KONDANSATÖR DOLDU MU? DOLDUYSA EĞER DOLUM SÜRESİ RCSAY'DA SAKLI GOTO COUNT CONVERT MOVLW H'07' SUBWF RCSAY, F ;RCSAY'DAN 7 ÇIKAR BTFSS STATUS, 0 ;CARRY FLAG '0' MI? '0' SA ÇIKARMA İŞLEMİ SONUCU NEGATİF DEMEKTİR GOTO TEMPDISP ;CARRY FLAG 0 SA, YANİ SONUÇ NEGATİFSE TEMPDISP'E GİT CALL TEMPBUL MOVLW H'06' SUBWF RCSAY, F ;RCSAY'DAN BU KEZ 6 ÇIKAR.(RCSAY 1 DERECEDE 6.65 DEĞİŞİYORDU. ;YAKLAŞIK DEĞER İÇİN) BTFSS STATUS, 0 ;CARRY FLAG '0' MI? '0' SA ÇIKARMA İŞLEMİ SONUCU NEGATİF DEMEKTİR GOTO TEMPDISP ;CARRY FLAG 0 SA, YANİ SONUÇ NEGATİFSE TEMPDISP'E GİT CALL TEMPBUL GOTO CONVERT TEMPBUL DECF TEMPB, F XORWF TEMPB, W BTFSS STATUS, 2 MOVLW H'09' MOVWF TEMPB DECF TEMPA, F TEMPDISP BCF PORTA, 0 BCF PORTA, 1 ;DİSPLAY SWİTCHER '00'( DISPLAY 0) MOVF TEMPA, W ;TEMPA DEĞERİNİ DİSPLAY 0'A BASAR CALL DISPDELAY ;DISPDELAY SÜRESİ KADAR SONRA SWİTCHİNG YAPAR INCF PORTA, F ;DİSPLAY SWİTCHER '01'( DİSPLAY 1) MOVF TEMPB, W ;TEMPB DEĞERİNİ DİSPLAY 1'E BASAR CALL DISPDELAY ;DISPDELAY SÜRESİ KADAR SONRA SWİTCHİNG YAPAR INCF PORTA, F ;DİSPLAY SWİTCHER '10'( DİSPLAY 2) MOVLW H'63' CALL DISPDELAY ;DERECE İŞARETİNİ DİSPLAY 2'YE BASAR INCF PORTA, F ;DİSPLAY SWİTCHER '11'( DİSPLAY 3) MOVLW H'39' CALL DISPDELAY ;C HARFİNİ DİSPLAY 3'E BASAR BTFSS SAYACB, 2 ;SAYACB'NİN 1.BİTİNİN DEĞİŞMESİ YAKLAŞIK OLARAK 5 SANİYEDİR GOTO TEMPDISP

DESARJ BSF STATUS, 5 ;BANK 1 E GEÇ BCF TRISA, 4 ;RA 4 Ü ÇIKIŞ KOŞULLA BCF STATUS, 5 ;BANK 0 A GEÇ BCF PORTA, 4 ;RA 4 Ü LOJİK 0 YAP...BÖYLECE KONDANSATÖR BOŞALIMA GEÇECEKTİR MOVWF GCKSAY1 DONGU1 CALL TIMEDISP ;DEŞARJ SIRASINDA OLUŞAN GECİKME SIRASINDA ;DİSPLAYLER SÖNMESİN DİYE SAATİ BASAR MOVWF GCKSAY2 DONGU2 DECFSZ GCKSAY2, F GOTO DONGU2 DECFSZ GCKSAY1, F GOTO DONGU1 ;-------------------------------------------------------------------------------------------------- CEV_TAB ADDWF PCL, F RETLW H'3F' ;0 RETLW H'06' ;1 RETLW H'5B' ;2 RETLW H'4F' ;3 RETLW H'66' ;4 RETLW H'6D' ;5 RETLW H'7D' ;6 RETLW H'07' ;7 RETLW H'7F' ;8 RETLW H'6F' ;9 RETLW H'63' ;(DERECE İŞARETİ) RETLW H'39' ;C ;---------------------------------------------------------------------------------------------------- INCMINUTE CALL DELAY INCF MINUTEB, F ;DAKİKAYI 1 ARTTIR MOVLW H'0A' XORWF MINUTEB, W BTFSS STATUS, 2 ;MINUTEB DEĞERİ H'0A' İSE 0 OLMASI GEREKİR VE ;MINUTEA'YI 1 ARTTIRMASI GEREKİR

INCHOUR MINUTEB ;MINUTEB'Yİ SIFIRLA INCF MINUTEA, F ;MINUTEA'YI 1 ARTTIR MOVLW H'06' XORWF MINUTEA, W BTFSS STATUS, 2 ;MINUTEA DEĞERİ H'06' İSE 0 OLMASI GEREKİR MINUTEA ;MINUTEA'YI SIFIRLA CALL DELAY SETSAAT24 INCF HOURB, F ;SAATİ 1 ARTTIR MOVLW H'02' XORWF HOURA, W BTFSC STATUS, 2 ;HOURA 2 Mİ? 2 İSE HOURB 3 TEN SONRA SIFIRLANMALI, DEĞİLSE 9 DAN SONRA. GOTO SETSAAT24 MOVLW H'0A' XORWF HOURB, W BTFSS STATUS, 2 ;HOURB DEĞERİ H'0A' İSE 0 OLMASI GEREKİR VE HOURA'YI 1 ARTTIRMASI GEREKİR HOURB ;HOURB'Yİ SIFIRLA INCF HOURA, F ;HOURA'YI 1 ARTTIR MOVLW H'04' XORWF HOURB, W BTFSS STATUS, 2 ;HOURB DEĞERİ H'04' İSE BU DURUMDA SAAT 00 OLMUŞTUR. HOURB HOURA ;HOURA VE HOURB SIFIRLANIR ;--------------------------------------------------------------------------------------------------------------------- DELAY DLYLOOP1 MOVLW H'02' MOVWF GCKSAY1 TMR0 MOVLW H'C8' MOVWF GCKSAY2 DLYLOOP2 CALL TIMEDISP DECFSZ GCKSAY2, F GOTO DLYLOOP2 DECFSZ GCKSAY1, F GOTO DLYLOOP1 ;-------------------------------------------------------------------------------------------------------------------- KESME MOVWF KSMSKLA ;W DAKİ DEĞERİ SAKLAMAK İÇİN

MOVLW H'5D' MOVWF TMR0 ;TMR0'A TEKRAR 163 DEĞERİNİ VER, SAYMAYA DEVAM ETSİN BCF INTCON, T0IF ;SONRAKİ KESMELERE HAZIRLAMAK İÇİN T0IF BAYRAĞI SIFIRA ÇEKİLİR INCF SAYACA, F ;SAYACA 1 ARTTIRILIR MOVLW H'50' XORWF SAYACA, W BTFSS STATUS, 2 ;SAYACA 80 Mİ? 80 İSE SIFIRLANMALI VE SAYACB 1 ARTTIRILMALI SAYACA INCF SAYACB, F ;SAYACA'YI SIFIRLA, SAYACB'Yİ 1 ARTTIR MOVLW H'12' XORWF SAYACB, W BTFSS STATUS, 2 ;SAYACB 18 Mİ? 18 İSE SIFIRLANMALI VE DAKİKA(MINUTEB) 1 ARTTIRILMALI SAYACB INCF MINUTEB, F ;DAKİKAYI 1 ARTTIR MOVLW H'0A' XORWF MINUTEB, W BTFSS STATUS, 2 ;MINUTEB DEĞERİ H'0A' İSE 0 OLMASI GEREKİR ;VE MINUTEA'YI 1 ARTTIRMASI GEREKİR GOTO KESMESON MINUTEB ;MINUTEB'Yİ SIFIRLA INCF MINUTEA, F ;MINUTEA'YI 1 ARTTIR MOVLW H'06' XORWF MINUTEA, W BTFSS STATUS, 2 ;MINUTEA DEĞERİ H'06' İSE 0 OLMASI GEREKİR VE HOURB'Yİ 1 ARTTIRMASI GEREKİR MINUTEA ;MINUTEA'YI SIFIRLA INCF HOURB, F ;HOURB'Yİ 1 ARTTIR MOVLW H'02' XORWF HOURA, W BTFSC STATUS, 2 ;HOURA 2 Mİ? 2 İSE HOURB 3 TEN SONRA SIFIRLANMALI, DEĞİLSE 9 DAN SONRA. GOTO SAAT24 MOVLW H'0A' XORWF HOURB, W BTFSS STATUS, 2 ;HOURB DEĞERİ H'0A' İSE 0 OLMASI GEREKİR VE HOURA'YI 1 ARTTIRMASI GEREKİR HOURB ;HOURB'Yİ SIFIRLA INCF HOURA, F ;HOURA'YI 1 ARTTIR SAAT24 KESMESON MOVLW H'04' XORWF HOURB, W BTFSS STATUS, 2 ;HOURB DEĞERİ H'04' İSE BU DURUMDA SAAT 00 OLMUŞTUR. HOURB HOURA ;HOURA VE HOURB SIFIRLANIR MOVF KSMSKLA, W ;SAKLANAN W DEĞERİ GERİ YÜKLENİR RETFIE ;-------------------------------------------------------------------------------------------- END

;--------------------------------------------------NTC TEST.ASM-------------------------------------------- ;-----SICAKLIK ÖLÇMEDE KULLANILACAK NTC WE KONDANSATÖR İKİLİSİNDE----- ;-----KONDANSATÖRÜN DOLUM SÜRESİNİ SAYARAK DİSPLAYLERDE GÖSTEREN--- ;-------------------------------------------------PROGRAM------------------------------------------------------ W EQU H'00' F EQU H'01' PORTA EQU H'05' PORTB EQU H'06' TRISA EQU H'85' TRISB EQU H'86' STATUS EQU H'03' PCL EQU H'02' RCSAY1 EQU H'0C' RCSAY2 EQU H'0D' DGCKSAY EQU H'0E' GCKSAY1 EQU H'0F' GCKSAY2 EQU H'10' DSP0 EQU H'11' DSP1 EQU H'12' DSP2 EQU H'13' DSP3 EQU H'14' SAYAC EQU H'15' GCKSAY3 EQU H'16' ORG H'00' BASLA DESARJ BSF STATUS, 5 ;BANK 1 E GEÇ TRISA TRISB BCF STATUS, 5 ;BANK 0 A GEÇ BSF PORTA, 4 ;RA 4 Ü LOJİK 1 YAP PORTB RCSAY1 RCSAY2 MOVWF SAYAC ;SAYAC'A FF WERİLİR.EKRANDA YAZILARIN KALMA SÜRESİ BCF PORTA, 4 ;RA 4 Ü LOJİK 0 YAP CALL GECIK BSF STATUS, 5 ;BANK 1 E GEÇ BSF TRISA, 4 ;RA 4 Ü GİRİŞ KOŞULLA BCF STATUS, 5 ;BANK 0 A GEÇ SAY INCF RCSAY1, F BTFSC STATUS, 0 ;CARRY FLAG 1 Mİ? INCF RCSAY2, F BTFSS PORTA, 4 GOTO SAY SWAPF RCSAY2, W ;RCSAY2 NİN EN ANDLW H'0F' ;ANLAMLI 4 BİTİNİ MOVWF DSP0 ;DSP0 A YAZ MOVF RCSAY2, W ;RCSAY2 NİN EN AZ ANDLW H'0F' ;ANLAMLI 4 BİTİNİ MOVWF DSP1 ;DSP1 E YAZ SWAPF RCSAY1, W ;RCSAY1 İN EN ANDLW H'0F' ;ANLAMLI 4 BİTİNİ MOVWF DSP2 ;DSP2 YE YAZ MOVF RCSAY1, W ;RCSAY1 İN EN AZ ANDLW H'0F' ;ANLAMLI 4 BİTİNİ MOVWF DSP3 ;DSP3 E YAZ YAZDIR PORTA ;RA1 WE RA0 '00' YAPILIR(DISP0) MOVF DSP0, W ;DISPLAY 0'A DEĞERİNİ BAS

CALL DSPGCK INCF PORTA, F MOVF DSP1, W CALL DSPGCK INCF PORTA, F MOVF DSP2, W CALL DSPGCK INCF PORTA, F MOVF DSP3, W CALL DSPGCK ;DISPLAY 1'E DEĞERİNİ BAS ;DISPLAY 2'YE DEĞERİNİ BAS ;DISPLAY 3'E DEĞERİNİ BAS DECFSZ SAYAC, F GOTO YAZDIR GOTO BASLA DSPGCK MOVLW H'28' MOVWF DGCKSAY ;DISPLAYLERIN REFRESH SIRASINDA GORUNTU WERECEĞİ SÜRE(40 SAYKIL) DONGU4 DECFSZ DGCKSAY, F GOTO DONGU4 GECIK MOVWF GCKSAY1 DONGU1 MOVWF GCKSAY2 DONGU2 MOVLW H'05' MOVWF GCKSAY3 DONGU3 CEV_TAB DECFSZ GCKSAY3, F GOTO DONGU3 DECFSZ GCKSAY2, F GOTO DONGU2 DECFSZ GCKSAY1, F GOTO DONGU1 ADDWF PCL, F RETLW H'3F' ;0 RETLW H'06' ;1 RETLW H'5B' ;2 RETLW H'4F' ;3 RETLW H'66' ;4 RETLW H'6D' ;5 RETLW H'7D' ;6 RETLW H'07' ;7 RETLW H'7F' ;8 RETLW H'6F' ;9 RETLW H'77' ;A RETLW H'7C' ;B RETLW H'39' ;C RETLW H'5E' ;D RETLW H'79' ;E RETLW H'71' ;F END