Skulle vilja ha kommentarer på dels om jag missat något för att köra den på 4MHz intern oscillator och även övriga kommentarer på koden.
Kod: Markera allt
;****************************************************************
;*********************** Processor-modell ***********************
;****************************************************************
;Se till att rätt processor är vald under Configure > Select device
list p=16F887
#include <p16f887.inc>
;****************************************************************
;******************* Slut på processor-modell *******************
;****************************************************************
;****************************************************************
;******************** Stäng av varning **************************
;****************************************************************
errorlevel -302 ;Register in operand not in bank 0. Ensure that bank bits are correct.
;****************************************************************
;******************** Slut på stäng av varning ******************
;****************************************************************
;****************************************************************
;********************* Configurationsbitar **********************
;****************************************************************
__CONFIG _CONFIG1, _DEBUG_OFF & _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CP_OFF & _CPD_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
;****************************************************************
;******************** Slut på configurationsbitar ***************
;****************************************************************
;****************************************************************
;******************* Uppstartsrutin efter Reset *****************
;****************************************************************
org 0x00 ;Normal programkörning
goto init ;Hoppa till första instruktionen i programmet
;****************************************************************
;************* Slut på uppstartsrutin efter Reset ***************
;****************************************************************
;*************************************************************************
;***************** Initiering av klocka och portar ***********************
;*************************************************************************
init
;Sätt processorhastighet till 4 MHz vid användning av intern oscillator
BANKSEL OSCCON
bcf OSCCON,0 ;SCS Klockans inställningar definieras av FOSC<2:0> från CONFIG1-registret
bcf OSCCON,4 ;IRCF<0> Välj intern oscillator-frekvens
bsf OSCCON,5 ;IRCF<1> Välj intern oscillator-frekvens
bsf OSCCON,6 ;IRCF<2> Välj intern oscillator-frekvens
;Nolla alla utgångar
BANKSEL PORTA
clrf PORTA
clrf PORTB
clrf PORTC
clrf PORTD
clrf PORTE
BANKSEL TRISA
;Riktningsregister port A
movlw b'00000000'
movwf TRISA
;Riktningsregister port B
movlw b'00000000'
movwf TRISB
;Riktningsregister port C
movlw b'00000000'
movwf TRISC
;Riktningsregister port D
movlw b'00000000'
movwf TRISD
;Riktningsregister port E
;Port E är 4 bitar, bit 0-3
;Bit 3 kan endast användas som ingång, i detta fall MCLR, master clear reset
movlw b'00001000'
movwf TRISE
;Väljer om det är en digital eller analog ingång, 0 = digita1, 1 = analog
;Här måste ändras vid användning av analogingångar
BANKSEL ANSEL
movlw b'00000000' ;AN7, AN6, AN5, AN4, AN3, AN2, AN1, AN0
movwf ANSEL
movlw b'00000000' ;AN13, AN12, AN11, AN10, AN9, AN8
movwf ANSELH
BANKSEL PORTA ;Välj bank där portar finns
;*******************************************************************
;*********** Slut på initiering av port A, B, C, D, E **************
;*******************************************************************
;*******************************************************************
;********************* Huvudprogram ********************************
;*******************************************************************
Main
;Här skrivs programmet.
;*****************************************************************
;************************ Slut på huvudprogram *******************
;*****************************************************************
End