16 Mayıs 2014 Cuma

PIC16F84 İle Led Yakan Program


PIC16F84 ile ilgili Türkçe bilgi almak istiyorsanız buraya tıklayın. Bu microdenetleyiciyi programlamak için 35 komuta ihtiyaç vardır. Bunları daha sonraki günlerde açıklamaya çalışacağız. Buton ile LED yakmak için illaki mikrodenetleyiciye ihtiyaç yoktur. Bizim buradaki amacımız mikrodenetleyiciyi anlamanızı sağlamaktır. Şimdilik sadece program kodlarını ve proteus isis tasarım dosyasını paylaşacağız.
Assembly kodlarını makine koduna dönüştürmek için MPASMWIN programına ihtiyaç vardır.



Butona basmadan önce;


Butona basınca;



LED1.ASM

LIST P=16F84A
INCLUDE "PIC16F84A.INC"
 __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON
 
 
 ORG h'0000'
 
 CLRF PORTB ;PORTB'ye bağlı LED'leri söndür
 BANKSEL TRISB ;BANK1'e geç 
 CLRF TRISB ;PORTB'nin uçlarını çıkış yap
 MOVLW h'FF' ;W saklayıcıya h'FF' yükle
 MOVWF TRISA ;PortA'nın tüm uçlarını giriş yap
 BANKSEL PORTA ;BANK0'a geç
 
BASLA
 MOVF PORTA,W ;PortA'yı oku, sonucu W'ye yaz
 MOVWF PORTB ;W'deki veriyi PortB'ye yaz
 GOTO BASLA  ;Sürekli olarak RA0 ucunun durumunu 
     ;kontrol etmek için başla etiketi 
     ;ile sonsuz döngü oluşturduk.
 END    ;Program sonu

PIC16F84A.INC

LIST
;==========================================================================

        IFNDEF __16F84A
           MESSG "Processor-header file mismatch.  Verify selected processor."
        ENDIF

;==========================================================================
;
;       Register Definitions
;
;==========================================================================

W                            EQU     H'0000'
F                            EQU     H'0001'

;----- Register Files------------------------------------------------------

INDF                         EQU     H'0000'
TMR0                         EQU     H'0001'
PCL                          EQU     H'0002'
STATUS                       EQU     H'0003'
FSR                          EQU     H'0004'
PORTA                        EQU     H'0005'
PORTB                        EQU     H'0006'
EEDATA                       EQU     H'0008'
EEADR                        EQU     H'0009'
PCLATH                       EQU     H'000A'
INTCON                       EQU     H'000B'

OPTION_REG                   EQU     H'0081'
TRISA                        EQU     H'0085'
TRISB                        EQU     H'0086'
EECON1                       EQU     H'0088'
EECON2                       EQU     H'0089'

;----- STATUS Bits --------------------------------------------------------

IRP                          EQU     H'0007'
RP1                          EQU     H'0006'
RP0                          EQU     H'0005'
NOT_TO                       EQU     H'0004'
NOT_PD                       EQU     H'0003'
Z                            EQU     H'0002'
DC                           EQU     H'0001'
C                            EQU     H'0000'

;----- INTCON Bits --------------------------------------------------------

GIE                          EQU     H'0007'
EEIE                         EQU     H'0006'
T0IE                         EQU     H'0005'
INTE                         EQU     H'0004'
RBIE                         EQU     H'0003'
T0IF                         EQU     H'0002'
INTF                         EQU     H'0001'
RBIF                         EQU     H'0000'

;----- OPTION Bits --------------------------------------------------------

NOT_RBPU                     EQU     H'0007'
INTEDG                       EQU     H'0006'
T0CS                         EQU     H'0005'
T0SE                         EQU     H'0004'
PSA                          EQU     H'0003'
PS2                          EQU     H'0002'
PS1                          EQU     H'0001'
PS0                          EQU     H'0000'

;----- EECON1 Bits --------------------------------------------------------

EEIF                         EQU     H'0004'
WRERR                        EQU     H'0003'
WREN                         EQU     H'0002'
WR                           EQU     H'0001'
RD                           EQU     H'0000'

;==========================================================================
;
;       RAM Definition
;
;==========================================================================

        __MAXRAM H'CF'
        __BADRAM H'07', H'50'-H'7F', H'87'

;==========================================================================
;
;       Configuration Bits
;
;==========================================================================

_CP_ON                       EQU     H'000F'
_CP_OFF                      EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_PWRTE_OFF                   EQU     H'3FFF'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                      EQU     H'3FFC'
_XT_OSC                      EQU     H'3FFD'
_HS_OSC                      EQU     H'3FFE'
_RC_OSC                      EQU     H'3FFF'

        LIST



:::KAYNAK DOSYALARINI İNDİR:::

LED1.ASM, PIC16F84 ve İSİS Dosyalarını indirmek için tıklayın.

1 yorum: