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.
çalışmıyor
YanıtlaSil