15 Mayıs 2011 Pazar

Pic 16f877 ile kullanarak telefon ile uzaktan kontrol


Baskı Devre Şeması:

Alttan Görünüş:





Üstten Görünüş:


DTFM Tonu ile uzaktan cihaz kontrolü
DTFM ton kontrolü 8 adet her hangi bir devrenin ya da cihazın uzaktan kontrolünde kullanılabilir. Buradaki amaç telsizle ve ya telefonla uzaktan bir sistemin çalışmasını sağlayabilmektir.
Devrenin çalışması:
Telefondan ve ya telsizden çıkan DTMF ton sinyali bir amplifikatör yardımıyla genliği büyütüldükten sonra 100 n'luk kondansatörden geçerek 100 kW'luk dirençle CM8870 decoder entegresi tarafından 5 bitlik veriye dönüştürülür. Normal telefon DTMF'i için CM8870'e 3.574Mhz'li kristal takılmaktadır. Decoder'den çıkan 5 bitlik veri pic 16F877'nin portlarına aktarılır. Pic 16F877 tarafından klavyeden girilen değerle karşılaştırılır ve ilgili röleleri kontaklar. 
pic16f877 için pic basic kodları:


PM_USED   EQU 1
 INCLUDE "16F877.INC"

; Define statements.
#define  CODE_SIZE   8
#define  LCD_BITS      4
#define  LCD_DREG      PORTD
#define  LCD_DBIT      0
#define  LCD_RSREG   PORTE
#define  LCD_RSBIT   2
#define  LCD_EREG   PORTE
#define  LCD_EBIT   1
RAM_START         EQU 00020h
RAM_END           EQU 001EFh
RAM_BANKS         EQU 00004h
BANK0_START       EQU 00020h
BANK0_END         EQU 0007Fh
BANK1_START       EQU 000A0h
BANK1_END         EQU 000EFh
BANK2_START       EQU 00110h
BANK2_END         EQU 0016Fh
BANK3_START       EQU 00190h
BANK3_END         EQU 001EFh
EEPROM_START      EQU 02100h
EEPROM_END        EQU 021FFh
R0                EQU RAM_START + 000h
R1                EQU RAM_START + 002h
R2                EQU RAM_START + 004h
R3                EQU RAM_START + 006h
R4                EQU RAM_START + 008h
R5                EQU RAM_START + 00Ah
R6                EQU RAM_START + 00Ch
R7                EQU RAM_START + 00Eh
R8                EQU RAM_START + 010h
FLAGS             EQU RAM_START + 012h
GOP               EQU RAM_START + 013h
RM1               EQU RAM_START + 014h
RM2               EQU RAM_START + 015h
RR1               EQU RAM_START + 016h
RR2               EQU RAM_START + 017h
_CIKIS             EQU RAM_START + 018h
_DENET             EQU RAM_START + 019h
_UMUMI             EQU RAM_START + 01Ah
_PORTL             EQU PORTB
_PORTH             EQU PORTC
_TRISL             EQU TRISB
_TRISH             EQU TRISC
 INCLUDE "REHA_~1.MAC"
 INCLUDE "PBPPIC14.LIB"
 MOVE?CB 007h, ADCON1
 MOVE?CB 00Fh, TRISA
 MOVE?CB 000h, TRISB
 MOVE?CB 000h, PORTB
 PAUSE?C 001F4h
 LCDOUT?C 0FEh
 LCDOUT?C 001h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 049h
 LCDOUT?C 059h
 LCDOUT?C 049h
 LCDOUT?C 020h
 LCDOUT?C 047h
 LCDOUT?C 055h
 LCDOUT?C 04Eh
 LCDOUT?C 04Ch
 LCDOUT?C 045h
 LCDOUT?C 052h
 LCDOUT?C 0FEh
 LCDOUT?C 0C0h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 044h
 LCDOUT?C 054h
 LCDOUT?C 04Dh
 LCDOUT?C 046h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 04Bh
 LCDOUT?C 04Fh
 LCDOUT?C 04Eh
 LCDOUT?C 054h
 LCDOUT?C 052h
 LCDOUT?C 04Fh
 LCDOUT?C 04Ch
 LABEL?L _YENILE
 AND?BCB PORTA, 00Fh, _UMUMI
 CMPEQ?BCL _UMUMI, 000h, _YENILE
 CMPGE?BCL _UMUMI, 009h, L00002
 GOSUB?L _TABLO
 OR?BBB PORTB, _CIKIS, PORTB
 LCDOUT?C 0FEh
 LCDOUT?C 001h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUTD?B _UMUMI
 LCDOUT?C 02Eh
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 041h
 LCDOUT?C 04Ch
 LCDOUT?C 020h
 LCDOUT?C 041h
 LCDOUT?C 04Bh
 LCDOUT?C 054h
 LCDOUT?C 049h
 LCDOUT?C 046h
 LCDOUT?C 0FEh
 LCDOUT?C 0C0h
 LCDOUT?C 020h
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 020h
 LCDOUT?C 026h
 LCDOUT?C 020h
 LCDOUT?C 042h
 LCDOUT?C 045h
 LCDOUT?C 052h
 LCDOUT?C 048h
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LABEL?L _DNTL
 AND?BCB PORTA, 00Fh, _DENET
 LXOR?BBL _UMUMI, _DENET, _YENILE
 GOTO?L _DNTL
 CMPNE?BCL _UMUMI, 00Ah, L00004
 MOVE?CB 000h, PORTB
 LCDOUT?C 0FEh
 LCDOUT?C 001h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 054h
 LCDOUT?C 055h
 LCDOUT?C 04Dh
 LCDOUT?C 020h
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 041h
 LCDOUT?C 04Ch
 LCDOUT?C 04Ch
 LCDOUT?C 041h
 LCDOUT?C 052h
 LCDOUT?C 0FEh
 LCDOUT?C 0C0h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 050h
 LCDOUT?C 041h
 LCDOUT?C 053h
 LCDOUT?C 049h
 LCDOUT?C 046h
 LABEL?L L00004
 CMPNE?BCL _UMUMI, 00Bh, L00006
 LABEL?L _SRGL
 PAUSE?C 001h
 AND?BCB PORTA, 00Fh, _DENET
 GOTO?L _SRGL
 LABEL?L _PASIF_Y
 LCDOUT?C 0FEh
 LCDOUT?C 001h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 048h
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 047h
 LCDOUT?C 049h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 041h
 LCDOUT?C 04Ch
 LCDOUT?C 0FEh
 LCDOUT?C 0C0h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 050h
 LCDOUT?C 041h
 LCDOUT?C 054h
 LCDOUT?C 049h
 LCDOUT?C 04Ch
 LCDOUT?C 053h
 LCDOUT?C 049h
 LCDOUT?C 04Eh
 LABEL?L _PASIF_BEK
 AND?BCB PORTA, 00Fh, _DENET
 ASM?
   NOP   
 ENDASM?
 CMPEQ?BCL _DENET, 000h, _PASIF_BEK
 AND?BCB PORTA, 00Fh, _UMUMI
 GOSUB?L _TABLO
 AND?BBB PORTB, _CIKIS, _DENET
 CMPEQ?BCL _DENET, 000h, _GEC
 XOR?BBB PORTB, _CIKIS, PORTB
 LCDOUT?C 0FEh
 LCDOUT?C 001h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUTD?B _UMUMI
 LCDOUT?C 02Eh
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 041h
 LCDOUT?C 04Ch
 LCDOUT?C 020h
 LCDOUT?C 050h
 LCDOUT?C 041h
 LCDOUT?C 053h
 LCDOUT?C 049h
 LCDOUT?C 046h
 LCDOUT?C 0FEh
 LCDOUT?C 0C0h
 LCDOUT?C 020h
 LCDOUT?C 045h
 LCDOUT?C 052h
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 020h
 LCDOUT?C 026h
 LCDOUT?C 020h
 LCDOUT?C 042h
 LCDOUT?C 045h
 LCDOUT?C 052h
 LCDOUT?C 048h
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 GOTO?L _SRGL2
 LABEL?L _GEC
 LCDOUT?C 0FEh
 LCDOUT?C 001h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 042h
 LCDOUT?C 055h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 04Bh
 LCDOUT?C 041h
 LCDOUT?C 04Eh
 LCDOUT?C 041h
 LCDOUT?C 04Ch
 LCDOUT?C 0FEh
 LCDOUT?C 0C0h
 LCDOUT?C 002h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 020h
 LCDOUT?C 050h
 LCDOUT?C 041h
 LCDOUT?C 053h
 LCDOUT?C 049h
 LCDOUT?C 046h
 LABEL?L _SRGL2
 AND?BCB PORTA, 00Fh, _DENET
 LXOR?BBL _UMUMI, _DENET, _YENILE
 GOTO?L _SRGL2
 LABEL?L L00006
 PAUSE?C 004h
 GOTO?L _YENILE
 LABEL?L _TABLO
 LOOKUP?BCLB _UMUMI, 009h, L00001, _CIKIS
 LURET?C 000h
 LURET?C 001h
 LURET?C 002h
 LURET?C 004h
 LURET?C 008h
 LURET?C 010h
 LURET?C 020h
 LURET?C 040h
 LURET?C 080h
 LABEL?L L00001
 RETURN?
 END

Hiç yorum yok:

Yorum Gönder